欢度中秋节!从零开始实现一个月饼检测器

在这里插入图片描述

《欢度中秋节!从零开始实现一个月饼🥮检测器》

大家好,马上要到中秋节了,今天给大家分享一个非常适合新手的Ai小项目—月饼🥮检测器,跟着我的博文,我会带你一步一步的从零开始实现属于自己的月饼🥮检测器

第一步:准备一些月饼图片

在这里插入图片描述

我这里让朋友帮忙爬取了600张,清洗筛选后最终得到了304张


第二步:标注数据

由于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_Magichttps://github.com/WangQvQ/Yolov5_Magic

我这里选择我个人改进的yolov5项目

首先在data的文件夹里新建一个MoonCake.yaml,我们要在这个MoonCake.yaml文件里放上我们数据集的路径和类别信息

在这里插入图片描述

MoonCake.yaml我们按照如下的格式书写,因为没有划分测试集,所以这里我们可以不写test的路径

新手我推荐直接写绝对路径,这样可以减少一些错误

在这里插入图片描述

接下来我们在项目里找到train.py ,在--data这里放上我们刚刚写好的MoonCake.yaml的路径

因为数据集比较少,所以我这里选择了轻量化的主干网络shufflenetv2,如果你选择的是我的代码,那么你会在models里发现一个写好的配置文件yolov5_ShuffleNetv2.yaml,如果你不选择我的代码,那么你使用默认的yolov5s就可以了;

在这里插入图片描述

所以在这里放上yolov5_ShuffleNetv2的路径,当然用默认的也是可以的

在这里插入图片描述

随后我们就可以开始训练模型啦

各个参数更加详细的解释可以看我的其它博文:手把手带你调参Yolo v5 (v6.1)(二)

参数简要说明:
–weights:初始化的权重文件的路径地址
–cfg:模型yaml文件的路径地址
–data:数据yaml文件的路径地址
–hyp:超参数文件路径地址
–epochs:训练轮次
–batch-size:喂入批次文件的多少
–img-size:输入图片尺寸
–rect:是否采用矩形训练,默认False
–resume:接着打断训练上次的结果接着训练
–nosave:不保存模型,默认False
–notest:不进行test,默认False
–noautoanchor:不自动调整anchor,默认False
–evolve:是否进行超参数进化,默认False
–bucket:谷歌云盘bucket,一般不会用到
–cache-images:是否提前缓存图片到内存,以加快训练速度,默认False
–image-weights:使用加权图像选择进行训练
–device:训练的设备,cpu;0(表示一个gpu设备cuda:0);0,1,2,3(多个gpu设备)
–multi-scale:是否进行多尺度训练,默认False
–single-cls:数据集是否只有一个类别,默认False
–adam:是否使用adam优化器
–sync-bn:是否使用跨卡同步BN,在DDP模式使用
–local_rank:DDP参数,请勿修改
–workers:最大工作核心数
–project:训练模型的保存位置
–name:模型保存的目录名称
–exist-ok:模型目录是否存在,不存在就创建

我们可以在终端里键入:python train.py --epoch 100

当出现这样的画面的时候就说明开始训练啦,我们只要耐心的等待结果就可以了

在这里插入图片描述

我的设备是3060显卡,100轮12分钟就训练好了,最终准确率达到了86.5%,召回率达到了78.7%,效果还是很不错的,最终的模型数据就保存在红框中的路径里,记住这里,一会儿会用得到

在这里插入图片描述

接下来我们就可以找一些图片测试一下我们的模型实际的检测效果了


第五步:测试模型

找到detect.py ,将这里的权重路径换成我们刚刚训练好的那个模型的路径

在这里插入图片描述

然后找到data/images文件夹,在这个文件夹中放上我们想检测的图片

在这里插入图片描述

当然也可以检测视频和调用摄像头,有关这个文件详细的超参数可以看我这篇博文:手把手带你调参Yolo v5 (v6.1)(一)

参数简要说明:

–weights:权重的路径地址
–source:测试数据,可以是图片/视频路径,也可以是’0’(电脑自带摄像头),也可以是rtsp等视频流
–output:网络预测之后的图片/视频的保存路径
–img-size:网络输入图片大小
–conf-thres:置信度阈值
–iou-thres:做nms的iou阈值
–device:是用GPU还是CPU做推理
–view-img:是否展示预测之后的图片/视频,默认False
–save-txt:是否将预测的框坐标以txt文件形式保存,默认False
–classes:设置只保留某一部分类别,形如0或者0 2 3
–agnostic-nms:进行nms是否也去除不同类别之间的框,默认False
–augment:推理的时候进行多尺度,翻转等操作(TTA)推理
–update:如果为True,则对所有模型进行strip_optimizer操作,去除pt文件中的优化器等信息,默认为False
–project:推理的结果保存在runs/detect目录下

放完后我们就可以执行detece.py了,执行后会打印出检测后图片的路径,我们直接打开就可以看到了

在这里插入图片描述

下面就可以看到月饼的检测效果啦

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小彩蛋🎉

程序员的中秋就是这么朴实无华
不过,你确定这是月饼?🤣

在这里插入图片描述

  • 46
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 36
    评论
### 回答1: 好的,我可以为您提供一些关于五一劳动节网页设计的建议,但由于我是一个 AI,我无法执行代码编写任务。以下是我为您提供的一些灵感: 1. 尝试使用劳动节颜色主题设计网站,例如红色和蓝色。 2. 在网页上添加与劳动节有关的图像,例如工人、建筑或制造业。 3. 尝试使用简单明了的排版设计,并确保网页易于导航和使用。 4. 添加有关劳动节的信息,例如其历史和意义。 5. 如果您希望网站更有趣一些,可以尝试添加与劳动节有关的交互元素,例如游戏或抽奖活动。 希望这些建议能对您有所帮助! ### 回答2: 五一劳动节是一个重要的节日,用HTML和CSS编写一个五一劳动节的网页可以展示节日的氛围和意义。 首先,网页的顶部可以设计一个醒目的五一劳动节主题的标题,比如“欢度五一,致敬劳动者”。可以使用HTML的`<h1>`标签,并设置合适的CSS样式来增加标题的吸引力。 然后,在网页的中间部分,可以添加一张美丽的图片,表达节日的喜庆和欢乐。可以使用HTML的`<img>`标签,并通过CSS设置适当的宽度和高度,并使用`text-align`属性来使图片居中显示。 接下来,可以在图片下面添加一些文字,介绍五一劳动节的由来和意义。可以使用HTML的`<p>`标签,并使用CSS设置适当的字号、行间距和文字对齐方式,使文字内容更加美观和易读。 此外,为了增加网页的互动性和趣味性,可以添加一些动画效果。比如,在网页中增加一个土地的背景图片,并使用CSS3的`animation`属性将其以循环方式向左或向右滚动,模拟人们在劳动中不断前进的精神。 最后,在页面底部可以设置一个联系我们的区域,包括公司或组织的联系方式和地址。可以使用HTML的`<div>`标签来创建一个容器,并使用CSS设置合适的颜色和边框样式,以突出联系信息的重要性。 通过以上的设计和布局,可以用HTML和CSS编写一个五一劳动节的网页,展示劳动者的辛勤付出和对劳动节的纪念。同时,还可以利用HTML和CSS的各种功能和特性,为网页增加美观的样式和丰富的内容。 ### 回答3: 五一劳动节是中国的重要节日之一,我们可以用HTML和CSS来制作一个精美的五一劳动节网页。 首先,我们需要创建一个HTML文件并添加必要的DOCTYPE声明和头部信息。在<body>标签中,我们可以开始构建网页的内容。我们可以添加一个适当的标题,例如“五一劳动节快乐”。 接下来,我们可以创建一个包含劳动节相关内容的主要区域。我们可以添加一张漂亮的劳动节图片,并使用CSS样式设置其大小和位置。我们还可以在图片下方添加一个欢迎消息,祝愿大家过一个愉快的五一劳动节。 在页面的下半部分,我们可以添加一些有关劳动节的资讯。我们可以使用HTML列表标签创建一个包含不同工种和劳动节活动的列表。我们还可以使用CSS样式美化列表,例如设置不同颜色和字体。 为了增加网页的互动性,我们可以添加一些醒目的按钮,例如“点击了解更多”或“参与劳动节活动”。将这些按钮链接到其他相关的网页,例如劳动节的历史、意义或相关的劳动节活动。我们还可以使用CSS样式为这些按钮添加动画效果,使其更加吸引人。 最后,在整个网页中使用CSS样式来调整文字、背景和边框的形状和颜色。我们可以选择职业相关的颜色主题,例如使用蓝色代表工人、绿色代表环保等等。 总的来说,用HTML和CSS可以制作一个精美而有趣的五一劳动节网页。不仅可以展示劳动节的意义和历史,还可以增加用户的参与度和互动性。劳动节快乐!
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迪菲赫尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值