基于YOLOv5实现中药饮⽚识别(含源码)【⽬标检测项⽬】
⼀. 项⽬背景
中医药⽂化是中华民族传统⽂化的瑰宝之⼀,历史源远流长。中药饮⽚是中药材在中医药理论指导下,结合药材⾃⾝性质及调剂、制剂要求,按照特定炮制⽅法加⼯⽽成,是中医临床开⽅施治的基础。但中药种类繁多,单凭⾁眼难以长时间⾼效准确地对其识别与分类。
近年来,深度学习技术在图像识别领域取得较⼤进展,其特征学习⽅法和深层结构可⾃动学习图像⾼层语义信息,拟合复杂模型的能⼒增强。结合YOLOv5,我们可以实现中药饮⽚实时⽬标检测。
⼆. 项⽬环境配置
⼯具版本
操作系统Windows 10 家庭中⽂版
IDE PyCharm 2019.1.1(Professional Edition)
Python Anaconda Python 3.8
Pytorch torch 1.7.1+cu101
CUDA V11.0.194
cuDNN8.0.5
显卡NVIDIA GeForce MX 150
附上虚拟环境所需的所有的模块:
(yolov5)C:\Users\Tianle Hu>pip list Package Version
-------------------------------------------absl-py 0.12.0
cachetools 4.2.1
certifi 2020.6.20
chardet 4.0.0
cycler 0.10.0
Cython 0.29.22
future 0.18.2
google-auth 1.28.0
google-auth-oauthlib 0.4.3
grpcio 1.36.1
idna 2.10
kiwisolver 1.3.1
labelImg 1.8.5
lxml 4.6.3
Markdown 3.3.4
matplotlib 3.3.4
numpy 1.20.1
oauthlib 3.1.0
opencv-python 4.5.1.48
pandas 1.2.3
Pillow 8.1.2
pip 21.0.1
protobuf 3.15.6
pyasn1 0.4.8
pyasn1-modules 0.2.8 pycocotools 2.0.2
pyparsing 2.4.7
PyQt5 5.15.4
PyQt5-Qt5 5.15.2
PyQt5-sip 12.8.1
python-dateutil 2.8.1
pytz 2021.1
PyYAML 5.4.1
requests 2.25.1
requests-oauthlib 1.3.0
rsa 4.7.2
scipy 1.6.2
seaborn 0.11.1
setuptools 52.0.0.post20210125 sip 4.19.13
six 1.15.0
tensorboard 2.4.1 tensorboard-plugin-wit 1.8.0
thop 0.0.31.post2005241907 torch 1.7.1+cu101 torchaudio 0.7.2
torchvision 0.8.2+cu101
tqdm 4.59.0
typing-extensions 3.7.4.3
urllib3 1.26.4
Werkzeug 1.0.1
wheel 0.36.2
wincertstore 0.2
python处理xml文件三. 制作数据集
1. 通过爬⾍爬取164类中药饮⽚图像,以每⼀类中药名命名该⽂件夹,如下图所⽰(仅展⽰了前10类中药饮⽚):
这⾥我们取⼗味中药作为我们⽬标检测的对象:
2. 我们将这⼗味中药放置到data⽂件夹下⾯的images中,格式均为.jpg
项⽬⽂件夹架构如下:
data⽬录下包含Annotations, images, ImageSets, labels 四个⽂件夹:
⽂件夹名备注
Annotation存储 xml ⽂件
images存储 jpg 格式图⽚
ImageSets存储 txt 格式⽂件,包含分类和检测的数据集分割⽂件
labels存储 txt 格式⽂件,包含label标注信息
ImageSets⽂件夹包含四个 txt ⽂件:
⽂件夹名备注
<包含训练集图像名称
<包含验证集图像名称
<包含训练集和验证集的合集图像名称
<包含测试集图像名称
3. 数据集标注
采⽤LabelImg进⾏标注,如果带yolo转换格式的就直接⽤该格式进⾏标注,如果没有的话可以选择PascalVOC格式,然后再进⾏转换即可。
即可。
下图展⽰的是对艾叶图像数据集的标注:
images⽂件夹下包含原始中药图像数据集:
如果是使⽤PascalVOC进⾏图像数据集标注的话会⽣成xml⽂件,我们将其保存到data⽂件夹下的Annotations⽂件夹进⾏保存:
如果是直接使⽤了yolo格式进⾏图像数据集标注的话则可以在data⽂件夹下的labels的⽂件夹下得到 .txt ⽂件:
第⼀列的 0 表⽰类别,后⾯四列数据表⽰标注时候的bunding框的信息。
4. 运⾏makeTxt.py将数据集按照8:1:1的⽐例来划分训练集、验证集、测试集(随即分类)
5. 运⾏voc_label.py将图⽚数据集标注后的xml⽂件中的标注信息读取出来并写⼊txt⽂件,运⾏后在labels⽂件夹中出现所有图⽚数据集
的标注信息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论