日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习工程实践 1.Dlib的使用

發(fā)布時間:2024/3/24 pytorch 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习工程实践 1.Dlib的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

深度學(xué)習(xí)工程實踐 1.Dlib的使用

  • 1.概述
  • 2. 目標(biāo)
  • 3. 工程實踐
    • 3.1 編譯
    • 3.2 工程配置
    • 3.3 測試demo
  • 4. 總結(jié)

1.概述

這個系列的博客,主要是記錄一下機(jī)器學(xué)習(xí),深度學(xué)習(xí)在工程實踐中遇到的一些問題。 作為工程筆記留下。 最終的目標(biāo)是使用現(xiàn)有的AI技術(shù),開發(fā)一個將人臉變成矢量線條的素描系統(tǒng)。這個區(qū)別于普通的人臉二值化,本系統(tǒng)將單獨(dú)對人臉的各個部位單獨(dú)進(jìn)行處理。

在這里分享出一些實踐經(jīng)驗。 看過不少相關(guān)的論文,但是均沒有將代碼細(xì)節(jié)以及實踐,過程沒有,只有結(jié)果和算法分析。 但是在實踐過程中,回有很多的問題,譬如,我在搭建深度學(xué)習(xí)的開發(fā)環(huán)境這個點上,就將近花費(fèi)了5個工作日的時間。 失敗了又再來,失敗了有再來。 本系列的文章記錄這些坑,希望能幫助大家。 對于深度學(xué)習(xí),筆者也只是會用,會搭配環(huán)境。 但我覺得,應(yīng)用起來,才是最好的學(xué)習(xí),學(xué)習(xí)的第一步,就是把這個技術(shù)用到自己的項目中去,不是么。 開始吧!

2. 目標(biāo)

在window是使用DLib,識別人臉的61個特征點,81個特征點

3. 工程實踐

3.1 編譯

筆者使用的是Qt 作為C++的一個開發(fā)環(huán)境,第一次使用DLib,是基于Qt mingw來進(jìn)行編譯的。 Dlib的編譯也比較簡單,參考如下鏈接: https://blog.csdn.net/liangchunjiang/article/details/77050688

這里總結(jié)一下幾個要點:

  • CMake-Gui 安裝
  • mingw的bin目錄要添加進(jìn)環(huán)境變量

編譯完成后,我們工程中主要需要的是build目錄下的lib文件夾里面的libdlib.a文件,還有一個include文件夾。

3.2 工程配置

剩下的主要就是Qt的pro文件配置了,筆者的配置如下:

INCLUDEPATH+= D:\dlib-19.17\include LIBS +=-L"D:\dlib-19.17\lib" LIBS+=-ldlib LIBS += -lmingw32 LIBS+=-lOle32 LIBS+=-lOleaut32 LIBS+=-lm LIBS+= -ldinput8 LIBS+=-lcomctl32 LIBS+=-ldxguid LIBS+= -ldxerr8 LIBS+=-luser32 LIBS+=-lgdi32 LIBS+=-lwinmm LIBS+= -limm32 LIBS+= -lole32 LIBS+=-loleaut32 LIBS+=-lshell32 LIBS+= -lversion LIBS+= -luuid LIBS+=-lglut32 LIBS+=-lopengl32 LIBS+=-lglu32 LIBS+=-lgdi32 LIBS+=-lwinmm LIBS += -lws2_32

上述配置,可使用于Qt5.97-Mingw版本。

3.3 測試demo

測試代碼如下:

#include <opencv2/opencv.hpp> #include <opencv2/opencv_modules.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #define FACE_DOWNSAMPLE_RATIO 4 #define SKIP_FRAMES 2 #define DLIB_PNG_SUPPORT #define DLIB_JPEG_SUPPORT using namespace cv; using namespace std; using namespace dlib; int main(int argc, char** argv) {QCoreApplication a(argc, argv);try{// Load face detection and pose estimation models.frontal_face_detector detector = get_frontal_face_detector();shape_predictor pose_model;deserialize("shape_predictor_81_face_landmarks.dat") >> pose_model;cv::Mat temp = cv::imread("2.jpg");cv_image<bgr_pixel> cimg(temp);// Detect facesstd::vector<dlib::rectangle> faces = detector(cimg);// std::cout<<"faces size:"<<faces.size()<<std::endl;// Find the pose of each face.std::vector<full_object_detection> shapes;for (unsigned long i = 0; i < faces.size(); ++i){shapes.push_back(pose_model(cimg, faces[i]));}std::cout<<"get parts number size:"<<shapes[0].num_parts();if (!shapes.empty()){for (int i = 0; i < 81; i++){circle(temp, cvPoint(shapes[0].part(i).x(), shapes[0].part(i).y()), 2, cv::Scalar(0, 0, 255), -1);}}//Display it all on the screenimshow("Dlib特征點", temp);waitKey(0);}catch(serialization_error& e){cout << "You need dlib's default face landmarking model file to run this example." << endl;cout << "You can get it from the following URL: " << endl;cout << " http://dlib.net/files/shape_predictor_81_face_landmarks.dat.bz2" << endl;cout << endl << e.what() << endl;}catch(exception& e){cout << e.what() << endl;}return 0; }

執(zhí)行效果如下:


在編譯過程中,可能會出現(xiàn):

USER_ERROR__inconsistent_build_configuration__see_dlib_faq_2

錯誤,這時候,要把dlib編譯后build目錄下的config.h 拷貝到include目錄下,錯誤消除。

4. 總結(jié)

dlib的環(huán)境搭建非常順利,幾乎沒有難度。 要實現(xiàn)快速的人臉識別,使用默認(rèn)的shape_predictor_68_face_landmarks.dat.bz2預(yù)訓(xùn)練文件即可,如果要81個識別點,可以谷歌dlib + 81關(guān)鍵字,下載相關(guān)的預(yù)訓(xùn)練文件即可。

總結(jié)

以上是生活随笔為你收集整理的深度学习工程实践 1.Dlib的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。