本帖最后由 neroxps 于 2018-3-11 12:02 编辑
1. 注册微软人脸识别API
地址:https://azure.microsoft.com/zh-cn/services/cognitive-services/
2. 修改 HomeAssistant 配置文件
# Example configuration.yaml entry
microsoft_face:
api_key: YOUR_API_KEY
azure_region: westcentralus
复制代码
YOUR_API_KEY: 你刚刚注册得到的api
azure_region: 注册得到的终结点域名前面的名称,例如 https://westcentralus.api.cognitive.microsoft.com/face/v1.0 那么这里就写 westcentralus
保存配置后重启 HomeAssistant。
3. 创建组
打开 https://hass_url/dev-service 这个网址,hass_url 就是 homeAssistant 的地址。
其实可以在HomeAssistant界面上找到service入口。如下图
Service 选择 microsoft_face.create_group
Service Data 输入 {"name":"family"} 然后点击 CALL SERVICE
4. 创建人员
Service 选择 microsoft_face.create_person
Service Data 输入 {"name":"nero","group":"family"}
5. 上传人脸照片
有两种方式,第一种可以使用摄像头对着脸,然后执行如下操作。
Service 选择 microsoft_face.face_person
Service Data 输入 {"person":"nero","group":"family","camera_entity":"camera_test"} (其中 camera_test 是我摄像头实例的名称,也就是Developer Tools 的 states 的 Entity。
第二种办法,就是上面的应用完后,我们可以在首页上看到一个 microsoft_face.family 的Entity,点开它就可以看到我们 family 组里面的所有成员以及成员的ID。ID类似这样 f976ec33-432e-13ee-3326-3f48a9986d3f
然后用 SSH 登陆我们的 HomeAssistant(其实随便一台linux 支持 curl命令就可以了)
运行下面命令。
$ curl -v -X POST "https://westcentralus.api.cognitive.microsoft.com/face/v1.0/persongroups/{GroupName}/persons/{personId}/persistedFaces" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/octet-stream" --data-binary "@/tmp/image.jpg"
复制代码
{GroupName}: 替换成我们的group名称,也就是family。
{personId}: 替换成刚刚得到的成员ID。
YOUR_API_KEY 替换成我们申请得到的API
@/tmp/image.jpg: 替换成我们照片的路径,注意`@`不能去掉,否则会得到文件太大或者太小的返回错误。
上传运行命令后如果没返回Error字样的话就证明上传成功。
6. 训练
Service 选择 microsoft_face.train_group
Service Data 输入 {"group":"family"}
7. 建立人脸检测配置
到 configuration.yaml 写入如下配置:
```
# Example configuration.yaml entry
image_processing:
- platform: microsoft_face_detect
source:
- entity_id: camera.test
name: face_test
- platform: microsoft_face_identify
group: family
source:
- entity_id: camera.test
name: face_recognition
复制代码
```
camera.test: 是你需要人脸检测摄像头的Entity名称。
END