文章目录

  • 1. 制作数据集
    • 1.1 安装数据集制作工具
    • 1.2 运行数据集制作工具
    • 1.3 制作数据集
  • 2. 使用数据集
    • 2.1 下载口罩数据集
    • 2.2 分割数据集
    • 2.3 数据集配置
  • 3. 训练模型
    • 3.1 下载预训练模型
    • 3.2 修改训练代码
    • 3.3 训练模型
  • 4. 模型测试
    • 4.1 拷贝测试代码
    • 4.2 修改测试代码
    • 4.3 运行测试代码
  • 5. 问题
    • 5.1 错误:FileNotFoundError: [Errno 2] No such file or directory
    • 5.2 错误:ModuleNotFoundError: No module named 'tensorboard'
    • 5.3 错误:If reserved memory is >> allocated memory

1. 制作数据集

1.1 安装数据集制作工具

执行如下命令安装数据集制作工具labelimg

pip install labelimg

1.2 运行数据集制作工具

执行命令labelimg,运行数据集制作工具

labelimg工具界面如下:

1.3 制作数据集

  1. 点击Open Dir按钮,打开待制作的图片文件(尽量将图片放置在images目录下,方便后面分割数据集

  2. 点击左侧的模式切换按钮,将数据模式从PascalVOC切换到YOLO模式

  3. 绘制box框,并指明标签
    点击createBox按钮,绘制矩形边框,并设置标签文本(无口罩)。

  4. 点击Save按钮,保存样本标签信息(尽量将标签文件放置在labels文件夹下,方便后面进行数据分割

  5. 点击Next Image按钮,对下一幅图像进行处理(有口罩)

    之后点击save按钮,保存样本标签信息(标签信息尽量保存在labels文件夹下)

  6. 逐一图片进行处理,即可完成数据集制作

2. 使用数据集

2.1 下载口罩数据集

如果不想制作数据集,可以下载口罩数据集(点击下载,密码:sv74),并将数据集解压到项目根目录下(mask为数据集目录)。

2.2 分割数据集

下载数据集分割代码(点击下载),将其放在mask目录下,执行data_split.py,将数据集分割成训练数据集和验证数据集。分割后,数据集目录结构如下:

可以调整data_split.py中的TRAIN_RATIO = 80,来指明训练数据集和验证数据比例。

2.3 数据集配置

复制data目录下的coco.yaml,另存为mask.yaml,并修改其内容。修改后内容如下:


train: ./mask/train.txt
val: ./mask/val.txt nc: 2names: [ 'no-mask', 'mask' ]

3. 训练模型

3.1 下载预训练模型

下载预训练模型(点击下载),将其放置在项目根目录中。

3.2 修改训练代码

复制一份train.py,并重命名为train_mask.py.

打开train_mask.py,修改如下几项配置:

  1. 预训练模型名称

parser.add_argument(‘–weights’, type=str, default=‘yolov7_training.pt’, help=‘initial weights path’)

  1. 数据集路径

parser.add_argument(‘–data’, type=str, default=‘data/mask.yaml’, help=‘data.yaml path’)

  1. 训练轮数(默认300,时间比较久,可能需要数小时甚至数天)

parser.add_argument(‘–epochs’, type=int, default=100)

  1. 修改模型输出路径

parser.add_argument(‘–project’, default=‘runs/train/mask’, help=‘save to project/name’)

  1. 调整每批处理的图片数量(如果显卡内存较小,建议将值修改为2或者4)

parser.add_argument(‘–batch-size’, type=int, default=2, help=‘total batch size for all GPUs’)

3.3 训练模型

运行train_mask.py,进行模型训练。大概到20轮左右,模型识别精度能达到95%以上。

runs\train\mask\exp11\weights\best.pt即为最佳模型参数。

可以将best.pt拷贝到项目根目录中,并重命名为yolov7_mask.pt,方便之后使用.

4. 模型测试

4.1 拷贝测试代码

复制测试代码文件test.py,并重命名为test_mask.py

4.2 修改测试代码

修改模型参数文件

parser.add_argument(‘–weights’, nargs=‘+’, type=str, default=‘yolov7_mask.pt’, help=‘model.pt path(s)’)

修改数据集路径

parser.add_argument(‘–data’, type=str, default=‘data/mask.yaml’, help=‘*.data path’)

修改测试项目名称

parser.add_argument(‘–project’, default=‘runs/test/mask’, help=‘save to project/name’)

4.3 运行测试代码

运行代码test_mask.py,运行日志如下:

运行结果如下(在runs/test/mask/exp目录下):

5. 问题

5.1 错误:FileNotFoundError: [Errno 2] No such file or directory

如果pip install 安装软件时,提示FileNotFoundError: [Errno 2] No such file or directory错误,需要执行以下命令更新pip和安装工具。

pip install --upgrade setuptools
python -m pip install --upgrade pip

5.2 错误:ModuleNotFoundError: No module named ‘tensorboard’

如果出现错误:ModuleNotFoundError: No module named ‘tensorboard’,则执行pip install tensorboard安装该类库即可。

5.3 错误:If reserved memory is >> allocated memory

如果出现内存不足,调整batch-size即可,调整方法详见3.2节。

YOLO7 口罩识别实战相关推荐

  1. 基于OpenCV实现口罩识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 昨天在GitHub上看到了一个开源的项目,是利用深度学习来检测是否 ...

  2. 基于深度学习的口罩识别与检测PyTorch实现

    基于深度学习的口罩识别与检测PyTorch实现 1. 设计思路 1.1 两阶段检测器:先检测人脸,然后将人脸进行分类,戴口罩与不戴口罩. 1.2 一阶段检测器:直接训练口罩检测器,训练样本为人脸的标注 ...

  3. 实战:人脸识别实战项目(源码共享)

    首先我想问个问题:现在什么工程师最值钱? 毫无疑问,我想超 90% 的都会说:人工智能工程师.也难怪,随着近几年人工智能的发展,已经逐渐渗透到了各个领域,比如:医疗.教育.机械自动化.个性化推荐.信息 ...

  4. 免费直播:1小时带你体验Python车牌识别实战

    Python基础学会了,实战又是爬虫?太枯燥? 别无聊,CSDN学院邀请章秀淞老师开设技术直播课:1小时带你体验车牌识别实战.让你从众多车中,能用Python技术找到夏树上的那辆叔叔的奔驰车牌(玩笑) ...

  5. AI实战:人脸识别实战项目(源码共享)

    首先我想问个问题:现在什么工程师最值钱? 毫无疑问,我想超 90% 的都会说:人工智能工程师.也难怪,随着近几年人工智能的发展,已经逐渐渗透到了各个领域,比如:医疗.教育.机械自动化.个性化推荐.信息 ...

  6. 【项目实战课】基于Pytorch的3DCNN视频分类与行为识别实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的3DCNN视频分类与行为识别实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代 ...

  7. 【项目实战课】AI零基础,人人免费可学!基于Pytorch的SimpleNet人脸表情识别实战...

    欢迎大家来到我们的项目实战课,本期内容是<基于SimpleNet的人脸表情识别实战>,本次内容面向任意AI基础的读者,人人皆可免费学习. 所谓项目实战课,就是以简单的原理回顾+详细的项目实 ...

  8. 【项目实战课】基于Pytorch的MTCNN与Centerloss人脸识别实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的MTCNN与Centerloss人脸识别实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个 ...

  9. 免费GPU支持!口罩识别、安全帽识别算法赛同步开启,丰厚奖品等你来战!

    2020年,极市隆重推出 [极市平台视觉算法季度赛] ,旨在邀请广大视觉开发者用算法解决实际问题,第一季算法赛于2020年3月3日正式启动! 本次活动由极视角主办.英特尔联合主办,由UCloud提供技 ...

最新文章

  1. 【合并单元格】纵向合并单元格之前对数组处理【针对饿了么element的table的span-method合并行或列的计算方法】
  2. 批着DDD,实则是以数据库为中心------数据库已死
  3. html5新特性 移除哪些,html5\CSS3有哪些新特性、移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?...
  4. SQL Server中EXISTS结构
  5. NeurIPS 2018 | 腾讯AI Lab:可自适应于不同环境和任务的强化学习方法
  6. JS脚本病毒调试脚本-Trojan[Downloader]:JS/Nemucod
  7. opensource项目_Opensource.com的写作主题从A到Z
  8. CSS样式之内容居中方法
  9. move_uploaded_file返回false但实际成功_023 Spring Boot 搭建实际项目开发框架
  10. 【激光雷达3D】【论文翻译】PointPillars: Fast Encoders for Object Detection from Point Clouds
  11. JasperReports 5.0.1 发布,Java 报表工具
  12. java db4o,DB4O--java对象数据库
  13. 【ZBrush笔刷】实用笔刷和Alpah下载,及笔刷使用方法
  14. (转)高盛报告:人工智能、机器学习和数据将推动未来生产力的发展
  15. Postgresql逻辑复制报错could not start WAL streaming: ERROR: replication slot “x“is active for PID xxx
  16. 未收到服务器返回信息吗,inode 未收到服务器回应
  17. load函数matlab,『matlab load函数的用法』如何把matlab中的数据导到excel表格中
  18. 18uec++多人游戏【服务器为两个角色发枪,并能在线开枪】
  19. 《第七周RFID作业》物联112118 林家辉
  20. go build解决missing go.sum.entry

热门文章

  1. 微信小程序 全面屏的适配
  2. 及坐标放线用计算机,已知规划图上的两点坐标,如何用jps测量放线?
  3. 分清楚技术重复和生物学重复
  4. NFT爆火背后的冷思考
  5. word毕设论文7个注意点
  6. JUSTICE∶What’s the Right Thing to Do 正义∶一场思辨之旅. 公正:该如何做是好?
  7. 【搞定GTD】时间日志的工具从Momento迁移到EverNote上
  8. CSS3 总结(二十一)——BFC
  9. opencv 表格识别之表格透视矫正(一)
  10. 游戏小创业团队最终的结局