YOLO测试单通道图像时出现报错
错误信息与基本情况
博主在利用darknet训练出来的单通道权重运行以下命令进行检测时出现报错
darknet的GitHub:https://github.com/AlexeyAB/darknet
#运行指令:
./darknet detector test one.data one.cfg one.weights image.jpg
#错误信息:
darknet: ./src/image.c:41: get_pixel: Assertion `x < m.w && y < m.h && c < m.c‘ failed
解决思路
这明显是一个超出索引的错误,最大可能就是出现在通道数上面。但是,错误信息中只给出了get_pixel这个函数出现了报错,但并不知道是那个具体位置发生了错误,查找后发现是在绘制标签信息时AB大佬只保留了彩色标签的绘制,导致绘制所需要的三通道超出了图像单通道的要求。
在image.c文件的448和449行:
//draw_label(im, top + width, left, label, rgb);
draw_weighted_label(im, top + width, left, label, rgb, 0.7);
//上面被注释掉的是适用于单通道图片的,可以直接取消上面的注释,注释掉下面的部分,重新make一下就好了