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维的特征向量。

链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值