AIoT | 软件: 茶凳淺談高通C610開發板USB AI智能攝像頭實踐

隨著人工智慧技術的進步,智能攝像頭的應用日益廣泛。為了因應後端AI運算分析的負載隨著攝像頭數量的增加而呈幾何級數增長,AI運算分析的趨勢正逐步向邊緣運算轉移。換言之,AI運算功能將被整合至攝像頭內部。C610開發板,搭載高通QCS610晶片,具備數位信號處理器(DSP),能夠執行簡易的AI運算。本文將介紹如何利用C610開發板打造一款UAC/UVC智能攝像頭。

開發環境

系統需求

 

需求

作業系統

Ubuntu Desktop 18.04, 20.04, 以及 22.04

網際網路

工作在網際網路上

中央處理器

i7 8-核以上

記憶體

建議32GB 最少16GB

磁碟空間

• SDK of Android 12: ≥1T
•其他版本SDK: ≥300GB

建議2TB以上

安裝作業系統

參考官網自行安裝作業系統到個人電腦上

教程: http://www.ubuntu.com/download/desktop/install-ubuntu-desktop 

安裝docker引擎

使用以下指令安裝docker引擎

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin​

安裝與執行sdkmanager

下載與執行turbox-sdkmanager-setup.sh

sudo apt-get install wget
sudo wget https://sdkgit.thundercomm.com/api/v4/projects/4649/repository/files/turbox-sdkmanager-setup.sh/raw?ref=main -O /usr/bin/turbox-sdkmanager-setup.sh
sudo chmod +x /usr/bin/turbox-sdkmanager-setup.sh​

執行turbox-sdkmanager-setup.sh 之後就會進入docker container中,可以看到下面的提示字串[turbox@sdkmanager-xx.xx-x.x.x]$

sdkmanager

初始化sdkmanager

執行sdkmanager –init 進行初始化

下載SDK

執行sdkmanager –sdk_download ,然後依照提示選擇要下載的SDK

下載image

執行sdkmanager –image_download,依照提示選擇下載預先編譯好的image。

燒寫image到開發版

進入fastboot模式

關閉電源,長壓Volume down,按下Power on,然後五秒之後方開Volume down。

進入fastboot模式之後,在sudo fastboot devices可以得到裝置列表

燒寫image

執行以下指令進行燒寫

cd

sudo ./turbox_flash.sh --all -r -f -v debug

 

現在C610開發版可以開機了。我們再把他設定成一個UVC Cam的裝置。如下圖,USB type-c 會傳遞UVC資料過來給終端電腦。終端電腦透過WiFi來對C610做adb溝通。

UVCdataflow

安裝MPC-HC

從這裡https://github.com/clsid2/mpc-hc/releases/tag/2.0.0下載MPC-HC.2.0.0.x64.exe進行安裝。

加載測試檔案

從這裡下載AI model

https://thundercomm.s3.ap-northeast-1.amazonaws.com/uploads/web/610/Yolov5%20files%20for%20610-LE-2-0%20UVC.zip

把AI model 上傳到C610開發版之中



$ adb root

$ adb disable-verity

$ adb reboot​

 上傳AI model

$ adb root

$ adb remount

$ adb push yolov5m-320x320-int8.tflite /data/

$ adb push yolov5m.labels /data/

$ adb shell

# echo outputFormat=0 > /etc/camera/camxoverridesettings.txt

# sync​

 設定weston

$ adb root

$ adb shell

# vi /etc/xdg/weston/weston.ini

[output]

name=Virtual-1

mode=off

[output]

name=DSI-1

mode=on

[output]

name=DP-1

mode=off

 

# sync​

以上修改做一次就可以了。

開始UVC UAC

WiFi連線設定

$ adb root

$ adb shell

# killall wpa_supplicant

# wpa_supplicant -iwlan0 -Dnl80211 -c /etc/misc/wifi/wpa_supplicant.conf &

使用wpa_cli 進行network的設定

# wpa_cli -iwlan0

> set_network 0 ssid "TP-LINK_4295"

> set_network 0 key_mgmt NONE

> disable_network 0

> enable_network 0


之後應該就可以看到WiFi 完成連線的訊息。

執行udhpc -iwlan0 取得IP 地址

然後把adb改到IP地址上。

$ adb tcpip 5556

$ adb connect 192.168.1.101:5556

$ adb -s 192.168.1.101:5556 shell

 

打開Weston

執行以下的指令已打開Weston

# setenforce 0

# export WESTON_DISABLE_ATOMIC=1

# export XDG_RUNTIME_DIR=/run/user/root

# weston –tty=1 –idle-time=123456 &

 

切換USB Type-C的模式

$ adb -s 192.168.1.101:5556

# usb_composition​

之後依序9113, n, y, y, y

切換到UVC模式

執行以下指令切換到UVC模式

# source /etc/profile && chown -R qmmfsvr:qmmfsvr /run/user/root

# gst-umd-daemon -v /dev/video3 -a hw:1,0​

 此時,將USB Type-C線與PC連接,開啟MPC-HC播放器,即可觀看攝像頭傳輸的影像。

pcm-hc

 至此,DEMO展示完畢。 

結語:

UVC攝像頭是一種廣泛應用的裝置。結合AI算法,不僅能豐富影像的功能,還能顯著減輕主機端的運算負擔。

常見問答:

Q: Yolo5m模型有什麼功能?

A: 用於影像優化。

Q: 必須使用Weston顯示伺服器嗎?

A: 不必。UVC裝置不需要使用螢幕桌面。

Q: 必須使用WiFi嗎?

A: 不需要。可以在開機時自動完成UVC設定,無需手動透過WiFi設定。本文中的步驟是為了演示需要使用WiFi來執行gst-umd-daemon指令。

Q: 必須使用MPC-HC播放器嗎?

A: 不必。MPC-HC僅用於播放攝像頭影像,可用其他播放軟體替代。

Q: Usb 切換中提到的9113是甚麼意思?

A: Usb composition中所指定的一種模式; 包含DIAG, UAC, UVC, ADB等功能

    9113 - DIAG + UAC1 + UVC + ADB

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論