前言
home assistant 中的 tensorflow 集成目前存在问题,这是由于在多个平台上支持 tensorflow 的复杂性而出现的。除非您对调试安装问题非常有信心,否则我不建议您尝试遵循本指南。另请注意,hassbian 不再由 home assistant 维护。
概括
在本文中,我们将介绍如何设置 home-assistant 以使用 tensorflow 执行对象检测,然后在相机图像上执行对象检测的过程。希望这将使您能够以最少的精力将尖端的 ai 技术投入到您的家庭自动化项目中的生产中。
tensorflow是一种流行的开源机器学习框架,可用于图像处理中的广泛应用,特别是用于对象检测。家庭自动化项目中有许多对象检测应用,例如在摄像头馈送中定位车辆或宠物等对象,然后根据这些对象的存在执行操作(使用自动化)。home-assistant是一个流行的开源 python 3 家庭自动化平台,可以在 raspberry pi 上运行。tensorflow 对象检测在一些设置后可在 home-assistant 中使用,允许人们在他们的家庭自动化项目中开始使用对象检测,而无需大惊小怪。home-assistant 文档提供了开始使用 tensorflow的说明对象检测,但所描述的过程比典型的家庭助手组件要复杂一些。如文档所述,此组件需要下载文件,在您的计算机上编译,并添加到 home assistant 配置目录。
家庭助理设置
我在 raspberry pi 4 上使用 home-assistant 版本 0.98 的 hassbian 部署,但请注意,其他 home-assistant 部署的步骤应该相同(警告,hassio 还不允许安装 tensorflow,所以不要尝试它)。关于硬件的说明,tensorflow 模型需要大约 1 gb 的 ram,因此虽然可以在 rpi3 上运行,但体验太差了,我什至不建议尝试。作为最低要求,我推荐具有 》 2gb ram 的 rpi4。
有关设置的更多信息,请参阅hassbian 文档,但基本过程是:
将 hassbian 磁盘映像闪存到 sd 卡(我使用etcher )
将您的 wifi 凭据添加到 sd 卡上的文本文件中
将 sd 卡插入您的 pi
插入键盘并显示到 pi 以监控安装过程
您可以通过连接到 pi 的键盘来完成整个 tensorflow 设置,但我建议通过 hassbian 脚本安装cloud9 web ide。此 ide 允许您从网络上的任何计算机通过 home-assistant 前端执行 tensorflow 设置过程。按照此处的说明安装 cloud9 ,然后导航到http://hassbian.local:8181您现在可以使用面板 iframe在 home-assistant gui 上显示 cloud9 ide ,通过添加到 home-assistant configuration.yaml文件进行配置(通过 cloud9 ide 编辑):
panel_iframe:
cloud9:
title: cloud9
icon: mdi:wrench
url: http://hassbian.local:8181/ide.html
编辑文件后,最好使用配置验证工具。要使用它,从侧面板,配置 -》 常规 -》 检查配置(在配置验证下))。
如果您从配置检查工具中获得确定,则需要重新启动 home-assistant 以使更改生效(从侧面板配置 -》 常规 -》 重新启动(在服务器管理下))。重新启动时,您应该看到以下内容:
tensorflow 设置
确保您正在运行 home-assistant 的最新版本。我建议您阅读tensorflow 组件文档以了解设置过程,但在本指南中我们跳过了几个步骤,因为我在 github 上提供了所需的代码。
第 1 步:安装 tensorflow
我们需要 tensorflow 可用于 home-assistant。从 cloud9 ide 中的命令行:
sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5
从 pi 切换到 homeassistant 用户 ->sudo -u homeassistant -h -s
激活homeassistant python环境->cd /srv/homeassistant/然后source bin/activate
从 pypi -> 安装 tensorflow pip3 install tensorflow==1.13.2(检查当前版本要求)
第 2 步:从我的 github 获取 tensorflow 需要的文件
在任何计算机上,导航到:https ://github.com/robmarkcole/tensorflow_files_for_home_assistant_component并下载 zip 文件或克隆存储库。使用 cloud9 ide 将tensorflow/object_detection存储库中的文件夹复制到 home-assistant 的配置文件夹中。生成的文件夹结构如图 2 所示。
第 3 步:为目标检测选择合适的模型
型号选择
tensorflow“模型”是具有扩展名的二进制文件,.pb其中包含 tensorflow 将用于执行对象检测的神经网络的权重。这是您无需担心的细节,但需要的是选择合适的模型并将其放置在配置目录中。正如组件文档所建议的那样,互联网上有一系列可用的模型,或者您甚至可以创建自己的模型。一般来说,模型的准确性和速度之间需要权衡取舍。由于 raspberry pi 的 cpu 和 ram 有限,我们应该选择轻量级的型号,例如为手机设计的型号。tensorflow 模型动物园提供可下载模型的列表,因此请导航至动物园自述文件并选择模型。在这里,我们将遵循文档建议并选择ssd_mobilenet_v2_coco模型。从命令行,并注意到我们仍在使用homeassistant用户配置文件:
tensorflow_dir=/home/homeassistant/c9workspace/homeassistant/tensorflow
cd $tensorflow_dir
curl -ol http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz
tar -xzvf ssd_mobilenet_v2_coco_2018_03_29.tar.gz
请注意,我们设置环境变量tensorflow_dir以确保将下载的文件放在本文中配置说明所需的位置。现在我们有一个可用的模型文件,我们可以配置 tensorflow 组件。
tensorflow 组件配置
您将需要一个相机源来提供图像。我只是设置了一个local_file 相机,但您可以使用任何相机源。请注意您的相机的 entity_id(我的是camera.local_file)并将以下内容添加到您的 configuration.yaml 文件中:
image_processing:
- platform: tensorflow
scan_interval: 20000
source:
- entity_id: camera.local_file
model:
graph: /home/homeassistant/c9workspace/homeassistant/tensorflow/ssd_mobilenet_v2_coco_2018_03_29/frozen_inference_graph.pb
再次检查您的配置更改是否有效并重新启动 home-assistant。
tensorflow 组件使用
现在是有趣的部分,使用 tensorflow 组件!请注意,在重新启动时 home-assistant 将在其日志中发出有关未安装 opencv 的警告,您可以忽略这一点,因为 tensorflow 可以改用 pillow。另请注意,我们进行了配置scan_interval: 20000,这意味着 tensorflow 图像处理不会自动执行(默认每 10 秒一次),而是仅在我们通过调用scan服务触发它时执行,您可以从 home-assistant 前端的服务开发人员工具中执行此操作. 下图向您展示了 tensorflow 组件如何显示其结果:
您现在可以在 home-assistant自动化中使用对象检测数据。home-assistant论坛是获取自动化想法的好地方,请查看。
可能遇到的故障排除
当我使用 tensorflow 时,home-assistant 崩溃了,为什么?您可能没有足够的可用内存,因为模型需要约 1 gb 的 ram。终止 pi 上的一些进程,然后重试
人工智能越来越无所不能,人类该如何自处?
介绍两种方法来避免正在执行中的任务中断
数字孪生智慧工厂及3d可视化数据大屏展示系统介绍
Xilinx-FPGA的DNA的读取方法
基于ARM11+Linux的无线视频监控系统
基于树莓派的TensorFlow对象检测系统设计方案
受新冠病毒的影响信息产业出现行业下滑
三大运营商在5G时代深入布局MEC
劲拓股份拟斥5000万元间接投资科睿斯
到手价2199元和3299元,华为智能门锁京东预售第二日超2700套
NB-IoT模组使用中的常见问题及解决办法
OPPO R9s红色为什么还那么火?
DIN11系列交流信号隔离变送器概述及特性
甘肃民航飞机维修公司获得了2018年度国航金牌机务航站奖牌
MAC地址注册的网络安全影响和措施分析
统信软件宣布将以深度社区打造中国桌面操作系统根系统
带通滤波器工作原理_带通滤波器的应用
2020年深圳国际全触与显示展:瓦克推出单组份紫外固化型有机硅光学水胶
相对与同步切换,异步切换会对切换掉话率有多少影响
常规PLC为何不能代替安全控制器