前言
Home Assistant 中的 Tensorflow 集成目前存在問題,這是由于在多個(gè)平臺(tái)上支持 Tensorflow 的復(fù)雜性而出現(xiàn)的。除非您對(duì)調(diào)試安裝問題非常有信心,否則我不建議您嘗試遵循本指南。另請(qǐng)注意,Hassbian 不再由 Home Assistant 維護(hù)。
概括
在本文中,我們將介紹如何設(shè)置 Home-Assistant 以使用 TensorFlow 執(zhí)行對(duì)象檢測(cè),然后在相機(jī)圖像上執(zhí)行對(duì)象檢測(cè)的過程。希望這將使您能夠以最少的精力將尖端的 AI 技術(shù)投入到您的家庭自動(dòng)化項(xiàng)目中的生產(chǎn)中。
TensorFlow是一種流行的開源機(jī)器學(xué)習(xí)框架,可用于圖像處理中的廣泛應(yīng)用,特別是用于對(duì)象檢測(cè)。家庭自動(dòng)化項(xiàng)目中有許多對(duì)象檢測(cè)應(yīng)用,例如在攝像頭饋送中定位車輛或?qū)櫸锏葘?duì)象,然后根據(jù)這些對(duì)象的存在執(zhí)行操作(使用自動(dòng)化)。Home-Assistant是一個(gè)流行的開源 Python 3 家庭自動(dòng)化平臺(tái),可以在 Raspberry Pi 上運(yùn)行。TensorFlow 對(duì)象檢測(cè)在一些設(shè)置后可在 Home-Assistant 中使用,允許人們?cè)谒麄兊募彝プ詣?dòng)化項(xiàng)目中開始使用對(duì)象檢測(cè),而無(wú)需大驚小怪。Home-Assistant 文檔提供了開始使用 TensorFlow的說明對(duì)象檢測(cè),但所描述的過程比典型的家庭助手組件要復(fù)雜一些。如文檔所述,此組件需要下載文件,在您的計(jì)算機(jī)上編譯,并添加到 Home Assistant 配置目錄。
家庭助理設(shè)置
我在 Raspberry Pi 4 上使用 Home-Assistant 版本 0.98 的 Hassbian 部署,但請(qǐng)注意,其他 Home-Assistant 部署的步驟應(yīng)該相同(警告,Hassio 還不允許安裝 TensorFlow,所以不要嘗試它)。關(guān)于硬件的說明,TensorFlow 模型需要大約 1 GB 的 RAM,因此雖然可以在 RPI3 上運(yùn)行,但體驗(yàn)太差了,我什至不建議嘗試。作為最低要求,我推薦具有 》 2GB RAM 的 RPI4。
有關(guān)設(shè)置的更多信息,請(qǐng)參閱Hassbian 文檔,但基本過程是:
將 Hassbian 磁盤映像閃存到 SD 卡(我使用Etcher )
將您的 Wifi 憑據(jù)添加到 SD 卡上的文本文件中
將 SD 卡插入您的 Pi
插入鍵盤并顯示到 Pi 以監(jiān)控安裝過程
您可以通過連接到 Pi 的鍵盤來(lái)完成整個(gè) TensorFlow 設(shè)置,但我建議通過 Hassbian 腳本安裝Cloud9 Web IDE。此 IDE 允許您從網(wǎng)絡(luò)上的任何計(jì)算機(jī)通過 Home-Assistant 前端執(zhí)行 TensorFlow 設(shè)置過程。按照此處的說明安裝 Cloud9 ,然后導(dǎo)航到http://hassbian.local:8181您現(xiàn)在可以使用面板 iframe在 Home-Assistant GUI 上顯示 Cloud9 IDE ,通過添加到 Home-Assistant configuration.yaml文件進(jìn)行配置(通過 Cloud9 IDE 編輯):
panel_iframe:
cloud9:
title: cloud9
icon: mdi:wrench
url: http://hassbian.local:8181/ide.html
編輯文件后,最好使用配置驗(yàn)證工具。要使用它,從側(cè)面板,配置 -》 常規(guī) -》 檢查配置(在配置驗(yàn)證下))。
如果您從配置檢查工具中獲得確定,則需要重新啟動(dòng) Home-Assistant 以使更改生效(從側(cè)面板配置 -》 常規(guī) -》 重新啟動(dòng)(在服務(wù)器管理下))。重新啟動(dòng)時(shí),您應(yīng)該看到以下內(nèi)容:
TensorFlow 設(shè)置
確保您正在運(yùn)行 Home-Assistant 的最新版本。我建議您閱讀TensorFlow 組件文檔以了解設(shè)置過程,但在本指南中我們跳過了幾個(gè)步驟,因?yàn)槲以?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環(huán)境->cd /srv/homeassistant/然后source bin/activate
從 pypi -> 安裝 tensorflow pip3 install tensorflow==1.13.2(檢查當(dāng)前版本要求)
第 2 步:從我的 GitHub 獲取 TensorFlow 需要的文件
在任何計(jì)算機(jī)上,導(dǎo)航到:https ://github.com/robmarkcole/tensorflow_files_for_home_assistant_component并下載 ZIP 文件或克隆存儲(chǔ)庫(kù)。使用 Cloud9 IDE 將tensorflow/object_detection存儲(chǔ)庫(kù)中的文件夾復(fù)制到 Home-Assistant 的配置文件夾中。生成的文件夾結(jié)構(gòu)如圖 2 所示。
第 3 步:為目標(biāo)檢測(cè)選擇合適的模型
型號(hào)選擇
TensorFlow“模型”是具有擴(kuò)展名的二進(jìn)制文件,.pb其中包含 TensorFlow 將用于執(zhí)行對(duì)象檢測(cè)的神經(jīng)網(wǎng)絡(luò)的權(quán)重。這是您無(wú)需擔(dān)心的細(xì)節(jié),但需要的是選擇合適的模型并將其放置在配置目錄中。正如組件文檔所建議的那樣,互聯(lián)網(wǎng)上有一系列可用的模型,或者您甚至可以創(chuàng)建自己的模型。一般來(lái)說,模型的準(zhǔn)確性和速度之間需要權(quán)衡取舍。由于 Raspberry Pi 的 CPU 和 RAM 有限,我們應(yīng)該選擇輕量級(jí)的型號(hào),例如為手機(jī)設(shè)計(jì)的型號(hào)。TensorFlow 模型動(dòng)物園提供可下載模型的列表,因此請(qǐng)導(dǎo)航至動(dòng)物園自述文件并選擇模型。在這里,我們將遵循文檔建議并選擇ssd_mobilenet_v2_coco模型。從命令行,并注意到我們?nèi)栽谑褂胔omeassistant用戶配置文件:
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
請(qǐng)注意,我們?cè)O(shè)置環(huán)境變量TENSORFLOW_DIR以確保將下載的文件放在本文中配置說明所需的位置?,F(xiàn)在我們有一個(gè)可用的模型文件,我們可以配置 TensorFlow 組件。
TensorFlow 組件配置
您將需要一個(gè)相機(jī)源來(lái)提供圖像。我只是設(shè)置了一個(gè)local_file 相機(jī),但您可以使用任何相機(jī)源。請(qǐng)注意您的相機(jī)的 entity_id(我的是camera.local_file)并將以下內(nèi)容添加到您的 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
再次檢查您的配置更改是否有效并重新啟動(dòng) Home-Assistant。
TensorFlow 組件使用
現(xiàn)在是有趣的部分,使用 TensorFlow 組件!請(qǐng)注意,在重新啟動(dòng)時(shí) Home-Assistant 將在其日志中發(fā)出有關(guān)未安裝 OpenCV 的警告,您可以忽略這一點(diǎn),因?yàn)?TensorFlow 可以改用 Pillow。另請(qǐng)注意,我們進(jìn)行了配置scan_interval: 20000,這意味著 TensorFlow 圖像處理不會(huì)自動(dòng)執(zhí)行(默認(rèn)每 10 秒一次),而是僅在我們通過調(diào)用scan服務(wù)觸發(fā)它時(shí)執(zhí)行,您可以從 Home-Assistant 前端的服務(wù)開發(fā)人員工具中執(zhí)行此操作. 下圖向您展示了 TensorFlow 組件如何顯示其結(jié)果:
您現(xiàn)在可以在 Home-Assistant自動(dòng)化中使用對(duì)象檢測(cè)數(shù)據(jù)。Home-Assistant論壇是獲取自動(dòng)化想法的好地方,請(qǐng)查看。
可能遇到的故障排除
當(dāng)我使用 Tensorflow 時(shí),Home-Assistant 崩潰了,為什么?您可能沒有足夠的可用內(nèi)存,因?yàn)槟P托枰s 1 GB 的 RAM。終止 pi 上的一些進(jìn)程,然后重試
-
檢測(cè)系統(tǒng)
+關(guān)注
關(guān)注
3文章
960瀏覽量
43177 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105887
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于樹莓派設(shè)計(jì)的RFID門禁系統(tǒng)
![基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>設(shè)計(jì)的RFID門禁<b class='flag-5'>系統(tǒng)</b>](https://file.elecfans.com//web2/M00/3A/F4/pYYBAGJGoMaAGNefAAJdY33PvLk222.png)
樹莓派防占位系統(tǒng)
請(qǐng)問我這個(gè)樹莓派高清視頻直播服務(wù)器設(shè)計(jì)方案可行嗎?
樹莓派3硬件配置_樹莓派3都能裝什么系統(tǒng)_樹莓派3系統(tǒng)安裝教程
樹莓派3系統(tǒng)安裝介紹_Noobs進(jìn)行樹莓派3系統(tǒng)安裝_Noobs進(jìn)行樹莓派3系統(tǒng)恢復(fù)
![<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>3<b class='flag-5'>系統(tǒng)</b>安裝介紹_Noobs進(jìn)行<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>3<b class='flag-5'>系統(tǒng)</b>安裝_Noobs進(jìn)行<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>3<b class='flag-5'>系統(tǒng)</b>恢復(fù)](https://file1.elecfans.com//web2/M00/A7/0D/wKgZomUMQhCALR-vAAAUAVBLw8w729.jpg)
樹莓派是什么樹莓派的簡(jiǎn)單介紹
![<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的簡(jiǎn)單介紹](https://file.elecfans.com/web1/M00/91/DC/o4YBAFzbw0SAFINqAAIJSGdGQdQ187.png)
樹莓派的學(xué)習(xí)設(shè)計(jì)方案合集
![<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的學(xué)習(xí)<b class='flag-5'>設(shè)計(jì)方案</b>合集](https://file.elecfans.com/web1/M00/E4/F2/pIYBAGBJ3nyAfiuBAADJFfe3bpM958.png)
【樹莓派】樹莓派4B新手篇:安裝官網(wǎng)Raspbian Buster系統(tǒng)及基礎(chǔ)配置
![【<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>】<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>4B新手篇:安裝官網(wǎng)Raspbian Buster<b class='flag-5'>系統(tǒng)</b>及基礎(chǔ)配置](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
距離檢測(cè)報(bào)警使用樹莓派Pico
![距離<b class='flag-5'>檢測(cè)</b>報(bào)警使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>Pico](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TensorFlow手勢(shì)識(shí)別樹莓派開源
![<b class='flag-5'>TensorFlow</b>手勢(shì)識(shí)別<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>開源](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用Home Assistant進(jìn)行TensorFlow對(duì)象檢測(cè)
![使用Home Assistant進(jìn)行<b class='flag-5'>TensorFlow</b><b class='flag-5'>對(duì)象</b><b class='flag-5'>檢測(cè)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
樹莓派使用KiCad設(shè)計(jì)方案
基于樹莓派的機(jī)器人設(shè)計(jì)方案
![基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的機(jī)器人<b class='flag-5'>設(shè)計(jì)方案</b>](https://file1.elecfans.com/web2/M00/A9/48/wKgaomUwsbeAOspEAABq7zLHtIA020.png)
評(píng)論