發(fā)燒友實(shí)測(cè) | iMX8MP開(kāi)發(fā)板移植官方NPU TensorFlow例程

原創(chuàng) 作者 iMX8MP 2022-01-10 10:18:00 iMX8MP iMX8MP NPU iMX8MP算力

imx8mp 算力2.3tops


作者|donatello1996

來(lái)源 | 電子發(fā)燒友

題圖|飛凌嵌入式 




飛凌嵌入式OKMX8MP-C開(kāi)發(fā)板基于NXP i.MX 8M Plus處理器開(kāi)發(fā)設(shè)計(jì),該系列處理器專(zhuān)注于機(jī)器學(xué)習(xí)與視覺(jué)、高級(jí)多媒體以及具有高可靠性的工業(yè)自動(dòng)化。旨在滿(mǎn)足智慧城市工業(yè)互聯(lián)網(wǎng)、智能醫(yī)療智慧交通等應(yīng)用的需求。強(qiáng)大的四核或雙核Arm? Cortex?-A53處理器,主頻高達(dá)1.6GHz,帶有神經(jīng)處理單元(NPU),最高運(yùn)行速率可達(dá)2.3TOPS。


本文采用的硬件板卡為飛凌嵌入式OKMX8MP-C開(kāi)發(fā)板,系統(tǒng)版本Linux5.4.70+Qt5.15.0,主要介紹移植官方NPU TensorFlow例程。


一、 NPU的圖像識(shí)別例程


在OKMX8MP-C 開(kāi)發(fā)板提供的產(chǎn)品使用手冊(cè)中,有一章是針對(duì) iMX8MP 板上NPU的圖像識(shí)別例程,位于EMMC分區(qū)的/usr/bin/tensoRFlow-lite-2.3.1/examples,我將EMMC分區(qū)mount為了/media分區(qū),找到對(duì)應(yīng)的例程位置。


imx8mp官方例程


imx8mp官方例程位置



iMX8MP 開(kāi)發(fā)板切換到EMMC啟動(dòng),進(jìn)入/usr/bin/tensorflow-lite-2.3.1/examples/目錄下,運(yùn)行測(cè)試example:


運(yùn)行測(cè)試example


再將 iMX8MP 開(kāi)發(fā)板切回TF卡系統(tǒng)運(yùn)行,提示報(bào)錯(cuò),label_image程序的nnapi需要?jiǎng)討B(tài)鏈接庫(kù)支持:



動(dòng)態(tài)鏈接庫(kù)支持


libm-2.30.so
libneuralnetworks.so.1.1.9
libnnrt.so.1.1.9
libArchModelSw.so
libGAL.so
libNNArchPerf.so
libOpenVX.so.1.3.0
libovxlib.so.1.1.0
libVSC.so


其中l(wèi)ibm-2.30.so被鏈接為ld-linux-aarch64.so.1,位于/usr/lib/aarch64-linux-gnu/目錄下,若在移植后的目標(biāo)系統(tǒng)的/usr/lib/aarch64-linux-gnu/下沒(méi)有該庫(kù)文件的話(huà),是會(huì)在運(yùn)行時(shí)提示報(bào)錯(cuò)的。將上述所有動(dòng)態(tài)鏈接庫(kù)復(fù)制到正確位置(/usr/lib和/usr/lib/aarch64-linux-gnu/),再次運(yùn)行:


庫(kù)環(huán)境移植成功



可以看到?jīng)]有任何報(bào)錯(cuò),運(yùn)行庫(kù)環(huán)境移植成功,接下來(lái)可以在 iMX8MP 開(kāi)發(fā)板上愉快地進(jìn)行tensorflow例程的玩耍了。


二、TensorFlow例程驗(yàn)證


飛凌嵌入式iMX8MP官方資料中提供了許多測(cè)試?yán)蹋扔霉俜紻EMO做一下驗(yàn)證,其驗(yàn)證結(jié)果如下。


imx8mp NPU官方測(cè)試圖片


0.780392: 653 military unIForm
0.105882: 907 Windsor tie
0.0156863: 458 bow tie
0.0117647: 466 bulletproof vest
0.00784314: 835 suit



78%結(jié)果吻合陸軍制服,10%結(jié)果吻合溫莎領(lǐng)帶,1%結(jié)果吻合領(lǐng)結(jié),1%結(jié)果吻合防彈背心,不到1%結(jié)果吻合西裝,總的來(lái)說(shuō)這個(gè)結(jié)果還是挺令人滿(mǎn)意的,NPU的算力確實(shí)還可以,多次運(yùn)行程序,得出的結(jié)果完全相同,說(shuō)明 iMX8MP NPU計(jì)算時(shí)使用的是固定的/靜態(tài)的圖像識(shí)別庫(kù)。


我這邊突發(fā)奇想,用這個(gè)Demo去測(cè)一下我自己的論壇頭像,看看結(jié)果:



imx8mp NPU測(cè)試論壇頭像圖片


0.352941: 274 dingo
0.254902: 265 Cardigan
0.184314: 264 Pembroke
0.0666667: 163 beagle
0.0156863: 354 gazelle


35%的野狗,25%的毛衣,18%的Pembroke???,6%的小獵犬(beagle),1%的羚羊,看到羚羊(gazelle)我屬實(shí)蚌埠住了,哈哈。



再來(lái)試試另外幾張圖片,為了檢驗(yàn)iMX8MP NPU的人工智能算力到底行不行,集齊了十張圖,豪華尊享。由于源碼不開(kāi)放,所以無(wú)法移植源碼到自己的例程中:


imx8mp NPU測(cè)試圖片3



0.380392: 583 grocery store
0.321569: 957 custard apple
0.0862745: 955 banana
0.0352941: 956 jackfruit
0.027451: 954 pineapple


imx8mp NPU測(cè)試圖片4



0.254902: 918 comic book
0.0470588: 771 running shoe
0.0470588: 474 can opener
0.0470588: 412 apron
0.0392157: 794 shower cap


imx8mp NPU測(cè)試圖片5





0.121569: 656 miniskirt
0.054902: 835 suit
0.0470588: 852 television
0.0470588: 440 bearskin
0.0392157: 679 neck brace


imx8mp NPU測(cè)試圖片7



0.65098: 918 comic book
0.172549: 747 puck
0.0196078: 922 book jacket
0.0196078: 723 ping-pong ball
0.0117647: 806 soccer ball

圖片的識(shí)別結(jié)果均以編碼方式呈現(xiàn),從識(shí)別的概率結(jié)果來(lái)看,飛凌的這款 iMX8MP 開(kāi)發(fā)板的NPU的算力還是非常強(qiáng)的。


據(jù)官方介紹,i.MX 8M Plus處理器內(nèi)置NPU,可達(dá)到2.3 TOPS(Tera Operations Per Second,1TOPS代表處理器每秒鐘可進(jìn)行一萬(wàn)億次操作)算術(shù)處理,并實(shí)現(xiàn)先進(jìn)的AI算法處理。并且NXP為i.MX 8M Plus處理器的NPU提供了一些特定用例,例如能夠處理40,000多個(gè)英文單詞,MobileNet v1模型可以每秒處理超過(guò)500張圖像的圖像分類(lèi)。




------------------------------------

作者簡(jiǎn)介:


donatello1996,某大型企業(yè)資深嵌入式工程師,電子發(fā)燒友論壇技術(shù)大牛,同時(shí)也是飛凌嵌入式多年鐵粉,曾基于飛凌多款板卡產(chǎn)出過(guò)優(yōu)質(zhì)測(cè)評(píng)文章或使用心得。本期三篇文章為donatello1996在使用OKMX8MP-C開(kāi)發(fā)板過(guò)程中精心產(chǎn)出的干貨,在此對(duì)donatello1996表示感謝。




相關(guān)產(chǎn)品 >

  • OKMX8MP-C開(kāi)發(fā)板

    內(nèi)置NPU、ISP,AI計(jì)算能力高達(dá)2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開(kāi)發(fā)板 基于高性能低功耗工業(yè)級(jí)iMX8MP核心板設(shè)計(jì),支持多種多種高速通信接口。iMX8MP開(kāi)發(fā)板內(nèi)置NPU,AI計(jì)算能力2.3TOPS,支持4K,支持雙圖像信號(hào)處理器(ISP),是一款支持LinuxQT/android操作系統(tǒng)的iMX8MP開(kāi)發(fā)板。

    了解詳情
    OKMX8MP-C開(kāi)發(fā)板
  • FETMX8MP-C核心板

    iMX8MP核心板基于 NXP  i.MX 8M Plus 處理器設(shè)計(jì),  采用4核Cortex-A53 和 Cortex-M7架構(gòu)。支持雙千兆網(wǎng)口,iMX8MP性能強(qiáng)勁最高運(yùn)行速率可達(dá)2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列專(zhuān)注于機(jī)器學(xué)習(xí)和視覺(jué)、高級(jí)多媒體以及具有高可靠性的工業(yè)自動(dòng)化。它旨在滿(mǎn)足智慧家庭、樓宇、城市和工業(yè)4.0應(yīng)用的需求。飛凌iMX8MP核心板提供用戶(hù)手冊(cè),iMX8MP原理圖,引腳定義等。
    了解詳情
    FETMX8MP-C核心板

推薦閱讀 換一批 換一批