40
社区成员




经历了千辛万苦,终于有点成效了,搓yolo真不容易,是真的多bug
本帖子更多地为途中发现错误的同学指明一个方向,并不涉及详细地制作过程,具体过程可以看看凯杰同学写好的帖子,在此也非常感谢他的帮助。
首先,环境的配置不多说了,前面都没有什么问题
1、创建虚拟环境
2、激活虚拟环境
3、安装pytorch (任务提供的官网有)
4、安装ultralytrics (不想找的话给你附上conda的代码)
conda install conda-forge::ultralytics
5、在pycharm中新建项目选择你弄好的虚拟环境
6、按照阶段任务中的方式配置号文件夹框架(此处会存在问题)
7、网上找图并打标签,并将数据集按找任务中的方法分类(可以代码,可以手动)
以上都是普通的,在本次学习中应当掌握最基本的知识。接下来有问题的部分我会一一列举,如果还有其他错误问AI搜资料无法解决的话,可以在群里大家一起讨论。
一、训练模型代码问题
在阶段任务中,训练模型的代码本身就有错误,我们需要稍作修改
# train.py
from ultralytics import YOLO
Model = YOLO('yolo11n.pt') # 你可以选其他的模型,如果显卡厉害的话
my_yaml = r'H:\Computer Vision\practice_again\practice2_again\resources\data\custom_dataset.yaml'
if __name__=='__main__':
Model.train(data=my_yaml,epochs=300) # 训练300轮
Model.val() # 验证模型
以上需要注意的问题
1、这里训练的模型(model),并不是yolov11n.pt!!!! 需要查看官方的文档,似乎并没有相应的模型,所以需要更改成其他模型,这里改成yolo11n.pt即可
2、在使用路径的时候,如果出现转义符,只需要在引号前面加上r即可(应该是学语法的时候讲到的,这个大家都能自己解决)
3、在Model.train后面的括号中,my_yaml要加上data=,而阶段任务里没有这东西,即按照上述代码即可。(这里是通过官方文档查看得知)
二、训练时出现的问题
1、我们会出现全是backgrounds的情况,如图1
发现全是backgrounds而不是images,接下来的处理方式
处理方法:其实在文件夹框架的设置也是有问题的,其中所有txts文件夹要更名为labels文件夹,包括train、val、test中的txts文件夹都要改名,按照官方文档来即可 (如图2)
这样子就能检测到大部分是images了
2、在训练时出现多线程错误(部分人有)
如果上述问题都解决了还不能正确训练,那么可能会遇到如图3的问题:
这时需要在代码中修改了
# train.py
import os
from ultralytics import YOLO
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
Model = YOLO('yolo11n.pt') # 你可以选其他的模型,如果显卡厉害的话
my_yaml = r'H:\Computer Vision\practice_again\practice2_again\resources\data\custom_dataset.yaml'
if __name__=='__main__':
Model.train(data=my_yaml,epochs=300) # 训练300轮
Model.val() # 验证模型
在代码中加上两行,分别时import os 和 os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" ,然后运行,就能训练了。
3、预测模型保存的图片仅仅只能预测一种图片(比如所有图片只能预测LED之类的)
这种情况很大程度上是因为你并不是一次性把所有标签打完的,意思就是在打标签时就应该设置三个标签将所有图片打完,而不是LED打一部分,R打一部分,TRI打一部分。(不知道有没有说明白)
然后就是等待漫长的训练过程ing~~~~~~~
然后预测代码没有什么特别的,按照任务里的来就行了。。。
附上predict图
此处不再一一列举了。
如果还有其他problems,欢迎讨论
24 算法组 郑纬华