0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于樹莓派的TensorFlow對象檢測系統(tǒng)設計方案

科技觀察員 ? 來源:Robin Cole ? 作者:Robin Cole ? 2022-04-14 17:04 ? 次閱讀

前言

Home Assistant 中的 Tensorflow 集成目前存在問題,這是由于在多個平臺上支持 Tensorflow 的復雜性而出現(xiàn)的。除非您對調(diào)試安裝問題非常有信心,否則我不建議您嘗試遵循本指南。另請注意,Hassbian 不再由 Home Assistant 維護。

概括

在本文中,我們將介紹如何設置 Home-Assistant 以使用 TensorFlow 執(zhí)行對象檢測,然后在相機圖像上執(zhí)行對象檢測的過程。希望這將使您能夠以最少的精力將尖端的 AI 技術投入到您的家庭自動化項目中的生產(chǎn)中。

TensorFlow是一種流行的開源機器學習框架,可用于圖像處理中的廣泛應用,特別是用于對象檢測。家庭自動化項目中有許多對象檢測應用,例如在攝像頭饋送中定位車輛或?qū)櫸锏葘ο?,然后根?jù)這些對象的存在執(zhí)行操作(使用自動化)。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 憑據(jù)添加到 SD 卡上的文本文件中

將 SD 卡插入您的 Pi

插入鍵盤并顯示到 Pi 以監(jiān)控安裝過程

您可以通過連接到 Pi 的鍵盤來完成整個 TensorFlow 設置,但我建議通過 Hassbian 腳本安裝Cloud9 Web IDE。此 IDE 允許您從網(wǎng)絡上的任何計算機通過 Home-Assistant 前端執(zhí)行 TensorFlow 設置過程。按照此處的說明安裝 Cloud9 ,然后導航到http://hassbian.local:8181您現(xiàn)在可以使用面板 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

編輯文件后,最好使用配置驗證工具。要使用它,從側面板,配置 -》 常規(guī) -》 檢查配置(在配置驗證下))。

pYYBAGJX48SAAYXCAAEAKk9LnZE673.png

如果您從配置檢查工具中獲得確定,則需要重新啟動 Home-Assistant 以使更改生效(從側面板配置 -》 常規(guī) -》 重新啟動(在服務器管理下))。重新啟動時,您應該看到以下內(nèi)容:

poYBAGJX436AQPWnAALD6_Y0zG0200.png

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環(huán)境->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 將用于執(zhí)行對象檢測的神經(jīng)網(wǎng)絡的權重。這是您無需擔心的細節(jié),但需要的是選擇合適的模型并將其放置在配置目錄中。正如組件文檔所建議的那樣,互聯(lián)網(wǎng)上有一系列可用的模型,或者您甚至可以創(chuàng)建自己的模型。一般來說,模型的準確性和速度之間需要權衡取舍。由于 Raspberry Pi 的 CPU 和 RAM 有限,我們應該選擇輕量級的型號,例如為手機設計的型號。TensorFlow 模型動物園提供可下載模型的列表,因此請導航至動物園自述文件并選擇模型。在這里,我們將遵循文檔建議并選擇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

請注意,我們設置環(huán)境變量TENSORFLOW_DIR以確保將下載的文件放在本文中配置說明所需的位置?,F(xiàn)在我們有一個可用的模型文件,我們可以配置 TensorFlow 組件。

TensorFlow 組件配置
您將需要一個相機源來提供圖像。我只是設置了一個local_file 相機,但您可以使用任何相機源。請注意您的相機的 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

再次檢查您的配置更改是否有效并重新啟動 Home-Assistant。

TensorFlow 組件使用
現(xiàn)在是有趣的部分,使用 TensorFlow 組件!請注意,在重新啟動時 Home-Assistant 將在其日志中發(fā)出有關未安裝 OpenCV 的警告,您可以忽略這一點,因為 TensorFlow 可以改用 Pillow。另請注意,我們進行了配置scan_interval: 20000,這意味著 TensorFlow 圖像處理不會自動執(zhí)行(默認每 10 秒一次),而是僅在我們通過調(diào)用scan服務觸發(fā)它時執(zhí)行,您可以從 Home-Assistant 前端的服務開發(fā)人員工具中執(zhí)行此操作. 下圖向您展示了 TensorFlow 組件如何顯示其結果:

poYBAGJX43CAAO7OAANAQ_gJ7QE401.png

您現(xiàn)在可以在 Home-Assistant自動化中使用對象檢測數(shù)據(jù)。Home-Assistant論壇是獲取自動化想法的好地方,請查看。

可能遇到的故障排除

當我使用 Tensorflow 時,Home-Assistant 崩潰了,為什么?您可能沒有足夠的可用內(nèi)存,因為模型需要約 1 GB 的 RAM。終止 pi 上的一些進程,然后重試

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 檢測系統(tǒng)

    關注

    3

    文章

    945

    瀏覽量

    42996
  • 樹莓派
    +關注

    關注

    116

    文章

    1689

    瀏覽量

    105456
收藏 人收藏

    評論

    相關推薦

    基于樹莓設計的RFID門禁系統(tǒng)

    本項目使用樹莓設計門禁或設備的訪問控制系統(tǒng)系統(tǒng)根據(jù)用戶列表檢查RFID標簽,允許擁有授權RFID標簽的指定成員進入室內(nèi)。系統(tǒng)包括一個US
    的頭像 發(fā)表于 04-01 14:50 ?6717次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>設計的RFID門禁<b class='flag-5'>系統(tǒng)</b>

    樹莓防占位系統(tǒng)

    設計內(nèi)容為學校圖書館設計一個防止違規(guī)占座系統(tǒng),實現(xiàn)通過若干條件的判斷,來判斷當前作為是否被違規(guī)占座。功能描述結合樹莓,利用壓力傳感器分別檢測桌面和椅面是否有物體(書),再通過人體紅外
    發(fā)表于 07-21 09:16

    請問我這個樹莓高清視頻直播服務器設計方案可行嗎?

    項目描述:攝像機拍攝1080p高清視頻,編碼成h.264格式后,通過網(wǎng)線傳輸給路由器,客戶端通過rtsp地址觀看視頻 暫定方案:高清視頻經(jīng)FPGA編碼成h.264格式,傳給樹莓,樹莓
    發(fā)表于 06-20 03:12

    樹莓方案集錦

    樹莓方案集錦
    發(fā)表于 02-09 10:12

    樹莓裝機教程

    樹莓裝機教程樹莓裝機教程樹莓裝機教程樹莓
    發(fā)表于 11-25 10:14 ?52次下載

    樹莓3硬件配置_樹莓3都能裝什么系統(tǒng)_樹莓3系統(tǒng)安裝教程

    樹莓3一直頗受電子發(fā)燒友的青睞,這篇文章主要討論的就是樹莓3的硬件配置、樹莓3都能裝什么
    發(fā)表于 12-08 14:36 ?2.6w次閱讀

    樹莓3系統(tǒng)安裝介紹_Noobs進行樹莓3系統(tǒng)安裝_Noobs進行樹莓3系統(tǒng)恢復

    這篇文章主要和大家一起來討論一下關于樹莓3的系統(tǒng)安裝是什么,基于Noobs的樹莓3的系統(tǒng)安裝
    發(fā)表于 12-08 15:02 ?5925次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>3<b class='flag-5'>系統(tǒng)</b>安裝介紹_Noobs進行<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>3<b class='flag-5'>系統(tǒng)</b>安裝_Noobs進行<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>3<b class='flag-5'>系統(tǒng)</b>恢復

    樹莓是什么樹莓的簡單介紹

    要想玩轉(zhuǎn)樹莓,首先得知道樹莓是什么。在本節(jié)中,作者將帶領大家揭開樹莓的神秘面紗,了解
    發(fā)表于 05-15 18:09 ?30次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的簡單介紹

    樹莓的學習設計方案合集

    本文檔的主要內(nèi)容詳細介紹的是樹莓的學習設計方案合集免費下載包括了:AMG8833 8x8紅外熱像儀傳感器應用附PCB驅(qū)動源碼,Arduino與樹莓
    發(fā)表于 03-11 08:00 ?12次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的學習<b class='flag-5'>設計方案</b>合集

    樹莓樹莓4B新手篇:安裝官網(wǎng)Raspbian Buster系統(tǒng)及基礎配置

    目錄1、前言2、樹莓4B有什么特色?3、樹莓新手準備4、燒錄Raspbian Buster系統(tǒng)到Micro SD卡開啟SSH及配置無線連
    發(fā)表于 11-06 18:21 ?26次下載
    【<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>及基礎配置

    距離檢測報警使用樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測報警使用樹莓Pico.zip》資料免費下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離<b class='flag-5'>檢測</b>報警使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>Pico

    TensorFlow手勢識別樹莓開源

    電子發(fā)燒友網(wǎng)站提供《TensorFlow手勢識別樹莓開源.zip》資料免費下載
    發(fā)表于 11-09 09:27 ?1次下載
    <b class='flag-5'>TensorFlow</b>手勢識別<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>開源

    使用Home Assistant進行TensorFlow對象檢測

    電子發(fā)燒友網(wǎng)站提供《使用Home Assistant進行TensorFlow對象檢測.zip》資料免費下載
    發(fā)表于 12-14 09:30 ?0次下載
    使用Home Assistant進行<b class='flag-5'>TensorFlow</b><b class='flag-5'>對象</b><b class='flag-5'>檢測</b>

    樹莓使用KiCad設計方案

    樹莓官方使用KiCad、資助KiCad,而KiCad開發(fā)團隊也支持樹莓,具體行動是KiCad也推出Raspberry Pi OS適用的版本,只要是基于代號Bulleye的Debia
    發(fā)表于 01-03 12:47 ?1729次閱讀

    基于樹莓的機器人設計方案

    準備樹莓和 CRICKIT Hat 1、如果你已經(jīng)安裝了 CRICKIT Hat 的 40 針連接器的轉(zhuǎn)接端子,請將其取下。 如果我們希望按鈕引線適合而不被后面板壓扁,我們需要帽子以
    發(fā)表于 10-19 12:31 ?666次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的機器人<b class='flag-5'>設計方案</b>