YOLOv5修改检测框颜色,粗细,标签大小,标签名称
一、修改检测框颜色,粗细,标签大小
在detect.py中找到
ctrl+点击Annotator即可自动跳转到Annotator类所在位置。
如果没有自动跳转,可通过以下路径查找:
anaconda3/envs/yolo(自己创建的虚拟环境名字)/lib/python3.8/site-packages/ultralytics/utils/plotting.py
将对应的color、thickness、fontScale修改为自己需要的格式即可。
我这里作出如下修改:
修改前结果:
修改后结果:
二、修改标签名
尝试在coco.yaml文件中修改,发现没有用。因为detect时使用的模型已经在训练阶段就将各个标签都写入模型里面了。
可通过直接覆盖model.names
属性解决。
在detect.py中找到加载模型的代码。
在代码
model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half)
stride, names, pt = model.stride, model.names, model.pt
之间插入以下代码即可覆盖之前的标签。可将其改为中文,注意类别继续要保持80,不然会报错。
model.names = ["person", # 0"bicycle", # 1"car", # 2"motorcycle", # 3"airplane", # 4"bus", # 5"train", # 6"truck", # 7"boat", # 8"traffic light", # 9 "fire hydrant", # 10 "stop sign", # 11 "parking meter", # 12 "bench", # 13"bird", # 14"cat", # 15"dog", # 16"horse", # 17"sheep", # 18"cow", # 19"elephant", # 20"bear", # 21"zebra", # 22"giraffe", # 23"backpack", # 24"umbrella", # 25"handbag", # 26"tie", # 27"suitcase", # 28"frisbee", # 29"skis", # 30"snowboard", # 31"sports ball", # 32 "kite", # 33"baseball bat", # 34 "baseball glove",# 35 "skateboard", # 36"surfboard", # 37"tennis racket", # 38 "bottle", # 39"wine glass", # 40 "cup", # 41"fork", # 42"knife", # 43"spoon", # 44"bowl", # 45"banana", # 46"apple", # 47"sandwich", # 48"orange", # 49"broccoli", # 50"carrot", # 51"hot dog", # 52 "pizza", # 53"donut", # 54"cake", # 55"chair", # 56"couch", # 57"potted plant", # 58 "bed", # 59"dining table", # 60 "toilet", # 61"tvmonitor", # 62 "laptop", # 63"mouse", # 64"remote", # 65"keyboard", # 66"cell phone", # 67 "microwave", # 68"oven", # 69"toaster", # 70"sink", # 71"refrigerator", # 72"book", # 73"clock", # 74"vase", # 75"scissors", # 76"teddy bear", # 77 "hair dryer", # 78 "toothbrush" # 79]
示例如下: