在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

詳解ENet:CPU可以實(shí)時(shí)的道路分割網(wǎng)絡(luò)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-15 00:18 ? 次閱讀

來(lái)源:OpenCV學(xué)堂
作者:gloomyfish

前言

OpenCV DNN模塊支持的圖像語(yǔ)義分割網(wǎng)絡(luò)FCN是基于VGG16作為基礎(chǔ)網(wǎng)絡(luò),運(yùn)行速度很慢,無(wú)法做到實(shí)時(shí)語(yǔ)義分割。2016年提出的ENet實(shí)時(shí)語(yǔ)義分割網(wǎng)絡(luò)基于編碼與解碼的網(wǎng)絡(luò)語(yǔ)義分割方式,類似UNet網(wǎng)絡(luò),通過(guò)構(gòu)建自定義Block塊,在Cityscapes, CamVid, SUN數(shù)據(jù)集上實(shí)現(xiàn)了性能與實(shí)時(shí)雙提高。

ENet網(wǎng)絡(luò)結(jié)構(gòu)

作者從ResNet網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中收到啟發(fā),定義兩個(gè)新的Block結(jié)構(gòu),如下:

其中a是初始Block,非重疊2x2最大池化,左側(cè)卷積步長(zhǎng)為2,然后13個(gè)filters之連接合并,該結(jié)構(gòu)注意是收到了Inception改進(jìn)模型的啟發(fā)。B是ENet的bottleneck模塊,其中卷積可能是正常卷積、空洞卷積、反卷積,使用3x3或者5x5的filters,最終合并在一起是按空間位置相加。兩個(gè)1x1的卷積分別用來(lái)降低維度與擴(kuò)展,使用BN/Dropout正則化,PReLU非線性激活。最終的ENet網(wǎng)絡(luò)模型結(jié)構(gòu)如下:

其中stage2跟stage3結(jié)構(gòu)相同,stage4跟stage5屬于解碼部分。

設(shè)計(jì)考量

常見的深度學(xué)習(xí)語(yǔ)義分割模型在下采樣操作上的兩個(gè)缺點(diǎn):一是降低Feature Map的分辨率會(huì)導(dǎo)致圖像空間信息損失,特別是圖像邊緣信息,這個(gè)對(duì)語(yǔ)義分割精度有明顯影響;二是像素級(jí)別的語(yǔ)義分割網(wǎng)絡(luò)要求輸入跟輸出的分辨率保持一致,這個(gè)就要求強(qiáng)的下采樣跟強(qiáng)的上采樣必須對(duì)稱,這個(gè)增加了模型的計(jì)算與參數(shù)量。其中第一個(gè)問(wèn)題在FCN與SegNet網(wǎng)絡(luò)中通過(guò)在編碼階段疊加Feature Map與在解碼階段通過(guò)稀疏上采樣來(lái)抑制,但是強(qiáng)的下采樣依然對(duì)整個(gè)語(yǔ)義分割精度有傷害,要在設(shè)計(jì)時(shí)候適當(dāng)?shù)募右韵拗啤?/p>

但是下采樣同樣可以幫助獲得較大的感受野,區(qū)分不同的類別,作者發(fā)現(xiàn)空洞卷積在這個(gè)方面特別有幫助,ENet為了獲得實(shí)時(shí)性能,采用了早期下采樣策略來(lái)降低計(jì)算SegNet跟UNet都是對(duì)稱的網(wǎng)絡(luò)結(jié)構(gòu),ENet采用大的編碼網(wǎng)絡(luò),小的解碼網(wǎng)絡(luò)實(shí)現(xiàn)的不對(duì)稱結(jié)構(gòu),編碼網(wǎng)絡(luò)實(shí)現(xiàn)分類任務(wù),解碼網(wǎng)絡(luò)主要是優(yōu)化細(xì)節(jié),更好的輸出結(jié)果。

此外作者在設(shè)計(jì)過(guò)程中還考慮了非線性激活、空洞卷積、正則化方式的影響。

OpenCV DNN使用ENet道路分割

OpenCV DNN模塊從OpenCV4.0版本開始支持ENet網(wǎng)絡(luò)模型加載與解析,其中的道路分割模型可以從下面的地址下載:

https://github.com/e-lab/ENet-training

在OpenCV DNN使用該模型時(shí)轉(zhuǎn)換Blob輸入相關(guān)參數(shù)信息如下:

mean: [0, 0, 0]

scale: 0.00392

width: 512

height: 256

rgb: true

classes: "enet-classes.txt"

其中分類文件enet-classes.txt可以從OpenCV的sample/data/dnn中發(fā)現(xiàn)。輸出的數(shù)據(jù)格式為:Nx20xHxW,其中N=1表示每次輸入的一張圖像,20是基于Cityscapes數(shù)據(jù)集訓(xùn)練的20個(gè)類別標(biāo)簽,H跟W是輸入時(shí)圖像分辨率(512x256)。

最初版本代碼實(shí)現(xiàn)

該代碼實(shí)現(xiàn)是來(lái)自C++版本的翻譯,完整的演示代碼如下:

#loadCNNmodelbin_model="D:/projects/models/enet/model-best.net";net=cv.dnn.readNetFromTorch(bin_model)#readinputdataframe=cv.imread("D:/images/software.jpg");blob=cv.dnn.blobFromImage(frame,0.00392,(512,256),(0,0,0),True,False);cv.imshow("input",frame)#Runamodelnet.setInput(blob)score=net.forward()#Putefficiencyinformation.t,_=net.getPerfProfile()label='Inferencetime:%.2fms'%(t*1000.0/cv.getTickFrequency())print(score.shape)#generatecolortablecolor_lut=[]n,con,h,w=score.shapeforiinrange(con):b=np.random.randint(0,256)g=np.random.randint(0,256)r=np.random.randint(0,256)color_lut.append((b,g,r))maxCl=np.zeros((h,w),dtype=np.int32);maxVal=np.zeros((h,w),dtype=np.float32);#findmaxscorefor20channelsonpixel-wiseforiinrange(con):forrowinrange(h):forcolinrange(w):t=maxVal[row,col]s=score[0,i,row,col]ifs>t:maxVal[row,col]=smaxCl[row,col]=i#colorfulthesegmentationimagesegm=np.zeros((h,w,3),dtype=np.uint8)forrowinrange(h):forcolinrange(w):index=maxCl[row,col]segm[row,col]=color_lut[index]h,w=frame.shape[:2]segm=cv.resize(segm,(w,h),None,0,0,cv.INTER_NEAREST)print(segm.shape,frame.shape)frame=cv.addWeighted(frame,0.2,segm,0.8,0.0)cv.putText(frame,label,(0,15),cv.FONT_HERSHEY_SIMPLEX,0.5,(0,255,0))cv.imshow("ENet-Demo",frame)cv.imwrite("D:/result.png",frame)cv.waitKey(0)cv.destroyAllWindows()

總的來(lái)說(shuō)比較啰嗦!

修改后代碼熟實(shí)現(xiàn)

上面是我在2019年3月份時(shí)候在OpenCV研習(xí)社 的代碼分享,當(dāng)時(shí)主要是把C++代碼直接翻譯過(guò)來(lái),并沒(méi)有太多考慮,今天又重新看了一下感覺(jué)自己寫了點(diǎn)垃圾代碼,所以重新整理了一下,把輸出解析的部分基于Numpy跟OpenCV-Python函數(shù)做了簡(jiǎn)化,最終得到的代碼如下:

 1#loadCNNmodel 2bin_model="D:/projects/models/enet/model-best.net"; 3net=cv.dnn.readNetFromTorch(bin_model) 4#readinputdata 5frame=cv.imread("D:/images/spacecity.png"); 6blob=cv.dnn.blobFromImage(frame,0.00392,(512,256),(0,0,0),True,False); 7cv.imshow("input",frame) 8h,w,c=frame.shape 910#Runamodel11net.setInput(blob)12score=net.forward()13#Putefficiencyinformation.14t,_=net.getPerfProfile()15label='Inferencetime:%.2fms'%(t*1000.0/cv.getTickFrequency())16score=np.squeeze(score)17score=score.transpose((1,2,0))18score=np.argmax(score,2)19mask=np.uint8(score)20mask=cv.cvtColor(mask,cv.COLOR_GRAY2BGR)21cv.normalize(mask,mask,0,255,cv.NORM_MINMAX)22cmask=cv.applyColorMap(mask,cv.COLORMAP_JET)23cmask=cv.resize(cmask,(w,h))24dst=cv.addWeighted(frame,0.7,cmask,0.3,0)25cv.putText(dst,label,(50,50),cv.FONT_HERSHEY_SIMPLEX,0.75,(0,0,255),2)26cv.imshow("dst",dst)27cv.waitKey(0)

總的執(zhí)行時(shí)間也大大減少,主要去除了一些無(wú)謂的循環(huán)解析輸出數(shù)據(jù)部分。CPU上10+FPS 應(yīng)該沒(méi)問(wèn)題!實(shí)時(shí)get!

審核編輯 黃昊宇

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

    關(guān)注

    68

    文章

    11015

    瀏覽量

    215318
  • 人工智能
    +關(guān)注

    關(guān)注

    1804

    文章

    48486

    瀏覽量

    245214
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    汽車導(dǎo)航軟件是如何知道道路實(shí)時(shí)擁堵情況的

    知道前方道路是否擁堵,屬于實(shí)況導(dǎo)航。實(shí)況導(dǎo)航必須在聯(lián)網(wǎng)條件下實(shí)現(xiàn),導(dǎo)航軟件通過(guò)當(dāng)?shù)亟煌ǚ?wù)機(jī)構(gòu)獲得道路實(shí)況,再通過(guò)導(dǎo)航界面顯示并報(bào)告給用戶。 道路實(shí)時(shí)情況來(lái)源有幾種: 1、早期的
    發(fā)表于 11-28 14:42

    Altium Designer 19用顏色區(qū)分內(nèi)電層的各個(gè)分割區(qū)域的方法

    在進(jìn)行多層板設(shè)計(jì)的時(shí)候,當(dāng)PCB中的一個(gè)內(nèi)電層上有多個(gè)分割區(qū)域的的時(shí)候,可以用不同的顏色區(qū)別,顯示清晰,方便識(shí)別分割區(qū)域的網(wǎng)絡(luò)。 其實(shí)就是通過(guò)改變其所屬的
    發(fā)表于 09-25 17:50

    C6748 ENET_ECHO例程燒寫到NOR后網(wǎng)絡(luò)起不來(lái)

    C6748 的CMD中區(qū)都是放在DDR2中,ENET_ECHO例程燒寫到NOR沒(méi)問(wèn)題,網(wǎng)絡(luò)正常。發(fā)現(xiàn)運(yùn)行速度慢,嘗試CMD修改放到RAM中運(yùn)行,仿真器可以跑,但是燒寫到NOR后網(wǎng)絡(luò)都起
    發(fā)表于 09-26 08:29

    如何通過(guò)任務(wù)分割提高嵌入式系統(tǒng)的實(shí)時(shí)性?

    如何通過(guò)任務(wù)分割提高嵌入式系統(tǒng)的實(shí)時(shí)性?
    發(fā)表于 04-28 07:00

    iMX6UL核心板CPUENET1_TX_CLK信號(hào)是可以配置成50Mhz時(shí)鐘輸出嗎?

    iMX6UL核心板和開發(fā)板之間的以太網(wǎng)RMII接口,將CPUENET1_TX_CLK信號(hào)直接連到PHY芯片(KSZ8081RNB)的X1管腳了,此處未使用外部時(shí)鐘;我有個(gè)疑問(wèn),這里CPUE
    發(fā)表于 01-11 07:27

    你能確認(rèn)ENET-AVB2對(duì)應(yīng)ENET1控制器,ENET-AVB1對(duì)應(yīng)ENET0控制器嗎?

    在IMX8X參考手冊(cè)IMX8DQXPRM中表2-5。連接內(nèi)存映射給出以下映射:基址 5B05_0000 處的 ENET-AVB2基本地址 5B04_0000 處的 ENET-AVB1 你能確認(rèn)ENET-AVB2對(duì)應(yīng)
    發(fā)表于 04-07 07:47

    rt1052 ENET_ReadFrame返回kStatus_ENET_RxFrameFail,要做什么處理?

    我在使用rt1052時(shí),調(diào)用ENET_ReadFrame,如果返回kStatus_ENET_RxFrameFail,需要做什么處理,其返回的代碼部分如下:/* 將幀存儲(chǔ)在多個(gè)緩沖區(qū)描述符上
    發(fā)表于 04-14 08:20

    ENET_RXBD_NUM值是否影響接收中斷響應(yīng)?

    時(shí)間。但是當(dāng)ENET_RXBD_NUM為4時(shí),我發(fā)現(xiàn)網(wǎng)絡(luò)傳輸時(shí)間超過(guò)4ms,而ENET_RXBD_NUM為1時(shí),網(wǎng)絡(luò)傳輸時(shí)間為200us。為什么差異如此之大?我沒(méi)有設(shè)置RXIC。問(wèn)題一
    發(fā)表于 04-17 06:37

    通過(guò)任務(wù)分割提高嵌入式系統(tǒng)的實(shí)時(shí)

    分析長(zhǎng)任務(wù)對(duì)嵌入式系統(tǒng)實(shí)時(shí)性的影響,在此基礎(chǔ)上提出任務(wù)分割是提高嵌入式系統(tǒng)實(shí)時(shí)性的一種有效途徑; 總結(jié)長(zhǎng)任務(wù)分割的方法, 給出一個(gè)通過(guò)任務(wù)分割
    發(fā)表于 05-15 15:07 ?4次下載

    Facebook AI使用單一神經(jīng)網(wǎng)絡(luò)架構(gòu)來(lái)同時(shí)完成實(shí)例分割和語(yǔ)義分割

    這一新架構(gòu)“全景 FPN ”在 Facebook 2017 年發(fā)布的 Mask R-CNN 的基礎(chǔ)上添加了一個(gè)用于語(yǔ)義分割的分支。這一新架構(gòu)可以同時(shí)對(duì)圖像進(jìn)行實(shí)例和語(yǔ)義分割,而且精確度與只進(jìn)行實(shí)例或語(yǔ)義
    的頭像 發(fā)表于 04-22 11:46 ?3043次閱讀
    Facebook AI使用單一神經(jīng)<b class='flag-5'>網(wǎng)絡(luò)</b>架構(gòu)來(lái)同時(shí)完成實(shí)例<b class='flag-5'>分割</b>和語(yǔ)義<b class='flag-5'>分割</b>

    一文匯總當(dāng)前主流的分割網(wǎng)絡(luò)

    本文的12篇文章總結(jié)了當(dāng)前主流的分割網(wǎng)絡(luò)及其結(jié)構(gòu),涵蓋從編解碼結(jié)構(gòu)到解碼器設(shè)計(jì);從感受野到多尺度融合;從CNN到RNN與CRF;從2D分割到3D分割;從語(yǔ)義
    的頭像 發(fā)表于 06-29 09:21 ?7545次閱讀
    一文匯總當(dāng)前主流的<b class='flag-5'>分割</b><b class='flag-5'>網(wǎng)絡(luò)</b>

    RGPNET:復(fù)雜環(huán)境下實(shí)時(shí)通用語(yǔ)義分割網(wǎng)絡(luò)

    本文介紹的論文提出了一種新的實(shí)時(shí)通用語(yǔ)義分割體系結(jié)構(gòu)RGPNet,在復(fù)雜環(huán)境下取得了顯著的性能提升。作者: Tom Hardy首發(fā):3D視覺(jué)工坊...
    的頭像 發(fā)表于 12-10 19:15 ?819次閱讀

    分析總結(jié)基于深度神經(jīng)網(wǎng)絡(luò)的圖像語(yǔ)義分割方法

    隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展及其在語(yǔ)義分割領(lǐng)域的廣泛應(yīng)用,語(yǔ)義分割效果得到顯著提升。對(duì)基于深度神經(jīng)網(wǎng)絡(luò)的圖像語(yǔ)義分割方法進(jìn)行分析與總結(jié),根據(jù)網(wǎng)絡(luò)
    發(fā)表于 03-19 14:14 ?21次下載
    分析總結(jié)基于深度神經(jīng)<b class='flag-5'>網(wǎng)絡(luò)</b>的圖像語(yǔ)義<b class='flag-5'>分割</b>方法

    MELSEC iQ F FX5 ENET硬件手冊(cè)

    MELSEC iQ-F FX5-ENET 硬件手冊(cè) 產(chǎn)品規(guī)格書.FX5-ENET 型以太網(wǎng)模塊 ( 以下簡(jiǎn)稱 FX5-ENET),是智能設(shè)備站與 CC-Link IE 現(xiàn)場(chǎng)網(wǎng)絡(luò) Ba
    發(fā)表于 08-28 09:24 ?0次下載
    MELSEC iQ F FX5 <b class='flag-5'>ENET</b>硬件手冊(cè)

    MELSEC iQ F FX5 ENET/IP硬件手冊(cè)

    MELSEC iQ-F FX5-ENET/IP 硬件手冊(cè) 產(chǎn)品規(guī)格書.FX5-ENET/IP型以太網(wǎng)模塊 (以下簡(jiǎn)稱 FX5-ENET/IP),是智能設(shè)備站與 EtherNet/IP網(wǎng)絡(luò)
    發(fā)表于 08-28 09:23 ?1次下載
    MELSEC iQ F FX5 <b class='flag-5'>ENET</b>/IP硬件手冊(cè)
    主站蜘蛛池模板: 永久福利盒子日韩日韩免费看 | 久久99精品福利久久久 | 午夜黄网站 | 男人天堂久久 | 717影院理论午夜伦不卡久久 | 欧美综合成人网 | 91黄色影院| 亚州三级视频 | 久久99热精品 | 2021久久精品国产99国产精品 | 在线观看黄网 | 97色伦人人| 色视频网站免费 | 天天搞天天色 | 骚淫 | 日本欧洲亚洲一区在线观看 | 精品四虎免费观看国产高清午夜 | 国模吧新入口 | 精品国产_亚洲人成在线高清 | 红怡院欧洲 | 午夜黄页网站在线播放 | 又粗又长又色又爽视频 | 在线观看播放视频www | 午夜激情小视频 | 一区二区三区在线观看视频 | 岬奈奈美在线 国产一区 | 国产99久9在线视频 国产99久久九九精品免费 | 狠狠狠狠干| 黄色三级视频 | 1024 在线观看视频免费 | 特级中国aaa毛片 | 国色天香网在线 | 天天做天天爱天天综合网2021 | 日本黄色绿像 | 天堂资源www天堂在线 | 日韩午夜免费 | 97久久天天综合色天天综合色hd | 亚综合 | 男人呻吟双腿大开男男h互攻 | 四虎亚洲精品 | 十三以下岁女子毛片免费播放 |