c++ dlib 使用dlib_face_recognition_resnet_model_v1模型应该用哪个 net_type
时间: 2023-08-08 19:13:19 浏览: 122
使用dlib_face_recognition_resnet_model_v1模型时,应该使用resnet模型中的`anet_type`。具体使用方法如下:
```c++
#include <dlib/dnn.h>
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <iostream>
using namespace dlib;
using namespace std;
int main()
{
frontal_face_detector detector = get_frontal_face_detector();
shape_predictor sp;
deserialize("shape_predictor_68_face_landmarks.dat") >> sp;
anet_type net;
deserialize("dlib_face_recognition_resnet_model_v1.dat") >> net;
// 进行人脸识别
matrix<rgb_pixel> img;
load_image(img, "test.jpg");
std::vector<matrix<rgb_pixel>> faces;
auto dets = detector(img);
for (auto&& face : dets) {
auto shape = sp(img, face);
matrix<rgb_pixel> face_chip;
extract_image_chip(img, get_face_chip_details(shape, 150, 0.25), face_chip);
faces.push_back(move(face_chip));
}
std::vector<matrix<float,0,1>> face_descriptors = net(faces);
// 输出人脸描述子
for (auto&& face_descriptor : face_descriptors)
cout << face_descriptor << endl;
return 0;
}
```
在以上代码中,我们使用`anet_type`定义了一个变量`net`,并将`dlib_face_recognition_resnet_model_v1.dat`模型文件加载到了其中。然后,我们使用该模型进行人脸识别,并输出每个人脸的128维特征向量。
阅读全文