在实际目标检测过程中,因为不同数据集的问题,我们需要调整检测框的标签文字大小及粗细,使得整个检测结果变得清晰明了,易于观察。但YOLOX代码中并不容易找到修改检测框、标签文字粗细大小和标签百分比显示的代码,在一番探索后,发现修改代码位置为:
yolox-main/yolox/utils/visualize.py文件
具体修改位置及修改内容如下,相关信息注释在相关代码行为:
color = (_COLORS[cls_id] * 255).astype(np.uint8).tolist()
text = '{}:{:.1f}%'.format(class_names[cls_id], score * 100) # YOLOX的百分比显示方式
# text = '{} {:.2f}'.format(class_names[cls_id], score) # YOLOv5的保留两位小数且冒号改为空格显示方式
txt_color = (0, 0, 0) if np.mean(_COLORS[cls_id]) > 0.5 else (255, 255, 255)
font = cv2.FONT_HERSHEY_SIMPLEX
txt_size = cv2.getTextSize(text, font, 1, 1)[0] #第一个数字1代表文字背景块大小
cv2.rectangle(img, (x0, y0), (x1, y1), color, 1) #最后一个数字1代表框的粗细
txt_bk_color = (_COLORS[cls_id] * 255 * 0.7).astype(np.uint8).tolist()
cv2.rectangle(
img,
(x0, y0 + 1),
(x0 + txt_size[0] + 1, y0 + int(1.5*txt_size[1])),
txt_bk_color,
-1
)
cv2.putText(img, text, (x0, y0 + txt_size[1]), font, 1, txt_color, thickness=5) #第一个数字1代表标签字体的大小、thickness后的数字5代表标签字体的粗细
具体情况,大家可以根据自身需要来进行参数的设置调整