公司动态

轻量级实时人脸检测:R2CNN_Faster-RCNN_Tensorflow+MobileNetV2摄像头实时推理部署

📅 2026/8/22 13:10:53
轻量级实时人脸检测:R2CNN_Faster-RCNN_Tensorflow+MobileNetV2摄像头实时推理部署
轻量级实时人脸检测R2CNN_Faster-RCNN_TensorflowMobileNetV2摄像头实时推理部署【免费下载链接】R2CNN_Faster-RCNN_TensorflowDetectionTeamUCAS/R2CNN_Faster-RCNN_Tensorflow: 是一个基于TensorFlow实现的Faster R-CNN变体适用于遥感图像处理。适合用于需要针对遥感图像进行目标检测的项目。特点是可以提供针对遥感图像优化的模型结构和训练流程。项目地址: https://gitcode.com/gh_mirrors/r2/R2CNN_Faster-RCNN_TensorflowR2CNN_Faster-RCNN_Tensorflow 是一个基于 TensorFlow 实现的 Faster R-CNN 变体目标检测项目内置 MobileNetV2 轻量骨干网络与摄像头实时推理 Demo可实现轻量级实时人脸检测。只需一条命令即可调用摄像头实时画出带角度的人脸检测框并显示推理 FPS非常适合新手快速上手深度学习人脸检测的部署实战。为什么选 MobileNetV2 做实时人脸检测实时人脸检测的核心矛盾是精度要够、速度要快、算力要省。传统检测器常用 ResNet 等重型骨干网络推理慢、显存占用高在摄像头逐帧场景下往往撑不住帧率。而 MobileNet 系列采用深度可分离卷积在计算量大幅压缩的同时几乎不损失精度。下图展示了 MobileNet 在 ImageNet 分类任务上精度 vs 计算量MACs的优越性——绿色点越靠左越轻量、越靠上越精准本项目将 MobileNetV2 作为 Faster R-CNN 的骨干网络配置见 cfgs_FDDB_mobilenet_v1.py其中NET_NAME MobilenetV2、数据集为FDDB经典人脸检测数据集单类别face检测在 GTX 1060 上即可流畅跑通实时摄像头推理。项目效果摄像头实时人脸检测项目作者已提供基于 FDDB 数据集训练好的模型效果如下动图展示摄像头逐帧实时检测人脸左上角实时显示 FPS除了人脸检测该项目还能胜任遥感目标检测DOTA 数据集15 类和任意角度场景文本检测ICDAR2015下面是其场景文本检测的推理结果可以看到检测框能贴合文字角度项目自带的 FDDB 测试样张来自真实街景包含行人、广告牌等多种人脸场景位于tools/inference_image/可用于验证模型效果环境准备3 步搭好运行环境⚠️ 本项目基于TensorFlow 1.xPython 2.7搭建时请注意版本匹配依赖版本要求TensorFlow≥ 1.2CUDA8.0Python2.7推荐 Anaconda2OpenCVcv2 可用即可第 1 步获取代码git clone https://gitcode.com/gh_mirrors/r2/R2CNN_Faster-RCNN_Tensorflow第 2 步编译 NMS 加速算子项目用 Cython/C 实现了加快的 NMS 与旋转框 IoU 计算编译后才能发挥速度优势cd $PATH_ROOT/libs/box_utils/ python setup.py build_ext --inplace cd $PATH_ROOT/libs/box_utils/cython_utils python setup.py build_ext --inplace第 3 步选择人脸检测配置将 cfgs_FDDB_mobilenet_v1.py 的全部内容复制到 cfgs.py覆盖默认配置。该配置的关键项NET_NAME MobilenetV2—— 使用轻量骨干网络DATASET_NAME FDDB、CLASS_NUM 1—— 人脸单类检测IMG_SHORT_SIDE_LEN 600—— 推理时短边缩放尺寸ROTATE_NMS_USE_GPU True—— 旋转框 NMS 走 GPU提速关键模型权重下载需要准备两份权重下载后放入指定目录即可无需训练ImageNet 预训练的 MobileNetV2 权重mobilenet_v2_1.0_224.tgz解压后放到data/pretrained_weights/mobilenet/说明见 README.md本项目 FDDB 人脸检测训练好的权重放到output/trained_weights/目录。一键启动摄像头实时人脸检测进入tools/目录执行一条命令即可启动python camera_demo.py --gpu0对应源码为 camera_demo.py。它的运行逻辑非常简单直观通过cv2.VideoCapture(0)打开摄像头逐帧读取每帧图像做短边缩放与均值归一化预处理见 image_preprocess.py送入完整检测网络RPN 生成候选框 → 分类回归输出水平框与旋转框两类结果用旋转框绘制检测框draw_rotate_box_cv并在左上角实时叠加显示当前 FPS检测结果同时会录制成camera_demo.avi视频文件保存。按键盘q退出。画面中每个检测到的人脸都会被框出左上角的数字即为每秒可处理的帧数——这就是轻量级实时人脸检测的直观体现。常用参数速查清单参数位置说明--gpucamera_demo.py 命令行指定使用的 GPU 编号IMG_SHORT_SIDE_LENcfgs_FDDB_mobilenet_v1.py输入短边长度越小越快SHOW_SCORE_THRSHOLDcfgs_FDDB_mobilenet_v1.py检测置信度显示阈值FAST_RCNN_NMS_IOU_THRESHOLDcfgs_FDDB_mobilenet_v1.py去重 IoU 阈值影响重复框ROI_SIZEcfgs_FDDB_mobilenet_v1.pyROI 池化尺寸常见问题排查 ️Q1启动报 TensorFlow 相关错误本项目基于 TF 1.x 的tf.Session接口TensorFlow 2.x 不兼容请安装tensorflow-gpu1.15Python 2.7 环境或更早版本。Q2提示找不到模型权重确认两份权重都放到了data/pretrained_weights/mobilenet/与output/trained_weights/且cfgs.py中的TRAINED_CKPT指向output/trained_weights。Q3摄像头打不开 / 画面无响应检查是否有其他程序占用摄像头笔记本可用--gpu0确认 GPU 编号nvidia-smi查看。Q4为什么是 Python 2.7TensorFlow 1.x 官方支持 Python 2.7/3.5项目为保持一致性采用 2.7建议用 Anaconda2 创建虚拟环境。总结R2CNN_Faster-RCNN_Tensorflow 用Faster R-CNN 变体 MobileNetV2的组合给出了一个轻量级实时人脸检测的完整可运行方案配置好 FDDB 配置与权重后一条python camera_demo.py命令即可在摄像头画面中实时框出人脸并显示 FPS。项目代码结构清晰网络在libs/networks/、检测流程在libs/detection_oprations/、数据工具在data/io/不仅适合新手学习目标检测的完整部署流程也能直接迁移到遥感、文本检测等更多旋转框检测场景中。【免费下载链接】R2CNN_Faster-RCNN_TensorflowDetectionTeamUCAS/R2CNN_Faster-RCNN_Tensorflow: 是一个基于TensorFlow实现的Faster R-CNN变体适用于遥感图像处理。适合用于需要针对遥感图像进行目标检测的项目。特点是可以提供针对遥感图像优化的模型结构和训练流程。项目地址: https://gitcode.com/gh_mirrors/r2/R2CNN_Faster-RCNN_Tensorflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考