0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

帶你玩轉(zhuǎn)OpenHarmony AI:基于Seetaface2的人臉識別

OpenAtom OpenHarmony ? 來源:未知 ? 2022-12-20 21:10 ? 次閱讀

開源項目 OpenHarmony是每個人的 OpenHarmony 00b311c8-8067-11ed-8abf-dac502259ad0.jpg

鐘祿平

OpenHarmony知識體系工作組

以下內(nèi)容來自嘉賓分享,不代表開放原子開源基金會觀點

簡介

隨著時代的進(jìn)步,全民刷臉已經(jīng)成為一種新型的生活方式,這也是全球科技進(jìn)步的又一階梯,人臉識別技術(shù)已經(jīng)成為一種大趨勢,無論在智慧出行、智能家居、智慧辦公等場景均有較廣泛的應(yīng)用場景,本文介紹了基于SeetaFace2人臉識別引擎在OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)上實現(xiàn)人臉識別的AI能力。

什么是SeetaFace2

SeetaFace2是由中科視拓(北京)科技有限公司開發(fā)并使用BSD開源協(xié)議開源出來的一款人臉識別引擎庫,其搭建了一套全自動人臉識別系統(tǒng)所需的三個核心模塊,即:人臉檢測模塊FaceDetector、面部關(guān)鍵點定位模塊 FaceLandmarker 以及人臉特征提取與比對模塊FaceRecognizer。除了三個核心模塊外,它還提供了兩個輔助模塊FaceTracker和QualityAssessor用于人臉跟蹤和質(zhì)量評估。下圖是SeetaFace2人臉識別算法組件: 00dec55c-8067-11ed-8abf-dac502259ad0.png ?

SeetaFace2能做什么

SeetaFace2采用標(biāo)準(zhǔn)C++開發(fā),全部模塊均不依賴任何第三方庫,支持x86架構(gòu)(Windows、Linux)和ARM架構(gòu),可以輕松地移植到OpenHarmony上。SeetaFace2支持的上層應(yīng)用包括但不限于人臉門禁、無感考勤、人臉比對等。如下圖展示了SeetaFace2支持的應(yīng)用矩陣: 03f7ad9e-8067-11ed-8abf-dac502259ad0.png ?

SeetaFace2人臉識別原理

SeetaFace2人臉識別引擎搭建了一套全自動人臉識別系統(tǒng)所需的三個核心模塊:1.人臉檢測(FaceDetector) 在圖像中首先定位出人臉的位置,然后裁剪(crop)出包含人臉位置的矩形框,一般還會進(jìn)行填充、縮放到指定尺寸,還可能會對人臉圖像進(jìn)行標(biāo)準(zhǔn)化normalize;2.面部關(guān)鍵點定位(FaceLandmarker) 提取人臉關(guān)鍵點坐標(biāo),然后使用放射變化或相似變換等進(jìn)行人臉對齊變換。面部關(guān)鍵點定位的目標(biāo)就是把所有的人臉圖片統(tǒng)一到一個固定的正臉姿態(tài)大小,從而提高模型對人臉姿態(tài)變化的魯棒性。3.人臉特征提取與比對模塊(FaceRecognizer) 主要使用深度學(xué)習(xí)等方法提取人臉的特征,然后通過特征對比,計算人臉的相似度。 SeetaFace2人臉識別的具體過程如下圖所示: 04319680-8067-11ed-8abf-dac502259ad0.png ?

兩步帶你實現(xiàn)人臉識別

關(guān)于SeetaFace2的如何移植到OpenHarmony移植請參照文檔:SeetaFace2移植開發(fā)文檔(請參考文章末尾相關(guān)文檔鏈接),這里我們主要分析通過SeetaFace2如何實現(xiàn)人臉識別。 從上面人臉識別的流程圖可以知道人臉識別主要包含2個大塊:人臉注冊和人臉識別。1. 人臉注冊 人臉注冊首先需要對傳入的圖片進(jìn)行人臉檢測,當(dāng)檢測到人臉后會提取對應(yīng)的人臉信息,并將信息保存用于對比。 人臉信息檢測實現(xiàn):
std::vector DetectFace(const SeetaImageData &image)
{
  auto faces = FD.detect(image);
  return std::vector(faces.data, faces.data + faces.size);
}
其中FD是三大模塊中的人臉檢測模塊(FaceDetector),其加載了人臉檢測模型:
seeta::ModeSttingFD_model("fd_2_00.dat",seeta::ModeStting::CPU,0);
而返回SeetaFaceInfo數(shù)據(jù)則是檢測到的人臉信息,其中包含了人臉個數(shù),人臉區(qū)域坐標(biāo)以及人臉置信度得分?jǐn)?shù)據(jù)。然后通過人臉信息檢測返回的數(shù)據(jù)進(jìn)行面部關(guān)鍵點定位。 面部關(guān)鍵點定位實現(xiàn):
std::vector DetectPoints(const SeetaImageData &image, const SeetaRect &face)
{
  std::vector points(PD.number());
  PD.mark(image, face, points.data());
  return std::move(points);
}
其中的PD是三大模塊中的關(guān)鍵點定位模塊(FaceLandmarker),關(guān)鍵點定位需要根據(jù)面部特征模型進(jìn)行對比分析的,SeetaFace2提供2種面部特征模型。分別是通過5點定位和通過81點定位,此實例中我們使用的是81點定位模型:
seeta::ModeSttingPD_model("pd_2_00_pts81.dat",seeta::ModeStting::CPU,0);
獲取完面部特征數(shù)據(jù)后,SeetaFace2提供了一個人臉數(shù)據(jù)庫進(jìn)行保存對應(yīng)的人臉信息數(shù)據(jù),以此來完成人臉信息的注冊:
int64_t Register(const SeetaImageData &image)
{
  auto faces =  DetectFace(image);
  auto points =  DetectPoints(image, faces.pos);


  return FDB.Register(image, points.data());
}
其中FDB是SeetaFace2實現(xiàn)的FaceDatabase數(shù)據(jù)庫管理。該數(shù)據(jù)庫也為人臉識別提供面部特征數(shù)據(jù)的對比結(jié)果,面部特征對比也需要一個人臉數(shù)據(jù)模型:
seeta::ModeSttingFDB_model("fr_2_00.dat",seeta::ModeStting::CPU,0);
通過以上步驟,我們就已經(jīng)完成了人臉的注冊。 2. 人臉識別 人臉識別和人臉注冊步驟類似,都需要先檢測人臉信息及提取面部特征數(shù)據(jù)。唯一的區(qū)別在于提取面部特征時需要進(jìn)行人臉質(zhì)量評估,最后根據(jù)質(zhì)量評估結(jié)果進(jìn)行識別,具體實現(xiàn)如下:
int64_t RecogizePoint(const SeetaImageData &image)
{
    int64_t result = 0;
  seeta::ModeStting FD_model("fd_2_00.dat", seeta::CPU, 0);        // 此3步創(chuàng)建3個模型
  seeta::ModeStting PD_model("pd_2_00_pts81.dat", seeta::CPU, 0);
  seeta::ModeStting FDB_model("fr_2_00.dat", seeta::CPU, 0);
  
  seeta::FaceDetector FD(FD_model);    // 創(chuàng)建人臉檢測模塊
  seeta::FaceLandmarker PD(PD_model);   // 創(chuàng)建面部關(guān)鍵點定位模塊
  seeta::FaceDatabase FDB(FDB_model);    // 創(chuàng)建人臉特征信息數(shù)據(jù)庫模塊
  
  auto faces = FD.detect(image);        // 獲取人臉特征信息
    for (SeetaFaceInfo &face : faces) {    // 對比每個人臉信息
        int64_t index = -1;
        float similarity = 0;
        std::vector points(PD.number());
      PD.mark(image, face, points.data());            // 獲取人臉框信息
        auto score = QA.evaluate(image, face.pos, points.data());   // 獲取人臉質(zhì)量評分
        if (score == 0) {
            HILOGI("no ignored
");
        } else {
            auto queried = FDB.QueryTop(image, points.data(), 1, &index, &similarity);    // 從注冊的人臉數(shù)據(jù)庫中對比相似度
            if (queried < 1) {
                continue;
            }
            if (similarity > threshold) {
                HILOGI("get recognized face!! 
");
                result++;
            }
        }
    }
    
    return result; 
}

參考鏈接

OpenHarmony知識體系工作組

https://gitee.com/openharmony-sig/knowledge

SeetaFace2移植開發(fā)文檔

https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/docs/SeetaFace2/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%BA%93%E7%9A%84%E7%A7%BB%E6%A4%8D.md

SeetaFace2 GitHub源碼地址

https://github.com/seetafaceengine/SeetaFace2

SeetaFace2 Demo樣例地址

https://gitee.com/openharmony-sig/knowledge_demo_travel/tree/master/docs/FaceRecognition_CXX/README.md

本文為技術(shù)分析文章,僅供大家學(xué)習(xí)、研討及交流使用。如在實際應(yīng)用場景中收集人臉圖像,應(yīng)遵守《個人信息保護(hù)法》《最高人民法院關(guān)于審理使用人臉識別技術(shù)處理個人信息相關(guān)民事案件適用法律若干問題的規(guī)定》等關(guān)于處理和保護(hù)敏感個人信息、面部生物識別信息的規(guī)定。


原文標(biāo)題:帶你玩轉(zhuǎn)OpenHarmony AI:基于Seetaface2的人臉識別

文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2382

    瀏覽量

    42940
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3731

    瀏覽量

    16435

原文標(biāo)題:帶你玩轉(zhuǎn)OpenHarmony AI:基于Seetaface2的人臉識別

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ElfBoard開源項目|百度智能云平臺的人臉識別項目

    百度智能云平臺的人臉識別項目,旨在利用其強大的人臉識別服務(wù)實現(xiàn)自動人臉識別。選擇百度智能云的原因
    的頭像 發(fā)表于 12-24 10:54 ?453次閱讀
    ElfBoard開源項目|百度智能云平臺<b class='flag-5'>的人臉</b><b class='flag-5'>識別</b>項目

    《DNK210使用指南 -CanMV版 V1.0》第四十五章 人臉識別實驗

    與先前錄入的人臉特征進(jìn)行對比,如果得分高于閾值,則能成功識別人臉,最后將識別結(jié)果同原始圖像在LCD上進(jìn)行顯示。2. 按下KEY0按鍵可以錄入當(dāng)前人臉
    發(fā)表于 11-18 14:30

    基于迅為RK3568/RK3588開發(fā)板的AI圖像識別方案

    https://www.bilibili.com/video/BV1G54y1A7nf/?spm_id_from=333.999.0.0 迅為RK3568/RK3588開發(fā)板AI識別演示方案,包括
    發(fā)表于 08-28 09:50

    基于FPGA的人臉識別技術(shù)

    基于FPGA(現(xiàn)場可編程邏輯門陣列)的人臉識別技術(shù),是一種結(jié)合了高效并行處理能力和靈活可編程性的先進(jìn)圖像處理解決方案。這種技術(shù)在安全監(jiān)控、身份認(rèn)證、人機交互等領(lǐng)域具有廣泛應(yīng)用前景。以下將詳細(xì)介紹基于FPGA的人臉
    的頭像 發(fā)表于 07-17 11:42 ?1546次閱讀

    基于OpenCV的人臉識別系統(tǒng)設(shè)計

    基于OpenCV的人臉識別系統(tǒng)是一個復(fù)雜但功能強大的系統(tǒng),廣泛應(yīng)用于安全監(jiān)控、人機交互、智能家居等多個領(lǐng)域。下面將詳細(xì)介紹基于OpenCV的人臉識別系統(tǒng)的基本原理、實現(xiàn)步驟,并附上具體
    的頭像 發(fā)表于 07-11 15:37 ?1.3w次閱讀

    人臉識別技術(shù)的原理介紹

    人臉識別技術(shù)是一種基于人臉特征信息進(jìn)行身份識別的生物識別技術(shù)。它通過分析人臉圖像,提取
    的頭像 發(fā)表于 07-04 09:22 ?1387次閱讀

    人臉識別模型訓(xùn)練流程

    據(jù)準(zhǔn)備階段,需要收集大量的人臉圖像數(shù)據(jù),并進(jìn)行數(shù)據(jù)清洗、標(biāo)注和增強等操作。 1.1 數(shù)據(jù)收集 數(shù)據(jù)收集是人臉識別模型訓(xùn)練的第一步??梢酝ㄟ^網(wǎng)絡(luò)爬蟲、公開數(shù)據(jù)集、合作伙伴等途徑收集人臉
    的頭像 發(fā)表于 07-04 09:19 ?1045次閱讀

    人臉識別模型訓(xùn)練是什么意思

    人臉識別模型訓(xùn)練是指通過大量的人臉數(shù)據(jù),使用機器學(xué)習(xí)或深度學(xué)習(xí)算法,訓(xùn)練出一個能夠識別和分類人臉的模型。這個模型可以應(yīng)用于各種場景,如安防監(jiān)
    的頭像 發(fā)表于 07-04 09:16 ?674次閱讀

    如何挑選理想的人臉識別考勤系統(tǒng)產(chǎn)品?人臉識別設(shè)備的選型

    如何挑選理想的人臉識別考勤系統(tǒng)產(chǎn)品?在挑選理想的人臉識別考勤系統(tǒng)產(chǎn)品時,需要綜合考慮多個方面,包括但不限于設(shè)備的性能、兼容性、數(shù)據(jù)存儲能力、環(huán)境適應(yīng)性以及售后服務(wù)等因素。以下是根據(jù)提供
    的頭像 發(fā)表于 06-05 14:59 ?518次閱讀
    如何挑選理想<b class='flag-5'>的人臉</b><b class='flag-5'>識別</b>考勤系統(tǒng)產(chǎn)品?<b class='flag-5'>人臉</b><b class='flag-5'>識別</b>設(shè)備的選型

    天線設(shè)計攻略簡要概述 帶你玩轉(zhuǎn)PCB和WIFI

    給大家分享干貨啦!天線設(shè)計全攻略,帶你玩轉(zhuǎn)PCB和WIFI
    的頭像 發(fā)表于 05-08 14:42 ?1554次閱讀
    天線設(shè)計攻略簡要概述 <b class='flag-5'>帶你</b><b class='flag-5'>玩轉(zhuǎn)</b>PCB和WIFI

    開發(fā)者手機 AI - 目標(biāo)識別 demo

    功能簡介 該應(yīng)用是在Openharmony 4.0系統(tǒng)上開發(fā)的一個目標(biāo)識別AI應(yīng)用,旨在從上到下打通Openharmony AI子系統(tǒng),展
    發(fā)表于 04-11 16:14

    OpenHarmony鴻蒙實戰(zhàn)】在RK3399開發(fā)板實現(xiàn)智能門禁人臉識別

    基于RK3399開發(fā)板,使用OpenHarmony3.0-LTS開發(fā)的應(yīng)用。通過定時獲取攝像頭數(shù)據(jù),實現(xiàn)人臉識別比對等功能。
    的頭像 發(fā)表于 03-20 17:38 ?1486次閱讀
    【<b class='flag-5'>OpenHarmony</b>鴻蒙實戰(zhàn)】在RK3399開發(fā)板實現(xiàn)智能門禁<b class='flag-5'>人臉</b><b class='flag-5'>識別</b>

    公司人臉識別考勤門禁攝像機#人臉識別#智能攝像機

    AI人臉識別
    jf_07511428
    發(fā)布于 :2024年03月06日 22:52:08

    人臉識別技術(shù)的原理是什么 人臉識別技術(shù)的特點有哪些

    人臉識別技術(shù)的原理 人臉識別技術(shù)是一種通過計算機以圖像或視頻為輸入,識別、檢測、跟蹤和分析人臉
    的頭像 發(fā)表于 02-18 13:52 ?2088次閱讀