測評分享丨RK3399開發板+RK1808人工智慧計算棒(主動模式)
高效賦能AIoT生態鏈:
本教程以飛凌嵌入式RK3399平臺為例,講述主動模式的人工智慧計算棒部署流程。
01
硬 件 平 臺
平臺:OK3399-C開發板
系統:Desktop
模組:TB-RK1808S0
環境準備: 飛凌OK3399-C開發板,RK1808人工智慧計算棒(韌體版本為V1.3.4),usb攝像頭,攝像頭和計算棒都插入OK3399-C開發板。
使用lsusb命令檢視,如下(紅框部分2207:0018即為RK1808人工智慧計算棒):
輸入命令如下:
02
概 述
AI計算區分為四個不同的象限,分別是雲端訓練、雲端推理,邊緣訓練以及邊緣推 理。 其中終端推理,幾乎都集中在Arm架構生態上。AI神經網路計算目前可以透過CPU、GPU、DSP、NPU、FAGA等完成,但不同的硬體特性會導致效率和功耗的不同。其中NPU——嵌入式神經網路處理器採用“資料驅動平行計算”的架構,最擅長的就是影片、影像類的海量多媒體資料的處理,並且相比GPU等 具有更低的功耗。我司推出OK3399-CDesktop+RK1808(含3Tops算力NPU)的組合,在滿足AI邊緣計算的情況下,使得功耗大幅降低。
RK1808計算棒擁有主動模式和被動模式兩種模式。
主動模式下,RK1808人工智慧計算棒是一個專用AI應用模組。
RK1808人工智慧計算棒作為主動裝置,RK1808人工智慧計算棒內部預設已安裝rknn-toolkit和rknn-api,上位機(也稱宿主機)無需安裝rknn-toolkit和rknn-api,模型及演算法固化在RK1808人工智慧計算棒中,OK3399-C透過USB口向計算棒輸入資料(例如圖片和影片流),RK1808人工智慧計算棒自動完成資料的前處理、推理、後處理,然後把處理結果透過USB口輸出給OK3399-C。
為了方便使用者透過USB口傳輸資料,RK1808人工智慧計算棒會把USB口虛擬成網路卡等標準裝置,使用者只需透過標準裝置介面的操作(例如網路的socket程式設計)即可完成對RK1808人工智慧計算棒資料的輸入和輸出。
細節如下:
1. RK1808計算棒插入上位機後,會被虛擬成網路卡裝置;
2. 上位機OK3399-C進行虛擬網路卡配置,配置IP為192.168.180.1,保證上位機和1808中間的網路連線正常;
3. 計算棒預設IP為192.168.180.8,賬號密碼皆為toybrick,使用者可以SSH登入計算棒,複製模型和server服務程式到計算棒;
4. 計算棒端執行server服務程式,用來接收上位機的連線請求,並呼叫RKNN進行處理,再返回結果;
5. 上位機執行client程式,連線server成功之後,傳送推理請求,從1808端獲取返回結果。
03
計算棒網路配置與網路共享配置
1、計算棒網路配置
上位機使用OK3399-C Forlinx Desktop系統,點選右下角網路按鈕選擇彈出視窗中的“EditConnections...”選項:
選擇計算棒usb網路卡生成的有線網路節點:
配置該節點為手動模式,設定IP:192.168.180.1,子網掩碼:255.255.255.0,並儲存:
終端輸入ifconfig指令檢視網路節點配置如下,可見usb網路卡配置完成:
ping一下1808計算棒網路192.168.180.8,如下網路可以連通:
使用ssh登入1808計算棒,使用者名稱和密碼預設都為toybrick,如下登陸成功:
2、網路共享配置
執行ifconfig,可以看到eth0、wlan0等宿主機網路卡,我們用於訪問外網,enx10dcb69f022c為USB網路卡(RK1808人工智慧計算棒虛擬網路卡)。不同的系統網路卡名稱可能不一樣,以實際網路卡名稱為準。
首先配置宿主機網路,使宿主機可以連通乙太網,這裡我們使用wlan0節點來上網,具體配置不再贅述。
命令列執行如下命令,其中enx10dcb69f022c需要修改成使用者本地實際值; 正常情況只要設定一次即可,若拔插裝置發現網路卡名稱改變了或者使用者手動刪除該網路卡,則需要重新設定。
1. sudo nmcli connection add con-name toybrick type ethernet ifname enx10dcb69f022c autoconnect yes ip4 192.168.180.1/24
配置NAT功能,執行如下命令,其中eno1需要修改成使用者本地實際值;關機失效,所以每次電腦重啟都要重新設定。
1. sudo sysctl -w net.ipv4.ip_forward=1
sudo iptable -F
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
注意:以自己開發板聯網的實際埠為準,例:eth0
iptables命令部分釋義如下:
iptables --hel p
--flush -F [chain] Delete all rules in chain or all chains
--table -t table table to manipulate (default: `filter')
--append -A chain Append to chain
--jump -j target target for rule (may load target extension)
MASQUERAD ,地址偽裝,算是snat中的一種特例,可以實現自動化的snat
SNAT是source networkaddress translation的縮寫,即源地址目標轉換。比如,多個PC機使用ADSL路由器共享上網,每個PC機都配置了內網IP,PC機訪問外部網路的時候,路由器將資料包的報頭中的源地址替換成路由器的ip,當外部網路的伺服器比如網站web伺服器接到訪問請求的時候,他的日誌記錄下來的是路由器的ip地址,而不是pc機的內網ip,這是因為,這個伺服器收到的資料包的報頭裡邊的“源地址”,已經被替換了,所以叫做SNAT,基於源地址的地址轉換。
DNAT是destinationnet workaddress translation的縮寫,即目標網路地址轉換,典型的應用是,有個web伺服器放在內網配置內網ip,前端有個防火牆配置公網ip,互聯 網上的訪問者使用公網ip來訪問這個網站,當訪問的時候,客戶端發出一個資料包,這個資料包的報頭裡邊,目標地址寫的是防火牆的公網ip,防火牆會把這個資料包的報頭改寫一次,將目標地址改寫成web伺服器的內網ip,然後再把這個資料包傳送到內網的web伺服器上,這樣,資料包就穿透了防火牆,並從公網ip變成了一個對內網地址的訪問了,即DNAT,基於目標的網路地址轉換。
04
主動模式Mobilenet-ssd測試
1、環境要求
1)參考“計算棒網路配置與網路共享配置”章節,完成RK1808人工智慧計算棒網路配置(RNDIS)以及網路共享配置。
2)宿主機需要插入USB攝像頭,並連線顯示器。
2、部署計算棒程式
SSH方式
該方式透過ssh連線到RK1808人工智慧計算棒,執行相應程式。
計算棒系統使用者名稱:toybrick 密碼:toybrick
計算棒系統使用者名稱:root 密碼:toybrick
建議用toybrick使用者登入
1)使用官方連結下載Mobilenet-SSD主動模式demo軟體包,解壓,連結如下:
2)複製解壓目錄中的1808目錄至計算棒
1. scp - r 1808 / toybrick@192 . 168.180 . 8 : /home/ toybrick /
3)ssh進入計算棒
1. ssh toybrick@192 . 168.180 . 8
4)安裝依賴包
1. sudo dnf install - y cmake make
5)編譯
1. cd 1808 / mkdir build cd build / cmake .. make - j4
6)直接執行程式或設定程式為開機啟動
•直接執行:
1. ./ 1808 _ssd_demo
3、部署上位機程式(以OK3399-Cdesktop為例)
1)安裝依賴包make/cmake/opencv
1. sudo apt - get install - y make cmake libopencv - dev
2)進入Mobilenet-SSD主動模式demo軟體包中的host目錄,修改host/ssd_demo.cpp,根據開發板實際情況修改開啟的攝像頭節點:
1. cd host/
2. int main(void)
3. {
4. //ret = test.run(VIDEO_NODE, post_process, &data);
5. ret = test.run("/dev/video10", post_process, &data);
6. }
3)編譯
1. mkdir build cd build / cmake .. make - j4
4)計算棒程式執行起來後,執行上位機程式
1. ./ ssd_demo
效果如下:
05
主動模式yolov3測試
1、環境要求
1)參考“計算棒網路配置與網路共享配置”章節,完成RK1808人工智慧計算棒網路配置(RNDIS)以及網路共享配置。
2)OK3399-C開發板需要插入USB攝像頭,並連線顯示器。
2、部署步驟
計算棒端:
1)使用官方連結下載示例原始碼master_yolov3.zip,解壓,連結如下:
2)複製解壓目錄中的1808目錄至計算棒:
scp -r 1808/ toybrick@192.168.180.8:/home/toybrick/
3)透過ssh連線到RK1808人工智慧計算棒,執行yolov3master端程式
計算棒系統使用者名稱toybrick 密碼toybrick
計算棒系統使用者名稱root 密碼toybrick
建議用toybrick使用者登入,安裝python依賴包,root使用者可能存在未知風險。
進入計算棒:
ssh toybrick@192.168.180.8
4)安裝依賴包:
sudodnf install python3-opencv -y
5)進入剛才複製的1808目錄,執行1808端程式。
宿主機端:
1)安裝依賴庫
pip3 install --user numpy
sudo apt-get install -y python3-opencv
2)執行host端程式
3、效果如下:
至此,OK3399-C開發板+RK1808人工智慧計算棒主動模式下的測評告一段落。下篇文章我們會對OK3399-CDesktop+1808被動模式做詳細介紹,涉及被動模式的三個demo例程,敬請期待!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2738083/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測評分享丨RK3399開發板+RK1808人工智慧計算棒(被動模式)人工智慧模式
- RK3399主機板設計方案,RK3399開發板原理圖
- 瑞芯微RK3399開發板,RK3399主機板引數介紹
- RK3399主機板硬體開發過程
- 瑞芯微平臺RK3399主機板PCBA開發設計
- RK3399主機板方案,RK3399串列埠測試設計介紹串列埠
- rk3399 開源主機板簡介
- RK3399開發資料,RK3399晶片效能,RK3399處理器引數,RK3399主機板晶片
- RK3399開發板 RK818 電量計 驅動檔案和 menuconfig
- 乾貨丨RK3399開發板android系統下實現影像識別Android
- 如何採購ARM六核RK3399安卓工控開發主機板?安卓
- RK3399開發板 RK818 電量計DTS配置說明
- 乾貨|關於RK3399開發板硬體設計的二三事
- RK3399 camera驅動開發
- 華碩ROG MAXIMUS XI FORMULA主機板評測:主打水冷散熱ORM
- rockchip平臺RK3399方案最美主機板
- 技嘉Z490 AORUS MASTER主機板怎麼樣?技嘉Z490 AORUS MASTER主機板評測AST
- 微星MPG Z590 ACE主機板怎麼樣?微星MPG Z590 ACE主機板評測
- 使用者測評:G2L開發板初體驗
- 趣味運動零擼趣步系統模式開發丨DAPP丨Defi丨NFT模式APP
- NFT算力挖礦系統開發設計丨算力礦機原始碼丨dapp丨FIL原始碼APP
- RK3399開源主機板軟硬體資料公佈-免費下載
- B450主機板和B350主機板對比評測 B450主機板相比B350升級了什麼?
- RK3399主機板點LVDS屏的原理和具體流程
- RK3399方案設計RK3399嵌入式開發
- 分享 | 英特爾第二代神經計算棒(Intel Neural Compute Stick 2)相關測試Intel
- FIL雲算力挖礦系統設計開發丨雲算力礦機原始碼丨FIL丨PHA原始碼
- 在RK3399開發板香橙派Orange Pi 4B上使用dockerDocker
- 開發實踐丨用小熊派STM32開發板模擬自動售貨機
- 雲端計算開發與人工智慧的關係,雲端計算開發主宰物聯網人工智慧
- 發評測贏好禮 | Serverless 函式計算徵集令Server函式
- DeFi流動性雲算力質押挖礦系統開發丨DAPP丨FIL丨PHAAPP
- Defi質押理財存幣生息系統設計開發模式丨LP丨Defi丨DAPP模式APP
- 活動報名:Voice Agent 開發者分享會丨 RTE Meetup
- 乾貨分享丨一種DevOps模式下UI自動化測試左移思路的探究dev模式UI
- AI人工智慧小程式系統開發丨chatGPT聊天開發丨chatGPT4AI人工智慧ChatGPT
- RK3399開發板Ubuntu系統下實現雙屏顯示&異觸Ubuntu
- 一文看懂配置RK3399開發板Ubuntu雙屏顯示&異觸Ubuntu