<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          OpenCV4.5.4人臉識別詳解與代碼演示

          共 1668字,需瀏覽 4分鐘

           ·

          2021-10-26 16:25

          點擊下方AI算法與圖像處理”,一起進步!

          重磅干貨,第一時間送達


          人臉識別原理與模型

          基于深度學習的人臉識別基本上分為兩步完成,第一步是人臉檢測與對齊;第二步是人臉特征提取與比對;在第一步中人臉檢測與landmark檢測,實現(xiàn)人臉對齊,對齊又分為2D/3D對齊;第二步中提取人臉特征數(shù)據(jù),從128維到024維都有可能,獲取特征之后識別分為兩種模型,一種是1:1稱為驗證,另外一種1:N稱為鑒別。整個流程圖示如下:

          OpenCV4.5.4發(fā)布中包含了一個新的人臉識別算法支持,算法來自北郵鄧偉洪教授團隊貢獻,SFace模型大小為37MB,屬于輕量級的人臉識別模型,輸出特征維度是128維。該模型采用一種新?lián)p失功能,如下所示:

          SFace的損失函數(shù)通過在超球面流形上增加類內和類間約束以增大類間距離而減小類內距離,從而提升模型穩(wěn)定性與泛化性能,實現(xiàn)更高精度的人臉識別。模型下載之后可以查看輸入,圖示如下:

          要求輸入的人臉大小為112x112,輸出是128維人臉特征向量。

          人臉識別函數(shù)支持與演示

          OpenCV4.5.4中有個新的類FaceRecognizerSF,它有幾個特別有用的方法分別實現(xiàn)了人臉對齊、特征提取、人臉特征匹配(支持余弦相似與L2距離),這些函數(shù)分別如下:
          virtual void cv::FaceRecognizerSF::alignCrop  (  // 對齊  InputArray  src_img,   InputArray  face_box,   OutputArray  aligned_img ?)??const?virtual void cv::FaceRecognizerSF::feature  ( // 提取128維度特征  InputArray  aligned_img,   OutputArray  face_feature )
          virtual double cv::FaceRecognizerSF::match ( // 特征比對,默認余弦相似 InputArray _face_feature1, InputArray _face_feature2, int dis_type = FaceRecognizerSF::FR_COSINE ) const

          小編最終把人臉檢測跟識別都放到了一個類中,封裝成了一個人臉檢測與識別的通用類,支持人臉注冊、檢測、識別、FPS顯示功能。其中識別人臉比對的方法如下:

          void?FaceAlgo::matchFace(cv::Mat?&frame,?std::vector>?&infoList,?bool?l2)?{
          ????double?cosine_similar_thresh?=?0.363;
          ????double?l2norm_similar_thresh?=?1.128;
          ????for(auto?face?:?infoList)?{
          ????????cv::Mat?aligned_face,?feature;
          ????????faceRecognizer->alignCrop(frame,?face->detResult,?aligned_face);
          ????????faceRecognizer->feature(aligned_face,?feature);
          ????????double?min_dist?=?100.0;
          ????????double?max_cosine?=?0.0;
          ????????std::string?matchedName?=?"Unknown";
          ????????for(auto?item?:?this->face_models)?{
          ????????????//std::cout<<"face_models.item?:"?<
          ????????????//std::cout<<"face_models.item?:"?<
          ????????????if(l2)?{
          ????????????????double?L2_score?=?faceRecognizer->match(feature,?item.second,?cv::FaceRecognizerSF::DisType::FR_NORM_L2);
          ????????????????if(L2_score?????????????????????min_dist?=?L2_score;
          ????????????????????matchedName?=?item.first;
          ????????????????}
          ????????????}?else?{
          ????????????????double?cos_score?=?faceRecognizer->match(feature,?item.second,?cv::FaceRecognizerSF::DisType::FR_COSINE);
          ????????????????if(cos_score?>?max_cosine)?{
          ????????????????????max_cosine?=?cos_score;
          ????????????????????matchedName?=?item.first;
          ????????????????}
          ????????????}
          ????????}
          ????????//std::cout<<"matchedName?:"?<
          ????????if(max_cosine?>?cosine_similar_thresh)?{
          ????????????face->name.clear();
          ????????????face->name.append(matchedName);
          ????????}
          ????????if(l2?&&?min_dist?????????????face->name.clear();
          ????????????face->name.append(matchedName);
          ????????}
          ????????//?std::cout<<"face.name?:"?<name?<
          ????????//?std::cout<<"max_cosine?:"?<
          ????????//?std::cout<<"min_dist?:"?<
          ????}
          }

          代碼演示部分是我基于QT5+OpenCV4.5.4完成的,主要功能包括人臉注冊、人臉比對、支持1:N與1:1兩種模型、支持顯示設置、支持圖象與視頻實時識別。從注冊到識別演示如下:


          選擇視頻,開始識別(可以看到識別結果跟注冊的一致):


          其實本人自己也注冊,測試了一波,運行圖示如下:


          人臉檢測與識別模型請這里下載:https://gitee.com/opencv_ai/opencv_tutorial_data


          努力分享優(yōu)質的計算機視覺相關內容,歡迎關注:

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺計算攝影、檢測、分割、識別、醫(yī)學影像、GAN算法競賽等微信群


          個人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會分享


          AI算法與圖像處理」公眾號后臺回復:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結分析


          下載2:終身受益的編程指南:Google編程風格指南


          AI算法與圖像處理」公眾號后臺回復:c++,即可下載。歷經(jīng)十年考驗,最權威的編程規(guī)范!



          下載3 CVPR2021

          AI算法與圖像處公眾號后臺回復:CVPR即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文


          瀏覽 13
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级黄色性爱免费网站 | 国产精品久久久久久久猫咪 | 一级无码片 | 欧美淫淫 | 男女黄网站 |