本研究旨在开发一种基于YOLOv8深度学习模型的中医舌诊检测和诊断系统,以实现舌诊的自动化和智能化,帮助医生进行快速、精准的中医诊断。舌诊是中医诊断的一个重要手段,舌象的不同特征常常反映出人体的健康状态和潜在的疾病。在中医舌诊中,舌苔的厚度、颜色和质地等是诊断疾病的重要依据。
本系统结合了PyQt5图形界面,提供用户友好的交互界面,方便操作人员导入图像、进行舌象检测并获取诊断结果。为了使系统能够准确识别舌苔特征,我们引入了多种类型的舌苔数据集,包括”镜面苔”、”白腻苔”、”薄白苔”、”黄腻苔”以及”灰黑苔”等。这些舌苔类型各自对应不同的身体状态和疾病特征,例如”镜面苔”可能表明气血不足或营养不良,而”黄腻苔”则可能预示体内湿热积聚。此外,”白腻苔”、”薄白苔”、”灰黑苔”等则分别反映不同的寒热、虚实病症。系统在训练过程中使用了丰富的舌苔图像样本,通过YOLOv8模型进行特征提取和分类。
在实验验证中,系统表现出较高的检测和分类准确性,能够快速、精准地识别不同类型的舌苔,从而帮助医师获得更为准确的诊断信息。与传统的人工舌诊相比,系统大大提高了舌诊的效率,减少了人为误差,使舌诊过程更加客观和标准化。该系统不仅适用于中医临床诊断,还可应用于中医教学、研究等领域,作为一个有效的辅助诊断工具,帮助推广和普及中医诊疗技术。未来,我们计划进一步扩展系统的数据集,增加更多的舌象特征,以提高系统的全面性和准确性,推动中医诊断智能化的进一步发展。
算法流程
项目数据
通过搜集关于数据集为各种各样的舌诊相关图像,并使用Labelimg标注工具对每张图片进行标注,分5检测类别,分别是’镜面舌苔’,’白腻舌苔’,’薄白舌苔’,’黄腻舌苔’,’灰黑舌苔’。
目标检测标注工具
(1)labelimg:开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的)。其注释以 PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持 COCO数据集格式。
(2)安装labelimg 在cmd输入以下命令 pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
结束后,在cmd中输入labelimg
初识labelimg
打开后,我们自己设置一下
在View中勾选Auto Save mode
接下来我们打开需要标注的图片文件夹
并设置标注文件保存的目录(上图中的Change Save Dir)
接下来就开始标注,画框,标记目标的label,然后d切换到下一张继续标注,不断重复重复。
Labelimg的快捷键
(3)数据准备
这里建议新建一个名为data的文件夹(这个是约定俗成,不这么做也行),里面创建一个名为images的文件夹存放我们需要打标签的图片文件;再创建一个名为labels存放标注的标签文件;最后创建一个名为 classes.txt 的txt文件来存放所要标注的类别名称。
data的目录结构如下:
│─img_data
│─images 存放需要打标签的图片文件
│─labels 存放标注的标签文件
└ classes.txt 定义自己要标注的所有类别(这个文件可有可无,但是在我们定义类别比较多的时候,最好有这个创建一个这样的txt文件来存放类别)
首先在images这个文件夹放置待标注的图片。
生成文件如下:
“classes.txt”定义了你的 YOLO 标签所引用的类名列表。
(4)YOLO模式创建标签的样式
存放标签信息的文件的文件名为与图片名相同,内容由N行5列数据组成。
每一行代表标注的一个目标,通常包括五个数据,从左到右依次为:类别id、x_center、y_center、width、height。
其中:
–x类别id代表标注目标的类别;
–x_center和y_center代表标注框的相对中心坐标;
–xwidth和height代表标注框的相对宽和高。
注意:这里的中心点坐标、宽和高都是相对数据!!!
存放标签类别的文