零基础打造全屋智能控制系统 篇三十:45元的WIFI摄像头应用之YOLO人体识别

2019-04-02 20:04:40 246点赞 2294收藏 120评论

如果大家对智能家居比较感兴趣的话,一定知道阻碍智能家居自动化发展的一个大问题就是,房间里有没有人,如果有人,那人究竟在做些什么,系统又该如何调整环境的照明,温度甚至安防。

在很长的时间里,我们检测人体都依靠两类设备,一类是热释电红外传感器,例如Aqara/小米人体传感器:

45元的WIFI摄像头应用之YOLO人体识别

说明里面已经说的很清楚了,检测人或宠物移动,所以不动肯定是检测不到的,很多人都把这锅扔给小米背,但实际上,不管是哪个品牌,都做不到静止检测。还有一类叫做微波传感器,例如最近在智能家居玩家群里讨论的很热烈的静止人体传感器:

45元的WIFI摄像头应用之YOLO人体识别

这个传感器号称可以检测静止人体,不过在企业官方的文档中明确写道:动态探测距离 6-8 米,静态探测距离最大2 米; 而其静态探测是检测人的微小动作,例如呼吸啥的。并且安装位置要与人体平行:

45元的WIFI摄像头应用之YOLO人体识别

大家其实也可以看出来,这个号称静止人体检测的玩意,实际上也就是个动作传感器,只是灵敏度非常高罢了。先不说安装问题,微波传感器的灵敏度高了之后,电风扇,空调,任何轻微动作都可能触传感器动作。

除了这两种外,本站值友@blindlight正在实验利用无线信号来检测人体,参考文档

45元的WIFI摄像头应用之YOLO人体识别

大概意思是用一圈WIFI设备把房间围起来,然后实时监测各个节点的WIFI信号变化,来推断哪里有人。听上去不是啥难事,但是实际上应用起来还是要动些脑筋,我表示能看懂意思,但是抱歉,我做不来,相信看文的各位大部分人也搞不定,所以这里介绍一个大家都能玩的玩意——YOLO。

一、YOLO简介

大道理不说,其实我也不懂,这里大家只要知道YOLO的全称是You only look once,也就是你就看了一眼,看了一眼怎么了呢,看了眼就知道是什么了,这是一个基于深度学习方法的端到端实时目标检测系统。其主要特点一是快,二是安装使用简单,在ubuntu下只需要4条命令就可以开始工作。以下片段来自CSDN @泉伟

45元的WIFI摄像头应用之YOLO人体识别

不过根据他文中的介绍,他使用的配置为1080Ti,使用YOLO v3原始权重,Resize以后的图片大小为608*608,检测速度可以达到20帧每秒。当然,如果使用tiny权重的话速度会快很多。除了人之外,YOLO还能检测其他常见物体,例如宠物:

45元的WIFI摄像头应用之YOLO人体识别

不过说实话,如果只是检测有没有人的话,即使不用1080TI,开一台PC我都觉得有些浪费。所以这篇的主旨其实是利用树莓派来实现静态图片的检测。

二、树莓派安装darknet-nnpack

之前说了,如果在ubuntu上安装YOLO的话只需要3条命令:

git clone https://github.com/pjreddie/darknet
cd darknet
make

然后下载权重文件,权重文件分两个版本,一个是标准的,一个是轻量(Tiny)的:

wget https://pjreddie.com/media/files/yolov3.weights(标准版)

wget wget https://pjreddie.com/media/files/yolov3-tiny.weights(TINY版)

一般来说,标准版的检测准确率会高很多,但是非常非常慢(2400G单线程虚拟机下检测一张大约要30秒+),没有GPU加速是没有应用价值的,所以日常CPU使用都使用TINY版的权重(2400G单线程虚拟机下检测一张大约要2秒+),虽然准确率差了一些,但是找找人啊,猫狗也已经足够。但是标准版的Dakrnet在树莓派3b上面跑的话即使是tiny权重,也要40秒左右一张,显然是没有任何实用价值的。所以如果在树莓派上运行的话,我们需要针对无GPU并且ARM芯片进行优化过的darknet-nnpack。通过它来运行YOLO,我们能将tiny的识别速度提高到1秒/张左右,虽然依旧做不了实时检测,但是考虑到无论是硬件成本,还是运行成本(电费),树莓派都是性价比之选。

45元的WIFI摄像头应用之YOLO人体识别

当然,根据此表,X86平台使用darknet-nnpack也能获得非常不错的优化速度。而安装只要参照darknet-nnpack的github页面一步步做下去就好,这里就不再复制粘帖了,全程无坑,而在下载weights文件时我们只要下载tiny版的就好:

wget wget

全部完成后我们可以利用自带图片测试下:

./darknet detector test cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights data/person.jpg

45元的WIFI摄像头应用之YOLO人体识别

45元的WIFI摄像头应用之YOLO人体识别

运行速度不错,1.1秒就完成了识别,只是load weights还需要3-4秒,总体上在5秒左右。这里值得说明的是,命令的默认参数是输出准确率超过25%的物体,我们可以根据自身环境来调整参数:

./darknet detector test cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights data/person.jpg -thresh 0.1

例如这个就是输出准确率10%以上的物体。

三、接入摄像头

这里我使用的是上一篇原创提到的45元的ESP32-CAM摄像头模块:

零基础打造全屋智能控制系统 篇二十九:45元的WIFI摄像头模块,能玩出什么花样?本篇文章来自#春夏焕新你买了什么#话题征稿活动,参与投稿,大额金币等你拿哦!征稿活动正在进行中,>点击投稿casatift| 25 评论28 收藏160查看详情

当然,你要是其他摄像头,只要能获取到静态JPG文件也都可以使用,这个摄像头没有夜视,视角也比较小,如果有大范围以及夜间检测需求的话其实并不是很合适。不过这里要提醒的是,红外补光摄得的黑白图像YOLO的识别率会进一步降低。调整好摄像头角度,确保人在厨房的每个角落,YOLO都能把人找出来。

45元的WIFI摄像头应用之YOLO人体识别

这个摄像头最大的好处是,可以直接通过http获取JPG静态图像,所以我这做了个批处理文件,首先是获取静态影像到指定文件夹,然后运行detector来进行识别:

45元的WIFI摄像头应用之YOLO人体识别

当然,这样只是跑程序识别,结果并不会输出到其他系统,所以我又拼拼凑凑搞了个PY文件,对结果进行分析,数输出结果里面有几个person:

45元的WIFI摄像头应用之YOLO人体识别

然后将person数量传送给domoticz变量:

45元的WIFI摄像头应用之YOLO人体识别

最后就是应用了,因为不是实时检测,所以用来自动化开灯啥的是不可能了,但是配合小米红外做到更快的自动关灯还是非常方便的,例如原先我们都是设定人体传感器检测到几分钟后无人关灯,现在就可以配合这个变量,在人体传感器检测到无人时去查看摄像头检测到的结果,如果是0就直接关灯,不用再等待几分钟。

当然,本篇的YOLO只是利用其现成的库做的简单应用,并没有完全展示出YOLO的威力。深入应用的话可以自行训练得到模型,来判断更多的内容,例如你是在看电视,玩手机,还是睡觉等等。或者垃圾倒没倒,碗有没有洗啥的。

展开 收起

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

259元起

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

19.9元起

京东京造 TH1 时钟温湿度计 白色

京东京造 TH1 时钟温湿度计 白色

29.9元起

Xiaomi 小米 米家智能插座3

Xiaomi 小米 米家智能插座3

49.9元起

MIJIA 米家 1S 增强版 智能台灯 白色

MIJIA 米家 1S 增强版 智能台灯 白色

156元起

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

191.79元起

linptech 领普 居 优惠商品

linptech 领普 居 优惠商品

50.9元起

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

181.8元起

玺加 智能窗帘宝X3 光能充电窗帘伴侣

玺加 智能窗帘宝X3 光能充电窗帘伴侣

暂无报价

Xiaomi 小米 无线开关 蓝牙版

Xiaomi 小米 无线开关 蓝牙版

32.9元起

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 高清猫眼远程守护 AI指纹锁

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 高清猫眼远程守护 AI指纹锁

2899元起

Xiaomi 小米 SJWS01LM 水浸卫士 白色

Xiaomi 小米 SJWS01LM 水浸卫士 白色

55元起

Aqara 绿米联创 烟雾报警器

Aqara 绿米联创 烟雾报警器

219元起

京东京造 温湿度计 mini款

京东京造 温湿度计 mini款

17.9元起

Xiaomi 小米 米家人体传感器2S 居 智能监测联动

Xiaomi 小米 米家人体传感器2S 居 智能监测联动

61.02元起

Xiaomi 小米 米家夜灯2 红外人体感应夜灯

Xiaomi 小米 米家夜灯2 红外人体感应夜灯

49元起
120评论

  • 精彩
  • 最新
  • 我只看到楼主家卫生间都装了 [装大款]

    校验提示文案

    提交
    卫生间装摄像头?我还没这么丧心病狂。那个变量是在卫生间门关闭,热水器打开时,计算人体传感器被触发多少次用的。

    校验提示文案

    提交
    收起所有回复
  • 这个是截视频帧进行识别么?不是直接接视频进来?

    校验提示文案

    提交
    算力问题,算力足够就可以直接实时算视频了

    校验提示文案

    提交
    建议用FPGA做加速可以实时

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 我不太懂,识别的意义在哪?

    校验提示文案

    提交
    最终目的:隔壁老王

    校验提示文案

    提交
    这篇的应用还局限在识别人,配合人体传感器,当人体传感器检测和摄像头都检测到无人,就可以直接关灯,而之前单人体的话,就必须设置个2-5分钟的延迟,防止人没动就关灯。

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 准确率太低,还不如直接opencv

    校验提示文案

    提交
    opencv都能够人脸识别了,做这个真大材小用了

    校验提示文案

    提交
    对的,人体人脸树莓派摄像头opencv都能搞定,哪用得上tensorflow,除非需要自己训练模型。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 人坐下,就是那种正对着桌子的那种情况可以检测出来嘛 [黑线]

    校验提示文案

    提交
    你桌底放个人体传感器就好了。。。

    校验提示文案

    提交
    收起所有回复
  • ha可以玩么

    校验提示文案

    提交
    可以啊,接口换成mqtt就好

    校验提示文案

    提交
    收起所有回复
  • jetson nano啊

    校验提示文案

    提交
    正准备搞,要自己玩训练,必须要个有点算力的玩意,jetson nano虽然弱鸡了点,但是性价比还不错

    校验提示文案

    提交
    收起所有回复
  • 海康威视的摄像头能做这个么?

    校验提示文案

    提交
    可以啊,用ffmpeg截RTSP流,然后分析就行

    校验提示文案

    提交
    收起所有回复
  • 打搅了,老哥,我按照您最初的教程,用PVE虚拟机装了最新版的树莓派Raspbian 桌面系统,安装了Domoticz 提示成功, 也可以看到有Domoticz的服务,不过就是打不开网页,安装apche 可以打开网页,端口不冲突,能帮忙分析一下是哪里的问题嘛

    校验提示文案

    提交
    你用的是啥硬件,干嘛要装raspbian,首选不是应该Ubuntu+docker么

    校验提示文案

    提交
    哈哈,主要是啥也不会,然后网上搜到的都是 树莓派的教程多一些,然后就用了Raspbian 桌面系统,硬件的话就是前阵子各种翻车的J1900,我再去试试Ubuntu +docker,多谢了 老哥 [赞]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 老哥,打扰一下~在darknet-nnpack框架下yolov3配置总是失败,各种bug,缺少各种文件(已经按照教程重来了好几遍了),提示缺少libdarknet.so文件,电脑里也找不到,是怎么回事呢?说好的全程无坑【哭笑】

    校验提示文案

    提交
    你用的自带的PY?那个nnpack下有点问题,我也没试出来就放弃了。

    校验提示文案

    提交
    有替代方案吗?方便加一下QQ吗

    校验提示文案

    提交
    收起所有回复
  • 智能化最大问题是安全,除了客厅和餐厅,我其他地方不安装任何摄像头

    校验提示文案

    提交
    有故事的人 [惊喜] [惊喜] [惊喜] [惊喜]

    校验提示文案

    提交
    收起所有回复
  • 学校都开始整这玩意儿了,做大数据分析,学生上课专注多长时间,分神多长时间,写作多长时间,瞌睡多长时间都能分析出来,360度无死角监控,一整天观察学生的一举一动,想想都可怕。

    校验提示文案

    提交
    公司都对产线员工进行动作分析了

    校验提示文案

    提交
    收起所有回复
  • yolo属于多物体识别,还得靠摄像头,我司已研发出wifi人体探测,目前全国唯一,本月商用,价格便宜 [惊喜]

    校验提示文案

    提交
    哪家公司?????????????????????

    校验提示文案

    提交
    上海际遥,要来看看么 [惊喜]

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 成本太高了。松下有一款能探测静止人体的远红外阵列探测模块,也挺贵的。

    校验提示文案

    提交
    那款也不能直接用,还是要自己写算法来计算探测到的是人还是其他

    校验提示文案

    提交
    收起所有回复
  • 太高端,完全不懂。

    校验提示文案

    提交
  • 要监控楼上那一楼扔垃圾,有没啥好的方案,这个困扰我好久了

    校验提示文案

    提交
  • 楼主厉害,专业。另外我想问下就是那么多收藏了的大佬,都看懂作者这么专业的东东么?我是一脸懵逼啊~

    校验提示文案

    提交
  • 牛鸭!好好研究研究,争取弄个产品造福我等弱鸡 [装大款]

    校验提示文案

    提交
  • 很牛*的样子 ~

    校验提示文案

    提交
  • 牛*!!家里有人识别最终解决办法

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2.2K
扫一下,分享更方便,购买更轻松