摘要:根据深度学习的高精度鸡蛋检测辨认体系可用于日常生活中或户外来检测与定位鸡蛋方针,运用深度学习算法可完结图片、视频、摄像头等办法的鸡蛋方针检测辨认,别的支持成果可视化与图片或视频检测成果的导出。本体系选用YOLOv5方针检测模型练习数据集,运用Pysdie6库来建立页面展现体系,一起支持ONNX、PT等模型作为权重模型的输出。本体系支持的功用包含鸡蛋练习模型的导入、初始化;相信分与IOU阈值的调理、图画上传、检测、可视化成果展现、成果导出与完毕检测;视频的上传、检测、可视化成果展现、成果导出与完毕检测;摄像头的上传、检测、可视化成果展现与完毕检测;已检测方针列表、位相信息;前向推理用时。别的本鸡蛋检测辨认体系一起支持原始图画与检测成果图画的一起展现,原始视频与检测成果视频的一起展现。本博文供给了完好的Python代码和运用教程,合适新入门的朋友参阅,完好代码资源文件请转至文末的下载链接。
根本介绍
近年来,机器学习和深度学习取得了较大的开展,深度学习办法在检测精度和速度方面与传统办法比较表现出更杰出的功用。YOLOv5是单阶段方针检测算法YOLO的第五代,根据试验得出结论,其在速度与精确功用方面都有了明显进步,开源的代码可见github.com/ultralytics…。因此本博文运用YOLOv5检测算法完结一种高精度鸡蛋辨认检测模型,再搭配上Pyside6库写出界面体系,完结方针检测辨认页面的开发。注意到YOLO系列算法的最新进展已有YOLOv6、YOLOv7、YOLOv8等算法,将本体系中检测算法替换为最新算法的代码也将在后面发布,欢迎重视保藏。
环境建立
(1)下载完好文件到自己电脑上,然后运用cmd翻开到文件目录
(2)运用Conda创立环境(Anacodna),conda create -n yolo5 python=3.8 然后装置torch和torchvision(pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 -f download.pytorch.org/whl/torch_s…-i pypi.tuna.tsinghua.edu.cn/simple)其中-i pypi.tuna.tsinghua.edu.cn/simple代表运用清… install -r requirements.txt -i pypi.tuna.tsinghua.edu.cn/simple
(3)装置Pyside6库 pip install pyside6==6.3 -i pypi.tuna.tsinghua.edu.cn/simple
(4)对于windows体系下的pycocotools库的装置:pip install pycocotools-windows -i pypi.tuna.tsinghua.edu.cn/simple
界面及功用展现
下面给出本博文规划的软件界面,全体界面简洁大方,大体功用包含练习模型的导入、初始化;相信分与IOU阈值的调理、图画上传、检测、可视化成果展现、成果导出与完毕检测;视频的上传、检测、可视化成果展现、成果导出与完毕检测;已检测方针列表、位相信息;前向推理用时。希望咱们能够喜爱,初始界面如下图:
模型挑选与初始化
用户能够点击模型权重挑选按钮上传练习好的模型权重,练习权重格局可为.pt、.onnx以及。engine等,之后再点击模型权重初始化按钮可完结已挑选模型初始化信息的设置。
相信分与IOU的改动
在Confidence或IOU下方的输入框中改动值即可同步改动滑动条的进展,一起改动滑动条的进展值也可同步改动输入框的值;Confidence或IOU值的改动将同步到模型里的装备,将改动检测相信度阈值与IOU阈值。
图画挑选、检测与导出
用户能够点击挑选图画按钮上传单张图片进行检测与辨认。
再点击图画检测按钮可完结输入图画的方针检测功用,之后体系会在用时一栏输出检测用时,在方针数量一栏输出已检测到的方针数量,在下拉框可挑选已检测方针,对应于方针方位(即xmin、ymin、xmax以及ymax)标签值的改动。
再点击检测成果展现按钮可在体系左下方显现输入图画检测的成果,体系将显现辨认出图片中的方针的类别、方位和相信度信息。
点击图画检测成果导出按钮即可导出检测后的图画,在保存栏里输入保存的图片称号及后缀即可完结检测成果图画的保存。
点击完毕图画检测按钮即可完结体系界面的改写,将一切输出信息清空,之后再点击挑选图画或挑选视频按钮来上传图画或视频。
视频挑选、检测与导出
用户能够点击挑选视频按钮上传视频进行检测与辨认,之后体系会将视频的第一帧输入到体系界面的左上方显现。
再点击视频检测按钮可完结输入视频的方针检测功用,之后体系会在用时一栏输出检测用时,在方针数量一栏输出已检测到的方针数量,在下拉框可挑选已检测方针,对应于方针方位(即xmin、ymin、xmax以及ymax)标签值的改动。
点击暂停视频检测按钮即可完结输入视频的暂停,此时按钮变为持续视频检测,输入视频帧与帧检测成果会保留在体系界面,可点击下拉方针框挑选已检测方针的坐标位相信息,再点击持续视频检测按钮即可完结输入视频的检测。
点击视频检测成果导出按钮即可导出检测后的视频,在保存栏里输入保存的图片称号及后缀即可完结检测成果视频的保存。
点击完毕视频检测按钮即可完结体系界面的改写,将一切输出信息清空,之后再点击挑选图画或挑选视频按钮来上传图画或视频。
摄像头翻开、检测与完毕
用户能够点击翻开摄像头按钮来翻开摄像头设备进行检测与辨认,之后体系会将摄像头图画输入到体系界面的左上方显现。
再点击摄像头检测按钮可完结输入摄像头的方针检测功用,之后体系会在用时一栏输出检测用时,在方针数量一栏输出已检测到的方针数量,在下拉框可挑选已检测方针,对应于方针方位(即xmin、ymin、xmax以及ymax)标签值的改动。
点击完毕视频检测按钮即可完结体系界面的改写,将一切输出信息清空,之后再点击挑选图画或挑选视频或翻开摄像按钮来上传图画、视频或翻开摄像头。
算法原理介绍
本体系选用了根据深度学习的单阶段方针检测算法YOLOv5,比较于YOLOv3和YOLOv4,YOLOv5在检测精度和速度上都有很大的进步。YOLOv5算法的核心思维是将方针检测问题转化为一个回归问题,经过直接猜测物体中心点的坐标来替代Anchor框。此外,YOLOv5运用SPP(Spatial Pyramid Pooling)的特征提取办法,这种办法能够在不增加核算量的情况下,有效地提取多标准特征,进步检测功用。YOLOv5s模型的全体结构如下图所示。
YOLOv5网络结构是由Input、Backbone、Neck、Prediction组成。YOLOv5的Input部分是网络的输入端,选用Mosaic数据增强办法,对输入数据随机裁剪,然后进行拼接。Backbone是YOLOv5提取特征的网络部分,特征提取才能直接影响整个网络功用。在特征提取阶段,YOLOv5运用CSPNet(Cross Stage Partial Network)结构,它将输入特征图分为两部分,一部分经过一系列卷积层进行处理,另一部分直接进行下采样,终究将这两部分特征图进行交融。这种规划使得网络具有更强的非线性表达才能,能够更好地处理方针检测使命中的杂乱背景和多样化物体。在Neck阶段运用接连的卷积核C3结构块交融特征图。在Prediction阶段,模型运用成果特征图猜测方针的中心坐标与尺度信息。博主觉得YOLOv5不失为一种方针检测的高功用解决方案,能够以较高的精确率对方针进行分类与定位。当然现在YOLOv6、YOLOv7、YOLOv8等算法也在不断提出和改进,后续博主也会将这些算法融入到本体系中,敬请期待。
数据集介绍
本体系运用的鸡蛋数据集手动标注了鸡蛋这一个类别,数据集总计846张图片。该数据会集类别都有大量的旋转和不同的光照条件,有助于练习出愈加鲁棒的检测模型。本文试验的鸡蛋检测辨认数据集包含练习集573张图片,验证集167张图片,选取部分数据部分样本数据集如下图所示。因为YOLOv5算法对输入图片大小有限制,需求将一切图片调整为相同的大小。为了在不影响检测精度的情况下尽可能减小图片的失真,咱们将一切图片调整为640×640的大小,并保持原有的宽高比例。此外,为了增强模型的泛化才能和鲁棒性,咱们还运用了数据增强技能,包含随机旋转、缩放、裁剪和色彩变换等,以扩大数据集并削减过拟合危险。
关键代码解析
本体系的深度学习模型运用PyTorch完结,根据YOLOv5算法进行方针检测。在练习阶段,咱们运用了预练习模型作为初始模型进行练习,然后经过屡次迭代优化网络参数,以达到更好的检测功用。在练习进程中,咱们选用了学习率衰减和数据增强等技能,以增强模型的泛化才能和鲁棒性。
在测验阶段,咱们运用了练习好的模型来对新的图片和视频进行检测。经过设置阈值,将相信度低于阈值的检测框过滤掉,终究得到检测成果。一起,咱们还能够将检测成果保存为图片或视频格局,以便进行后续剖析和运用。本体系根据YOLOv5算法,运用PyTorch完结。代码中用到的首要库包含PyTorch、NumPy、OpenCV、PyQt等。
Pyside6界面规划
Pyside6是Python语言的GUI编程解决方案之一,能够快速地为Python程序创立GUI运用。在本博文中,咱们运用Pyside6库创立一个图形化界面,为用户供给简单易用的交互界面,完结用户挑选图片、视频进行方针检测。
咱们运用Qt Designer规划图形界面,然后运用Pyside6将规划好的UI文件转换为Python代码。图形界面中包含多个UI控件,例如:标签、按钮、文本框、多选框等。经过Pyside6中的信号槽机制,能够使得UI控件与程序逻辑代码相互连接。
试验成果与剖析
在试验成果与剖析部分,咱们运用精度和召回率等指标来评估模型的功用,还经过丢失曲线和PR曲线来剖析练习进程。在练习阶段,咱们运用了前面介绍的鸡蛋数据集进行练习,运用了YOLOv5算法对数据集练习,总计练习了300个epochs。在练习进程中,咱们运用tensorboard记录了模型在练习集和验证集上的丢失曲线。从下图能够看出,随着练习次数的增加,模型的练习丢失和验证丢失都逐步降低,说明模型不断地学习到愈加精准的特征。在练习完毕后,咱们运用模型在数据集的验证集进步行了评估,得到了以下成果。
下图展现了咱们练习的YOLOv5模型在验证集上的PR曲线,从图中能够看出,模型取得了较高的召回率和精确率,全体表现杰出。
下图展现了本博文在运用YOLOv5模型对鸡蛋数据集进行练习时分的Mosaic数据增强图画。
综上,本博文练习得到的YOLOv5模型在数据集上表现杰出,具有较高的检测精度和鲁棒性,能够在实践场景中运用。别的本博主对整个体系进行了具体测验,终究开宣布一版流畅的高精度方针检测体系界面,便是本博文演示部分的展现,完好的UI界面、测验图片视频、代码文件等均已打包上传,感兴趣的朋友能够重视我私信获取。
其他根据深度学习的方针检测体系如西红柿、猫狗、山羊、野生方针、烟头、二维码、头盔、交警、野生动物、户外烟雾、人体摔倒辨认、红外行人、家禽猪、苹果、推土机、蜜蜂、打电话、鸽子、足球、奶牛、人脸口罩、安全背心、烟雾检测体系等有需求的朋友重视我,从博主其他视频中获取下载链接。
完好项目目录如下所示: