前言
最近拿到了一個新玩具:香橙派 AIPro。一個只比銀行卡大一點點的開發板能帶給我們多少驚喜呢?接下來就跟我一起來體驗下這塊開發板的魅力。
一、硬件配置
CPU:配備了4核64位ARM處理器,其中默認預留1個給AI處理器使用
NPU:集成了華為昇騰310BAI處理器,擁有4TFOPS的FP16算力核8TOPS的INT8算力
內存:標配LPDDR4X的規格,有8G核16G兩種配置可供選擇
存儲:板載32MB的SPI Flash,內置1個Micro SD卡槽、1個eMMC插座、M.2插槽(2280規格)
以太網:板載10/100/1000Mbps自適應RJ45口
無線通訊:2.4+5雙頻WIFI核BT4.2
USB:2個USB3.0 Host接口、1個Type-C接口(USB3.0)
攝像頭:預留了2個MIPI CSI 2 Lane接口
顯示:2個HDMI接口,支持同時4K@60HZ輸出、一個MIPI DSI 2 Lane接口支持外接顯示屏
音頻:除了2個HDMI接口還有一個3.5MM耳機孔
40PIN擴展口:支持UART、I2C、SPI、PWM、GPIO等
風扇接口:4PIN接口,12V供電,支持PWM調速
電池接口:2PIN,用于接3串電池,支持快充
調試串口:板載Micro USB接口的調試串口
操作系統:目前支持Ubuntu-22.04核OpenEuler 22.03兩種
二、開箱展示
外包裝:
外包裝不是太豪華,可以說比較簡易了,但這沒有關系,因為我們注重的是內在。品牌型號下面醒目的為AI而生
已經很明確地向我們詮釋了香橙派 AIPro
的應用場景。
包裝盒內部:
整體包裝還是嚴密的,上下各有一個泡沫作為緩沖,很好的保護了運輸過程中的安全。開發板也是在密封的真空袋里面的,需要拆開真空包裝才能取出開發板。
正面:
可以看到散熱風扇占了不小的面積,4PIN的風扇插口和2PIN的電池插口都在散熱器下面,正面是看不到的。右上角就是Type-C的電源供電,官方標配65W的PD電源(20V 3.25A)。給了一個簡易的外接天線,包括藍牙和WIFI的天線集成到了一起。
背面:
從圖上可以看到M.2插槽,規格是2280。我插了一個256G的SSD,我的SSD使用的是SATA協議,順序讀取速度和順序寫入速度只能達到500MB/S左右,如果使用NVME協議的話速度就相當驚喜了。目前系統還是燒錄在SD卡里面的,SSD只是存儲數據用的。
M.2上邊就是EMMC的擴展卡槽,需要另行購買,系統可以燒錄進EMMC卡里面去。實測SSD的速度還是快于EMMC的,所以如果把系統燒錄進SSD的話能獲取最好的性能。
側面:
可以看到所有的接口之間都留了足夠的距離,相互之間不會影響。
特別是HDMI0和HDMI1的接口中間隔著一個3.5MM耳機孔,我只能說在細節上很出色,因為HDMI數據線其實會向兩邊延展一些,如果兩個HDMI緊挨著無疑會導致難以插拔;而Type-C的接口豎著放這個設計也要點個贊,雖然我不知道是不是工程師刻意為之,在我看來如果兩個疊放的Type-A的接口都插滿數據線的話,豎著放無疑流出了相當大的操作空間,不會因為排列緊挨著而導致難以插拔的問題。
三、刷寫系統
開發板支持分別從TF卡、EMMC和SSD三種介質啟動操作系統,板子上有兩個撥碼分別是BOOT1和BOOT2,每個撥碼有打開和關閉兩種狀態,總共就是4種狀態。以下是詳細的配置:
注意:無論那種方式都需要先把系統刷寫到SD卡上,然后再在開發板里面將系統鏡像刷寫到其它介質。
1.燒錄到TF卡
準備一個至少32G的TF卡(至少Class10級別),一臺Windows電腦(Linux也行),一個TF卡讀卡器。安裝BalenaEtcher燒錄軟件。
首先,將TF卡插入讀卡器并將讀卡器插入Windows電腦,確保讀卡器被電腦識別。
其次,打開BalenaEtcher軟件并選擇要燒錄的系統,這里燒錄Ubuntu-22.04。
等待燒錄完成即可
燒錄完成會校驗數據,必須要校驗成功才行。
最后,退出軟件并彈出讀卡器。將TF卡從讀卡器拔下來并插入開發板的TF卡槽里,這一步一定要斷電,防止燒壞設備。確定插緊之后就可以接電源線了,設備會自動開機,等待進入桌面即可。
2.燒錄到EMMC
EMMC默認是不配的,需要自行花錢采購,如果你確實需要就采購一個,具體型號可以咨詢商家。
我們這里燒錄到EMMC需要借助TF卡,前面燒錄到TF卡的教程已經說過了,確保你已經通過TF卡進入了操作系統。
首先,在關機斷電
的前提下將EMMC插入卡槽上,這個卡槽在背面。
通過命令確認系統已經識別了EMMC,類似于下面這樣:
fdisk -lDisk /dev/mmcblk0: 28.91 GiB, 31037849600 bytes, 60620800 sectors
然后,將要燒錄的 Linux 鏡像文件壓縮包上傳到 TF 卡的 Linux 系統中。
最后,使用香橙派系統中自帶的balenaEtcher將鏡像燒錄進EMMC即可。
燒錄完成后需要關機并拔掉電源,將BOOT1和BOOT2撥碼撥動到啟動EMMC的位置即可,重新插上電源等待進入桌面。
題外話:
還有一種方法燒錄到EMMC的方法我覺得是可行的,有一種專門讀取EMMC的讀卡器,就像下面這樣:
我恰好就有一個,只不過是給RK3399用的,和手上的香橙派 AI Pro不配套。如果你恰巧有一個配套的EMMC讀卡器,那么理論上直接將鏡像燒錄進EMMC也是可行的,比起上面的方法會節省一些時間。不過,為了這個方式買一個EMMC讀卡器是不是值得就看你自己怎么想了。
3.燒錄進SSD
現在這個時代估計機械硬盤成了稀罕貨了,估計以后只能在機房里看到了。想起來早些年買電腦還是小容量SSD+機械的搭配,放在那個SSD天價的時代也是無奈之舉。
現在好了,隨著技術的發展和國內的廠商的跟進,雖說SSD沒有夸張到白菜價,至少比起以前也是一個天上,一個地下了吧!
這塊板子支持的SSD是M.2 2280的插槽,速度標準是PCIe3.0x4的速度,如果你的SSD超過這個標準,比如三星980 Pro是PCIe4.0x4的速度,就只能跑在PCIe3.0x4的速度了。我之前買的三星970 Pro就是這個標準,最大讀取速度3500MB/S,最大寫入速度2500MB/S,這個速度比起TF或EMMC已經是快很多了,滿足生產力也肯定是沒問題的。
注意:現在的NVME SSD只測試過梵想、金士頓和三星,目前只有三星的SSD能穩定運行操作系統!其他品牌的目前不建議將系統燒錄到SSD上,等待官方發布新的更新即可解決這個問題。
首先,將開發板關機并下電,不要帶電操作,可能燒壞設備。將SSD插入背板的M.2插槽上:
一定要用螺絲將SSD固定好再開機,防止脫落引發不必要的損壞。
其次,和前面一樣燒錄SSD也需要借助TF卡,這個過程就不介紹了。確保你的SSD是走的NVME協議,通過以下命令查看是否備操作系統識別:
sudo fdisk -lDisk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
所有的NVME協議的SSD都是以/dev/nvme開頭的,注意不要看錯了。
最后,還是借用香橙派系統自帶的balenaEtcher軟件將鏡像燒錄進SSD里面,方法和燒錄TF卡一樣,唯一需要注意的是SSD是大容量設備,注意備份數據,這個操作會刪除所有的數據,且不可恢復!
燒錄完成后關機并斷開電源
,將BOOT1和BOOT2的撥碼撥動到啟動NVME的位置即可插電源上電,然后等待進入系統。
四、系統初探
我手上拿到的這款自帶32GB的閃迪SD卡,操作系統預裝了Ubuntu-22.04。系統本身加上預裝的開發軟件占用了大概17G的空間,剩余11G左右的空間。
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 17G 11G 61% /
tmpfs 3.7G 4.0K 3.7G 1% /dev/shm
tmpfs 1.5G 15M 1.5G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs 128M 6.0M 123M 5% /var/log
/dev/mmcblk1p3 50M 2.0K 50M 1% /exchange
tmpfs 755M 76K 755M 1% /run/user/0
tmpfs 755M 80K 755M 1% /run/user/1000
/dev/sda1 239G 3.2G 236G 2% /mnt/data
實測這個SD卡的順序寫入速度大概是30MB/S,大致是A1的級別。安裝軟件過程中沒有感受到任何卡頓,但復制大文件會等待更長的時間。想要更好的體驗還是換速度更快的TF卡或者干脆更換成SSD獲得更好的體驗。
找一個支持HDMI的顯示器連接到HDMI0接口上即可看到桌面,遺憾的是我拿到這塊開發板的時候暫時還不支持2個HDMI口同時輸出,目前默認HDMI0是有輸出信號的,HDMI1是無輸出信號的,以后軟件更新會修復這個問題的。
默認的桌面是Xfce
的,且支持在不同的工作區之間進行切換。另外,還附帶了Gnome和KDE桌面,有需要的可自行切換。不同的人有不同的使用習慣,比如我本人使用Gnome更多一些,這一點考慮的很周到。
實測WIFI信號是滿格的:
目前無法看到WIFI實際的速率,按照往常的經驗大概率是433M,這個速率對于開發板來說夠用了。
實測藍牙也是可以正常連接的:
目前支持藍牙傳輸文件,但是速率略慢。用來聲音輸出沒有任何問題,音質也沒有任何影響 。
桌面里面的功能就不過多介紹了,像日常用到的網絡管理、藍牙、WIFI都是自帶的,常用的應用程序功能基本是應有盡有,感興趣的小伙伴請自行體驗吧。
五、性能評測
1.CPU性能評測
我們已經知道開發板搭載的NPU的確切性能是8TOPS,接下來就是用UnixBench測試下CPU的性能。
因為默認有一個核心被分配給了NPU,我們需要先把這個核心要回來
,等待測完再還給它
。
先查詢下當前的分配策略:
npu-smi info -t cpu-num-cfg -i 0 -c 0Current AI CPU number : 1Current control CPU number : 3Current data CPU number : 0
AI CPU
就是分配給NPU的核心數,control CPU
就是分配給系統的核心數,默認是1:3的策略,可以通過命令更改這個分配策略。簡單解釋下就是說分配給NPU的核心是獨占的,你的Linux系統不會把非AI的任務調度到這個核心上,通俗點說就是日常使用只有3個核心可用了。這個比例可以通過命令調整,比如0:4。如果你非常確定你的模型沒有運行在CPU上的算子,你就可以從NPU臨時回收
這個核心。
切記:你一定要很確定才能這么做,有些模型是會把算子分配到CPU上運行的,強行回收可能導致嚴重的性能問題!
下面地命令就是重新分配:
sudo npu-smi set -t cpu-num-cfg -i 0 -c 0 -v 0:4:0Status : OKMessage : The cpu-num-cfg of the chip is set successfully. Reset system for the configuration to take effect.
注意:一定要重啟系統才能生效!每次更改分配策略都要重啟系統。
重啟之后再檢查下:
npu-smi info -t cpu-num-cfg -i 0 -c 0Current AI CPU number : 0Current control CPU number : 4Current data CPU number : 0
AI CPU變成0說明策略生效了!
接下來開始UnixBench測試,為了縮小Desktop對測試結果的影響,我先切換到命令行模式:
sudo systemctl isolate multi-user.target
然后再把風扇的速度手動調到最大,規避掉過熱導致的降頻:
#首先調速模式必須切換為手動,否則無法更改速度
sudo npu-smi set -t pwm-mode -d 0#調速比調整為100,也就是全速運轉
sudo npu-smi set -t pwm-duty-ratio -d 100sudo reboot
這樣開發板重啟后就進入命令行界面了,關掉多余的進程就可以開始測試了。
測試獲得906.4的綜合得分,比6核心的RK3399 CPU綜合性能強30%,比6核心的Atlas-200 CPU綜合性能強50%。這個結果讓我眼前一亮,本以為區區4核心不夠看的,沒想到這么快就打臉了。雖說分數沒有到夸張的程度,不過作為定位AI的產品也是足夠了。
注:Atlas-200的8核CPU必須至少分給NPU兩個,所以至多只能使用6個核心。
2.硬解碼能力評測
支持2路4K@60HZ的視頻輸出,這個在嵌入式設備上相當出色了,現在同時使用2個顯示器的場景還蠻多的,這個設計無疑迎合了一些人的需求。
這個能力背后需要的正是硬解碼的支持,接下來我們就來看看它的解碼能力到底怎么樣,我們后面在實際場景中演示中會非常依賴硬解碼。以下測試以單路1920x1080@30FPS視頻流為測試對象:
實測H264平均每幀解碼耗時:1-2ms
實測H265平均每幀解碼耗時:1-2ms
接下來2路4K@60HZ測試,結果平均每路最大12ms:
按照60HZ的輸出標準來看的話平均每幀解碼不能超過16ms,測試結果證明符合描述。
注:我本人測試了下jpeg的編碼和解碼速度都在幾毫秒范圍內,應該來講我們做推理用的最多的是H264或H265的解碼能力,jpeg用的并不多,所以就一筆帶過了。
六、推理性能評測
作為定位AI場景的開發板,這是最主要的功能了。接下來就測試下開發板的AI推理能力。
1.目標檢測
目標檢測應該是使用的最多的場景之一了,這里使用YOLOv5s,它是 YOLOv5 系列中較為輕量的網絡模型,適合在邊緣設備部署,進行實時目標檢測。這里檢測以1080p視頻為輸入。
實測每幀處理速度大概是51ms左右:
關于準確率,除了完全遮擋
的情況下無法識別,基本上沒什么問題。真實使用場景中并不是每一幀都要檢測,我之前做的很多項目都是可以通過抽幀解決,所以這個速度能夠滿足一定場景的需求,但如果對幀數要求特別高,就略顯吃力了。
2.OCR
OCR兩階段方法一般包含兩個模型,檢測模型負責找出圖像或視頻中的文字位置,識別模型負責將圖像信息轉換為文本信息。使用的檢測模型為CTPN,識別模型則是SVTR。
以下圖為例:
識別結果:
cost: 262.5029296875
det result: 536,184,536,200,651,200,651,184
rec result: 開啟開發者之旅
det result: 249,89,249,122,920,122,920,89
rec result: 從入門到進階,開啟昇騰開發者成長之旅
可以看出準確識別出了文字,速度的話是262ms左右,能夠滿足一些場景的使用,不太能滿足對實時性要求很高的場景。
3.圖片卡通化
使用cartoonGAN模型對輸入圖片進行卡通化處理,輸入正常圖像,輸出卡通圖像。
輸入:
輸出:
從結果可以看出來細節的保留做的還是相當好的。
速度測試:
in pre_process, use time:0.0037565231323242188
in inference, use time:0.2697789669036865
cost: 270.003173828125
in post_process, use time:0.0645606517791748
前處理和后處理幾乎不消耗時間,推理的話消耗270ms左右,能夠滿足一些場景的需求,視頻流場景需要做抽幀處理,不能夠滿足實時檢測。
4.其他模型
諸如人臉檢測和人臉識別這樣的模型基本是能夠做到實時檢測的,有的甚至能夠多路并發。由于模型太多就不一一展示了。
5.模型轉換
比較好的一點是模型是可以直接在開發板上轉換的,別問我為什么這么說,因為我遇到過需要借助其它設備轉換的開發板,這些設備往往需要另外掏錢購買。Yolov5轉換成om模型大概需要5分鐘左右吧,雖說不算快,但也就是喝杯茶的功夫,我覺得可以接受。
七、Camera測試
之前買了個樹莓派4B的時候正好買了個MIPI攝像頭,今天拿過來插香橙派 AI Pro上看看效果。遺憾的是這個攝像頭我當初買的時候不是樹莓派官方原裝攝像頭,我也是抱著試試看的態度,實際是不能正常使用的。如果大家由這類需求的話還是購買官方指定的MIPI攝像頭吧。
八、40PIN測試
這個硬件和AI關系不大,一般無人機、機器人這類場景使用的比較多。正好我手上有一些IO設備,就順手看下。遺憾的是我經過多方面測試發現目前GPIO基本上是處于不可用的狀態,經過多方面查找資料依然沒有解決這個問題,只能后續和官方交流后再進一步測試了。
九、說說優缺點
說說優點:
1、高達8TOPS的AI處理器,這個算力可以毫無壓力地跑人臉識別、物體識別、物體分類、追蹤等等場景。
2、存儲的可選性比較多,除了支持Micro SD Card,還支持eMMC和M.2 2280(實測同時支持NVME核SATA兩種協議),還可以把系統燒錄到SSD上體驗飛一般的感覺。
3、支持主動散熱,正常使用過程中風扇幾乎沒有噪音。
4、支持電池供電而且還支持快充,這個功能我以前用過的很多開發板都是沒有的,雖然我可能用的不多,但是有的話無疑是要點個贊。
說說缺點:
1、實際使用過程中遇到過好幾次假死或網絡無故斷連的情況,操作系統的穩定性需要再完善下。
總結
1、香橙派 AIPro為AI而生,如果你正在找一款合適的開發板,不妨考慮下。