本人本科专业机械,毕设搞深度学习的内容,使用了PaddlePaddle中的PaddleSeg作为主要工具。由于仅存的为数不多大学的代码知识,又加上PaddleSeg网上的内容不是很多,很多坑就自己慢慢摸索过去。在此记录一下,给其他人一点点点启发(毕竟很基础),也是给自己留一下记录,方便以后再遇到好解决。
问题一:使用labelme2seg.py转换时报错
原因:json文件内图像路径问题
由于和其他人一起制作标签文件,导致labelme生成的json文件里面的imagePath
不正确。其中有两中情况:
- 路径中包含中文,导致
cv2.imread()
无法读取。因为上图报错原因是tuple out of range
,因为没法正确读取图像,从而无法读出shape属性,所以产生了这个错误。 - 路径不正确。例如别人制作的标签路径是他电脑上的路径。
解决方法:检查json文件的内imagePath
属性,保证无中文且设置正确
问题二:使用paddleseg.core的optic_disc_seg数据集样式时报错
报错内容:"File list format incorrect! It should be image_name label_name\\n"
原因:图像文件名带有空格
在paddleseg的optic_disc_seg数据集类型,其读取存放路径txt文件时,会根据一样中的空格来读取内容,具体代码细节如下。因而如果你的文件名里就有空格,那么他读取内容时,读取到的文件的名称不正确,从而无法正确读取。
解决方法:将自己的图片文件名不要带空格,或者改一下这个脚本的内容
问题三:使用paddleseg预测时报错,无法读取文件
报错内容:好像是nonetype 没有shape这样子
原因:AIStudio内路径不能用\
,需要用相对路径/
图忘记截了,但内容是这样,因为他也是用cv2.imread()
来读取,但在这个在线环境中需要用/
设置相对路径来访问,否则无法读取出来