




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Python可視化目標(biāo)檢測框的實現(xiàn)代碼目錄1引言2舉個栗子3實現(xiàn)3.1函數(shù)講解3.2讀入圖像3.3標(biāo)簽美化3.4角點(diǎn)美化3.5綜合效果4透明效果實現(xiàn)5擴(kuò)展應(yīng)用6總結(jié)7參考
1引言
隨著計算機(jī)視覺算法工程師的內(nèi)卷,從事目標(biāo)檢測的小伙伴們越來越多了.
很多時候我們費(fèi)了九牛二虎之力訓(xùn)練了一版模型,可是可視化出來的效果平淡無奇.
是不是有點(diǎn)太不給力啦,作為計算機(jī)視覺工程師,我們是不是應(yīng)該關(guān)注下如何優(yōu)雅地可視化我們模型地檢測結(jié)果呢
2舉個栗子
最常用的可視化目標(biāo)檢測結(jié)果的就是我們所說的矩形框,矩形框的畫法也可以分為好多中,我們以下圖進(jìn)行說明:
我們以上圖皮卡丘的矩形檢測框為例,左上為我們常用的不帶標(biāo)簽的輸出框,右上為YOLO系列美化帶標(biāo)簽后的矩形框,左下為四個角點(diǎn)美化后的矩形框,右下為帶標(biāo)簽的角點(diǎn)美化矩形框.
3實現(xiàn)
3.1函數(shù)講解
在opencv中,我們通常使用cv2.rectangle函數(shù)進(jìn)行矩形框的繪制,該函數(shù)的一般形式如下:
cv2.rectangle(image,start_point,end_point,color,thickness)
相應(yīng)的參數(shù)含義如下:
image:輸入圖像
start_point:矩形框左上點(diǎn)坐標(biāo)
end_point:矩形框右下點(diǎn)坐標(biāo)
color:矩形框顏色默認(rèn)BGR順序
thickness:線的粗細(xì),其中-1代表填充整個矩形
3.2讀入圖像
我們使用上述函數(shù),來畫我們的示例圖像:
img_name='./pikachu.jpg'
img=cv2.imread(img_name)
box=[140,16,468,390,"pikachu"]
box_color=(255,0,255)
cv2.rectangle(img,(box[0],box[1]),(box[2],box[3]),color=box_color,thickness=2)
結(jié)果如下:
左側(cè)為我們的原圖,右側(cè)為我們畫框的效果圖.
3.3標(biāo)簽美化
接下來我們來給矩形框添加標(biāo)簽,我們觀察上述畫圖函數(shù),注意最后一個參數(shù)thickness,如果此值等于-1,那么將對矩形框執(zhí)行填充效果.基于此,我們來寫標(biāo)簽美化代碼,如下:
defdraw_label_type(draw_img,bbox,label_color):
label=str(bbox[-1])
labelSize=cv2.getTextSize(label+'0',cv2.FONT_HERSHEY_SIMPLEX,0.5,2)[0]
ifbbox[1]-labelSize[1]-30:
cv2.rectangle(draw_img,
(bbox[0],bbox[1]+2),
(bbox[0]+labelSize[0],bbox[1]+labelSize[1]+3),
color=label_color,
thickness=-1
cv2.putText(draw_img,label,
(bbox[0],bbox[1]+labelSize+3),
cv2.FONT_HERSHEY_SIMPLEX,
0.5,
(0,0,0),
thickness=1
else:
cv2.rectangle(draw_img,
(bbox[0],bbox[1]-labelSize[1]-3),
(bbox[0]+labelSize[0],bbox[1]-3),
color=label_color,
thickness=-1
cv2.putText(draw_img,label,
(bbox[0],bbox[1]-3),
cv2.FONT_HERSHEY_SIMPLEX,
0.5,
(0,0,0),
thickness=1
)
上述代碼中,首先計算標(biāo)簽文本的大小,然后據(jù)標(biāo)簽文本大小進(jìn)行矩形填充,最后使用cv2.putText畫對應(yīng)的標(biāo)簽文本.
運(yùn)行效果如下:
左側(cè)為原圖,右側(cè)為添加文本標(biāo)簽后的結(jié)果圖.
3.4角點(diǎn)美化
上述添加完標(biāo)簽后,由于標(biāo)簽框和目標(biāo)矩形框顏色一致,邊界處不太容易區(qū)分,這里添加對角點(diǎn)美化的代碼,代碼如下:
defdraw_box_corner(draw_img,bbox,length,corner_color):
#TopLeft
cv2.line(draw_img,(bbox[0],bbox[1]),(bbox[0]+length,bbox[1]),corner_color,thickness=3)
cv2.line(draw_img,(bbox[0],bbox[1]),(bbox[0],bbox[1]+length),corner_color,thickness=3)
#TopRight
cv2.line(draw_img,(bbox[2],bbox[1]),(bbox[2]-length,bbox[1]),corner_color,thickness=3)
cv2.line(draw_img,(bbox[2],bbox[1]),(bbox[2],bbox[1]+length),corner_color,thickness=3)
#BottomLeft
cv2.line(draw_img,(bbox[0],bbox[3]),(bbox[0]+length,bbox[3]),corner_color,thickness=3)
cv2.line(draw_img,(bbox[0],bbox[3]),(bbox[0],bbox[3]-length),corner_color,thickness=3)
#BottomRight
cv2.line(draw_img,(bbox[2],bbox[3]),(bbox[2]-length,bbox[3]),corner_color,thickness=3)
cv2.line(draw_img,(bbox[2],bbox[3]),(bbox[2],bbox[3]-length),corner_color,thickness=3)
上述函數(shù)參數(shù)解釋如下:
draw_img輸入圖像
bbox目標(biāo)檢測框形式(x1,y1,x2,y2)
length直線長度
corner_color直線顏色
運(yùn)行結(jié)果如下:
左側(cè)為原圖,右側(cè)為添加角點(diǎn)美化后的結(jié)果圖.
3.5綜合效果
綜合上述標(biāo)簽美化和角點(diǎn)美化,可以得到二者綜合后的效果圖如下:
4透明效果實現(xiàn)
通過cv2.rectangle函數(shù)設(shè)置thickness我們可以得到填充后的圖像,進(jìn)而利用opencv中的cv2.add_weight函數(shù)可以實現(xiàn)透明效果.
示例如下:
左側(cè)為img,右側(cè)為填充后的draw_img,那么利用add_weight進(jìn)行加權(quán)的代碼如下:
alpha=0.8
gamma=0
out_img=cv2.addWeighted(img,alpha,draw_img,1-alpha,gamma)
運(yùn)行后的效果圖如下:
左側(cè)為alpha=0.5的效果圖,右側(cè)為alpha=0.8的效果圖.
和原圖放到一起進(jìn)行對比,如下:
是不是看上去優(yōu)雅多了…
5擴(kuò)展應(yīng)用
利用上述原理,我們可以方便地將透明效果從矩形框遷移至不規(guī)則封閉區(qū)域,樣例如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化學(xué)與航天強(qiáng)國戰(zhàn)略聯(lián)系試題
- 化學(xué)模型理解水平測評試題
- 古代書畫考試題及答案
- 2025年瓦匠培訓(xùn)考試試題及答案
- 2025年高考物理“系統(tǒng)思維”構(gòu)建試題
- 教育有關(guān)的考試題及答案
- 工序知識考試題及答案解析
- 市場調(diào)查分析框架及數(shù)據(jù)應(yīng)用
- 高等代數(shù)1考試題及答案
- 贛源食品考試題及答案
- 金華蘭溪市衛(wèi)生健康局所屬事業(yè)單位招聘筆試真題2024
- 旅游政策與法規(guī)基礎(chǔ)教程
- 風(fēng)電項目運(yùn)營與維護(hù)管理方案
- 學(xué)習(xí)《水利水電工程生產(chǎn)安全重大事故隱患判定導(dǎo)則-SLT 842》課件
- 2025年秋招:招商銀行筆試真題及答案(可下載)
- 1.3 逐層分類細(xì)化分類結(jié)果【知識精研】二年級上冊數(shù)學(xué)(人教版2024)
- 甘肅省醫(yī)療建設(shè)管理辦法
- 計算機(jī)視覺(CV)工程師崗位面試問題及答案
- 胸痛的護(hù)理教學(xué)課件
- 2025年輔警招聘考試題庫(+答案解析)
- 橋梁施工培訓(xùn)課件
評論
0/150
提交評論