logo
Loading...

05 - Raspberry PI 執行 YOLO - AIOT 邊緣運算工作坊 - Cupoy

知識地圖 – YOLO 介紹 重要知識點 執行 Yolo 需要準備的執行環境 安裝 Yolo 執行環境 熟悉 Yolo 運作流程 在 Raspberry PI 上執行 Yolo 標準版 Yol...

知識地圖 – YOLO 介紹 重要知識點 執行 Yolo 需要準備的執行環境 安裝 Yolo 執行環境 熟悉 Yolo 運作流程 在 Raspberry PI 上執行 Yolo 標準版 Yolov3 Yolov3-tiny 在 Raspberry PI 執行 Yolo 在 Raspberry PI 安裝 Yolo 下載訓練完成的 Yolo 模型權重和參數檔 參數檔案要包含模型設定檔、分類名稱 開始執行 Yolo 模型進行推論 在 Raspberry PI 安裝 Yolo 在 google 查詢 yolov4 github 安裝 yolov4 的這個版本後續系統相容性比較好 Alexey Github Alexey 的 github,點 darknet 進入連結 準備下載 darknet,用 git clone 下載 在 Raspberry PI 安裝 Yolo 在 Raspberry PI 上執行下面的指令,下載 darknet。 git clone https://github.com/AlexeyAB/darknet 編譯 darknet,執行 make 指令編譯 make 完成後,執行 ./darknet 確認編譯成功 準備在 raspberry 上執行 yolo 的範例 透過 Joseph Redmon 的 darknet 官方網站來練習執行 yolo,文件相對的比較直覺簡單。用 yolov3 darknet 來搜尋 google YOLO: Real-Time Object Detection 接下來會依照 Joseph Redmon 的 darknet 官方網站來練習執行 yolo。 執行 yolo 需要準備下列幾個檔案 yolov3.weights可以用底下的指令下載 wget https://pjreddie.com/media/files/yolov3.weights yolov3.cfg檔案在darknet/cfg的子目錄中。 coco.data 檔案在darknet/cfg的子目錄中。 coco.names檔案在darknet/data子目錄中。 最基本 yolo 範例,Darknet 預測基本指令形式 執行結果輸出至 predictions.png cfg/coco.data 的內容,來觀察看看 如果想要改類別的名稱,例如變成中文 類別名稱不能用中文,程式碼會執行錯誤要改 試試看進一步的執行參數 _dont_show –ext_output 把 OpenCV 安裝起來,後續要使用 OpenCV 接下來會依照 Joseph Redmon 的 darknet 官方網站來練習執行 yolo。 OpenCV 4.5.2 Sources 下載 把 opencv-4.5.2.zip 複製到 Raspberry PI 的 /opt 解壓縮 OpenCV 完成後,進入 OpenCV 子目錄 在 build 目錄執行 make –j4 指令,等待編譯完成 編譯完成 OpenCV,在 build 子目錄下 make install 辛苦編譯完成 OpenCV,要在 build 子目錄下執行 make install,才能將編譯完成 OpenCV 函式庫安裝至系統內,供後續呼叫使用。 有了 OpenCV 函示庫之後,可以重新編譯 darknet,這樣 darknet 就可以支援 OpenCV 並且執行 webcam 的功能。 編譯完成 100%,執行 make install 安裝 OpenCV 最後終於完成 OpenCV 的安裝 設定 Darknet 的 Makefile,重新編譯使用 OpenCV 有 OpenCV 編譯的 yolo 執行結果 Darknet 用 webcam 當資料來源進行推論 Raspberry PI 執行 darknet 用 webcam 當資料來源時,沒有其他的推論硬體加速會很慢。 Raspberry PI 此時可以用 yolo-tiny 來執行輕量級的 darknet 推論模式,比較有機會執行後續的範例。 有 OpenCV 函式庫了,可以用 OpenCV DNN 的功能來執行 yolo 模型的推論。 Darknet 用 yolo-tiny 推論 yolov3-tiny.weights 可以用底下的指令下載 wget https://pjreddie.com/media/files/yolov3-tiny.weights yolov3-tiny.cfg 檔案在 darknet/cfg 的子目錄中。 coco.data 檔案在 darknet/cfg 的子目錄中。 coco.names 檔案在 darknet/data 的子目錄中。 Darknet 執行 yolo-tiny 推論 yolov3-tiny 推論的結果 Darknet 執行 yolo-tiny 推論,使用 -ext_output yolo-tiny 用 -ext_output 預測的輸出結果 參考資料 YOLO and Tiny-YOLO object detection on the Raspberry Pi and Movidius NCS 基於樹梅派加上 intel 神經棒的架構進行 yolo 推論(我們的教學不需要用到神經棒)