dlib 构建是没有DLIB_BUILD_SHARED_LIBS
时间: 2023-07-29 13:05:40 浏览: 123
dlib 在默认情况下会构建为静态库(static library),因此没有 DLIB_BUILD_SHARED_LIBS 这个选项。如果你需要构建为动态库(shared library),可以手动修改 CMakeLists.txt 文件,将以下代码注释掉:
```
# This line builds dlib as a static library by default
add_library(dlib ${all_dlib_cpp})
```
然后添加以下代码:
```
# Uncomment the following lines to build dlib as a shared library
#set(DLIB_ISO_CPP_ONLY ON)
#add_library(dlib SHARED ${all_dlib_cpp})
```
保存文件后重新运行 CMake,并重新编译即可构建为动态库。注意,使用动态库需要确保正确配置了动态库搜索路径。
相关问题
c++ dlib19 使用dlib_face_recognition_resnet_model_v1模型 用 resnet 例子
使用dlib进行人脸识别可以使用dlib_face_recognition_resnet_model_v1模型,以下是一个简单的示例代码:
```c++
#include <iostream>
#include <dlib/opencv.h>
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
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;
// 加载待识别的图像
cv::Mat img = cv::imread("test.jpg");
// 将图像转换为dlib的图像格式
cv_image<bgr_pixel> cimg(img);
// 人脸检测
std::vector<rectangle> faces = detector(cimg);
// 人脸特征提取
std::vector<matrix<float,0,1>> face_descriptors;
for (unsigned long i = 0; i < faces.size(); ++i)
{
full_object_detection shape = sp(cimg, faces[i]);
matrix<rgb_pixel> face_chip;
extract_image_chip(cimg, get_face_chip_details(shape,150,0.25), face_chip);
face_descriptors.push_back(net(face_chip));
}
// 输出人脸特征
for (unsigned long i = 0; i < face_descriptors.size(); ++i)
cout << "face descriptor " << i << ": " << trans(face_descriptors[i]) << endl;
return 0;
}
```
其中,需要下载预训练模型文件`shape_predictor_68_face_landmarks.dat`和`dlib_face_recognition_resnet_model_v1.dat`,并放置在代码所在目录下。
c++ dlib19 使用dlib_face_recognition_resnet_model_v1模型应该用哪个 net_type
使用dlib19库进行人脸识别时,可以使用dlib_face_recognition_resnet_model_v1模型,该模型已经在dlib库中内置。在使用该模型时,应该使用`anet_type`作为`net_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;
// 其他代码
return 0;
}
```
其中,`anet_type`是dlib库中自带的一种神经网络结构类型,用于加载`dlib_face_recognition_resnet_model_v1`模型。
阅读全文