当前位置: 首页 > news >正文

【深度学习】安全帽检测,目标检测,Faster RCNN训练

文章目录

  • 资料
  • 环境
  • 尝试训练
  • 安全帽数据训练
  • 测试
  • 预测
  • 全部数据、代码、训练完的权重等资料见:

资料

依据这个进行训练:
https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/faster_rcnn

├── backbone: 特征提取网络,可以根据自己的要求选择
├── network_files: Faster R-CNN网络(包括Fast R-CNN以及RPN等模块)
├── train_utils: 训练验证相关模块(包括cocotools)
├── my_dataset.py: 自定义dataset用于读取VOC数据集
├── train_mobilenet.py: 以MobileNetV2做为backbone进行训练
├── train_resnet50_fpn.py: 以resnet50+FPN做为backbone进行训练
├── train_multi_GPU.py: 针对使用多GPU的用户使用
├── predict.py: 简易的预测脚本,使用训练好的权重进行预测测试
├── validation.py: 利用训练好的权重验证/测试数据的COCO指标,并生成record_mAP.txt文件
└── pascal_voc_classes.json: pascal_voc标签文件

在这里插入图片描述

环境

dockerfile:

FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive# 安装基本软件包
RUN apt-get update && \apt-get upgrade -y && \apt-get -y --no-install-recommends install vim wget curl build-essential python3.10-dev python3.10 python3-pip sudo && \update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1 && \apt-get install -y libgl1 libglib2.0-0 ffmpeg tzdata && \ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo "Asia/Shanghai" > /etc/timezoneRUN apt-get -y --no-install-recommends install vim wget curl git build-essential python3.10 python3-pip python3.10-venv sudoRUN apt-get install -y libgl1 libglib2.0-0 iputils-ping python3.10-dev libgoogle-perftools-dev nginx# 更改默认Shell为bash
SHELL ["/bin/bash", "-c"]

python 环境:

git clone https://github.com/WZMIAOMIAO/deep-learning-for-image-processing.git
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
conda create -n py38 python=3.8 -y
conda activate py38
# CUDA 11.0
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch -y
cd /deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn
pip install -r requirements.txt

得到readme.md说的一些权重:

cd /deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn/backbonewget https://download.pytorch.org/models/mobilenet_v2-b0353104.pth
--2024-06-05 13:50:21--  https://download.pytorch.org/models/mobilenet_v2-b0353104.pthmv mobilenet_v2-b0353104.pth mobilenet_v2.pthwget https://download.pytorch.org/models/resnet50-0676ba61.pth
--2024-06-05 13:50:46--  https://download.pytorch.org/models/resnet50-0676ba61.pthmv resnet50-0676ba61.pth resnet50.pthwget https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pthmv fasterrcnn_resnet50_fpn_coco-258fb6c6.pth fasterrcnn_resnet50_fpn_coco.pthmkdir /deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn/data
cd /deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn/datawget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

尝试训练

反向commit 镜像:

docker commit 74d9893ccb29 kevinchina/deeplearning:fasterrcnn_train_v1docker push kevinchina/deeplearning:fasterrcnn_train_v1

重启容器:

docker run --gpus all -it -v $PWD:/wkp --shm-size=64g kevinchina/deeplearning:fasterrcnn_train_v1 bash

训练:

conda activate py38
cd /deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn/
python train_mobilenetv2.py

启动成功:
在这里插入图片描述
一轮训练完成后的验证:
在这里插入图片描述

安全帽数据训练

安全帽佩戴检测
数据集:https://github.com/njvisionpower/Safety-Helmet-Wearing-Dataset

加入安全帽数据,小小修改一下源代码的一些小的东西:

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

启动训练:

python train_mobilenetv2.py

训练完一轮:
在这里插入图片描述
训练结束:

Test:  Total time: 0:00:52 (0.0858 s / it)
Averaged stats: model_time: 0.0590 (0.0440)  evaluator_time: 0.2436 (0.0344)
Accumulating evaluation results...
DONE (t=1.42s).
IoU metric: bboxAverage Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.412Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.695Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.425Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.171Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.540Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.669Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.169Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.395Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.466Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.262Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.602Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.714
successful save loss curve!
successful save mAP curve!

测试

用test.txt中测试准确率

python validation.py

在这里插入图片描述

预测

(py38) root:/deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn# python  predict.py
using cuda:0 device.
inference+NMS time: 0.018668174743652344

docker push kevinchina/deeplearning:fasterrcnn_train_v2

全部数据、代码、训练完的权重等资料见:

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

相关文章:

【深度学习】安全帽检测,目标检测,Faster RCNN训练

文章目录 资料环境尝试训练安全帽数据训练测试预测全部数据、代码、训练完的权重等资料见: 资料 依据这个进行训练: https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/faster_rcnn ├── bac…...

IDEA2024创建maven项目

1、new->project 2、创建后展示 3、生成resources文件夹 4、测试--编写一个hello文件...

linux上VirtualBox使用

前言 最近想把唯一的windows系统装成linux, 但是确实存在一些特殊软件无法舍弃,所有装完linux需要用虚拟机装个windows 上来使用特定的一些软件(不想用wine了)。 还有对一些特定usb设备的透传,这样才能保证在虚拟机中…...

PID控制算法介绍及使用举例

PID 控制算法是一种常用的反馈控制算法,用于控制系统的稳定性和精度。PID 分别代表比例(Proportional)、积分(Integral)和微分(Derivative),通过组合这三个部分来调节控制输出&#…...

因子区间[牛客周赛44]

思路分析: 我们可以发现125是因子个数的极限了,所以我们可以用二维数组来维护第几个数有几个因子,然后用前缀和算出来每个区间合法个数,通过一个排列和从num里面选2个 ,c num 2 来计算即可 #include<iostream> #include<cstring> #include<string> #include…...

代码随想录算法训练营第四十四天 | 01背包问题理论基础、01背包问题滚动数组、416. 分割等和子集

背包问题其实有很多种&#xff0c;01背包是最基础也是最经典的&#xff0c;软工计科学生一定要掌握的。 01背包问题 代码随想录 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;| 关于背包问题&#xff0c;你不清楚的地方&#xff0c;这里都讲了&#xff01;| 动态规划经…...

【PingPong_注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …...

车辆路径规划之Dubins曲线与RS曲线简述

描述 Dubins和RS曲线都是路径规划的经典算法&#xff0c;其中车辆运动学利用RS曲线居多&#xff0c;因此简单介绍Dubins并引出RS曲线。 花了点时间看了二者的论文&#xff0c;并阅读了一个开源的代码。 Dubins曲线 Dubins曲线是在满足曲率约束和规定的始端和末端的切线&#…...

PostgreSQL 和Oracle锁机制对比

PostgreSQL 和Oracle锁机制对比 PostgreSQL 和 Oracle 都是业界广泛使用的关系型数据库管理系统&#xff0c;它们在锁机制方面都有独到的设计来控制并发访问&#xff0c;确保数据的一致性和完整性。下面我们详细比较一下这两个数据库系统的锁机制。 1. 锁类型 PostgreSQL P…...

6月05日,每日信息差

第一、特斯拉在碳博会上展示了其全品类的可持续能源解决方案&#xff0c;包括首次在国内展出的超大型电化学商用储能系统 Megapack 和家庭储能系统 Powerwall。此外&#xff0c;特斯拉还展示了电动汽车三电系统的解构和电池回收技术产品 第二、2024 年第一季度&#xff0c;全球…...

MongoDB~俩大特点管道聚合和数据压缩(snappy)

场景 在MySQL中&#xff0c;通常会涉及多个表的一些操作&#xff0c;MongoDB也类似&#xff0c;有时需要将多个文档甚至是多个集合汇总到一起计算分析&#xff08;比如求和、取最大值&#xff09;并返回计算后的结果&#xff0c;这个过程被称为 聚合操作 。 根据官方文档介绍&…...

HTML+CSS+JS 动态登录表单

效果演示 实现了一个登录表单的背景动画效果,包括一个渐变背景、一个输入框和一个登录按钮。背景动画由多个不同大小和颜色的正方形组成,它们在页面上以不同的速度和方向移动。当用户成功登录后,标题会向上移动,表单会消失。 Code <!DOCTYPE html> <html lang=&q…...

统一返回响应

前言 我们为什么要设置统一返回响应 提高代码的可维护性&#xff1a;通过统一返回请求的格式&#xff0c;可以使代码更加清晰和易于维护&#xff0c;减少重复的代码&#xff0c;提高代码质量。 便于调试和测试&#xff1a;统一的返回格式使得在调试和测试时更为简单&#xff…...

大数据学习问题记录

问题记录 node1突然无法连接finalshell node1突然无法连接finalshell 今天我打开虚拟机和finalshell的时候&#xff0c;发现我的node1连接不上finalshell,但是node2、node3依旧可以链接&#xff0c;我在网上找了很多方法&#xff0c;但是是关于全部虚拟机连接不上finalshell&a…...

第N4周:中文文本分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、预备知识 中文文本分类和英文文本分类都是文本分类&#xff0c;为什么要单独拎出来个中文文本分类呢&#xff1f; 在自然语言处理&#xff08;NLP&#x…...

【kubernetes】探索k8s集群的pod控制器详解(Deployment、StatefulSet、DaemonSet、Job、CronJob)

目录 一、Pod控制器及其功用 二、pod控制器有多种类型 2.1ReplicaSet 2.1.1ReplicaSet主要三个组件组成 2.2Deployment 2.3DaemonSet 2.4StatefulSet 2.5Job 2.6Cronjob 三、Pod与控制器之间的关系 3.1Deployment 3.2SatefulSet 3.2.1StatefulSet三个组件 3.2.2为…...

直接插入排序

#include <stdio.h>void insert_sort(int arr[], int n) {int i;int j;int tmp;for (i 1; i < n; i){tmp arr[i];j i - 1;// 将要插入的元素与数组中的元素比较&#xff08;从后向前比&#xff09; while (j > 0 && arr[j] > tmp){arr[j 1] arr[…...

esp32s3 nvs 存储过程中使用malloc和free函数的一点困惑

我的项目中&#xff0c;大量使用了malloc()和free()函数&#xff0c;在使用nvs存储之前没有出现问题。 esp32厂家nvs的blob存储的例程中&#xff0c;有使用malloc()和free()&#xff0c;我参照例程写了自己的blob存储函数f&#xff0c;一开始是可以正常使用的&#xff0c;后来…...

除visio以外的几款好用流程图绘制工具

流程图绘制软件在嵌入式软件开发中扮演着重要的角色&#xff0c;它们能够帮助用户清晰、直观地展示工作流程。以下是几款流行的流程图绘制软件及其特点的详细报告&#xff1a; 思维导图MindMaster MindMaster作为一款专业的思维导图软件&#xff0c;不仅具备强大的思维导图制作…...

CentOS 7 64位 常用命令

一、系统管理命令 systemctl start firewalld.service&#xff1a;启动防火墙服务 systemctl stop firewalld.service&#xff1a;停止防火墙服务 systemctl enable firewalld.service&#xff1a;设置防火墙服务开机自启 systemctl disable firewalld.service&#xff1a;禁止…...

2026最权威的十大AI辅助写作助手解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现今&#xff0c;人工智能辅助论文写作在学术研究里已渐渐变成常见的手段&#xff0c;当前&a…...

SPSS老版本用户必看:如何用R3.2.5实现高级统计分析(附完整语法示例)

SPSS老版本用户必看&#xff1a;如何用R3.2.5实现高级统计分析&#xff08;附完整语法示例&#xff09; 对于长期使用SPSS老版本的研究者来说&#xff0c;面对日益复杂的数据分析需求时&#xff0c;常常会遇到软件功能受限的困境。特别是在临床医学和社会科学研究中&#xff0c…...

C++ 文件 IO 性能优化技巧

C文件IO性能优化技巧 在软件开发中&#xff0c;文件IO操作往往是性能瓶颈之一&#xff0c;尤其是处理大文件或高频读写时。C作为一门高性能语言&#xff0c;提供了多种优化文件IO的方法&#xff0c;合理运用这些技巧可以显著提升程序效率。本文将介绍几种实用的C文件IO性能优化…...

股票相似K线匹配的Python实现:Tushare数据+皮尔逊相关系数全解析

股票相似K线匹配的Python实战&#xff1a;从数据获取到模式识别全流程 在量化交易领域&#xff0c;K线形态分析一直是技术派投资者的重要工具。传统的人工识别方法效率低下且主观性强&#xff0c;而借助Python和现代统计学方法&#xff0c;我们可以实现K线模式的自动化识别与匹…...

Ostrakon-VL-8B多模态运维监控实战:智能日志分析与故障预警

Ostrakon-VL-8B多模态运维监控实战&#xff1a;智能日志分析与故障预警 最近和几个做运维的朋友聊天&#xff0c;大家普遍都在吐槽一件事&#xff1a;每天上班就像在“看监控”和“查日志”之间来回切换。服务器告警一响&#xff0c;就得一头扎进海量的日志文件里&#xff0c;…...

面向商业航天的高可靠电机控制系统:从环境约束到芯片实现

摘要商业航天已成为全球航天产业高质量发展的核心增长极&#xff0c;电机控制系统作为运载火箭、卫星平台、空间载荷与在轨服务装备的关键执行机构&#xff0c;其在轨可靠性、控制精度与环境适应性直接决定航天任务成败。本文系统梳理商业航天电机控制领域的技术演进、典型负载…...

圣女司幼幽-造相Z-Turbo进阶用法:用Python脚本批量生成角色图教程

圣女司幼幽-造相Z-Turbo进阶用法&#xff1a;用Python脚本批量生成角色图教程 1. 从手动点击到自动生成&#xff1a;为什么需要脚本批量处理&#xff1f; 如果你已经体验过圣女司幼幽-造相Z-Turbo的Web界面&#xff0c;手动输入提示词、点击生成按钮&#xff0c;看着一张张精…...

突破百度网盘限速:BaiduPCS-Web技术普惠解决方案

突破百度网盘限速&#xff1a;BaiduPCS-Web技术普惠解决方案 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 在数字化时代&#xff0c;云存储已成为个人与企业数据管理的基础设施&#xff0c;而百度网盘作为国内用户基数最大…...

别再瞎调RAG了!用RAGAS给你的LangChain应用做个“体检报告”(附完整代码)

用RAGAS为你的LangChain应用做深度诊断&#xff1a;从指标解读到精准优化 当你花费数周构建的RAG系统突然在关键演示中输出"纽约市得名于一位爱吃苹果的市长"时&#xff0c;那种绝望感我深有体会。去年我们的客服机器人就曾把"产品退货政策"解释成"建…...

Multisim仿真进阶指南:从零构建PWM调光电路(附波形分析与调试秘籍)

1. PWM调光电路&#xff1a;从原理到Multisim实现 第一次接触PWM调光电路时&#xff0c;我被它精准的亮度控制能力惊艳到了。相比简单的呼吸灯电路&#xff0c;PWM调光可以通过调节占空比来实现LED从完全熄灭到最大亮度的无级调节&#xff0c;这在实际项目中特别实用。比如智能…...