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

OpenCV4.9 dnn人脸识别

目录

  • 1. 简介
  • 2. OpenCV GPU版本编译
  • 3. 下载模型和demo
  • 4. 编译运行

1. 简介

最新发布的OpenCV 4.5.4版本收录了一个基于深度学习神经网络的人脸模块(以下称“OpenCV DNN Face”),包括人脸检测(使用模型YuNet,由OpenCV China团队贡献)和人脸识别(使用模型SFace,由北京邮电大学邓伟洪教授课题组贡献)。

在相应的数据集上对OpenCV DNN Face的两个模型分别进行测试:
人脸检测模型YuNet在WIDER Face数据集的验证集中达到了0.856(AP_easy),0.842(AP_medium),0.727(AP_hard);
人脸识别模型SFace在LFW数据集上达到了99.60%的准确率 (https://docs.opencv.org/master/d0/dd4/tutorial_dnn_face.html中有更详细的测试结果,以及此人脸模块的一些使用说明)。
根据OpenCV最新公开的OpenCV Zoo(https://github.com/opencv/opencv_zoo)的基准测试结果:

当输入图像尺寸为160x120时,YuNet在i7-5930K@3.50GHz上达到689FPS,在树莓派4B上可达160FPS;
SFace在输入图像尺寸为112x112,同样的平台下分别为115FPS和10FPS。
YuNet仅为337K,SFace为37MB,二者均为轻量模型,非常适合移动端应用。

2. OpenCV GPU版本编译

cmake -D CMAKE_BUILD_TYPE=Release \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=~/deps/opencv_contrib-4.10.0/modules \
      -D WITH_CUDA=ON \
      -D CUDA_ARCH_BIN=8.6 \
      -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.4 \
      -D WITH_CUDNN=ON \
      -D OPENCV_DNN_CUDA=ON \
      -D CUDNN_INCLUDE_DIR=/usr/local/cuda-12.4/include \
      -D CUDNN_LIBRARY=/usr/local/cuda-12.4/lib64/libcudnn.so \
      -D WITH_TBB=ON \
      -D BUILD_opencv_python3=ON \
      -D PYTHON3_EXECUTABLE=/usr/bin/python3 \
      -D PYTHON3_PACKAGES_PATH=/usr/local/lib/python3.10/dist-packages \
      -D BUILD_opencv_python2=OFF \
      -D BUILD_opencv_java=OFF \
      -D BUILD_EXAMPLES=ON \
      -DOpenCL_INCLUDE_DIRS=/usr/include \
      -DOpenCL_LIBRARIES=/usr/lib/x86_64-linux-gnu/libOpenCL.so \
      ..
make -j$(nproc)
sudo make install
sudo ldconfig

注意:这里一定要开启cuda和cudnn

3. 下载模型和demo

下载地址
分别下载face_detection_yunet和face_recognition_sface,并解压到相同目录下。

在这里插入图片描述

4. 编译运行

cmake -B build -D OPENCV_INSTALLATION_PATH=/path/to/opencv/installation .
cmake --build build

# detect on camera input
./build/demo -t=/path/to/target_face
# detect on an image
./build/demo -t=/path/to/target_face -q=/path/to/query_face -v

http://www.kler.cn/a/409245.html

相关文章:

  • Python和C++急性损伤空间结构
  • uni-app 发布媒介功能(自由选择媒介类型的内容) 设计
  • 解锁PPTist的全新体验:Windows系统环境下本地部署与远程访问
  • 8、深入剖析PyTorch的state_dict、parameters、modules源码
  • [RabbitMQ] 重试机制+TTL+死信队列
  • 订单日记为“惠采科技”提供全方位的进销存管理支持
  • Linux的开发工具(三)
  • 设计模式之 命令模式
  • C++不完整类型(Incomplete Type)的检测与避免
  • Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器
  • 浅谈TLP184小型平面光耦
  • docker 卸载与安装
  • 生成对抗网络模拟缺失数据,辅助PAMAP2数据集仿真实验
  • HTML 表单实战:从创建到验证
  • C#里怎么样实现自己的类满足for-each循环访问?
  • 计算机网络socket编程(2)_UDP网络编程实现网络字典
  • Qt实现可拖拽的矩形
  • 小程序-基于java+SpringBoot+Vue的开放实验室预约管理系统设计与实现
  • Express编写中间件
  • OAuth2资源服务器白名单接口带token被拦截
  • GPU服务器厂家:科研服务器领域机遇与博弈,AMD 新UDNA 架构
  • C++初阶(十五)--STL--list 的深度解析与全面应用
  • C++二级:计算矩阵边缘元素之和
  • 《硬件架构的艺术》笔记(五):低功耗设计
  • 【Android】android compat理解
  • 07-SpringCloud-Gateway新一代网关