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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在OpenCV4.5.4版本上完成YOLOv5 7.0推理演示與測試

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:gloomyfish ? 2022-11-30 17:54 ? 次閱讀

昨天發了YOLOv5 7.0支持實例分割的推文,收到不少留言問推理速度怎么樣,所以我今天測試了一下,選擇的是YOLOv5s的SEG模型,導出ONNX格式之后,在OpenCV4.5.4版本上完成了推理演示與測試。

ONNX格式輸入與輸出

首先需要把yolov5s-seg.pt文件導出為ONNX格式,這個很簡單,一條命令行搞定:

python export.py --weights yolov5s-seg.pt --include onnx

運行結果如下:

pYYBAGOHKGqATwbgAAFf5zY667U959.jpg

導出之后查看輸入與輸出格式顯示如下:

pYYBAGOHKHOASHR-AAHWrhqHhPI677.jpg

其中輸入部分跟YOLOv5對象檢測沒有什么分別,都是NCHW格式圖像輸入,甚至預處理都完全一致。

輸出部分內容分為兩個部分,output0主要是box框架信息,跟mask預測的1x32個向量,前面85個解析跟YOLOv5對象檢測完成一致,后面32向量是解析mask的時候會使用的。

output1格式是1x32x160x160, 針對每個box通過boxes部分的1x32 跟它點乘機得到1x160x160 就得到這個box對應的預測mask信息,然后根據box大小從mask中截取roi之后,疊加到輸出結果上就可以了。

OpenCV DNN推理

整個代碼實現部分絕大部分跟OpenCV DNN部署YOLOv5對象檢測一致,需要修改的只有兩個地方,一個是推理時候的預測結果,YOLOv5返回一個,這邊是返回兩個,所以需要修改一下代碼把代碼從:

defdetect(image,net):
#1x3x640x640
blob=cv2.dnn.blobFromImage(image,1/255.0,(INPUT_WIDTH,INPUT_HEIGHT),swapRB=True,crop=False)
net.setInput(blob)
preds=net.forward()
returnpreds

修改為:

defdetect(image,net):
rgb=cv.cvtColor(image,cv.COLOR_BGR2RGB)
input_image=cv.resize(src=rgb,dsize=(INPUT_WIDTH,INPUT_HEIGHT))
blob_img=np.float32(input_image)/255.0
input_x=blob_img.transpose((2,0,1))
input_blob=np.expand_dims(input_x,0)
net.setInput(input_blob)
layer=net.getUnconnectedOutLayersNames()
masks,preds=net.forward(layer)
returnpreds,masks
這樣就好啦 第二個改動的地方在后處理部分,如何解析出mask部分,這部分我通過翻看YOLOv5 7.0官方推理演示的源碼,它是基于torch實現的,我一通猛改之后改成了基于numpy實現。生成mask的代碼如下:
color_mask=np.zeros((fh,fw,3),dtype=np.uint8)
black_mask=np.zeros((fh,fw),dtype=np.float32)
mv=cv.split(color_mask)
foriinrange(len(boxes)):
x1,y1,x2,y2=boxes[i]
x1=max(0,x1)
y1=max(0,y1)
classid=class_ids[i]
m1=masks[i]
mask=np.reshape(sigmoid(np.matmul(m1,mask2)),(160,160))

mx1=max(0,np.int((x1*sx)/x_factor))
mx2=max(0,np.int((x2*sx)/x_factor))
my1=max(0,np.int((y1*sy)/y_factor))
my2=max(0,np.int((y2*sy)/y_factor))
mask_roi=mask[my1:my2,mx1:mx2]

result_mask=cv.resize(mask_roi,(x2-x1,y2-y1))
result_mask[result_mask>0.5]=1.0
result_mask[result_mask<=?0.5]?=?0.0
????rh,?rw?=?result_mask.shape
????if?(y1+rh)?>=fh:
rh=fh-y1
if(x1+rw)>=fw:
rw=fw-x1
black_mask[y1:y1+rh,x1:x1+rw]=result_mask[0:rh,0:rw]
mv[2][black_mask==1],mv[1][black_mask==1],mv[0][black_mask==1]=
[np.random.randint(0,256),np.random.randint(0,256),np.random.randint(0,256)]
color=colors[int(classid)%len(colors)]
cv.rectangle(frame,(x1,y1),(x2,y2),color,2)
cv.rectangle(frame,(x1,y1-20),(x2,y1),color,-1)
cv.putText(frame,class_list[classid],(x1,y1-10),cv.FONT_HERSHEY_SIMPLEX,.5,(0,0,0))

把這段代碼放在NMS之后,替換YOLOv5對象檢測的NMS之后的解析代碼即可。最終Python版本OpenCV DNN推理的運行效果如下:

poYBAGOHKJiAOsIjAADpSmbBVZM275.jpg
poYBAGOHKJ-AHaC1AAD-n0A6DmU529.jpg

速度這么慢,怒而改成OpenCV DNN C++推理,N卡加持:

poYBAGOHKLmAGIKbAAEWknaLsd0485.jpg
poYBAGOHKMCAGuC5AAF7MglYA4s282.jpg

基本上可以跑到40FPS左右,感覺很不錯了!






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OpenCV
    +關注

    關注

    31

    文章

    635

    瀏覽量

    41419
  • NMS
    NMS
    +關注

    關注

    0

    文章

    9

    瀏覽量

    6051
  • dnn
    dnn
    +關注

    關注

    0

    文章

    60

    瀏覽量

    9065

原文標題:OpenCV4.5.4+YOLOv5 7.0分割推理演示

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Jetson Nano使用TensorRT C++實現YOLOv5模型推理

    前面有一篇文章詳細說明了如何在Jetson Nano安裝YOLOv5,然后運行,這里只需導出的時候導出engine模型文件支持。
    發表于 11-17 09:38 ?4570次閱讀

    Yolov5算法解讀

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然不斷進行升級迭代。 Yolov5YOLOv5s、
    的頭像 發表于 05-17 16:38 ?9379次閱讀
    <b class='flag-5'>Yolov5</b>算法解讀

    C++中使用OpenVINO工具包部署YOLOv5-Seg模型

    YOLOv5兼具速度和精度,工程化做的特別好,Git clone到本地即可在自己的數據集實現目標檢測任務的訓練和推理產業界中應用廣泛。開源社區對
    的頭像 發表于 12-21 10:17 ?2182次閱讀
    <b class='flag-5'>在</b>C++中使用OpenVINO工具包部署<b class='flag-5'>YOLOv5</b>-Seg模型

    RK3568教學實驗箱實現基于YOLOV5的算法物體識別案例詳解

    安裝了所有必要的依賴。這通常包括 torch、torchvision 和 opencv-python。 (2)下載預訓練模型 YOLOv5 提供了多個預訓練模型,可以從官方倉庫或相關資源中下載。 (3
    發表于 12-03 14:56

    怎樣使用PyTorch Hub去加載YOLOv5模型

    Python>=3.7.0環境中安裝requirements.txt,包括PyTorch>=1.7。模型和數據集從最新的 YOLOv5版本自動下載。簡單示例此示例從
    發表于 07-22 16:02

    OpenCV C++程序編譯與演示

    1、JetsonNano編譯OpenCV源碼與OpenCV C++ YOLOv5程序演示  
    發表于 11-10 16:42

    使用Yolov5 - i.MX8MP進行NPU錯誤檢測是什么原因?

    的時機(yolov5s 模型,輸入為 448x448 ~ 70ms)。 現在我正在嘗試使用 Yolov5(uint8 量化),但我嘗試使用不同的預訓練模型獲得相同的行為, CPU 上進行良好檢測,
    發表于 03-31 07:38

    如何YOLOv5測試代碼?

    使用文檔“使用 YOLOv5 進行對象檢測”我試圖從文檔第 10 頁訪問以下鏈接( i.MX8MP 上部署 yolov5s 的步驟 - NXP 社區) ...但是這樣做時會被拒絕訪問。該文檔沒有說明需要特殊許可才能下載 tes
    發表于 05-18 06:08

    YOLOv5OpenCV推理程序

    YOLOv5官方給出的YOLOv5OpenCV推理的程序相對來說是比較通俗易懂的,條理清晰,
    的頭像 發表于 11-02 10:16 ?1971次閱讀

    YOLOv5 7.0版本下載與運行測試

    支持實例分割了,從此YOLOv5實現了圖像分類、對象檢測、實例分割三個支持,從訓練到部署。
    的頭像 發表于 11-30 15:55 ?3879次閱讀

    使用旭日X3派的BPU部署Yolov5

    本次主要介紹旭日x3的BPU中部署yolov5。首先在ubuntu20.04安裝yolov5,并運行yolov5并使用pytoch的pt模型文件轉ONNX。
    的頭像 發表于 04-26 14:20 ?934次閱讀
    使用旭日X3派的BPU部署<b class='flag-5'>Yolov5</b>

    三種主流模型部署框架YOLOv8推理演示

    深度學習模型部署有OpenVINO、ONNXRUNTIME、TensorRT三個主流框架,均支持Python與C++的SDK使用。對YOLOv5~YOLOv8的系列模型,均可以通過C++推理實現模型
    的頭像 發表于 08-06 11:39 ?2780次閱讀

    yolov5和YOLOX正負樣本分配策略

    整體正負樣本分配中,yolov7的策略算是yolov5和YOLOX的結合。因此本文先從yolov5和YOLOX正負樣本分配策略分析入手,
    發表于 08-14 11:45 ?2324次閱讀
    <b class='flag-5'>yolov5</b>和YOLOX正負樣本分配策略

    OpenCV4.8+YOLOv8對象檢測C++推理演示

    自從YOLOv5更新成7.0版本YOLOv8推出以后,OpenCV4.6以前的版本都無法再加載
    的頭像 發表于 09-27 11:07 ?1601次閱讀
    <b class='flag-5'>OpenCV4.8+YOLOv</b>8對象檢測C++<b class='flag-5'>推理</b><b class='flag-5'>演示</b>

    基于OpenCV DNN實現YOLOv8的模型部署與推理演示

    基于OpenCV DNN實現YOLOv8推理的好處就是一套代碼就可以部署Windows10系統、烏班圖系統、Jetson的Jetpack系統
    的頭像 發表于 03-01 15:52 ?1782次閱讀
    基于<b class='flag-5'>OpenCV</b> DNN實現<b class='flag-5'>YOLOv</b>8的模型部署與<b class='flag-5'>推理</b><b class='flag-5'>演示</b>
    主站蜘蛛池模板: 一区二区不卡视频| 深夜动态福利gif动态进| 男人的网址| 亚洲淫视频| 午夜黄| 天天干在线播放| 都市激情综合网| 久综合| 欧美性videofree精品| 欧美高清一级| 色宅男| 欧美性喷潮| 精品乩伦视频| 免费在线成人网| 国产一级做a爱免费视频| 久久瑟| 播色屋| 天天操夜夜夜| 天天操你| 国产亚洲美女精品久久久久狼 | 四虎最新免费观看网址| 青青导航| 人人成人免费公开视频| 欧美成人性色xxxxx视频大| 国产精品美女免费视频大全| 黄色一级日本| 97成人资源| 午夜激情福利网| 午夜小网站| 午夜视频在线观看国产| 免费看曰批女人爽的视频网址| 1024手机在线看| 狠狠色噜噜狠狠狠狠2021天天| 欧美 亚洲 一区| 亚洲 欧洲 日韩| 欧美激情亚洲色图| 72种姿势欧美久久久久大黄蕉| 久久久精品免费观看| 韩国理论片2023现在观看| 中国男女全黄大片一级| 日本不卡1|