# maskDetection_jetson **Repository Path**: bill20221991/maskDetection_jetson ## Basic Information - **Project Name**: maskDetection_jetson - **Description**: 在Jetson Nano上用YOLO实现口罩识别应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2023-03-27 - **Last Updated**: 2023-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 在 NVIDIA Jetson 上实现口罩识别 1. 数据集:共600张图片,里面包含多个戴口罩/不戴口罩的人 2. 用 Yolov4-Tiny深度神经网络进行模型训练与推理识别 点击下方 GIF 图片,可以看到完整的最终效果演示 > [![IMAGE ALT TEXT](maskDemo.gif)](https://www.youtube.com/watch?v=ShxBRGUBuDI&t=176s "CameraMaster") # 准备工作: 1. 至 https://github.com/AlexeyAB/darknet 下载Darknet框架并安装 2. 点击 https://pjreddie.com/media/files/darknet53.conv.74 下载 darknet53.conv.74模型(153MB)到darknet安装目录中 3. 执行以下指令,将本项目到克隆到您的Jetson设备上 > git clone https://gitee.com/gpus/maskDetection_jetson # 执行步骤: 1. 进入 maskDetection_jetson 目录 > cd maskDetection_jetson 2. 解压缩 dataset.zip ,最终应包含 1,230 个文件(615张图片+615个.xml标注文件) > unzip dataset.zip 3. 执行下面指令,会协助您执行三件工作: - 将所有 .xml 格式的标注,转换成 darkent 可识别的 .txt 格式 - 建立模型训练的图像列表 train.txt ,需要用完整路径 - 建立模型训练的测试列表 test.txt ,需要用完整路径 > ./0_dataDispatch.py 4. 修改 mask.data 文件,提供每个设定文件的正确绝对路径 5. 从 Darknet 目录(根据实际路径调整指令)复制yolov4-tiny-custom.cfg 到本目录 - 这里可以选择不同的 .cfg 设定文件,修改变量的方式雷同 > cp ~/darknet/cfg/yolov4-tiny-custom.cfg . 6. 修改以下三个变量值: - 第 220行 与 269行:**classes=80 改成 classes=2** - 第 212行 与 263行:**filters=255 改成 filters=21** - 第 20行:**max_batches=500200 改成 max_batches=5000**,便于在 Jetson 直接模型训练 7. 要在Jetson上执行模型训练,请修改的 batch与subdivisions 的值,如下: - batch=16, subdivisions=2 8. 修改 train_mask.sh 里面 DARKNET 与 PRJ_PATH 的绝对路径,例如 - export DARKNET=$HOME/darknet - export PRJ_PATH=$HOME/maskDetection_jetson - 存档后执行下面指令进行模型训练,**在 Jetson Nano 4GB 下大约 90分钟** > ./1_trainMask.sh 9. 训练好模型之后,依旧需要用 yolov4-tiny-custom.cfg 配置文件进行推理计算,修改下面两处参数 - batch=1, subdivisions=1 - 存档后执行下面指令进行推理 > ./2_demoMask.sh - 请自行调整 2_demoMash.sh 脚本最后的数据源,可以是视频、CSI摄像头、USB摄像头