应用场景:在做对比实验时,想要将其他模型检测框的颜色跟YOLOv8的保持一致,那么我们需要找到YOLOv8预定义的各个类别的检测框的色号
位置:/ultralytics/utils/plotting.py 中的 Colors类
如上图中的方法中初始化的就是前20个类别的色号对应的十六进制数
我们可以通过在线色号查询工具,将上述十六进制数转为RGB三个十进制数
注:转换时,要在16进制数前加一个'#'
例如,我的模型有6个类别,我就把前6个的数字转化出来:
"#FF3838" -> (255, 56, 56)
"#FF9D97" -> (255, 157, 151)
"#FF701F" -> (255, 112, 31)
"#FFB21D" -> (255, 178, 29)
"#CFD231" -> (207, 210, 49)
"#48F90A" -> (72, 249, 10)
接下来把得到的6个RGB值赋值给要修改的模型的colors数组,一般yolo系列的其他模型是在utils/plot.py中定义的。
NOTE:如果进行了上述修改后,仍然没有得到想要的颜色,可能是因为其他模型colors赋值时不是按照RGB顺序,而是按照BGR顺序来的,只需要把我们得到的数字颠倒以下顺序,例如(255,56,56) 改为 (56,56,255),再次运行,应该就没问题了