保姆级教程使用Gradio快速搭建实时口罩检测系统1. 引言为什么需要口罩检测系统在公共场所口罩佩戴检测已经成为疫情防控的重要环节。传统的人工检查方式效率低下且容易遗漏而基于深度学习的自动检测系统能够快速、准确地识别人员是否规范佩戴口罩。本教程将手把手教你如何使用Gradio和预训练的口罩检测模型快速搭建一个实时口罩检测系统。无需深厚的AI背景只需按照步骤操作30分钟内就能拥有自己的检测应用。2. 环境准备与快速部署2.1 系统要求在开始之前请确保你的系统满足以下基本要求Python 3.7或更高版本至少4GB可用内存支持CUDA的GPU可选但推荐用于更好的性能2.2 一键安装依赖打开终端或命令提示符执行以下命令安装必要依赖pip install gradio pip install opencv-python pip install numpy pip install torch pip install torchvision这些库分别是gradio用于构建Web界面的轻量级框架opencv-python图像处理和计算机视觉库numpy科学计算基础库torch和torchvisionPyTorch深度学习框架3. 模型理解与快速上手3.1 口罩检测模型简介本教程使用的口罩检测模型基于DAMO-YOLO框架这是一个专为工业落地设计的目标检测框架在速度和精度之间取得了很好的平衡。模型能够识别两种类别facemask佩戴口罩的人脸no facemask未佩戴口罩的人脸3.2 模型工作原理简析模型通过以下步骤进行检测输入处理接收图像并调整到合适尺寸特征提取使用深度神经网络提取图像特征目标检测在图像中定位人脸并判断是否佩戴口罩结果输出用矩形框标注检测结果并显示类别4. 分步实践搭建检测系统4.1 创建检测脚本新建一个Python文件命名为mask_detection.py并添加以下代码import gradio as gr import cv2 import numpy as np from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks # 初始化口罩检测管道 mask_detection pipeline( Tasks.face_detection, modeldamo/cv_tinynas_face-detection_damoyolo_face-mask ) def detect_mask(image): 对输入图像进行口罩检测 # 转换图像格式 if isinstance(image, np.ndarray): image image[:, :, ::-1] # BGR转RGB # 执行检测 result mask_detection(image) # 绘制检测结果 output_image image.copy() for box in result[boxes]: x1, y1, x2, y2 map(int, box[:4]) label facemask if box[4] 0.5 else no facemask color (0, 255, 0) if label facemask else (0, 0, 255) # 绘制矩形框 cv2.rectangle(output_image, (x1, y1), (x2, y2), color, 2) # 添加标签 cv2.putText(output_image, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, color, 2) return output_image # 创建Gradio界面 iface gr.Interface( fndetect_mask, inputsgr.Image(label上传人脸图片), outputsgr.Image(label检测结果), title实时口罩检测系统, description上传包含人脸的图片系统将自动检测是否佩戴口罩, examples[ [path_to_example1.jpg], # 替换为实际示例图片路径 [path_to_example2.jpg] # 替换为实际示例图片路径 ] ) # 启动应用 iface.launch(shareTrue)4.2 运行检测系统在终端中运行你的脚本python mask_detection.py系统会自动启动一个本地Web服务器并在终端中显示访问地址通常是http://127.0.0.1:7860。4.3 使用检测系统打开浏览器访问显示的地址你会看到一个简洁的界面上传图片点击上传按钮选择包含人脸的图片开始检测系统会自动处理图片并显示结果查看结果佩戴口罩的人脸会用绿色框标注未佩戴的用红色框标注5. 实用技巧与进阶功能5.1 提高检测准确率的小技巧图片质量确保上传的图片清晰人脸部分不要太模糊光线条件选择光线充足的环境下拍摄的图片人脸角度正面人脸检测效果最好侧脸可能影响准确率5.2 添加实时摄像头支持如果你想使用摄像头进行实时检测可以修改代码添加摄像头支持import gradio as gr import cv2 import numpy as np # 在原有代码基础上添加摄像头支持 def cam_detect(): cap cv2.VideoCapture(0) while True: ret, frame cap.read() if not ret: break # 进行口罩检测 result detect_mask(frame) # 显示结果 cv2.imshow(Real-time Mask Detection, result) if cv2.waitKey(1) 0xFF ord(q): break cap.release() cv2.destroyAllWindows() # 在界面中添加摄像头选项 iface gr.Interface( fndetect_mask, inputsgr.Image(label上传图片或使用摄像头, sourcewebcam), outputsgr.Image(label检测结果), title实时口罩检测系统, description上传图片或使用摄像头进行实时口罩检测 )5.3 批量处理图片如果你需要批量检测多张图片可以添加以下功能def batch_detect(images): 批量处理多张图片 results [] for image in images: result detect_mask(image) results.append(result) return results6. 常见问题解答6.1 模型加载慢怎么办首次运行需要下载模型权重可能会比较慢。后续运行会直接使用缓存模型速度会快很多。6.2 检测结果不准确如何改善尝试调整检测阈值在代码中修改box[4] 0.5这个值确保图片中人脸清晰可见如果环境光线较暗可以尝试对图片进行亮度调整6.3 如何部署到服务器Gradio支持多种部署方式# 使用Gradio分享功能临时公开访问 iface.launch(shareTrue) # 或者部署到Hugging Face Spaces # 创建requirements.txt文件并推送代码7. 总结通过本教程你已经学会了如何使用Gradio快速搭建一个功能完整的口罩检测系统。这个系统不仅能够准确识别佩戴口罩的情况还提供了友好的Web界面方便非技术人员使用。关键收获掌握了Gradio的基本使用方法理解了口罩检测模型的工作原理学会了如何将AI模型包装成实用应用获得了可扩展的代码基础可以进一步开发更多功能现在你可以尝试使用自己的图片进行测试或者根据实际需求对系统进行定制化修改。这个系统可以应用于校园、商场、办公室等各种需要口罩检测的场景。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。