《欢度中秋节!从零开始实现一个月饼🥮检测器》
文章目录
大家好,马上要到中秋节了,今天给大家分享一个非常适合新手的Ai小项目—月饼🥮检测器,跟着我的博文,我会带你一步一步的从零开始实现属于自己的月饼🥮检测器
第一步:准备一些月饼图片
第二步:标注数据
由于Labelimg和Labelme安装起来比较麻烦,所以这次我选择使用make sense:https://www.makesense.ai
这是一款在线标注数据集的工具,用起来非常的方便
进入网页后点击Get Started开始使用
首先点击Drop images然后Ctrl+A选中整个数据集里面的图片
随后添加标签信息,因为我这里只检测月饼一类,所以只添加一个标签 Moon Cake
随后就进入了漫长的标注环节,这里大家一定要认真标注,不然对最终模型的影响还是很大的
大约3个小时以后就标注完毕了。。。。
我们点击Action->Export Annotation 导出yolo格式的标签文件
导出之后的标签文件就是这个样子的
第三步:划分数据集
导出后按一定比例划分训练集和验证集,我这里训练集选择了273张图片,验证集选择了31张图片
按照以下格式放置:
数据集准备好之后就可以着手训练模型啦
第四步:训练模型
我们这次选择yolov5
模型作为基线训练
首先去yolov5
的官方项目里下载代码:https://github.com/ultralytics/yolov5
也可以使用我个人基于yolov5
官方项目改进的项目Yolov5_Magic
:https://github.com/WangQvQ/Yolov5_Magic
我这里选择我个人改进的yolov5
项目
首先在data
的文件夹里新建一个MoonCake.yaml
,我们要在这个MoonCake.yaml
文件里放上我们数据集的路径和类别信息
MoonCake.yaml
我们按照如下的格式书写,因为没有划分测试集,所以这里我们可以不写test的路径
新手我推荐直接写绝对路径,这样可以减少一些错误
接下来我们在项目里找到train.py
,在--data
这里放上我们刚刚写好的MoonCake.yaml
的路径
所以在这里放上yolov5_ShuffleNetv2
的路径,当然用默认的也是可以的
随后我们就可以开始训练模型啦
我们可以在终端里键入:python train.py --epoch 100
当出现这样的画面的时候就说明开始训练啦,我们只要耐心的等待结果就可以了
我的设备是3060显卡,100轮12分钟就训练好了,最终准确率达到了86.5%,召回率达到了78.7%,效果还是很不错的,最终的模型数据就保存在红框中的路径里,记住这里,一会儿会用得到
接下来我们就可以找一些图片测试一下我们的模型实际的检测效果了
第五步:测试模型
找到detect.py
,将这里的权重路径换成我们刚刚训练好的那个模型的路径
然后找到data/images
文件夹,在这个文件夹中放上我们想检测的图片
放完后我们就可以执行detece.py
了,执行后会打印出检测后图片的路径,我们直接打开就可以看到了
下面就可以看到月饼的检测效果啦
小彩蛋🎉