基于Emgu cv +百度人臉識(shí)別,視頻動(dòng)態(tài)人臉識(shí)別

AI系列網(wǎng)址:AI 系列 總目錄??


代碼部分詳細(xì)看我的博客:http://www.cnblogs.com/linbin524/p/linbin524.html

基于Emgu CV+百度人臉識(shí)別,實(shí)現(xiàn)視頻動(dòng)態(tài) 人臉抓取與識(shí)別

背景

目前AI 處于風(fēng)口浪尖,作為 公司的CTO,也作為自己的技術(shù)專研,開始了AI之旅,在朋友圈中也咨詢 一些大牛對(duì)于AI 機(jī)器學(xué)習(xí)框架的看法,目前自己的研究方向主要開源的 AI 庫(kù),如:Emgu CV、TensorFlow、CNTK 等等,針對(duì) 四大平臺(tái) 百度AI、阿里ET、騰訊AI、科大訊飛AI 做結(jié)合。

PS:筆者的主打語言是C#,目前項(xiàng)目主導(dǎo)系統(tǒng)都是基于Net 系列下開發(fā)而成的。主要負(fù)責(zé)公司軟件系統(tǒng)架構(gòu)設(shè)計(jì), 鑒于朋友圈中各位技術(shù)大牛無私分享,也是鑒于自己再專研時(shí)候遇到不少坑,希望把相關(guān)研究心得發(fā)出,為大家在coding 中減少 麻煩。稍后會(huì)把自己開源框架在博客中建立系列教程,插件化模式 自動(dòng)服務(wù) (都在實(shí)際項(xiàng)目中使用)。

選擇的理由:四大平臺(tái)目前 AI 團(tuán)隊(duì)算是全世界最牛的一群人,而且資金背景雄厚(AI 很燒錢?。F(xiàn)在四大平臺(tái) 的AI有一些已經(jīng)相對(duì)成熟,依靠于人家的技術(shù),做自己的應(yīng)用,應(yīng)該是中小企業(yè) 在物聯(lián)網(wǎng)行業(yè)前進(jìn)的一個(gè)方向吧。

四大平臺(tái)AI入口

1、百度AIhttps://ai.baidu.com/customer(百度AI 產(chǎn)品:阿波羅無人駕駛開源平臺(tái) )

2、騰訊AIhttps://ai.qq.com/hr/youtu.shtml(騰訊AI 產(chǎn)品:騰訊覓影)

3、訊飛AIhttp://startups.xfyun.cn/(訊飛:語音)

4、阿里云EThttps://et.aliyun.com/index(阿里:城市大腦)

一、需求

1、目前我們需要通過攝像頭 精準(zhǔn)的捕獲視頻監(jiān)控中人臉(要求精度高)

2、批量捕獲人臉進(jìn)行 人臉識(shí)別

3、在人臉矩形框中實(shí)時(shí)顯示人員相關(guān)信息

二、技術(shù)難點(diǎn)

1、百度人臉識(shí)別 只是需要通過Image 圖片通過開發(fā)接口發(fā)送,返回識(shí)別人物,所以前提還是要先做到人臉在視頻中動(dòng)態(tài)捕捉。

2、視頻播放需要高效流暢播放,請(qǐng)求接口的效率是否影響視頻監(jiān)控友好展示。

三、技術(shù)選型

1、為了解決 視頻中人臉動(dòng)態(tài)捕捉,選用Emgu CV ?是開源 框架 Open CV 的Net 版本,可以人臉精準(zhǔn)抓取。

emgu CV 官網(wǎng):http://www.emgu.com/

對(duì)于Emgu CV 的詳細(xì)信息,請(qǐng)百度。

2、百度人臉識(shí)別,接口完善,人臉識(shí)別精準(zhǔn)度高,可以很好的做到人臉識(shí)別。

百度人臉識(shí)別接口文檔:http://ai.baidu.com/docs#/Face-Csharp-SDK/top

四、技術(shù)準(zhǔn)備

1、到emgu cv 的官網(wǎng)下載 最新的emgu CV 版本,因?yàn)榘姹鹃g差異較大,所以在百度搜索時(shí)候,會(huì)發(fā)現(xiàn)很多文章代碼是無法直接copy的。

2、安裝emgu cv 的最版本

請(qǐng)仔細(xì)查看 solution 文件夾,里面有對(duì)應(yīng)solution 文件,(在windowDeskTop文件夾里面 )選擇Emgu.CV.sln打開,就可以看到Emgu.CV.Example(Emgu.CV 的Demo)。

3、我們需要將?FaceDetection(人臉精準(zhǔn)查找Demo)和VideoSurveilance(視頻動(dòng)態(tài)抓捕實(shí)現(xiàn)矩形框)兩個(gè)Demo 做結(jié)合

4、到百度開發(fā)者中心注冊(cè)成為開發(fā)者,并且獲取開發(fā)者。

5、下載百度AI 開發(fā)平臺(tái) 對(duì)應(yīng)的SDK(已經(jīng)封裝過,可以減少開發(fā)工作量),或者直接進(jìn)行Api對(duì)接。

五、實(shí)現(xiàn)

先上實(shí)現(xiàn)效果,相關(guān)個(gè)人信息如頭像、還有姓名和電話都被我處理過了。

1、準(zhǔn)備好攝像頭,連接沒問題就開始敲代碼了。

2、在百度人臉庫(kù)建立自己的人臉?biāo)夭模@個(gè)要求要精準(zhǔn),比較適合就是員工的工牌相片,就是一寸或者兩寸的照片那種。

詳細(xì)方法 百度提供SDK 已經(jīng)有了,就不多作介紹了。其中 自定義的 Uid(用戶id,用于唯一碼)、group (人才組)、userInfo(用戶信息,作為人臉識(shí)別返回信息顯示)比較關(guān)鍵。

sdk 下載地址:http://ai.baidu.com/sdk,下載完成將如圖中 dll 引用到自己的類庫(kù)中。

以下方法是我簡(jiǎn)單改造過了。

我做了一個(gè)簡(jiǎn)單的人臉庫(kù)添加 工具,可以進(jìn)行簡(jiǎn)單人臉庫(kù)操作

3、選擇VideoSurveilance 做改造,上代碼。

其中

void ProcessFrame(object sender, EventArgs e) 方法 是關(guān)鍵,里面就是具體操作人臉識(shí)別具體應(yīng)用。

將 FaceDetection 中的相關(guān)內(nèi)容copy 到VideoSurveilance 項(xiàng)目中,其中?haarcascade_frontalface_default.xml 用于 人臉檢測(cè),DetectFace.cs 是具體檢測(cè)人臉方法。

核心代碼介紹

獲取人臉矩形框,對(duì)應(yīng)的xml 文件要放在根目錄下(winform就是 在bin文件夾中)

DetectFace.Detect(image? ? ? ? ? ? , "haarcascade_frontalface_default.xml", "haarcascade_eye.xml",? ? ? ? ? ? faces, eyes,? ? ? ? ? ? out detectionTime);

faces 就是返回的 人臉檢測(cè)內(nèi)容, foreach (Rectangle face in faces) 對(duì)它進(jìn)行動(dòng)態(tài)獲取人臉,在視頻中畫出來就可以了

// 調(diào)用百度人臉識(shí)別接口,該方法 SDK 已經(jīng)有了,我做了一些簡(jiǎn)單的封裝,就是把截取到的矩形頭像發(fā)送給百度去識(shí)別,這個(gè)識(shí)別是基于自己在百度建立的人臉庫(kù)

FaceIdentifyModel MoreIdentifyInfo = FaceAPI.FaceIdentify(rectImage1, tb_Group.Text.Trim(), 1, 1);//人臉識(shí)別 一個(gè)人的識(shí)別效果比較好

完成上述工作,人臉識(shí)別就完成了,測(cè)試過,只要人臉庫(kù)中的素材清晰,識(shí)別基本在99% 左右。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容