本帖最后由 windgo 于 2018-1-16 15:29 编辑
最近論壇好多人在玩人臉辨識
我也裝了L大的百度識別來玩玩看
https://bbs.hassbian.com/thread-2429-1-1.html
但是跑起來一直有問題,HA跳出錯誤訊息沒法解決
所以就想自己寫一個來試試看
如果你是使用小蟻攝影機+群暉docker跑HA的 可以參考我的步驟自己實現人臉辨識
前提準備:
1.參考以下連結,打開小蟻攝影機RTSP服務
https://bbs.hassbian.com/thread-361-3-1.html
https://bbs.hassbian.com/thread-1130-1-1.html
2.群暉docker 安裝home-assistant 0.59.2版本(更新版本應該也可以)
3.群暉開啟docker 終端機安裝pip和MQTT
wget https://bootstrap.pypa.io/get-pip.py
python2 get-pip.py
pip install paho-mqtt
4.修改HA configuration.yamlwhitelist_external_dirs是等等使用HA抓攝影機照片後存放圖片的地方
不設的話,抓圖後會提示權限不足
homeassistant:
whitelist_external_dirs:
- /config/www/images
sensor:
- platform: mqtt
name: "facerec_windgo"
state_topic: "facerec_windgo"
value_template: '{{ value }}'
5.新增兩個自動化
CapturePIC為每4秒自動抓圖存到whitelist_external_dirs路徑下,要幾秒可以自己改
CheckFaceNotify為收到MQTT訊息,判斷相似度80以上發出辨識成功訊息通知(可以自己加上HA開鎖等功能)
Delay記得要比附件程式內的比對成功後再等待時間小
可再自己額外新增調整自動化為 當門口人體感應器感應到有人的時候
才開啟這兩個自動化當門口人體感應器感應到沒人的時候,關閉這兩個自動化
- action:
- data:
entity_id: camera.yicamera
filename: /config/www/images/camera.jpg
service: camera.snapshot
alias: CapturePIC
condition: []
id: '1516071664715'
trigger:
- platform: time
seconds: /4
- action:
- data:
entity_id: media_player.mpd
message: 歡迎宗翰到家
service: tts.google_say
- data:
entity_id: automation.capturepic
service: automation.turn_off
- delay: '58'
- data:
entity_id: automation.capturepic
service: automation.turn_on
alias: CheckFaceNotify
condition:
- above: '80'
condition: numeric_state
entity_id: sensor.facerec_windgo
id: '1516074535542'
trigger:
- entity_id: sensor.facerec_windgo
from: '0'
platform: state
6.修改附件facerec.py相關參數
7.修改facerec.py成可執行
chmod 755 faceerc.py
8.將附件facerec.py放到docker目錄內執行(只支援python2)
python2 faceerc.py
9.人站在攝影機前,使用同角度/不同角度/不在攝影機內 等情況去檢查程式執行結果
驗證會有三種結果
wrong face: 臉的角度不同造成的相似率在80以下
ture face: 相似率在80以上判斷正確
no face: 比對照片中找不到人臉
執行結果如下:
|