0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度解讀嵌入式視覺的幾個(gè)典型應(yīng)用

新機(jī)器視覺 ? 來源:博覽Boolan ? 作者:博覽Boolan ? 2021-09-23 16:38 ? 次閱讀

引言

如何做AI視覺應(yīng)用的嵌入式部署分為硬件選型,軟件框架和優(yōu)化的選擇,模型算法的設(shè)計(jì)三大板塊。

AI視覺應(yīng)用云端部署VS嵌入式端部署

大家其實(shí)對于AI深度學(xué)習(xí)已經(jīng)很熟悉了,我們在服務(wù)器上就可以用GPU或者Tensorflow來做訓(xùn)練,訓(xùn)練完之后要做推理計(jì)算。推理最簡單的一個(gè)方法就是放在云端,用云端推理的板卡比如NVIDIA的T4或者國產(chǎn)NPU做推理計(jì)算。在云端,推理計(jì)算是廣泛使用的。百度的API或者Face++等云端API是在前端探測數(shù)據(jù),把視頻圖像傳回云端,云端做完處理返回結(jié)果,這就是云端的部署。

嵌入式部署其實(shí)和云端部署很相似,只不過是在最后把模型發(fā)送到了嵌入式設(shè)備上(手機(jī)無人機(jī)),那它是在手機(jī)和無人機(jī)上來做推理計(jì)算,這就是我們認(rèn)為嵌入式部署的AI使用模型情況。

1.1

嵌入式視覺典型應(yīng)用

列舉幾個(gè)典型的嵌入式視覺應(yīng)用。

第一個(gè)是輔助駕駛或者自動(dòng)駕駛,在駕駛的車上會有AI處理加速的模塊,應(yīng)用了AI算法。在這種場景下做AI的嵌入式部署主要是為了環(huán)境的感知、目標(biāo)的檢測追蹤或者在無人機(jī)上可能會做視覺或激光的SLAM,為了在嵌入式端實(shí)現(xiàn)高實(shí)時(shí)性。

第二個(gè)是手機(jī)的美顏和AR。預(yù)覽和編輯操作都是在手機(jī)本地完成的,它其實(shí)是完成了更好的交互性,給用戶的體驗(yàn)性更好。從另一方面對于手機(jī)APP公司來說,是更加節(jié)省成本的,比如你編輯一段視頻,這里的AR操作返回給服務(wù)器來做,成本是很高的。

第三個(gè)是邊緣智能化盒子,優(yōu)勢是兼容了已有的攝像頭。在安防場景和智能社區(qū)里已有很多傳統(tǒng)的攝像頭,但使用邊緣智能化盒子,能夠處理多路且兼容已有攝像頭,從節(jié)省成本上來說也是一個(gè)好的選擇。

嵌入式AI硬件選型

2.1

Intel CPU或NVIDIA GPU

嵌入式AI的硬件是怎么選型的?

第一個(gè)常見的類型是工控機(jī),用X86的CPU加上NVIDIA的GPU,這種好處就是生態(tài)分層成熟。如果是純CPU的應(yīng)用,深度學(xué)習(xí)一類的應(yīng)用算力可能會偏弱。

第二個(gè)是NVIDIA的TX2和Nano系列,NVIDIA對于嵌入式的AI有專門的這種SoC的芯片,也出了很多板卡,相對成本低,算力也比服務(wù)器低。GPU支持了FP16和FP32的精度,對于嵌入式部署是很有幫助的,意味著模型精度和服務(wù)器上訓(xùn)練的精度幾乎能保持一致。

服務(wù)器都是用32位做訓(xùn)練,如果說其他的NPU轉(zhuǎn)換成Int8的話,必然會造成精度的損失。唯一的弱點(diǎn)就是主CPU偏弱,就只是ARM Cortex-A57的四核或多核。如果放在無人機(jī)上使用,無人機(jī)應(yīng)用很多是很復(fù)雜的,不是深度學(xué)習(xí)或GPU就能加速的,這里用ARM Cortex-A57可能就會存在問題。這實(shí)際上是NVIDIA的嵌入式系列面臨的一些挑戰(zhàn),主要是要評估組合性能是不是好。

2.2

AMD APU

目前AMD的處理器用的偏少。它的CPU比較好,能夠?qū)?biāo)到i7主屏比較高的CPU ,GPU也不錯(cuò),比TX2的性能要提高2倍,整體性能還可以,也可以利用X86上面的生態(tài),存在的問題是它的編程需要OpenCL,這比CUDA要弱,就是它存在深度學(xué)習(xí)的部署門檻。另外就是它這款盒子的功耗偏高,比NVIADA的TX2或Nano高一倍,但性能加強(qiáng)了。利用AMD的APU盒子放在駕校車上是比較好用的。

2.3

主流嵌入式AI開發(fā)板

大家也知道具備NPU的SoC芯片其實(shí)是越來越多的,之前是以加速卡的形式來存在,比如一個(gè)USB的NPU加速棒插在已有設(shè)備上。如果你是做嵌入式的部署,不要選擇這種分離式的USB加速設(shè)備,因?yàn)樗€(wěn)定性較差,另外數(shù)據(jù)傳輸比較麻煩。盡量選擇集成在一起的帶NPU的SoC,這是第一選擇。目前帶NPU的SoC也是越來越多的,廠商也越來越多。在華為芯片被禁之前,市面上主要的選擇都是華為系列,大概有四款帶NPU的,從低端的0.5T-1T算力,2T-4T算力都有覆蓋。它的好處是成本相比較低,比NVIDIA的同樣算力成本要低很多;第二個(gè)是它的ISP挑的比較好。下面的都是可以替換華為系列的,可以選擇瑞芯微的RK3399、RK1808、RK3588或者全志等。

目前的NPU基本都是8bit量化,在8bit量化下模型精度是如何保證的,工具鏈的成熟度是一個(gè)問題,除此之外就是算力的選擇。如果說想替換華為芯片,要求其他選型是性能超過2T算力,ISP不錯(cuò),性價(jià)比不錯(cuò)的SoC選擇目前是比較少的,至少在去年底來看還沒有。

第三塊常見的開發(fā)板工作是用FPGA來做AI計(jì)算,主要用在工業(yè)場景下,實(shí)時(shí)性更好。比如在野外、工業(yè)級的無人機(jī)或者研究所機(jī)構(gòu)會要求國產(chǎn)FPGA達(dá)到毫秒級左右的實(shí)時(shí)性。這部分的FPGA基本上是要自研AI的加速軟核。圖中是我們自研的一個(gè)AI加速軟核,它已經(jīng)支持了很多常見的FPGA,AI加速軟盒基本上結(jié)構(gòu)都是這樣。

這部分IP是一個(gè)軟核的IP,部署在FPGA資源上,核心部分有一個(gè)計(jì)算陣列,完成卷積操作。

如果NPU公司卷積只做一個(gè)3x3,就意味著這NPU是用不了的,雖然核心部分加速的很快,但是其他部分必須也是搬到NPU上才能整體的做嵌入式的部署和加速,所以就會需要有相應(yīng)的部署模塊緩沖數(shù)據(jù)。

數(shù)據(jù)搬運(yùn)需要把它從內(nèi)存搬運(yùn)到芯片的緩存上,控制邏輯相當(dāng)于發(fā)指令的,控制調(diào)度、計(jì)算部件是怎么執(zhí)行的,基本上NPU都是這幾個(gè)部件組成的,具體的差別是在于并行度的方式不同,可能加了不同的加速部件來得到更好的性能。對于NPU來說第一個(gè)要考查是卷積性能到底怎么樣,第二個(gè)算子是不是能支持的更多,支持的算子更多意味著在CPU端所跑的算子相對少一些而且支持的模型更多。

這個(gè)是我們實(shí)際用FPGA做了一些項(xiàng)目,做無人機(jī),檢測情況和可見光的處理,都是比較常用的。

IoT級別的AI操作,我舉的例子是法國的一家叫Greenwave公司,做的是無人機(jī)的一個(gè)自主的飛行控制。在性能方面差很多,基本上只能做到每秒18幀的處理速度,計(jì)算在100M Hz的功耗頻率和6.5fps下整體的功耗是40mW,是非常低的功耗了。IoT級別還會使用在做智能門鈴的場景下,以前的門鈴只是用紅外線檢查是否有人過來,這個(gè)準(zhǔn)確度不高。如果是加一個(gè)智能喚醒模塊在門鈴上,就可以提高判斷的準(zhǔn)確性,這是IoT級別的智能識別圖像。

嵌入式AI軟件性能優(yōu)化

3.1

前向推理框架

實(shí)際上在軟件的推理框架上已經(jīng)有非常多的選擇了,有NVIDIA的TensorRT,Tensorflow lite,騰訊的NCNN,TNN,阿里MNN等等。圖中是Tensorflow lite整體的圖,從訓(xùn)練后的Tensorflow lite的網(wǎng)絡(luò)模型中間會有一個(gè)轉(zhuǎn)換步驟,轉(zhuǎn)換到Tensorflow lite支持的網(wǎng)絡(luò)結(jié)構(gòu),然后再嵌入到手機(jī)APP里。

前后推理框架的核心觀點(diǎn)有五個(gè)。第一個(gè)是設(shè)備管理,比如現(xiàn)在的嵌入式SoC有GPU或者NPU,推理框架能支持這些設(shè)備。第二個(gè)是模型管理,單模型和多模型是不同的管理方式。第三個(gè)是內(nèi)存管理和儲存格式,要考慮是以優(yōu)化內(nèi)存占用優(yōu)先還是以性能優(yōu)先。第四個(gè)是層級融合,Barch Norm層可以和卷積層合并,當(dāng)算子層中之間融合的越多,節(jié)省仿存的操作來發(fā)揮更多的效率。第五個(gè)是實(shí)現(xiàn)方法選擇,這塊需要框架要來處理,根據(jù)不同的輸入特性來選擇不同的實(shí)現(xiàn)算子優(yōu)化的方法,來達(dá)到最高的效率。

3.2

性能評價(jià)

看一下這個(gè)性能對比的例子,從算子優(yōu)化上其實(shí)就可以做到不少的性能提升,在算子上針對卷積算子做了優(yōu)化,在同樣的一個(gè)嵌入式的平臺,獲得了一倍的性能提升,硬件是完全相同的,就靠軟件來做。

以目前來說,性能差距已經(jīng)非常低了。圖中數(shù)據(jù)柱狀線代表的是時(shí)間,測了很多不同的模型。比如ARM Cortex-A76和ARM Cortex-A55,可以看到差距非常小。

我的結(jié)論是如果AI部署是用ARM的CPU,對于小模型哪個(gè)方便用哪個(gè),對于大模型實(shí)際上是有NPU存在,可以直接用NPU來做,跟推理框架的成熟度關(guān)系不大。

3.3

NPU的性能優(yōu)化

NPU的部署應(yīng)該怎么做或者NPU的性能優(yōu)化能做什么,現(xiàn)在的NPU公司存在兩類情況,一類是完全封死的狀態(tài),通過Caffe做模型轉(zhuǎn)化,很多算子不支持,要回到CPU來做。

這種情況的轉(zhuǎn)化模型成本很高,遇到一個(gè)新的模型需要算法工程師進(jìn)行手動(dòng)切分,很少有工具去劃分哪些算子是NPU支持的,轉(zhuǎn)化起來就比較麻煩。另一類是類似GPU編程接口,就是提供一個(gè)基礎(chǔ)的加速部件,可以做算子的定制化,好處是網(wǎng)絡(luò)進(jìn)展較快。當(dāng)出現(xiàn)特殊算子的時(shí)候,不用再放回CPU來做,可以在加速卡NPU上做,這是一個(gè)比較好的趨勢。

嵌入式AI算法模型

4.1

深度學(xué)習(xí)模型

針對嵌入式AI的深度學(xué)習(xí)模型大概有四塊,包含ARM Soc CPU、lnt8量化、模型剪枝和新的網(wǎng)絡(luò)結(jié)構(gòu)。ARM Soc CPU來跑深度學(xué)習(xí)模型,卷積在10層卷積或以下,就是小模型才能流暢的跑視覺應(yīng)用。

4.2

Int8量化精度

不管是在CPU還是NPU都要跑量化的模型,發(fā)揮著很重要的速度作用。量化的基本原理是如何用定點(diǎn)數(shù)來表示浮點(diǎn)數(shù),或者更高的效率表示浮點(diǎn)數(shù)?;镜墓绞钦麛?shù)值減去零點(diǎn)值得出的值乘以刻度值,得出一個(gè)浮點(diǎn)數(shù),簡單的量化就是這樣處理的。

在處理量化的時(shí)候需要注意,第一個(gè)轉(zhuǎn)化成量化是Per layer量化還是Per Channel量化,Per layer量化代表著輸出的全部用一個(gè)量化參數(shù),Per Channel量化代表著每一個(gè)Channel都是不同的,量化的系數(shù)也是不同的。目前來說如果想達(dá)到Int8量化比較好的精度,要求模型的權(quán)重參數(shù)要做Per Channel量化。Feature map一般都是用Per layer量化,成本相對較低,硬件實(shí)現(xiàn)也更容易。

第二個(gè)需要注意的是刻度值怎么選擇,一種是支持2的冪,轉(zhuǎn)化的乘法通過定點(diǎn)數(shù)的移位操作當(dāng)成浮點(diǎn),硬件容易實(shí)現(xiàn),但精度值差。另一種就是支持任意浮點(diǎn)數(shù),精度值高。

第三個(gè)注意的是對稱量化和非對稱量化,是和零點(diǎn)值相關(guān)的。對稱量化的零點(diǎn)是不能動(dòng)的,好處是更容易實(shí)現(xiàn),壞處是數(shù)據(jù)分布有問題。

第四個(gè)注意的是QAT,量化感知的訓(xùn)練。實(shí)際上就是把量化數(shù)據(jù)過程加入進(jìn)去,讓權(quán)重參數(shù)和Feature map的浮點(diǎn)數(shù)來更容易被量化。

最后一個(gè)就是有些模型的量化精度是很難做,需要看大家對于量化精度調(diào)點(diǎn)的要求。不同意調(diào)點(diǎn)的就需要做混合來保證精度。

4.3

模型壓縮技術(shù)-剪枝法

模型壓縮有兩種常用的,一種是非結(jié)構(gòu)化的模型壓縮,靈活程度和稀疏度更高,目前的NPU、FPGA或者加速卡沒辦法去識別權(quán)重的零值。結(jié)構(gòu)化的剪枝就是去除Channel或layer,需要識別出哪些是重要的通道,哪些是不重要的。

當(dāng)剪枝和量化綜合在一起時(shí)可能會遇到新的問題。lnt8的量化是進(jìn)一步的信息壓縮,從浮點(diǎn)到定點(diǎn)再到信息損失;剪枝是去除Channel或layer,也是對信息進(jìn)行壓縮,當(dāng)兩部分結(jié)合時(shí),有效信息被去除很多,導(dǎo)致精度大幅下降,有可能最后直接崩掉。在實(shí)際做的過程中,剪枝和量化需要迭代分開做,這樣才能保證精度。

總結(jié)

整體上在AI的嵌入式應(yīng)用里需要硬件的選型,軟件框架和優(yōu)化的選擇,模型算法的設(shè)計(jì),剪枝和量化的綜合來處理完成,還需要考慮不同的AI部署應(yīng)用有不同的模型需求。

以上,感謝澎峰科技創(chuàng)始人張先軼在2021全球機(jī)器學(xué)習(xí)技術(shù)大會上的主題分享。

轉(zhuǎn)載自 | 博覽Boolan

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18817

    瀏覽量

    298535
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209361
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28877

    瀏覽量

    266220
  • NPU
    NPU
    +關(guān)注

    關(guān)注

    2

    文章

    247

    瀏覽量

    18384

原文標(biāo)題:談?wù)勄度胧揭曈X的幾個(gè)典型應(yīng)用

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式linux開發(fā)的基本步驟有哪些?

    之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個(gè)方面: 1.1 處理器 嵌入式Linux開發(fā)需要一個(gè)處理器,常見的處理器有ARM、MIPS、PowerPC等。選擇處理器時(shí),需要考慮處理器的性能、功耗、成本等因素。 1.2 存儲器
    的頭像 發(fā)表于 09-02 09:11 ?180次閱讀

    機(jī)器視覺嵌入式中的應(yīng)用

    機(jī)器視覺嵌入式系統(tǒng)中的應(yīng)用是一個(gè)廣泛而深入的話題,涉及到許多不同的領(lǐng)域和技術(shù)。 機(jī)器視覺嵌入式系統(tǒng)中的應(yīng)用 1. 引言 機(jī)器視覺是一種模
    的頭像 發(fā)表于 07-16 10:30 ?265次閱讀

    深度學(xué)習(xí)算法在嵌入式平臺上的部署

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)算法在各個(gè)領(lǐng)域的應(yīng)用日益廣泛。然而,將深度學(xué)習(xí)算法部署到資源受限的嵌入式平臺上,仍然是一個(gè)具有挑戰(zhàn)性的任務(wù)。本文將從嵌入式平臺的特點(diǎn)、
    的頭像 發(fā)表于 07-15 10:03 ?730次閱讀

    嵌入式技術(shù)領(lǐng)域的視覺、安全與AI應(yīng)用

    本次2024年度德國版嵌入式世界展的大獎(jiǎng)評選共收到全球百余家企業(yè)的申請,經(jīng)由評審團(tuán)嚴(yán)格篩選,最終選出三項(xiàng)候選提名,并于會場進(jìn)行了隆重的頒獎(jiǎng)儀式。其中,嵌入式視覺、安全與安防、人工智能等應(yīng)用領(lǐng)域備受矚目。
    的頭像 發(fā)表于 04-29 11:20 ?255次閱讀

    嵌入式軟件設(shè)計(jì)的原則分享

    嵌入式軟件開發(fā)如果具有更好的閱讀性、擴(kuò)展性以及維護(hù)性,就需要考慮很多因素。今天給大家分享幾個(gè)嵌入式軟件設(shè)計(jì)的原則。
    發(fā)表于 02-25 10:54 ?498次閱讀
    <b class='flag-5'>嵌入式</b>軟件設(shè)計(jì)的原則分享

    什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)。用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2131次閱讀

    低功耗嵌入式計(jì)算解決方案:選擇處理器的幾個(gè)關(guān)鍵因素

    供廣泛的處理器產(chǎn)品組合。這些處理器的多樣性使原始設(shè)備制造商能夠評估特定應(yīng)用和部署的最佳性能。嵌入式計(jì)算解決方案選擇處理器時(shí),會考慮幾個(gè)關(guān)鍵因素,以確保合適的CPU為任
    的頭像 發(fā)表于 12-04 16:45 ?391次閱讀
    低功耗<b class='flag-5'>嵌入式</b>計(jì)算解決方案:選擇處理器的<b class='flag-5'>幾個(gè)</b>關(guān)鍵因素

    適合智慧城市和樓宇應(yīng)用的ADIS1700x嵌入式視覺檢測模塊

    電子發(fā)燒友網(wǎng)站提供《適合智慧城市和樓宇應(yīng)用的ADIS1700x嵌入式視覺檢測模塊.pdf》資料免費(fèi)下載
    發(fā)表于 11-28 11:38 ?0次下載
    適合智慧城市和樓宇應(yīng)用的ADIS1700x<b class='flag-5'>嵌入式</b><b class='flag-5'>視覺</b>檢測模塊

    定制嵌入式主板:滿足客戶的實(shí)際需求

    隨著物聯(lián)網(wǎng)、智能家居、智能工廠等應(yīng)用的不斷發(fā)展,嵌入式系統(tǒng)的應(yīng)用場景也越來越廣泛。嵌入式系統(tǒng)的核心部分是嵌入式主板,而定制化的嵌入式主板已經(jīng)成為了很多企業(yè)和項(xiàng)目的首選。本文將從以下
    的頭像 發(fā)表于 11-24 11:51 ?722次閱讀
    定制<b class='flag-5'>嵌入式</b>主板:滿足客戶的實(shí)際需求

    嵌入式程序員應(yīng)知道的幾個(gè)基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應(yīng)知道的幾個(gè)基本問題.pdf》資料免費(fèi)下載
    發(fā)表于 11-20 11:21 ?0次下載
    <b class='flag-5'>嵌入式</b>程序員應(yīng)知道的<b class='flag-5'>幾個(gè)</b>基本問題

    什么才是嵌入式Flash的邊界?

    、高可靠性等特點(diǎn)。但嵌入式Flash的邊界主要包括以下幾個(gè)方面。 首先,嵌入式Flash的物理存儲空間是有限的,這個(gè)邊界可以根據(jù)存儲芯片的型號和容量來確定。通常,嵌入式Flash的存儲
    的頭像 發(fā)表于 10-29 17:29 ?414次閱讀

    嵌入式視覺技術(shù)如何賦予機(jī)器觀察能力

    “看”的能力一直被認(rèn)為是生物體獨(dú)有的特質(zhì),它讓我們能夠識別形狀、顏色、紋理和深度,進(jìn)而與外部世界互動(dòng)。 而現(xiàn)在,這個(gè)能力正被賦予機(jī)器,這就是機(jī)器視覺更專業(yè)地說是嵌入式視覺。 正是因?yàn)?/div>
    的頭像 發(fā)表于 10-18 11:36 ?2613次閱讀

    嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信方法

    電子發(fā)燒友網(wǎng)站提供《嵌入式機(jī)器視覺系統(tǒng)中ARM與DSP的數(shù)據(jù)通信方法.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:19 ?0次下載
    <b class='flag-5'>嵌入式</b>機(jī)器<b class='flag-5'>視覺</b>系統(tǒng)中ARM與DSP的數(shù)據(jù)通信方法

    基于Linux的嵌入式視覺系統(tǒng)設(shè)計(jì)原理

    電子發(fā)燒友網(wǎng)站提供《基于Linux的嵌入式視覺系統(tǒng)設(shè)計(jì)原理.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 11:26 ?0次下載
    基于Linux的<b class='flag-5'>嵌入式</b><b class='flag-5'>視覺</b>系統(tǒng)設(shè)計(jì)原理

    萊迪思推出首款集成USB的小型嵌入式視覺FPGA

    業(yè)界首款擁有硬核USB的人工智能&嵌入式視覺應(yīng)用FPGA,拓展小型、低功耗FPGA產(chǎn)品系列
    發(fā)表于 09-27 10:25 ?488次閱讀