女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

AI人臉識別測溫一體機設(shè)計

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

1. 前言

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

目前,因為新冠疫情防控的需要,人人出門都需要戴口罩,查驗健康碼和測量體溫,在辦公大樓門口、地鐵口、小區(qū)門口、商場門口人流量都比較大,傳統(tǒng)的人工測量體溫方式,費時費力、效率比較低,而且人工近距離核驗溫度,易產(chǎn)生交叉感染風險。

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

實現(xiàn)的具體功能: 當檢測到人臉時,就測量溫度,并檢測有沒有帶口罩;在顯示屏上實時顯示溫度信息,如果溫度超出設(shè)置值,會通過語音播報提示。如果人員沒有戴口罩,會語音提示帶口罩。

image-20220126144246822

2. 軟硬件設(shè)計

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

image-20220126144643741

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

image-20220126151833791

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

image-20220126151055995

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

3.1 開通人臉識別服務(wù)

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

image-20220126152721596

image-20220126152812218

3.2 人臉識別接口功能

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

(1)接口請求方式: POST

(2)接口請求地址

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

(3)請求頭的參數(shù)

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

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

image-20220106192419443

(4)請求Body參數(shù)

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

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

如果圖像里沒有人臉,返回的數(shù)據(jù)是這樣的:
 {"faces":[]}
 ?
 如果沒有填額外的屬性,返回的數(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

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

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

image-20220126155441775

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

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

//人臉檢測
 void Widget::FaceCheck(QImage image)
 {
     QString requestUrl;
     QNetworkRequest request;
 ?
     //存放圖片BASE64編碼
     QString imgData;
 ?
     //設(shè)置請求地址
     QUrl url;
 ?
     //人臉檢測請求地址
     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"));
 ?
     //將圖片進行Base64編碼
     imgData = QString(toBase64(image)); //編碼后的圖片大小不超過2M
     //設(shè)置token
     request.setRawHeader("X-Auth-Token",Token);
 ?
     //構(gòu)造請求
     url.setUrl(requestUrl);
     request.setUrl(url);
 ?
     QString post_param=QString
                ("{"
                  ""image_base64": "%1","
                  ""attributes":%2"
                 "}").arg(imgData).arg("6");
 ?
     //發(fā)送請求
     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)
         {
             //判斷是否是對象,然后開始解析數(shù)據(jù)
             if(document.isObject())
             {
                 QJsonObject obj = document.object();
                 //解析錯誤代碼
                 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è)置請求地址
     QUrl url;
 ?
     //獲取token請求地址
     requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens")
                  .arg(SERVER_ID);
 ?
     //自己創(chuàng)建的TCP服務(wù)器,測試用
     //requestUrl="http://10.0.0.6:8080";
 ?
     //設(shè)置數(shù)據(jù)提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
 ?
     //構(gòu)造請求
     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ā)送請求
     manager- >post(request, text.toUtf8());
 }

4.4 攝像頭初始化

//查找系統(tǒng)可用攝像頭
 void Widget::Find_CameraNumber()
 {
     //清空列表
     ui- >comboBox_camera_number- >clear();
 ?
     /*查找電腦當前可用攝像頭*/
     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("提示"),"本機沒有可用的攝像頭!
"
                                                  "軟件作者:DS小龍哥
"
                                                  "BUG反饋:[email protected]");
         ui- >pushButton_start_camera- >setEnabled(false);
     }
 ?
     /*攝像頭沒有啟動時,按鈕不可用*/
     ui- >pushButton_find- >setEnabled(false);
     ui- >pushButton_delete- >setEnabled(false);
     ui- >pushButton_update- >setEnabled(false);
     ui- >pushButton_register- >setEnabled(false);
 }
 ?
 ?
 //啟動攝像頭
 void Widget::on_pushButton_start_camera_clicked()
 {
     //攝像頭啟動標志
     if(camera_flag) //如果攝像頭已經(jīng)啟動一次,再次啟動需要將之前的空間釋放掉
     {
         camera- >stop();
         delete camera;
         ui- >horizontalLayout_2- >removeWidget(videoWidget);
         delete videoWidget;
     }
 ?
     camera_flag=1;  //標志攝像頭已經(jīng)啟動一次
 ?
     //攝像頭啟動之后,就無法在重復(fù)啟動
     ui- >pushButton_start_camera- >setEnabled(false);
 ?
    /*創(chuàng)建攝像頭對象,根據(jù)選擇的攝像頭打開*/
    camera = new QCamera(cameras.at(ui- >comboBox_camera_number- >currentIndex()));
 ?
    /*構(gòu)造捕獲的對象*/
    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)捕獲的信號,發(fā)出捕獲截圖信號時,發(fā)出信號
   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);
 ?
    /*啟動攝像頭*/
    camera- >start();
 ?
    /*攝像頭啟動時,按鈕可用*/
    ui- >pushButton_find- >setEnabled(true);
    ui- >pushButton_delete- >setEnabled(true);
    ui- >pushButton_update- >setEnabled(true);
    ui- >pushButton_register- >setEnabled(true);
 }

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    1086

    瀏覽量

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

    關(guān)注

    87

    文章

    34146

    瀏覽量

    275281
  • 人臉識別
    +關(guān)注

    關(guān)注

    76

    文章

    4069

    瀏覽量

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

    關(guān)注

    3

    文章

    2762

    瀏覽量

    18102
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    圖書館場景中人臉識別測溫一體機可實現(xiàn)哪些應(yīng)用

    圖書館引入人臉識別系統(tǒng)的應(yīng)用,推動傳統(tǒng)圖書管理模式更新,助力場景管理升級,帶來科技的閱讀體驗。那么,在學校圖書館場景,人臉識別測溫
    發(fā)表于 06-30 17:27 ?1083次閱讀

    關(guān)于健康碼人臉識別測溫一體機

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

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

    一般人臉測溫門禁一體機的功能,人臉識別測溫門禁一體機
    發(fā)表于 02-26 09:45 ?2250次閱讀

    人臉識別測溫一體機的優(yōu)勢特點是怎樣的

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

    人臉識別測溫一體機是什么,有哪些功能

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

    音圈電機助力的人臉識別測溫一體機研制成功

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

    人臉識別測溫一體機的功能與安裝

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

    人臉識別測溫一體機主要特性

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

    如何選擇人臉識別一體機品牌

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

    測溫一體機常見類型和問題

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

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

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

    人臉識別測溫門禁一體機有什么功能作用

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

    人臉識別測溫門禁一體機怎么安裝使用?有哪些功能

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

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

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

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

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