我是靠谱客的博主 明理绿草,最近开发中收集的这篇文章主要介绍cv dnn识别动作规范 open_利用OpenCV DNN算法做人脸检测和人脸识别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

人脸检测

OpenCV在其深度学习例子程序里包含了人脸检测(Face Detection)和人脸识别(Face Recognition)的样例程序。人脸检测和物体识别类似,是利用谷歌的TensorFlow框架训练的深度学习网络,只是参数不同。

Model

Scale

Size WxH

Mean subtraction

Channels order

0.00784 (2/255)

300x300

127.5 127.5 127.5

BGR

1.0

300x300

104 177 123

BGR

现在master分支只有模型和一个网页demo:

face_detector

js_face_recognition.html

网页demo里包含了需要的深度学习模型信息:

var proto = 'https://raw.githubusercontent.com/opencv/opencv/master/samples/dnn/face_detector/deploy.prototxt';

var weights = 'https://raw.githubusercontent.com/opencv/opencv_3rdparty/dnn_samples_face_detector_20180205_fp16/res10_300x300_ssd_iter_140000_fp16.caffemodel';

var recognModel = 'https://raw.githubusercontent.com/pyannote/pyannote-data/master/openface.nn4.small2.v1.t7';

流程是先进行人脸检测,再对检测出来的部分做人脸识别。

人脸检测用ResNet SSD网络,人脸识别用OpenFace的网络模型。

原来的cpp程序在另外一个分支上面:

face_detector

resnet_ssd_face.cpp

Openface人脸识别

dnn::Net net = dnn::readNetFromTorch("openface.nn4.small2.v1.t7");

Mat recognize(Mat face) {

Mat inputBlob = dnn::blobFromImage(face, 1./255, Size(96,96), Scalar(), true, false);

net.setInput(inputBlob);

Mat feature = net.forward().clone();

return feature;

}

得到的feature是一个128维的特征向量。

链接

最后

以上就是明理绿草为你收集整理的cv dnn识别动作规范 open_利用OpenCV DNN算法做人脸检测和人脸识别的全部内容,希望文章能够帮你解决cv dnn识别动作规范 open_利用OpenCV DNN算法做人脸检测和人脸识别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部