Neural Nework - 物體檢測
材料準備
- AmebaPro2 [ AMB82 MINI ] x 1
範例說明
介紹
在這個例子中,我們將使用 Ameba Pro2 開發板使用板載攝像頭傳感器(JXF37)檢測 80 種不同的物體,如人、自行車、汽車、筆記本電腦等。
以下示例顯示瞭如何使用對象檢測和屏幕顯示。 這兩個示例之間的主要區別在於對象檢測結果的處理位置。 “ObjectDetectionCallback”使用回調函數,而“ObjectDetectionLoop”在循環函數中處理結果。
1. ObjectDetectionLoop
2. ObjectDetectionCallback
流程
打開其中一個對象檢測示例 “File” -> “Example” -> “AmebaNN” -> “ObjectDetectionLoop”。
由於將使用攝像頭視頻輸出,因此請確保“工具”中的“Video ISP Bin”選項設置為啟用。 還要確保啟用“Neural Network Bin”以上傳包含所需神經網絡二進製文件的 Flash 二進製文件。
在標記的代碼片段中,將您的 WiFi 網絡 SSID 填入“ssid”,將網絡密碼填入“pass”。
編譯代碼並將其上傳到 Ameba。 按下Reset鍵後,等待Ameba Pro 2開發板連上WiFi網絡。 用於 RTSP 的開發板 IP 地址和網絡端口號將顯示在串行監視器中。
可以使用 VLC 驗證檢測到的對象的結果。 您可以從連結下載 VLC 媒體播放器 (這裡)。
軟件安裝完成後,打開VLC media player,進入 “Media” -> “Open Network Stream”。
確保您的 PC 連接到與 Ameba Pro2 開發板相同的網絡以進行串流式傳輸。 由於 RTSP 被用作串流媒體協議,在 VLC 媒體播放器中鍵入“rtsp://{IPaddress}:{port}”作為網絡 URL,將 {IPaddress} 替換為您的 Ameba Pro2 開發板的 IP 地址,以及 {port } 使用串行監視器中顯示的 RTSP 端口(例如,“rtsp://192.168.1.154:554”)。 默認的 RTSP 端口號是 554。
接下來,點擊“播放”開始RTSP 串流式傳輸以查看結果。 來自攝像機的視頻串流將顯示在 VLC 媒體播放器中。
將在 RTSP 視頻串流上繪製一個帶有對象名稱和置信度分數的邊界框,以標記已識別的對象。
預訓練模型總共可以識別 80 種不同類型的物體。 這些對象可以在 ObjectClassList.h 中找到。 每個對象的索引號是固定的,不應更改。 要停用某些物體的檢測,請將過濾器值設置為 0。例如,將過濾器值設置為 0 以排除對自行車的檢測。
程式碼說明
獲得更好視頻質量的推薦設置,請參考Ameba FAQ:https ://forum.amebaiot.com/t/ameba-faq/1220。
可以根據您的 WiFi 網絡質量調整視頻bitrate,方法是取消註解下面標示的程式碼。