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

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

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

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

介紹RT-DETR兩種風(fēng)格的onnx格式和推理方式

jf_pmFSk4VX ? 來(lái)源:GiantPandaCV ? 2023-05-17 17:46 ? 次閱讀

【前言】 RT-DETR是由百度近期推出的DETR-liked目標(biāo)檢測(cè)器,該檢測(cè)器由HGNetv2、混合編碼器和帶有輔助預(yù)測(cè)頭的Transformer編碼器組成,整體結(jié)構(gòu)如下所示。

cfe08870-ec2f-11ed-90ce-dac502259ad0.png

本文將采用RT-DETR兩種不同風(fēng)格的onnx格式,使用onnxruntime20行代碼,無(wú)需nms操作即可實(shí)現(xiàn)簡(jiǎn)易部署推理.

一、原生onnx+ort推理方式

使用以下命令抽取出模型配置文件和模型參數(shù)文件:

pythontools/export_model.py-cconfigs/rtdetr/rtdetr_hgnetv2_l_6x_coco.yml-oweights=https://bj.bcebos.com/v1/paddledet/models/rtdetr_hgnetv2_l_6x_coco.pdparamstrt=True--output_dir=output_inference

轉(zhuǎn)化模型為onnx形式:

paddle2onnx--model_dir=./output_inference/rtdetr_hgnetv2_l_6x_coco/--model_filenamemodel.pdmodel--params_filenamemodel.pdiparams--opset_version16--save_filertdetr_hgnetv2_l_6x_coco.onnx

抽取后的onnx可視化如下:

d00e3748-ec2f-11ed-90ce-dac502259ad0.png

可以看到,除了圖像的輸入,還有另外兩個(gè)輸入頭,其中,im_shape指原輸入圖像的尺寸,scale_factor指靜態(tài)圖尺度/原輸入圖像尺度,其實(shí)就是縮放的系數(shù)。

我們將batch_size固定為1,裁減掉不需要使用到的算子:

python-mpaddle2onnx.optimize--input_modelrtdetr_hgnetv2_l_6x_coco.onnx--output_modelrtdetr_hgnetv2_l_6x_coco_sim.onnx--input_shape_dict"{'image':[1,3,640,640]}

使用簡(jiǎn)化后的onnx模型進(jìn)行推理:

importonnxruntimeasrt
importcv2
importnumpyasnp

sess=rt.InferenceSession("/home/aistudio/PaddleDetection/rtdetr_hgnetv2_l_6x_coco_sim.onnx")
img=cv2.imread("../000283.jpg")
org_img=img
im_shape=np.array([[float(img.shape[0]),float(img.shape[1])]]).astype('float32')
img=cv2.resize(img,(640,640))
scale_factor=np.array([[float(640/img.shape[0]),float(640/img.shape[1])]]).astype('float32')
img=img.astype(np.float32)/255.0
input_img=np.transpose(img,[2,0,1])
image=input_img[np.newaxis,:,:,:]
result=sess.run(["reshape2_83.tmp_0","tile_3.tmp_0"],{'im_shape':im_shape,'image':image,'scale_factor':scale_factor})
forvalueinresult[0]:
ifvalue[1]>0.5:
cv2.rectangle(org_img,(int(value[2]),int(value[3])),(int(value[4]),int(value[5])),(255,0,0),2)
cv2.putText(org_img,str(int(value[0]))+":"+str(value[1]),(int(value[2]),int(value[3])),cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,255,255),1)
cv2.imwrite("../result.png",org_img)

推理結(jié)果:

d02341c4-ec2f-11ed-90ce-dac502259ad0.png

二、野生onnx+ort推理方式

其實(shí)通過(guò)官方onnx模型的格式可以看出,官方已經(jīng)將所有后處理步驟寫(xiě)入到模型中,此時(shí)不需要額外添加后處理代碼,是一種比較省心的方式。

但對(duì)于有強(qiáng)迫癥的筆者而言,對(duì)于三個(gè)輸入頭的模型實(shí)在是看著別扭,因此我更偏向于下面的這種推理方式。

同樣是抽取官方模型,但此時(shí)我們將后處理的所有操作全部摘除,只保留原模型參數(shù):將模型的exclude_post_process設(shè)置為T(mén)rue,然后使用同樣的代碼進(jìn)行轉(zhuǎn)化:

pythontools/export_model.py-cconfigs/rtdetr/rtdetr_hgnetv2_l_6x_coco.yml-oweights=https://bj.bcebos.com/v1/paddledet/models/rtdetr_hgnetv2_l_6x_coco.pdparamstrt=True--output_dir=output_inference_sim

將轉(zhuǎn)化后的pdmodel進(jìn)行可視化:

d045bc68-ec2f-11ed-90ce-dac502259ad0.png

左邊為未摘除后處理的pdmodel,右邊為摘除后的pdmodel,以分類(lèi)支路為例,我們可以看到,分類(lèi)支路從Sigmoid開(kāi)始,已經(jīng)Sigmoid和后面的Children Node摘除干凈,那么可以轉(zhuǎn)化為onnx文件,步驟與上面一致。

d060e4a2-ec2f-11ed-90ce-dac502259ad0.png

使用轉(zhuǎn)化后的onnx文件進(jìn)行推理:

importonnxruntimeasrt
importcv2
importnumpyasnp

sess=rt.InferenceSession("rtdetr_hgnetv2_l_6x_coco_sim2.onnx")
img=cv2.imread("../000283.jpg")
img=cv2.resize(img,(640,640))
image=img.astype(np.float32)/255.0
input_img=np.transpose(image,[2,0,1])
image=input_img[np.newaxis,:,:,:]
results=sess.run(['scores','boxes'],{'image':image})
scores,boxes=[o[0]foroinresults]
index=scores.max(-1)
boxes,scores=boxes[index>0.5]*640,scores[index>0.5]
labels=scores.argmax(-1)
scores=scores.max(-1)
forbox,score,labelinzip(boxes,scores,labels):
cx,cy,w,h=int(box[0]),int(box[1]),int(box[2]),int(box[3])
cv2.rectangle(img,(cx-int(w/2),cy-int(h/2)),(cx+int(w/2),cy+int(h/2)),(0,255,255),2)
cv2.putText(img,f'{label}:{score:.2f}',(cx-int(w/2),cy-int(h/2)-5),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,255,255),1)
cv2.imwrite('../result.jpg',img)

推理結(jié)果:

d0753204-ec2f-11ed-90ce-dac502259ad0.jpg

【結(jié)尾】

本文介紹了RT-DETR兩種風(fēng)格的onnx格式和推理方式,不管哪種風(fēng)格,精度無(wú)任何差別,至于是使用哪款,純憑個(gè)人愛(ài)好。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3643

    瀏覽量

    134525
  • 檢測(cè)器
    +關(guān)注

    關(guān)注

    1

    文章

    864

    瀏覽量

    47688

原文標(biāo)題:無(wú)需nms,onnxruntime20行代碼玩轉(zhuǎn)RT-DETR

文章出處:【微信號(hào):GiantPandaCV,微信公眾號(hào):GiantPandaCV】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    兩種采樣方式

    兩種采樣方式.....................................
    發(fā)表于 08-08 15:04

    vnc和xrdp兩種遠(yuǎn)程連接的方式

    [zju嵌入式]樹(shù)莓派之遠(yuǎn)程桌面 之前介紹了通過(guò)串口和ssh登陸到樹(shù)莓派的方法,這兩種方式的有點(diǎn)在于連接方面,響應(yīng)速度快,但是也有不夠直觀的缺點(diǎn),沒(méi)辦法看到圖形界面.在這篇博文中,
    發(fā)表于 12-24 07:54

    Wincc如何與PLC進(jìn)行通訊兩種常用的方式介紹

    西門(mén)子WINCC與SiemensPLC通訊連接有多種方式,下面介紹兩種常用的通訊方式。
    的頭像 發(fā)表于 02-17 09:27 ?3w次閱讀
    Wincc如何與PLC進(jìn)行通訊<b class='flag-5'>兩種</b>常用的<b class='flag-5'>方式</b><b class='flag-5'>介紹</b>

    YOLOX模型ONNX格式說(shuō)明

    我記得大概是在去年七月份的時(shí)候我寫(xiě)過(guò)一篇文章是介紹YOLOX+OpenVINO推理的,下載YOLOX的ONNX格式模型(github上可以下載)
    的頭像 發(fā)表于 04-13 08:35 ?5581次閱讀

    在MATLAB/simulink中建模時(shí)的兩種不同實(shí)現(xiàn)方式

    導(dǎo)讀:本期文章主要介紹在MATLAB/simulink中建模時(shí)的兩種不同實(shí)現(xiàn)方式,一是直接用現(xiàn)成的文件庫(kù)中的模塊進(jìn)行搭建,一是用Sfun
    的頭像 發(fā)表于 09-15 10:07 ?1890次閱讀

    MATLAB/simulink中兩種實(shí)現(xiàn)建模方式的優(yōu)勢(shì)

    導(dǎo)讀:本期文章主要介紹在MATLAB/simulink中建模時(shí)的兩種不同實(shí)現(xiàn)方式,一是直接用現(xiàn)成的文件庫(kù)中的模塊進(jìn)行搭建,一是用Sfun
    的頭像 發(fā)表于 09-15 10:10 ?5053次閱讀

    簡(jiǎn)單聊聊目標(biāo)檢測(cè)新范式RT-DETR的骨干:HGNetv2

    當(dāng)然,人們對(duì)RT-DETR之所以產(chǎn)生濃厚的興趣,我覺(jué)得大概率還是對(duì)YOLO系列審美疲勞了,就算是出到了YOLO10086,我還是只想用YOLOv5和YOLOv7的框架來(lái)魔改做業(yè)務(wù)。。
    的頭像 發(fā)表于 04-27 09:42 ?2033次閱讀
    簡(jiǎn)單聊聊目標(biāo)檢測(cè)新范式<b class='flag-5'>RT-DETR</b>的骨干:HGNetv2

    ONNX格式模型部署兼容性框架介紹

    ? ONNXRUNTIME介紹 ONNX格式模型部署兼容性最強(qiáng)的框架 ONNXRUNTIME,基本上不會(huì)有算子不支持跟不兼容的情況出現(xiàn),只要能導(dǎo)出ONNX
    的頭像 發(fā)表于 06-19 11:50 ?2522次閱讀
    <b class='flag-5'>ONNX</b><b class='flag-5'>格式</b>模型部署兼容性框架<b class='flag-5'>介紹</b>

    DETR架構(gòu)的內(nèi)部工作方式分析

    這是一個(gè)Facebook的目標(biāo)檢測(cè)Transformer (DETR)的完整指南。 ? 介紹 DEtection TRansformer (DETR)是Facebook研究團(tuán)隊(duì)巧妙地利
    的頭像 發(fā)表于 08-30 10:53 ?985次閱讀
    <b class='flag-5'>DETR</b>架構(gòu)的內(nèi)部工作<b class='flag-5'>方式</b>分析

    基于OpenVINO Python API部署RT-DETR模型

    RT-DETR 是在 DETR 模型基礎(chǔ)上進(jìn)行改進(jìn)的,一基于 DETR 架構(gòu)的實(shí)時(shí)端到端檢測(cè)器,它通過(guò)使用一系列新的技術(shù)和算法,實(shí)現(xiàn)了更高效的訓(xùn)練和
    的頭像 發(fā)表于 10-20 11:15 ?976次閱讀
    基于OpenVINO Python API部署<b class='flag-5'>RT-DETR</b>模型

    基于OpenVINO C++ API部署RT-DETR模型

    RT-DETR 是在 DETR 模型基礎(chǔ)上進(jìn)行改進(jìn)的,一基于 DETR 架構(gòu)的實(shí)時(shí)端到端檢測(cè)器,它通過(guò)使用一系列新的技術(shù)和算法,實(shí)現(xiàn)了更高效的訓(xùn)練和
    的頭像 發(fā)表于 11-03 14:30 ?849次閱讀
    基于OpenVINO C++ API部署<b class='flag-5'>RT-DETR</b>模型

    基于OpenVINO C# API部署RT-DETR模型

    RT-DETR 是在 DETR 模型基礎(chǔ)上進(jìn)行改進(jìn)的,一基于 DETR 架構(gòu)的實(shí)時(shí)端到端檢測(cè)器,它通過(guò)使用一系列新的技術(shù)和算法,實(shí)現(xiàn)了更高效的訓(xùn)練和
    的頭像 發(fā)表于 11-10 16:59 ?759次閱讀
    基于OpenVINO C# API部署<b class='flag-5'>RT-DETR</b>模型

    百度開(kāi)源DETRs在實(shí)時(shí)目標(biāo)檢測(cè)中勝過(guò)YOLOs

    這篇論文介紹了一名為RT-DETR的實(shí)時(shí)檢測(cè)Transformer,是第一個(gè)實(shí)時(shí)端到端目標(biāo)檢測(cè)器。
    的頭像 發(fā)表于 03-06 09:24 ?1577次閱讀
    百度開(kāi)源DETRs在實(shí)時(shí)目標(biāo)檢測(cè)中勝過(guò)YOLOs

    AI推理框架軟件ONNX Runtime正式支持龍架構(gòu)

    近日,知名AI推理框架開(kāi)源社區(qū)ONNX Runtime正式發(fā)布支持龍架構(gòu)的版本1.17.0。
    的頭像 發(fā)表于 03-12 12:23 ?580次閱讀
    AI<b class='flag-5'>推理</b>框架軟件<b class='flag-5'>ONNX</b> Runtime正式支持龍架構(gòu)

    OpenVINO? Java API應(yīng)用RT-DETR做目標(biāo)檢測(cè)器實(shí)戰(zhàn)

    本文將從零開(kāi)始詳細(xì)介紹環(huán)境搭建的完整步驟,我們基于英特爾開(kāi)發(fā)套件AIxBoard為硬件基礎(chǔ)實(shí)現(xiàn)了Java在Ubuntu 22.04系統(tǒng)上成功使用OpenVINO? Java API,并且成功運(yùn)行了RT-DETR實(shí)現(xiàn)實(shí)時(shí)端到端目標(biāo)檢測(cè)器AI任務(wù)。
    的頭像 發(fā)表于 03-18 15:04 ?808次閱讀
    OpenVINO? Java API應(yīng)用<b class='flag-5'>RT-DETR</b>做目標(biāo)檢測(cè)器實(shí)戰(zhàn)
    主站蜘蛛池模板: 三及毛片| 激情开心婷婷| 国产人成高清视频观看| 手机看片1024在线观看| 一区二区中文字幕亚洲精品| 四虎影视精品| www色.com| 日处女穴| 特极毛片| avtt天堂网永久资源| 2020狠狠操| 五月婷丁香| www.91免费视频| 欧美性网| 日本特黄特色| 天天插天天爽| 国产在线视欧美亚综合| 久久性感美女视频| 黑人黑粗硬视频| 亚洲人的天堂男人爽爽爽| 韩国三级理在线视频观看| 久草3| 亚洲爱爱网| 1024成人| 女a男0攻巨肉高h| 玖玖色视频| japanese色系tube日本护士| 五月情婷婷| 午夜精品久久久久久91| 日本免费在线视频| 狠狠色综合久久久久尤物| 99精品视频在线播放2| 天堂tv亚洲tv日本tv欧美人tv| 在线播放91灌醉迷j高跟美女| 中文字幕亚洲色图| 老汉影视永久免费视频| 成人在线一区二区| 天堂免费视频| 欧美乱妇15p| 天堂视频免费在线观看| 天天操天|