首頁 區(qū)塊鏈 > 正文

AI推理實(shí)踐丨多路極致性能目標(biāo)檢測最佳實(shí)踐設(shè)計(jì)解密

摘要:基于CANN的多路極致性能目標(biāo)檢測最佳實(shí)踐設(shè)計(jì)解密。

本文分享自華為云社區(qū)《基于CANN的AI推理最佳實(shí)踐丨多路極致性能目標(biāo)檢測應(yīng)用設(shè)計(jì)解密》,作者: 昇騰CANN 。


(資料圖片)

當(dāng)前人工智能領(lǐng)域,最熱門的無疑是以ChatGPT為代表的各種“新貴”大模型,它們高高在上,讓你無法觸及。但在人們的日常生活中,實(shí)際應(yīng)用需求最大的還是以Yolo模型為代表的目標(biāo)檢測“豪強(qiáng)”,它們每天都在以各種方式落地、應(yīng)用于我們?nèi)粘I畹姆椒矫婷妗?/p>

目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的一項(xiàng)關(guān)鍵技術(shù),它的任務(wù)是找出圖像中所有感興趣的目標(biāo),確定它們的類別和位置。隨著人工智能潛移默化地滲入人們的生活中,各行各業(yè)競相通過引入目標(biāo)檢測等技術(shù)打開市場空間,關(guān)于目標(biāo)檢測的各類人工智能需求也奔涌而來,比如:

  • 在交通領(lǐng)域,目標(biāo)檢測可以用來檢測道路上的行人、車輛、交通標(biāo)志等物體,提升行駛安全和通行便利性。
  • 在安全領(lǐng)域,目標(biāo)檢測可以用來檢測關(guān)鍵特征、特定行為或者可疑物體,以便快速發(fā)現(xiàn)和識別安全威脅。
  • 在醫(yī)療領(lǐng)域,目標(biāo)檢測可以用來識別身體部位、病灶、心電圖、CT影像等,以便快速輔助診斷。
  • 在生活領(lǐng)域,目標(biāo)檢測可以用于智能購物、智能家居等場景,提升人們生活的便利性。

但AI應(yīng)用開發(fā)門檻高,周期長。各類AI軟件棧理解成本高、AI算法模型與業(yè)務(wù)結(jié)合難度高、對開發(fā)人員的技能要求也較高。如何提升AI推理應(yīng)用的開發(fā)效率,降低開發(fā)門檻,是亟需改善的現(xiàn)狀。為此,昇騰CANN技術(shù)專家設(shè)計(jì)和開發(fā)了針對目標(biāo)檢測應(yīng)用的最佳實(shí)踐,讓開發(fā)者可以在昇騰平臺上快速部署目標(biāo)檢測應(yīng)用,輕松獲得幾十甚至上百路的檢測效果。下面我們就來詳細(xì)拆解一下這個(gè)實(shí)踐的設(shè)計(jì)思路。

基礎(chǔ)應(yīng)用分解

我們首先從一個(gè)基礎(chǔ)的目標(biāo)檢測推理應(yīng)用場景開始,推理流程通常包含如下幾個(gè)部分:

GPU AI推理業(yè)務(wù)流程

  1. 數(shù)據(jù)輸入是攝像頭獲取的視頻數(shù)據(jù)流,一般以H.264格式為主。
  2. 然后通過FFmpeg軟件,將連續(xù)的視頻流進(jìn)行拆幀和解碼。
  3. 下一階段是對解碼后的圖像進(jìn)行預(yù)處理,通常使用OpenCV對圖像進(jìn)行縮放,得到模型需要的圖像規(guī)格。
  4. 模型推理環(huán)節(jié),用戶可以選擇的方式比較多,比較典型的是使用TensorRT進(jìn)行推理應(yīng)用開發(fā)。
  5. 目標(biāo)檢測后處理需要進(jìn)行NMS計(jì)算,進(jìn)行圖片畫框等操作。
  6. 數(shù)據(jù)輸出階段,用戶根據(jù)需要實(shí)現(xiàn)一個(gè)結(jié)果呈現(xiàn)形式。

推理功能適配

將上面介紹的目標(biāo)檢測應(yīng)用遷移到昇騰平臺,開發(fā)者僅需關(guān)注“推理”環(huán)節(jié)的適配,包括如下兩個(gè)步驟:

  1. 將推理模型文件(onnx模型或pb模型)通過ATC工具轉(zhuǎn)化為昇騰平臺專屬的離線om文件。
  2. 使用昇騰AscendCL語言開發(fā)模型加載和模型執(zhí)行的邏輯。

基于CANN的AI推理業(yè)務(wù)流程

完成如上兩個(gè)環(huán)節(jié)后,推理應(yīng)用的功能就已經(jīng)遷移到昇騰平臺了。這時(shí)若整體的推理性能未達(dá)到理想預(yù)期,就需要進(jìn)入性能優(yōu)化提升階段。

性能提升方式一:使能DVPP硬件的高效編解碼能力

DVPP(Digital Vision Pre-Processing,數(shù)字視覺預(yù)處理)是昇騰AI處理器內(nèi)置的圖像處理單元,通過AscendCL媒體數(shù)據(jù)處理接口提供強(qiáng)大的媒體處理硬加速能力,主要包括以下功能:

  • VPC(Vision Preprocessing Core):處理YUV、RGB等格式的圖片,包括縮放、摳圖、色域轉(zhuǎn)換等。
  • JPEGD(JPEG Decoder):JPEG壓縮格式→YUV格式的圖片解碼。
  • JPEGE(JPEG Encoder):YUV格式→JPEG壓縮格式的圖片編碼。
  • VDEC(Video Decoder):H264/H265格式→YUV/RGB格式的視頻碼流解碼。
  • VENC(Video Encoder):YUV420SP格式→H264/H265格式的視頻碼流編碼。
  • PNGD(PNG Decoder):PNG格式→RGB格式的圖片解碼。

Ascend 310 AI處理器邏輯架構(gòu)中DVPP位置

開發(fā)者可以通過DVPP對圖像進(jìn)行硬件解碼和處理,提升圖像處理效率。另外,DVPP和執(zhí)行推理的計(jì)算單元AI Core是完全獨(dú)立的硬件單元,無需擔(dān)心使用DVPP后會對推理執(zhí)行的性能產(chǎn)生影響。

基于CANN的AI推理業(yè)務(wù)流程——使用DVPP進(jìn)行數(shù)據(jù)預(yù)處理

性能提升方式二:增加推理前后數(shù)據(jù)并行,讓推理步驟一刻不停

昇騰平臺采用異構(gòu)計(jì)算架構(gòu),所以要充分利用計(jì)算核心AI Core的超強(qiáng)能力,就需要保證AI Core計(jì)算需要的數(shù)據(jù)能夠持續(xù)不間斷供給,同時(shí)能夠無等待輸出。為了實(shí)現(xiàn)此能力,可以在數(shù)據(jù)預(yù)處理→模型推理,模型推理→數(shù)據(jù)后處理模塊間通過隊(duì)列的機(jī)制,增加推理模塊的并行流水。

基于CANN的AI推理業(yè)務(wù)流程——通過隊(duì)列增加推理并行流水

同理,在FFmpeg視頻拆幀和DVPP處理之間,也可以使用隊(duì)列,進(jìn)一步增加并行情況。但需要注意推理側(cè)的隊(duì)列數(shù)據(jù)會消耗硬件內(nèi)存,所以需要要合理設(shè)置。

性能提升方式三:多線程并發(fā),持續(xù)釋放AI Core性能

多線程是提升硬件資源利用率的重要手段,通過多線程的支持,可以實(shí)現(xiàn)多路不同源的視頻輸入;針對服務(wù)器多卡的場景,同樣支持多個(gè)卡并行執(zhí)行,充分釋放昇騰軟硬件的性能。

基于CANN的AI推理業(yè)務(wù)流程——多線程并發(fā)

基于目標(biāo)檢測最佳實(shí)踐,開發(fā)者可輕松實(shí)現(xiàn)已有AI推理應(yīng)用到昇騰平臺的遷移,并輕松達(dá)成高性能。開發(fā)者也可以參考此實(shí)踐快速上手AI開發(fā),玩轉(zhuǎn)昇騰平臺推理應(yīng)用。未來,CANN將持續(xù)致力于應(yīng)用開發(fā)的易用性提升,不斷滿足開發(fā)者的訴求。

點(diǎn)擊Link,獲取多路高性能目標(biāo)檢測最佳實(shí)踐源碼。

點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - www.mallikadua.com All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號-3