亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        視頻流中的人臉識(shí)別系統(tǒng)應(yīng)用開(kāi)發(fā)

        2018-12-17 09:17:46鐘嘯高紅梅
        電腦知識(shí)與技術(shù) 2018年25期
        關(guān)鍵詞:人臉檢測(cè)視頻流人臉識(shí)別

        鐘嘯 高紅梅

        摘要:隨著信息和智能終端技術(shù)的發(fā)展,生物識(shí)別技術(shù)在各行各業(yè)中得到了廣泛的重視.人臉檢測(cè)與識(shí)別屬于非接觸型身份認(rèn)證,只是看到臉部就可以實(shí)現(xiàn)身份的認(rèn)證,因而被廣泛地應(yīng)用在安保系統(tǒng)、企業(yè)公司、醫(yī)院學(xué)校、研究所等各類(lèi)機(jī)構(gòu)組織之中。本實(shí)驗(yàn)基于特征臉的人臉識(shí)別方法,利用OpenCV的第三方庫(kù)和C++編程,實(shí)現(xiàn)了視頻流中的人臉識(shí)別技術(shù),能夠在PC上檢測(cè)人臉和識(shí)別人臉。

        關(guān)鍵詞:視頻流;人臉檢測(cè);人臉捕獲;人臉識(shí)別;OpenCV

        中圖分類(lèi)號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)25-0220-03

        目前來(lái)說(shuō),生物識(shí)別技術(shù)雖早已有學(xué)者提出并實(shí)踐出來(lái)一些成果[1-3],而且已運(yùn)用到各個(gè)應(yīng)用領(lǐng)域并且影響廣泛。但是人臉識(shí)別技術(shù)方面還需要一些創(chuàng)新性思維和想法,也需要一些創(chuàng)新性想法來(lái)為后面的人臉識(shí)別技術(shù)添枝加葉,提供更多的參考,為以后人臉識(shí)別的發(fā)展和飛躍打下更多、更牢固的基礎(chǔ)。

        1研究意義

        一方面來(lái)說(shuō),研究視頻流中的人臉識(shí)別在一定程度上可以建實(shí)和發(fā)展人臉識(shí)別技術(shù),為后續(xù)更高層次人臉識(shí)別技術(shù)的突破和發(fā)展打下一定的基礎(chǔ)。

        另一方面,研究視頻流中的人臉識(shí)別方面有很大的實(shí)用和應(yīng)用空間,可以用于公司職員日??记?,學(xué)校學(xué)生宿舍查寢等各個(gè)不同現(xiàn)實(shí)情景,總的來(lái)說(shuō)此項(xiàng)目具有很大的發(fā)展和應(yīng)用的空間。

        2技術(shù)路線

        早在2009年,就有學(xué)者總結(jié)出了人臉識(shí)別的方法[4-6],它們大致上可以歸結(jié)為三類(lèi):基于幾何特征的方法、基于模板的方法、基于模型的方法。本實(shí)驗(yàn)選定基于模板的方法,利用基于特征臉的方法實(shí)現(xiàn)視頻流中的人臉識(shí)別技術(shù)。

        3視頻流中的人臉識(shí)別系統(tǒng)設(shè)計(jì)

        3.1技術(shù)支持

        實(shí)現(xiàn)視頻流中的人臉識(shí)別技術(shù),先要現(xiàn)視頻流中的人臉檢測(cè)和人臉捕獲。本實(shí)驗(yàn)開(kāi)發(fā)該原型系統(tǒng)所需要用到的開(kāi)發(fā)工具有:SDK 8.1、VS 2015、Cmake、OpenCV等。(見(jiàn)圖1)

        C++語(yǔ)言既能夠進(jìn)行C語(yǔ)言面向過(guò)程的程序設(shè)計(jì),還能夠進(jìn)行以抽象數(shù)據(jù)類(lèi)型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以封裝、繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++語(yǔ)言不僅僅擁有計(jì)算機(jī)高效運(yùn)行的實(shí)用性特征,同時(shí)它還致力于提高大規(guī)模程序的編程質(zhì)量與程序設(shè)計(jì)語(yǔ)言的問(wèn)題描述能力。所以,本實(shí)驗(yàn)使用了C++語(yǔ)言作為該原型系統(tǒng)的編程語(yǔ)言。然后,本實(shí)驗(yàn)需要下載和安裝SDK 8.1作為C++語(yǔ)言正常在電腦上運(yùn)行的基本環(huán)境并配置好環(huán)境變量。

        此項(xiàng)目還用到了OpenCV和Cmake。OpenCV由Intel微處理器研究實(shí)驗(yàn)室的視覺(jué)交互組開(kāi)發(fā),是一種用于數(shù)字圖像處理和計(jì)算機(jī)視覺(jué)的開(kāi)源數(shù)據(jù)庫(kù)[7-8]。OpenCV是由C++語(yǔ)言編寫(xiě),它的主要接口也是C++語(yǔ)言。此外,OpenCV擁有包括500多個(gè)C函數(shù)的跨平臺(tái)的中、高層API。它不依賴(lài)于其他的外部庫(kù),但它可以使用某些外部庫(kù)。本實(shí)驗(yàn)需要下載OpenCV 3.3.1,并使用Cmake編譯它的動(dòng)態(tài)鏈接庫(kù)和第三方庫(kù)。

        3.2系統(tǒng)設(shè)計(jì)

        根據(jù)實(shí)驗(yàn)的目的,所要實(shí)現(xiàn)的功能,列出一個(gè)總設(shè)計(jì)框架(圖2)再用C++語(yǔ)言編寫(xiě)出相關(guān)的程序代碼,用于開(kāi)啟攝像頭、檢查攝像頭的運(yùn)作情況、調(diào)用特征臉?biāo)惴ㄟM(jìn)行人臉識(shí)別。

        3.3主要工作流程

        使用者先要運(yùn)行第一步程序,從視頻流中捕獲人臉的圖片,并按照指定路徑建立文件夾,作為人臉特征對(duì)比的后臺(tái)數(shù)據(jù)。之后,運(yùn)行第二步程序,從視頻流中檢測(cè)出人臉并對(duì)其進(jìn)行人臉特征提取,再與先前收集到的人臉數(shù)據(jù)照片進(jìn)行特征對(duì)比,識(shí)別出該人臉。

        4人臉識(shí)別關(guān)鍵技術(shù)的實(shí)現(xiàn)

        4.1用Cmake編譯動(dòng)態(tài)鏈接庫(kù)和第三方庫(kù)

        本原型系統(tǒng)利用OpenCV的contrib模塊,該模塊包含了一些新型人臉識(shí)別,立體匹配,人工視網(wǎng)膜模型等可選功能。打開(kāi)Cmake進(jìn)入主頁(yè)面,在第一行源碼路徑中選擇OpenCV源碼的文件夾:OpenCV/OpenCV—master。再在第二行選擇生成路徑:OpenCV/OpenCV—master/build。然后點(diǎn)擊“Configure”,第一項(xiàng)選擇“Visual Studio 14 2015 Win64”作為編譯工具,點(diǎn)擊“Finish”完成。最后點(diǎn)擊“Generate”生成庫(kù)。同時(shí),對(duì)OpenCV/OpenCV—contrib文件夾也是類(lèi)似操作生成。

        3.2攝像頭的開(kāi)啟和檢查其運(yùn)作情況

        如上流程圖,本實(shí)驗(yàn)先要用C++語(yǔ)言寫(xiě)出攝像頭啟動(dòng)和檢查其運(yùn)作情況的代碼,該模塊代碼如下:

        bool Handle::existsCapture() {

        capture.open(0);

        bool flag = false;

        if (capture.isOpened()) {

        flag = true;

        cout << "檢測(cè)到攝像頭的存在,可以打開(kāi)攝像頭" << endl;

        capture.release();}

        else {

        cout << "未能夠檢測(cè)到攝像頭的存在,無(wú)法進(jìn)行下一步的工作" << endl;}

        return flag;}

        3.3從視頻流中獲取圖片作為后臺(tái)數(shù)據(jù)

        首先本實(shí)驗(yàn)要實(shí)現(xiàn)從視頻流中獲取實(shí)時(shí)照片的功能,將所獲取的圖片作為人臉識(shí)別的后臺(tái)數(shù)據(jù),用于與視頻流中的人臉特征做對(duì)比,該模塊代碼如下:

        Mat frame;

        Mat des;

        int i = 1;

        while (capture.read(frame)) {

        char ch = waitKey(20);

        findFaces(frame, des);

        imshow("人臉檢測(cè)", frame);

        //waitKey(5);

        bool flag = false;

        switch (ch) {

        case 'p':

        if (flag) {

        if (des.rows>0 && des.cols>0) {

        cout << "aaaaaaaaaaaaaa" << endl;

        string name = format("D:\\opencv\\img\\002\\%d.jpg", i);

        imwrite(name, des);

        cout << "save photo:" << name << endl;

        i++;

        break;

        }}

        else

        {if (des.rows>0 && des.cols>0) {

        distinguish(des);}}}}}

        3.4視頻流中的人臉檢測(cè)與人臉特征提取

        首先本實(shí)驗(yàn)要實(shí)現(xiàn)從視頻流中檢測(cè)出人臉并提取人臉的特征進(jìn)行特征臉的記錄,用于人臉數(shù)據(jù)的記錄和為下一步進(jìn)行人臉特征的對(duì)比和識(shí)別提供了基本對(duì)比數(shù)據(jù),該模塊代碼如下:

        //繪制矩形 BGR。

        rectangle(frame, faces[i], Scalar(0, 0, 255), 1);

        //獲取矩形中心點(diǎn)。

        Point center(faces[i].x + faces[i].width / 2, faces[i].y + faces[i].height / 2);

        //繪制圓形。

        ellipse(frame, center, Size(faces[i].width / 2, faces[i].height / 2), 0, 0, 360, Scalar(255, 0, 255), 4, 8, 0);

        //獲取臉部矩形區(qū)域。

        Mat faceROI = src(faces[i]);

        //存儲(chǔ)找到的眼睛矩形。

        std::vector eyes;

        eyes_cascade.detectMultiScale(faceROI,eyes,1.1,2,0 |CASCADE_SCALE_IMAGE,Size(30,30));

        for(size_t j=0;j

        {Point eye_center(faces[i].x + eyes[j].x + eyes[j].width/2,faces[i].y + eyes[j].y + eyes[j].height/2);

        int radius = cvRound((eyes[j].width + eyes[j].height)*0.25);

        circle(frame,eye_center,radius,Scalar( 255, 0, 0 ),4,8,0);}

        //截取人臉。

        Mat facesROI = frame(faces[i]);

        //圖像縮放。

        cv::resize(facesROI, facesROI, Size(128, 128), 0, 0, cv::INTER_LINEAR);

        //保存圖像。

        dst = facesROI;}

        return;}

        3.5視頻流中的人臉特征對(duì)比與人臉識(shí)別

        最后本實(shí)驗(yàn)要實(shí)現(xiàn)從視頻流中捕獲人臉,提取人臉特征并與后臺(tái)人臉數(shù)據(jù)做對(duì)比進(jìn)行人臉的識(shí)別,該模塊代碼如下:

        maptt;

        vectorimages;

        vectorlabels;

        vectorres = listDir(path);

        int count = 0;

        for (int i = 0; i

        if (res[i].find_last_of(".pgm") != -1) {

        Mat mat = imread(res[i], CV_LOAD_IMAGE_GRAYSCALE);

        resize(mat, mat, Size(128, 128));

        images.push_back(mat);

        labels.push_back(count);}

        else {

        count++;

        cout << "index:" << count << " " << res[i] << endl;

        textRes.insert(pair(count, res[i]));}}

        5總結(jié)與展望

        作為一個(gè)學(xué)習(xí)計(jì)算機(jī)軟件的學(xué)生來(lái)說(shuō),我自身的讀代碼和寫(xiě)代碼的能力顯著提高。除此之外,我還學(xué)會(huì)使用OpenCV、Cmake等一系列工具,對(duì)經(jīng)典的隱馬爾可夫模型有了一定認(rèn)識(shí)和了解,對(duì)人臉識(shí)別技術(shù)有了深層次地了解和掌握。我開(kāi)發(fā)的人臉識(shí)別原型系統(tǒng)的人臉識(shí)別率達(dá)到85%以上,顯然識(shí)別率已經(jīng)達(dá)到一定的水準(zhǔn),但是原型系統(tǒng)并不完美,經(jīng)過(guò)大量的人臉訓(xùn)練,我通過(guò)改變?nèi)四樧R(shí)別的背景、環(huán)境的光照亮暗、人臉的角度等等一系列因素,發(fā)現(xiàn)人臉識(shí)別率受人臉識(shí)別的背景影響較大,實(shí)驗(yàn)說(shuō)明在不同背景下,人臉識(shí)別率才達(dá)到50%,但可以通過(guò)優(yōu)化編程代碼彌補(bǔ)這一不足。實(shí)驗(yàn)還可以做出進(jìn)一步的延伸,就是研究不同民族的人臉特征,找出不同名族臉部的特點(diǎn)并用幾何向量計(jì)算并總結(jié)出來(lái),由此實(shí)現(xiàn)一個(gè)額外的功能,就是該系統(tǒng)可以識(shí)別人臉?biāo)鶎俚拿褡濉?/p>

        參考文獻(xiàn):

        [1] 劉芳.基于FpGA的門(mén)禁系統(tǒng)視頻監(jiān)控中的人臉識(shí)別技術(shù)研究[J].智能應(yīng)用,2014(4).

        [2] 馬海兵,白潔.人臉識(shí)別技術(shù)在智能視頻監(jiān)控系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2007(8).

        [3] 姜濤.基于OpenCV的智能視頻監(jiān)控系統(tǒng)設(shè)計(jì)[D].江蘇科技大學(xué),

        [4] 馬小虎,譚延琪.基于鑒別稀疏保持嵌入的人臉識(shí)別算法[J].自動(dòng)化學(xué)報(bào), 2014, 40(1): 73-82

        [5] 吳巾一,周德龍.人臉識(shí)別方法綜述[J].計(jì)算機(jī)應(yīng)用研究,2009(8).

        [6] 孟繁靜,王連明.視頻人臉識(shí)別系統(tǒng)中的最佳人臉捕獲[J].東北師大學(xué)報(bào),2015(4).

        [7] 黃佳.基于OpenCV的計(jì)算機(jī)視覺(jué)技術(shù)研究[D].華東理工大學(xué),2013.

        [8] 唐致龍.基于OpenCV嵌入式人臉檢測(cè)系統(tǒng)[D].長(zhǎng)安大學(xué),2017.

        【通聯(lián)編輯:唐一東】

        猜你喜歡
        人臉檢測(cè)視頻流人臉識(shí)別
        邊緣實(shí)時(shí)視頻流分析系統(tǒng)配置動(dòng)態(tài)調(diào)整算法研究
        人臉識(shí)別 等
        基于視頻流傳輸中的擁塞控制研究
        揭開(kāi)人臉識(shí)別的神秘面紗
        基于人臉特征定位的SNS網(wǎng)站應(yīng)用組件研究與設(shè)計(jì)
        基于Android平臺(tái)的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        基于Matlab的人臉檢測(cè)實(shí)驗(yàn)設(shè)計(jì)
        美國(guó)視頻流市場(chǎng)首現(xiàn)飽和征兆
        基于類(lèi)獨(dú)立核稀疏表示的魯棒人臉識(shí)別
        基于JSeg和顯著性檢測(cè)的服裝圖像分割方法
        亚洲av国产av综合av| 亚洲熟女乱色综合亚洲图片| 男人进去女人爽免费视频| 天美传媒一区二区| 国产肉丝袜在线观看| 国产毛片网| 国产suv精品一区二区883| 成人毛片18女人毛片免费| 国产精品国产三级国产av创| 蜜桃视频色版在线观看| 亚洲另类国产精品中文字幕| 五月婷婷开心五月激情| 亚洲一区二区三区乱码在线中国| 一本无码中文字幕在线观| 日韩精品视频一区二区三区| 成人h视频在线观看| 亚洲午夜成人片| 色婷婷一区二区三区四区| 黄色影院不卡一区二区| 老鸭窝视频在线观看| 成午夜精品一区二区三区| 又污又爽又黄的网站| 国产91中文| 亚洲午夜无码视频在线播放| 亚洲一区二区三区偷拍自拍| 麻豆视频av在线观看| 亚洲中文字幕人妻av在线| 亚洲国产精品无码专区在线观看| 亚洲人成网站在线观看播放| 91亚洲色图在线观看| 水蜜桃视频在线观看入口| 熟妇高潮一区二区三区在线观看| 欧美大屁股xxxx高跟欧美黑人| 亚洲中文字幕无码中字| 音影先锋色天堂av电影妓女久久| 日本av不卡一区二区三区| 小辣椒福利视频导航| 福利在线国产| 久久精品国产精品亚洲艾| 久久亚洲综合亚洲综合| 免费一区二区高清不卡av|