前言
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 上的一些進程,然后重試
-
檢測系統
+關注
關注
3文章
954瀏覽量
43029 -
樹莓派
+關注
關注
116文章
1706瀏覽量
105607
發布評論請先 登錄
相關推薦
評論