问题描述:打开labelimg标注软件,经过一段时间标注,关闭标注,再开启继续标注时,软件闪退的问题!!!注(已使用很多博主提的删除 C盘user内的 .labelImgSettings 文件没有用,labelimg地址也无中文路径)
报错代码如下
(yolo3) E:\StudyTools\Pycharm\yolov5-scale>labelimg
Traceback (most recent call last):
File "E:\StudyTools\Anaconda\conda\envs\yolo3\lib\site-packages\labelImg\labelImg.py", line 1390, in open_file
self.load_file(filename)
.....................
File "E:\StudyTools\Anaconda\conda\envs\yolo3\lib\site-packages\libs\yolo_io.py", line 125, in yolo_line_to_shape
label = self.classes[int(class_index)]
IndexError: list index out of range
报错图片如图所示:
解决方法:
首先关闭终端及labelimg标注软件,
再定位报错文件:xxxxxxxx yolo io.py文件(第二个红框是我的文件地址,每个人的不一样,根据终端报错的路径自行定位),找到如下图所示的代码段:红框为出问题代码。下图为yolo_line_to_shape的定义函数。
将红框内的代码修改至如下所示:(可复制)
def parse_yolo_format(self):
bnd_box_file = open(self.file_path, 'r')
for bndBox in bnd_box_file:
class_index, x_center, y_center, w, h = bndBox.strip().split(' ')
# label, x_min, y_min, x_max, y_max = self.yolo_line_to_shape(class_index, x_center, y_center, w, h)
try:
label, x_min, y_min, x_max, y_max = self.yolo_line_to_shape(class_index, x_center, y_center, w, h)
except Exception:
print("Exception")
# Caveat: difficult flag is discarded when saved as yolo format.
self.add_shape(label, x_min, y_min, x_max, y_max, False)
保存后,重新开启labelimg,成功!!!
感谢博主 许 豪的文章,