国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

這篇具有很好參考價(jià)值的文章主要介紹了yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

《記錄自己在使用yolov5遇到的一些問(wèn)題》同時(shí)也供大家參考,如果對(duì)你們有幫助,希望大家可以給個(gè)點(diǎn)贊、收藏鼓勵(lì)下,非常感謝!

以自帶的一張圖片作為示例,yolov5(6.1版本)的初始檢測(cè)框應(yīng)該是如下圖所示yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

修改線(xiàn)條粗細(xì)、隱藏標(biāo)簽、隱藏置信度

?首先有一些參數(shù)作者已經(jīng)放在detect.py的parse_opt()里,如下代碼所示:

parser.add_argument('--line-thickness', default=3, type=int, help='bounding box thickness (pixels)')
parser.add_argument('--hide-labels', default=False, action='store_true', help='hide labels')
parser.add_argument('--hide-conf', default=False, action='store_true', help='hide confidences')

顧名思義,“--line-thickness” 是修改矩形框和文本標(biāo)簽線(xiàn)條的粗細(xì)的,如果你覺(jué)得標(biāo)簽小了可以直接調(diào)整這里的數(shù)值(本人之前在這里踩了大坑,還去plot.py里修改一些參數(shù),后面會(huì)說(shuō)到,雖然大了但是會(huì)出現(xiàn)失真,標(biāo)簽會(huì)變得模糊。)

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

?"--hide-labels"(隱藏標(biāo)簽)和"--hide-conf"(隱藏置信度)就比較直觀了,直接上圖:

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

?想要修改其他信息就要打開(kāi)utils文件夾里的plots.py文件了。打開(kāi)文件后搜索(ctrl+f)box_label()這個(gè)函數(shù),大概在82行左右。

def box_label(self, box, label='', color=(128, 128, 128), txt_color=(255, 255, 255)):
        # Add one xyxy box to image with label
        if self.pil or not is_ascii(label):
            self.draw.rectangle(box, width=self.lw, outline=color)  # box
            if label:
                w, h = self.font.getsize(label)  # text width, height
                outside = box[1] - h >= 0  # label fits outside box
                self.draw.rectangle((box[0],
                                     box[1] - h if outside else box[1],
                                     box[0] + w + 1,
                                     box[1] + 1 if outside else box[1] + h + 1), fill=color)
                # self.draw.text((box[0], box[1]), label, fill=txt_color, font=self.font, anchor='ls')  # for PIL>8.0
                self.draw.text((box[0], box[1] - h if outside else box[1]), label, fill=txt_color, font=self.font)
        else:  # cv2
            p1, p2 = (int(box[0]), int(box[1])), (int(box[2]), int(box[3]))
            cv2.rectangle(self.im, p1, p2, color, thickness=self.lw, lineType=cv2.LINE_AA)
            if label:
                tf = max(self.lw - 1, 1)  # font thickness
                w, h = cv2.getTextSize(label, 0, fontScale=self.lw / 3, thickness=tf)[0]  # text width, height
                outside = p1[1] - h - 3 >= 0  # label fits outside box
                p2 = p1[0] + w, p1[1] - h - 3 if outside else p1[1] + h + 3
                cv2.rectangle(self.im, p1, p2, color, -1, cv2.LINE_AA)  # filled
                cv2.putText(self.im, label, (p1[0], p1[1] - 2 if outside else p1[1] + h + 2), 0, self.lw / 3, txt_color,
                            thickness=tf, lineType=cv2.LINE_AA)

如果想隱藏檢測(cè)框只需要注釋下面這行代碼即可,如果要修改檢測(cè)框的大小等參數(shù),對(duì)應(yīng)修改就行,效果如下圖:

cv2.rectangle(self.im, p1, p2, color, thickness=self.lw, lineType=cv2.LINE_AA)
#self.img 圖片
#p1  所畫(huà)檢測(cè)框的左上角坐標(biāo)
#p2  所畫(huà)檢測(cè)框的右下角坐標(biāo)
#thick 線(xiàn)的粗細(xì)
#linetype 線(xiàn)型 

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

如果想隱藏標(biāo)簽框只需要注釋掉下面這行代碼即可,同樣如果要修改標(biāo)簽框的大小等參數(shù),對(duì)應(yīng)修改就行效果如下圖:

cv2.rectangle(self.im, p1, p2, color, -1, cv2.LINE_AA)  # filled
#self.img 圖片
#p1  所畫(huà)框的左上角坐標(biāo)
#p2  所畫(huà)框的右下角坐標(biāo)
#color 框的顏色,可以以自己修改(b,g,r)
#-1  框的粗細(xì)  如果為負(fù)值則代表填充整個(gè)框
#cv2.LINE_AA 線(xiàn)型 

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

修改標(biāo)簽文本信息,可以配合上面兩行代碼一起修改,單獨(dú)注釋效果如下圖:?

cv2.putText(self.im, label, (p1[0], p1[1] - 2 if outside else p1[1] + h + 2), 0,
 self.lw / 3, txt_color,thickness=tf, lineType=cv2.LINE_AA)
#self.im 輸出在哪一張圖片,這里就是檢測(cè)的圖片
#label   輸出內(nèi)容(str格式),這里就是標(biāo)簽
#(p1[0], p1[1] - 2 if outside else p1[1] + h + 2) 左上角坐標(biāo)位置
#0 官方解釋是Font scale factor that is multiplied by the font-specific base size.感覺(jué)這里也是改變字體的粗細(xì)
#tetcolor 文字顏色
#thickness  用于繪制文本的線(xiàn)條的粗細(xì)
#LineTypes 線(xiàn)型

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

2022/10/25日新增:有同學(xué)私信跟我交流如何添加坐標(biāo)信息,本人的思路是直接用putText(),將打印內(nèi)容改成你想打印的坐標(biāo)(我這里打印的是左上角的坐標(biāo)),稍微調(diào)整一下打印在圖上的位置坐標(biāo)。

cv2.putText(self.im, "("+str(p1[0])+","+str(p1[1])+")", (p1[0]+5, p1[1] -50 if outside else p1[1] + h + 2), 2, self.lw / 3, txt_color,
                            thickness=tf, lineType=cv2.LINE_AA)

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

2022/11/22日新增:有同學(xué)私信我跟我交流如何只顯示部分標(biāo)簽和置信度,本人的思路是在detect.py中找到標(biāo)簽顯示語(yǔ)句:

label = None if hide_labels  else (names[c] if hide_conf else f'{names[c]} {conf:.2f}')

原標(biāo)簽顯示邏輯為:“標(biāo)簽 = 無(wú) 如果“隱藏標(biāo)簽”否則顯示標(biāo)簽”,我們只需要再加入我們所需要的判斷條件即可,比如不想顯示“person”只需修改代碼為:

label = None if hide_labels or names[c]=="person" else (names[c] if hide_conf else f'{names[c]} {conf:.2f}')

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

2023/4/3日新增:有同學(xué)私信問(wèn):如何給不同物體自定義方框顏色,比如想定義框選person的框?yàn)樽仙?28,0,128),框選tie的為灰色(169,169,169)。我的思路:在畫(huà)框的前加一個(gè)if判斷,代碼(101行左右)如下:

else:  # cv2
 p1, p2 = (int(box[0]), int(box[1])), (int(box[2]), int(box[3]))
 if 'person' in label:
   cv2.rectangle(self.im, p1, p2, (128,0,128), thickness=self.lw, lineType=cv2.LINE_AA)
 if 'tie' in label:
   cv2.rectangle(self.im, p1, p2, (169, 169, 169), thickness=self.lw, lineType=cv2.LINE_AA)
            if label:

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

如果想顯示部分目標(biāo)框也是同理,比如你只想顯示person,你就在畫(huà)框的代碼前加一個(gè)if判斷是否為”person",就不要加后面“tie”的判斷了。

2023/5/16新增:v5之前的版本可能跟上面的差別比較大,其實(shí)道理是一樣的,你在detect.py里找到打印標(biāo)簽的的那一行,如下圖所示,ctrl+鼠標(biāo)左鍵plot_one_box,就可以進(jìn)入這個(gè)函數(shù),之后根據(jù)自己的需求修改就行。

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

2023/5/18新增:評(píng)論區(qū)提問(wèn):“檢測(cè)出來(lái)的都是顯示到小數(shù)點(diǎn)后一位,怎么可以讓他顯示到后兩位呀?”思路:其實(shí)就是修改打印的置信度精度(conf),在detect.py里搜索conf,找到下面這行代碼:最后的{conf:.2f}代表保留小數(shù)點(diǎn)后兩位,根據(jù)需求修改即可,結(jié)果如下圖:

 label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {conf:.2f}')

yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】

?

注:以上只是本人對(duì)自己學(xué)習(xí)過(guò)程的總結(jié),僅供大家參考,如果出現(xiàn)錯(cuò)誤,希望大家可以理解并指正。博主現(xiàn)在也比較忙(笑發(fā)財(cái)了,被放養(yǎng),根本不知道忙啥),佛系更新,大家如果問(wèn)題解決了,可以把方法評(píng)論下來(lái),或者私信給博主,我會(huì)跟新博文并添加上你的名字。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-457389.html

到了這里,關(guān)于yolov5/v7修改標(biāo)簽和檢測(cè)框顯示【最全】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包