1. 项目概述:吸烟人脸检测数据集与应用场景
这个1.4万张图像的数据集专为吸烟行为检测设计,已经按科学比例划分好训练集、验证集和测试集,并附带训练完成的YOLOv8和YOLOv11模型权重。在实际安防和公共卫生领域,这类数据集能有效解决监控场景下的违规吸烟识别难题——比如在加油站、医院禁烟区或学校周边,传统人工巡查效率低下且存在盲区。
我处理过多个类似项目,发现吸烟检测的难点在于:1) 吸烟动作的短暂性(香烟举起和放下的过程可能只有几帧)2) 遮挡问题(手部经常遮挡嘴部区域)3) 光照变化(夜间监控画面质量差)。这个数据集特别标注了香烟与面部的位置关系,比普通的人脸检测数据集更适合实际部署。
提示:数据集中的"吸烟"标签不仅包含香烟可见的情况,还包括典型的吸烟手势(如手靠近嘴部的持烟姿势),这对提高模型泛化能力至关重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据集构建核心技术解析
2.1 数据采集与清洗策略
原始数据主要来自三个渠道:公开监控视频截图(占比40%)、电影电视剧片段截取(30%)、模拟拍摄(30%)。这种混合来源保证了场景多样性——包含室内外、白天夜晚、不同人种和年龄段的吸烟场景。我们在清洗阶段特别注意了:
- 剔除模糊帧:使用Laplacian方差检测(阈值设为100),自动过滤掉分辨率低于640×480或焦点模糊的图像
- 平衡正负样本:最终数据集中吸烟/非吸烟样本比例为1:1.2,避免模型偏向多数类
- 人脸尺寸标准化:确保所有标注人脸区域宽度至少占图像宽度的15%
python复制# 示例:OpenCV模糊检测代码
def is_blur(image, threshold=100):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
fm = cv2.Laplacian(gray, cv2.VAR).var()
return fm < threshold
2.2 标注规范与质量控制
采用专业的LabelImg工具进行标注,每个吸烟样本包含两个矩形框:
- 人脸框(face):覆盖发际线到下巴的完整面部
- 香烟框(cigarette):包含香烟本体及烟雾区域(如有)
标注团队经过三轮交叉验证,最终mAP@0.5达到0.92。特别值得注
