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

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

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

AI人臉識(shí)別測(cè)溫一體機(jī)設(shè)計(jì)

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-07-06 14:25 ? 次閱讀

1. 前言

AI人工智能發(fā)展應(yīng)用的過(guò)程中,人臉識(shí)別技術(shù)得到了重用。目前在人臉識(shí)別相關(guān)的技術(shù)已經(jīng)深入到生活方方面面。在公共安全、智能安防、手機(jī)認(rèn)證等多個(gè)領(lǐng)域得到應(yīng)用,比如: 通過(guò)人臉識(shí)別來(lái)解鎖手機(jī),通過(guò)人臉識(shí)別進(jìn)入某些政務(wù)軟件平臺(tái)或是銀行APP, 還是各大門(mén)店,超市使用的"支付寶刷臉支付"等等,這些應(yīng)用大大方便了人們生活。

目前,因?yàn)樾鹿谝咔榉揽氐男枰巳顺鲩T(mén)都需要戴口罩,查驗(yàn)健康碼和測(cè)量體溫,在辦公大樓門(mén)口、地鐵口、小區(qū)門(mén)口、商場(chǎng)門(mén)口人流量都比較大,傳統(tǒng)的人工測(cè)量體溫方式,費(fèi)時(shí)費(fèi)力、效率比較低,而且人工近距離核驗(yàn)溫度,易產(chǎn)生交叉感染風(fēng)險(xiǎn)。

當(dāng)前文章就利用 華為云提供的AI人臉識(shí)別接口+紅外測(cè)溫傳感器MLX90614ESF(DCI)+瑞芯微RK3399完成AI人臉測(cè)溫一體機(jī)設(shè)計(jì) ,方便測(cè)量來(lái)往人員的體溫,減輕防疫防控工作人員的負(fù)擔(dān)。

實(shí)現(xiàn)的具體功能: 當(dāng)檢測(cè)到人臉時(shí),就測(cè)量溫度,并檢測(cè)有沒(méi)有帶口罩;在顯示屏上實(shí)時(shí)顯示溫度信息,如果溫度超出設(shè)置值,會(huì)通過(guò)語(yǔ)音播報(bào)提示。如果人員沒(méi)有戴口罩,會(huì)語(yǔ)音提示帶口罩。

image-20220126144246822

2. 軟硬件設(shè)計(jì)

(1)核心板采用瑞芯微RK3399,運(yùn)行ubuntu18.04 64位系統(tǒng),編譯器采用aarch64-linux-gcc。攝像頭采用羅技的720p攝像頭。

image-20220126144643741

(2)軟件界面采用QT設(shè)計(jì),在RK3399的ubuntu18.04系統(tǒng)里可以直接安裝QT開(kāi)發(fā)環(huán)境完成開(kāi)發(fā),也可以在PC機(jī)上交叉編譯后將程序和相關(guān)庫(kù)拷貝過(guò)來(lái)。

image-20220126151833791

(3)測(cè)溫傳感器采用MLX90614ESF(DCI),這個(gè)是紅外非接觸式測(cè)溫傳感器,測(cè)量距離可達(dá)到1米左右,這個(gè)模塊是IIC協(xié)議接口。

image-20220126151055995

3. 華為云人臉識(shí)別服務(wù)

3.1 開(kāi)通人臉識(shí)別服務(wù)

官網(wǎng)地址: https://www.huaweicloud.com/product/face.html

image-20220126152721596

image-20220126152812218

3.2 人臉識(shí)別接口功能

華為云提供的人臉檢測(cè)可以對(duì)輸入圖片進(jìn)行人臉檢測(cè)和分析,輸出人臉在圖像中的位置、人臉關(guān)鍵點(diǎn)位置、人臉關(guān)鍵屬性等信息。支持識(shí)別JPG、PNG、JPEG、BMP等格式的圖片,上傳圖片時(shí)選擇將圖片轉(zhuǎn)為Base64編碼上傳。

(1)接口請(qǐng)求方式: POST

(2)接口請(qǐng)求地址

格式:
 https://face.{endpoint}.myhuaweicloud.com/v2/{project_id}/face-detect
 ?
 示例:
 https://face.cn-north-4.myhuaweicloud.com/v2/0e5957be8a00f53c2fa7c0045e4d8fbf/face-detect

(3)請(qǐng)求頭的參數(shù)

{
  "X-Auth-Token": "******"   
 }

X-Auth-Token字段是訪問(wèn)華為云的任何API接口都需要填,獲取方法看這里: https://bbs.huaweicloud.com/blogs/317759 翻到2.3小節(jié)。

image-20220106192419443

(4)請(qǐng)求Body參數(shù)

image_base64字段   : 存放Base64編碼后的圖片數(shù)據(jù),大小不超過(guò)8MB,建議小于1MB。
 ?
 attributes字段     :這個(gè)參數(shù)可以選擇不填,不填就只是返回人臉的在圖片里的尺寸位置。如果希望獲取更多的屬性列表,可以填下面之這些屬性:
 2:年齡
 4:裝束(帽子、眼鏡)
 6:口罩
 7:發(fā)型
 8:胡須
 11:圖片類型
 12:質(zhì)量
 13:表情
 21:人臉圖片旋轉(zhuǎn)角(順時(shí)針偏轉(zhuǎn)角度),支持0°、90°、180°和270°圖片旋轉(zhuǎn)。
 ?
 多個(gè)屬性間使用逗號(hào)(,)隔開(kāi)。

(5)響應(yīng)參數(shù)

如果圖像里沒(méi)有人臉,返回的數(shù)據(jù)是這樣的:
 {"faces":[]}
 ?
 如果沒(méi)有填額外的屬性,返回的數(shù)據(jù)是這樣的:
 {
  "faces": [
   {
    "bounding_box": {
     "top_left_x": 61,
     "top_left_y": 54,
     "width": 114,
     "height": 151
    }
   }
  ]
 }
 ?
 填了額外的屬性,返回的數(shù)據(jù)是這樣的:
 {
  "faces": [
   {
    "bounding_box": {
     "top_left_x": 61,
     "top_left_y": 54,
     "width": 114,
     "height": 151
    },
    "attributes": {
     "age": 30,
     "dress": {
      "glass": "none",
      "hat": "none"
     },
     "mask": "none",
     "hair": "short",
     "beard": "none",
     "phototype": "internet photo",
     "quality": {
      "total_score": 0.62109375,
      "blur": 0.3359375,
      "pose": 0.266357421875,
      "occlusion": 0.330810546875,
      "illumination": 0.378662109375
     },
     "expression": {
      "type": "neutral",
      "probability": 0.9991200566291809
     }
    }
   }
  ]
 }

3.3 調(diào)試接口

地址: https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=FRS&api=DetectFaceByFile

如果最開(kāi)始想體驗(yàn)一下接口,了解參數(shù)的含義,可以先使用在線調(diào)試接口測(cè)試一下效果。

現(xiàn)在人臉檢測(cè)的調(diào)試接口可以直接在網(wǎng)頁(yè)上選擇本地圖片,不用再傳bash64數(shù)據(jù),測(cè)試更加方便。

image-20220126155441775

4. 設(shè)計(jì)設(shè)備端程序

4.1 調(diào)用人臉檢測(cè)接口

//人臉檢測(cè)
 void Widget::FaceCheck(QImage image)
 {
     QString requestUrl;
     QNetworkRequest request;
 ?
     //存放圖片BASE64編碼
     QString imgData;
 ?
     //設(shè)置請(qǐng)求地址
     QUrl url;
 ?
     //人臉檢測(cè)請(qǐng)求地址
     requestUrl = QString("https://face.%1.myhuaweicloud.com/v2/%2/face-detect")
             .arg(SERVER_ID)
             .arg(PROJECT_ID);
 ?
     //設(shè)置數(shù)據(jù)提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
 ?
     //將圖片進(jìn)行Base64編碼
     imgData = QString(toBase64(image)); //編碼后的圖片大小不超過(guò)2M
     //設(shè)置token
     request.setRawHeader("X-Auth-Token",Token);
 ?
     //構(gòu)造請(qǐng)求
     url.setUrl(requestUrl);
     request.setUrl(url);
 ?
     QString post_param=QString
                ("{"
                  ""image_base64": "%1","
                  ""attributes":%2"
                 "}").arg(imgData).arg("6");
 ?
     //發(fā)送請(qǐng)求
     manager- >post(request, post_param.toUtf8());
 }

4.2 接口數(shù)據(jù)解析

if(function_select==6)
     {
         //解析數(shù)據(jù)
         QJsonParseError json_error;
         QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error);
         if(json_error.error == QJsonParseError::NoError)
         {
             //判斷是否是對(duì)象,然后開(kāi)始解析數(shù)據(jù)
             if(document.isObject())
             {
                 QJsonObject obj = document.object();
                 //解析錯(cuò)誤代碼
                 if(obj.contains("faces"))
                 {
                     QJsonArray face_arr=obj.take("faces").toArray();
 ?
                     for(int i=0;i< face_arr.size();i++)
                     {
                         QJsonObject object=face_arr.at(i).toObject();
                         if(object.contains("bounding_box"))
                         {
                             QJsonObject obj1=object.take("bounding_box").toObject();
 ?
                             int top_left_x=0;
                             int top_left_y=0;
                             int width=0;
                             int height=0;
 ?
                             if(obj1.contains("top_left_x"))
                             {
                                 top_left_x=obj1.take("top_left_x").toInt();
                             }
                             if(obj1.contains("top_left_y"))
                             {
                                 top_left_y=obj1.take("top_left_y").toInt();
                             }
                             if(obj1.contains("width"))
                             {
                                 width=obj1.take("width").toInt();
                             }
                             if(obj1.contains("height"))
                             {
                                 height=obj1.take("height").toInt();
                             }
 ?
                             qDebug()< < "top_left_x:"<

4.3 token獲取

void Widget::GetToken()
 {
     //表示獲取token
     function_select=3;
 ?
     QString requestUrl;
     QNetworkRequest request;
 ?
     //設(shè)置請(qǐng)求地址
     QUrl url;
 ?
     //獲取token請(qǐng)求地址
     requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens")
                  .arg(SERVER_ID);
 ?
     //自己創(chuàng)建的TCP服務(wù)器,測(cè)試用
     //requestUrl="http://10.0.0.6:8080";
 ?
     //設(shè)置數(shù)據(jù)提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
 ?
     //構(gòu)造請(qǐng)求
     url.setUrl(requestUrl);
 ?
     request.setUrl(url);
 ?
     QString text =QString("{"auth":{"identity":{"methods":["password"],"password":"
     "{"user":{"domain": {"
     ""name":"%1"},"name": "%2","password": "%3"}}},"
     ""scope":{"project":{"name":"%4"}}}}")
             .arg(MAIN_USER)
             .arg(IAM_USER)
             .arg(IAM_PASSWORD)
             .arg(SERVER_ID);
 ?
     //發(fā)送請(qǐng)求
     manager- >post(request, text.toUtf8());
 }

4.4 攝像頭初始化

//查找系統(tǒng)可用攝像頭
 void Widget::Find_CameraNumber()
 {
     //清空列表
     ui- >comboBox_camera_number- >clear();
 ?
     /*查找電腦當(dāng)前可用攝像頭*/
     cameras = QCameraInfo::availableCameras();
     if(cameras.count())
     {
         for(int i=0;i< cameras.count();i++)
         {
             ui- >comboBox_camera_number- >addItem(tr("%1").arg(i));
         }
         ui- >pushButton_start_camera- >setEnabled(true);
     }
     else
     {
         QMessageBox::warning(this,tr("提示"),"本機(jī)沒(méi)有可用的攝像頭!
"
                                                  "軟件作者:DS小龍哥
"
                                                  "BUG反饋:1126626497@qq.com");
         ui- >pushButton_start_camera- >setEnabled(false);
     }
 ?
     /*攝像頭沒(méi)有啟動(dòng)時(shí),按鈕不可用*/
     ui- >pushButton_find- >setEnabled(false);
     ui- >pushButton_delete- >setEnabled(false);
     ui- >pushButton_update- >setEnabled(false);
     ui- >pushButton_register- >setEnabled(false);
 }
 ?
 ?
 //啟動(dòng)攝像頭
 void Widget::on_pushButton_start_camera_clicked()
 {
     //攝像頭啟動(dòng)標(biāo)志
     if(camera_flag) //如果攝像頭已經(jīng)啟動(dòng)一次,再次啟動(dòng)需要將之前的空間釋放掉
     {
         camera- >stop();
         delete camera;
         ui- >horizontalLayout_2- >removeWidget(videoWidget);
         delete videoWidget;
     }
 ?
     camera_flag=1;  //標(biāo)志攝像頭已經(jīng)啟動(dòng)一次
 ?
     //攝像頭啟動(dòng)之后,就無(wú)法在重復(fù)啟動(dòng)
     ui- >pushButton_start_camera- >setEnabled(false);
 ?
    /*創(chuàng)建攝像頭對(duì)象,根據(jù)選擇的攝像頭打開(kāi)*/
    camera = new QCamera(cameras.at(ui- >comboBox_camera_number- >currentIndex()));
 ?
    /*構(gòu)造捕獲的對(duì)象*/
    camera_image_capture = new QCameraImageCapture(camera);
 ?
    /*設(shè)置捕獲的目的地*/
    camera_image_capture- >setCaptureDestination(QCameraImageCapture::CaptureToFile);
 ?
    //設(shè)置截圖輸出、緩沖區(qū)格式、分辨
    camera_image_capture- >setCaptureDestination(QCameraImageCapture::CaptureToBuffer);
    camera_image_capture- >setBufferFormat(QVideoFrame::PixelFormat::Format_Jpeg);
 ?
    //設(shè)置截圖的圖片尺寸
    iamge_setting.setResolution(320,240);
    camera_image_capture- >setEncodingSettings(iamge_setting);
 ?
    //關(guān)聯(lián)捕獲的信號(hào),發(fā)出捕獲截圖信號(hào)時(shí),發(fā)出信號(hào)
   connect(camera_image_capture,&QCameraImageCapture::imageCaptured,this,&Widget::processCapturedImage);
 ?
    /*配置攝像頭捕獲模式為幀捕獲模式*/
    camera- >setCaptureMode(QCamera::CaptureViewfinder);
 ?
    videoWidget = new QVideoWidget();
    videoWidget- >setMinimumSize(320,240);
 ?
    //將攝像頭顯示窗口加入到布局中
    ui- >horizontalLayout_2- >insertWidget(0,videoWidget);
 ?
    /*設(shè)置取景器顯示*/
    camera- >setViewfinder(videoWidget);
 ?
    /*啟動(dòng)攝像頭*/
    camera- >start();
 ?
    /*攝像頭啟動(dòng)時(shí),按鈕可用*/
    ui- >pushButton_find- >setEnabled(true);
    ui- >pushButton_delete- >setEnabled(true);
    ui- >pushButton_update- >setEnabled(true);
    ui- >pushButton_register- >setEnabled(true);
 }

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    897

    瀏覽量

    32727
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30947

    瀏覽量

    269210
  • 人臉識(shí)別
    +關(guān)注

    關(guān)注

    76

    文章

    4012

    瀏覽量

    81937
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2540

    瀏覽量

    17445
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    圖書(shū)館場(chǎng)景中人臉識(shí)別測(cè)溫一體機(jī)可實(shí)現(xiàn)哪些應(yīng)用

    圖書(shū)館引入人臉識(shí)別系統(tǒng)的應(yīng)用,推動(dòng)傳統(tǒng)圖書(shū)管理模式更新,助力場(chǎng)景管理升級(jí),帶來(lái)科技的閱讀體驗(yàn)。那么,在學(xué)校圖書(shū)館場(chǎng)景,人臉識(shí)別測(cè)溫
    發(fā)表于 06-30 17:27 ?949次閱讀

    關(guān)于健康碼人臉識(shí)別測(cè)溫一體機(jī)

    大家這都知道,近段時(shí)間以來(lái),疫情在各地又開(kāi)始蔓延了,而為了很好的防控疫情,小區(qū)的人臉識(shí)別門(mén)禁又上線了。而且很多公共場(chǎng)合都有設(shè)置測(cè)溫儀。因此款集人臉
    發(fā)表于 08-16 15:21 ?2787次閱讀

    人臉識(shí)別測(cè)溫一體機(jī)的功能及應(yīng)用

    一般人臉測(cè)溫門(mén)禁一體機(jī)的功能,人臉識(shí)別測(cè)溫門(mén)禁一體機(jī)
    發(fā)表于 02-26 09:45 ?2131次閱讀

    人臉識(shí)別測(cè)溫一體機(jī)的優(yōu)勢(shì)特點(diǎn)是怎樣的

    人臉識(shí)別測(cè)溫一體機(jī),通過(guò)引入AI人工智能、識(shí)別計(jì)算算法、大數(shù)據(jù)分析等技術(shù)手段,部署
    的頭像 發(fā)表于 03-11 16:39 ?2711次閱讀

    人臉識(shí)別測(cè)溫一體機(jī)是什么,有哪些功能

    人臉識(shí)別測(cè)溫一體機(jī),通過(guò)引入AI人工智能、識(shí)別計(jì)算算法、大數(shù)據(jù)分析等技術(shù)手段,部署
    的頭像 發(fā)表于 03-17 15:05 ?6520次閱讀

    音圈電機(jī)助力的人臉識(shí)別測(cè)溫一體機(jī)研制成功

    音圈電機(jī)助力的人臉識(shí)別測(cè)溫一體機(jī)研制成功。近日,航天科工二院203所自主研發(fā)出關(guān)聯(lián)健康寶的人臉識(shí)別
    發(fā)表于 07-23 16:34 ?888次閱讀

    人臉識(shí)別測(cè)溫一體機(jī)的功能與安裝

    人臉識(shí)別測(cè)溫一體機(jī),只需看名字就能知道它的工作性質(zhì),它可以在識(shí)別人的臉部的同時(shí)起到測(cè)量體溫的作用,在識(shí)別
    的頭像 發(fā)表于 12-23 10:21 ?1991次閱讀

    人臉識(shí)別測(cè)溫一體機(jī)主要特性

    人臉識(shí)別測(cè)溫一體機(jī)人臉識(shí)別技術(shù)廣泛應(yīng)用于門(mén)禁系統(tǒng)的身份識(shí)別
    發(fā)表于 12-26 09:54 ?476次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b><b class='flag-5'>測(cè)溫</b><b class='flag-5'>一體機(jī)</b>主要特性

    如何選擇人臉識(shí)別一體機(jī)品牌

    人臉識(shí)別一體機(jī)在很多場(chǎng)所都能看到,人臉識(shí)別一體機(jī)的品牌有哪些?想要選擇適合自己的產(chǎn)品,首先還得了
    發(fā)表于 01-10 09:36 ?783次閱讀
    如何選擇<b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b><b class='flag-5'>一體機(jī)</b>品牌

    測(cè)溫一體機(jī)常見(jiàn)類型和問(wèn)題

    測(cè)溫一體機(jī)目前應(yīng)用中常見(jiàn)的包括人臉識(shí)別測(cè)溫一體機(jī)、人證核驗(yàn)健康碼
    發(fā)表于 01-31 10:53 ?745次閱讀
    <b class='flag-5'>測(cè)溫</b><b class='flag-5'>一體機(jī)</b>常見(jiàn)類型和問(wèn)題

    測(cè)溫人臉識(shí)別機(jī)一體機(jī)的設(shè)計(jì)優(yōu)勢(shì)

    紅外測(cè)溫人臉識(shí)別機(jī)一體機(jī)主板外接紅外非接觸式測(cè)溫模塊和人臉識(shí)
    發(fā)表于 02-01 11:05 ?279次閱讀

    人臉識(shí)別測(cè)溫門(mén)禁一體機(jī)有什么功能作用

    人臉識(shí)別測(cè)溫一體機(jī)包括測(cè)溫攝像頭、面板、人證核驗(yàn)區(qū)不同部分,進(jìn)行模塊化設(shè)計(jì),可根據(jù)客戶不同需求,自由組合。例如,安裝在人行通道的閘門(mén)上,掛在
    的頭像 發(fā)表于 02-15 11:55 ?2047次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b><b class='flag-5'>測(cè)溫</b>門(mén)禁<b class='flag-5'>一體機(jī)</b>有什么功能作用

    人臉識(shí)別測(cè)溫門(mén)禁一體機(jī)怎么安裝使用?有哪些功能

    所謂的人臉識(shí)別測(cè)溫門(mén)禁一體機(jī)只需看名字就能知道它的工作性質(zhì),它可以在識(shí)別人的臉部的同時(shí)起到測(cè)量體溫的作用,在
    的頭像 發(fā)表于 02-16 16:59 ?2548次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b><b class='flag-5'>測(cè)溫</b>門(mén)禁<b class='flag-5'>一體機(jī)</b>怎么安裝使用?有哪些功能

    電梯人臉識(shí)別測(cè)溫一體機(jī)的優(yōu)勢(shì):提升安全性和便捷性

    隨著科技的不斷發(fā)展,人臉識(shí)別測(cè)溫一體機(jī)逐漸應(yīng)用于各個(gè)領(lǐng)域。在電梯中,人臉識(shí)別
    的頭像 發(fā)表于 01-08 10:09 ?754次閱讀
    電梯<b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b><b class='flag-5'>測(cè)溫</b><b class='flag-5'>一體機(jī)</b>的優(yōu)勢(shì):提升安全性和便捷性

    電梯人臉識(shí)別測(cè)溫一體機(jī):引領(lǐng)樓宇安全與便利的新篇章

    隨著科技的飛速發(fā)展,智能化、自動(dòng)化的設(shè)備在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。在電梯領(lǐng)域,電梯人臉識(shí)別測(cè)溫一體機(jī)作為種集成了
    的頭像 發(fā)表于 06-26 14:27 ?529次閱讀