1. 程式人生 > >毫秒級opencv的人臉特徵點的檢測

毫秒級opencv的人臉特徵點的檢測

這裡用到了大名鼎鼎於仕琪老師的開源庫,下面附上於老師的專案下載連結

https://github.com/ShiqiYu/libfacedetection

然後就是環境的配置,具體見連結

#include <opencv.hpp>
#include <facedetect-dll.h>
using namespace cv;
using namespace std;

//定義緩衝區大小。不要改變尺寸!
#define DETECT_BUFFER_SIZE 0x20000

int main()
{
    int * pResults = NULL;
    //在檢測函式中使用了pBuffer。
    //如果你呼叫多個執行緒中的函式,請為每個執行緒建立一個緩衝區!
    unsigned char * pBuffer = (unsigned char *)malloc(DETECT_BUFFER_SIZE);
    if (!pBuffer)
    {
        fprintf(stderr, "Can not alloc buffer.\n");
        return -1;
    }
    Mat src = imread("keliamoniz1.jpg");
    Mat gray;
    cvtColor(src, gray, CV_BGR2GRAY);
    int doLandmark = 1;// do landmark detection
    pResults = facedetect_multiview_reinforce(pBuffer, (unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, (int)gray.step,
        1.2f, 2, 48, 0, doLandmark);
    //列印檢測結果
    for (int i = 0; i < (pResults ? *pResults : 0); i++)
    {
        short * p = ((short*)(pResults + 1)) + 142 * i;
        rectangle(src, Rect(p[0], p[1], p[2], p[3]), Scalar(0, 255, 0), 2);
        if (doLandmark)
        {
            for (int j = 0; j < 68; j++)
                circle(src, Point((int)p[6 + 2 * j], (int)p[6 + 2 * j + 1]), 1, Scalar(0, 0, 255),2);
        }
    }
    imshow("Show", src);
    waitKey(0);
}

毫秒級,速度比藉助dlib快非常多

效果圖

相關推薦

人臉特徵檢測(一):深度卷積網路

人臉特徵檢測(face feature detection)也稱為 “facial landmark detection”, “facial keypoint detection” and “face alignment”,是在人臉檢測的基礎上,對人臉上的特徵點例如眼睛、鼻

第三篇:基於深度學習的人臉特徵檢測 - 資料集整理

https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-collate/ 在上一篇博文中,我們已經下載到了包括300-W、LFPW、HELEN、AFW、IBUG和300-VW在內的6個數據集,初步估算有2

第五篇:基於深度學習的人臉特徵檢測 - 生成TFRecord檔案

在上一篇博文中,我們已經獲取到了所有樣本的面部區域,並且對面部區域的有效性進行了驗證。當使用TensorFlow進行神經網路訓練時,涉及到的大量IO操作會成為訓練速度的瓶頸。為了加快訓練的速度,方便後期利用與復現,需要將所有用到的資料打包成為TFRecord檔案,一種TensorFlow原生支援的資

第二篇:基於深度學習的人臉特徵檢測 - 資料與方法(轉載)

https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-and-algorithm/ 在上一篇博文中,我們瞭解了人臉檢測與面部特徵點檢測的背景,並提到了當前技術方案存在特徵點位置不穩定的缺點,需要新的解決

第一篇:基於深度學習的人臉特徵檢測 - 背景(轉載)

轉載自:https://yinguobing.com/facial-landmark-localization-by-deep-learning-background/ 人臉檢測與識別一直是機器學習領域的一大熱點。人臉檢測是指從影象中檢測出人臉區域。人臉識別則是判斷特定的臉部影象是否與某個人對應

第二篇:基於深度學習的人臉特徵檢測

在上一篇博文中,我們瞭解了人臉檢測與面部特徵點檢測的背景,並提到了當前技術方案存在特徵點位置不穩定的缺點,需要新的解決方案。那麼,目前又有哪些方案可以用呢? Github rocks! 在程式設計師眼中,Github恐怕是比微信還要重要的存在了吧!以“face lan

【learnOpenCv】Facial Landmark Detection:人臉特徵檢測的一些應用

偶然看到的,感覺寫的很好,隨手大概內容翻譯轉過來,如有侵權請告知刪除。 原文連結:https://www.learnopencv.com/facial-landmark-detection/ 目前在計算機視覺領域,人臉方向的研究非常之多。人臉分析最常見的應用是人臉識別,但

dlib 人臉特徵檢測

人臉特徵點檢測(Facial landmark detection),即人臉特徵點定位、人臉對齊,是在人臉檢測的基礎上進行的,對人類臉上的特徵點(嘴角、眼角等)進行定位。 人臉特徵點檢測有諸多用途: 改善人臉識別:通過人臉特徵點檢測將人臉對齊到平均臉,對齊後的人臉影象識別演算法更加有效

opencv特徵檢測方法--GFTT,SIFT,FAST,SURF

一. 特徵點檢測方法總結 二.關於特徵點分析對比的相關論文 1.      有關特徵點:Shi-Tmoasi,SIFT,SURF 方法:基於opencv,通過RGB分解,比較特徵點的個數和魯棒性 2.      有關特徵點:FAST 方法:主要是

人臉特徵檢測(Facial landmark detection)

1)cnn face detetor(Deep Convolutional Network Cascade for Facial Point Detection) http://blog.csdn.net/hjimce/article/details/50099115 2)

UMDFaces資料集與人臉特徵檢測

UMDFaces資料集: 該資料集包含367920張人臉,分別類屬於8501個事件類別。提供的人臉資訊包括,人臉框,人臉姿勢,(yaw,pitch,roll),21個關鍵點,性別資訊等。由於圖片尺度,方向等的問題,使得該資料集不適合做人臉檢測的訓練,適合做人臉識別。 該

人臉特徵檢測(四)——Tasks-Constrained DCN(TCDCN)

文章提出TCDCN(Tasks-Constrained Deep Convolutional Network),使用與人臉相關的屬性共同來學習人臉的特徵點位置,通過這種多工的學習,來提高人臉特徵點檢測的魯棒性。具體而言,就是在人臉特徵點檢測時候,同時進行多個任務(包括性

Facial Landmark Detection(人臉特徵檢測)

作為計算機視覺研究員,我們很早就開始研究人臉。人臉分析領域最廣為人知的就是人臉識別(face recognition).但是為了識別一幅影象中的人臉,我們首先必須要找到影象中人臉的位置。因此人臉檢測(face detection)-定位一幅影象中的人臉並

Dlib人臉特徵檢測(速度優化)

最近在做人臉先關的研究,人臉識別其實有很多部分組成,每一個環節都關係到整體的效果。因為主要精力在識別這塊,前面的人臉檢測以及特徵點的提取就沒有花費太多精力,開始時使用的dlib提供的介面進行人臉對齊。效果是不錯,但是缺點也非常明顯,dlib的人臉檢測實在太慢,3

毫秒opencv人臉特徵檢測

這裡用到了大名鼎鼎於仕琪老師的開源庫,下面附上於老師的專案下載連結 https://github.com/ShiqiYu/libfacedetection 然後就是環境的配置,具體見連結 #in

基於聯形狀迴歸框架的人臉特徵對齊方法總結

最近看了一篇中科院計算機技術研究所大神張傑寫的一篇博文,想把其中的知識點總結起來方便自己查閱的同時也能方便大家參考。基於級聯姿態迴歸的方法是近幾年人臉特徵點對齊研究中比較有效的方法。始於2010年的一篇CVPR文章 ,由加州理工學院從事博士後研究的Piotr Dollar 首次提出級聯形狀迴歸模型

opencv學習筆記二十九:SIFT特徵檢測與匹配

SIFT(Scale-invariant feature transform)是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點(interest points,or corner points)及其有關scale 和 orientation 的描述子得到特徵並進行

opencv學習筆記三十六:AKAZE特徵檢測與匹配

KAZE是日語音譯過來的 , KAZE與SIFT、SURF最大的區別在於構造尺度空間,KAZE是利用非線性方式構造,得到的關鍵點也就更準確(尺度不變性 ); Hessian矩陣特徵點檢測 ,方向指定,基於一階微分影象(旋轉不變性 ) ; 描述子生成 ,歸一化處理(光照不變

OpenCV入門教程之十七】OpenCV重對映 SURF特徵檢測合輯

                本篇文章中,我們一起探討了OpenCV中重對映和SURF特徵點檢測相關的知識點,主要一起了解OpenCV中重對映相關的函式remap,SURF演算法在OpenCV中的體現與應用。此博文一共有三個配套的麻雀雖小但五臟俱全的示例程式,其經過淺墨詳細註釋過的程式碼都在文中貼出,且文章

opencv筆記(1)——特徵檢測之ORB特徵提取

ORB演算法原理解讀 #include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/hig