赞
踩
实现自己的图像分类算法模型训练,应用。
1.图像分类数据集配置方式
例如:
# 0 - 6 文件夹分别label为:
# angry ,disgust ,fear ,happy ,sad ,surprise ,neutral
#0,1, 2,3 ,4 , 5 , 6
保存文件形式如下:
每一个数字标签文件夹里面是面部表情图片。文件夹命名为分类类名,多少个类别就有多少个文件夹,不用配置额外的data-yaml.
2.yolov8训练图像分类算法模型
注意,此处数据与分割,检测,关键点算法的数据输入yaml不同.data=数据集文件夹地址imageFER(根据自己存放地址而变)
result = model.train(data='D:/xxx/Datasets/datasetFER2024/imagesFER'-----
。
# Begin to show your code! import torch from ultralytics import YOLO device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") def trainModel(mode_pt=None): if mode_pt is None: # model = YOLO(model=r'D:/xxx/Models/yolov8/classify/yolov8m-cls.pt') # 加载预训练模型方法导入分类模型参数 model = YOLO('yolov8m-cls.yaml').load('yolov8m-cls.pt') # 在线下载预训练模型,加载训练方式 else: model = YOLO(model=mode_pt) # 加载待优化模型 model.to(device) result = model.train(data='D:/xxx/Datasets/datasetFER2024/imagesFER', epochs=100, batch=32, single_cls=False, imgsz=224, workers=0) if __name__ == "__main__": mode_pt = r'D:/xxx/Models/yolov8/classify/yolov8m-cls.pt' trainModel()
imgsz=224,可根据数据集图像大小的均值设定一个尺寸imgsz。
注意:# 加载预训练模型方法导入分类模型参数,可能因为自行下载的YOLOv8-cls.pt预训练模型文件有问题,会报bug
ModuleNotFoundError: No module named ‘ultralytics.utils‘
,建议使用在线下载最新模型。
3.掌握训练结果分析
根据损失函数,精确度曲线,调整参数或新增数据均衡类别。
完成表情分类识别算法模型: FER,Facial expression recognition表情识别算法模型
ferRes = model.predict(source=r"D:/xx/Datasets/datasetFER2024/test/", save=True)
测试结果以概率从高到低排列可能的结果。
2. 预测结果分析
首先,debug程序,在预测打印结果位置打个断点,查看模型预测图像文件夹的输出—ferRes :
然后,选择一个图片输出结果打开。
probs保存了预测结果。top1为得分最高的分类结果。top5为得分前五的类别列表,且按置信度得分由高到低排列。
训练的时候,你也许注意到了loss后面有
Top1Acc
和Top5Acc
.(Top5Acc表示预测概率前5个中有一个正确,就算预测正确的概率)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。