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

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

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

3天內不再提示

【EASY EAI Nano開源套件試用體驗】4AI功能測試之人臉檢測

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-10-11 16:40 ? 次閱讀

本文來源電子發燒友社區,作者:碼農愛學習, 帖子地址:https://bbs.elecfans.com/jishu_2307951_1_1.html


EASY EAI Nano AI人臉檢測測試(附上體驗視頻,詳細見原作者帖子)

本篇介紹EASY EAI Nano的AI人臉檢測功能,先看下測試效果:

1.jpg

本篇參考官方文檔:https://www.easy-eai.com/document_details/3/109

1 代碼下載

下載官方測試代碼:https://github.com/EASY-EAI/EASY-EAI-Toolkit-C-Solution.git,本篇來修改face_detect中的代碼并測試。

下載AI算法模型face_detect.model,百度網盤:https://pan.baidu.com/s/1mrhVHxHWJ8cY9Fl9k5KtYg#list/path=%2F提取碼:0k7j

總的資料百度網盤了也有算法模型:https://pan.baidu.com/s/1AjOIu77mzFM4cDA0MMVr2A#list/path=%2F,提取碼:5ttf

我先使用總的資料里下載的模型測試。

2 人臉檢測API接口介紹

組件 頭文件以及庫路徑 描述
系統操作組件 easyeai-api/common_api/system_opt 提供線程操作函數
攝像頭組件 easyeai-api/peripheral_api/camera 提供攝像頭操作函數
顯示屏組件 easyeai-api/peripheral_api/display 提供顯示屏操作函數
人臉檢測組件 easyeai-api/algorithm_api/face_detect 提供人臉檢測操作函數

主要來看下人臉檢測組件。

face_detect.h主要內容如下,包括一個det(detect)類的3個人臉檢測API函數:

class det {
public:
    det(){
landmarks.resize(5);
    }
    ~det(){
    }
?
    bool operator<(const det &t) const {
return score < t.score;
}
?
    bool operator>(const det &t) const {
return score > t.score;
}
?
    cv::Rect_ box;
    std::vector landmarks;
    float score;
?
    void print() {
printf("finalbox(x1y1x2y2) %f %f %f %f, score %fn", box.x, box.y, box.br().x, box.br().y, score);
printf("landmarks ");
int point_number = landmarks.size();
for (int i = 0; i < point_number; i++) {
printf("%f %f, ", landmarks[i].x, landmarks[i].y);
}
printf("n");
}
    
};
?
int face_detect_init(rknn_context *ctx, const char *path);
?
int face_detect_run(rknn_context ctx, cv::Mat &input_image, std::vector &result);
?
int face_detect_release(rknn_context ctx);

一些參數:

  • ctx:輸入參數,rknn_context句柄
  • path:輸入參數,算法模型路徑
  • input_image:輸入參數, Opencv Mat格式圖像
  • result:輸出參數, 人臉檢測的結果輸出

3 代碼分析與修改

官方例程使用的是雙目攝像頭中的RGB攝像頭,本篇測試修改為使用外接USB攝像頭來采集圖像,并將采集的圖像橫屏顯示。另外,在識別到人臉后,通過OpenCV函數,在屏幕左上角顯示出識別到的人臉個數。

3.1 圖像采集與顯示線程(主線程)

修改后的主程序邏輯如下:

2.png

主要代碼結構如下:

Mat algorithm_image;
pthread_mutex_t img_lock;
?
int main(int argc, char **argv)
{
//省略...
pthread_t mTid;
Result_t Result;
Mat image;
// 1.打開USB攝像頭
//省略...
// 2.創建識別線程,以及圖像互斥鎖
pthread_mutex_init(&img_lock, NULL);
Result.result.clear();
Result.face_number = 0;
CreateNormalThread(detect_thread_entry, &Result, &mTid);
// 3.顯示初始化
    //省略...
// 4.(取流 + 顯示)循環
while(1){
// 4.1、取流
pthread_mutex_lock(&img_lock);
ret = usbcamera_getframe(USB2_0, USB_DIRECT, pbuf);
if (ret) {
printf("error: %s, %dn", __func__, __LINE__);
pthread_mutex_unlock(&img_lock);
continue;
}
algorithm_image = Mat(CAMERA_HEIGHT, CAMERA_WIDTH, CV_8UC3, pbuf);
image = algorithm_image.clone();
pthread_mutex_unlock(&img_lock);
// 4.2、顯示
        cv::putText(image, std::string("detect faces: ") + std::to_string((int)Result.result.size()), 
                    cv::Point2f(30, 50), cv::FONT_HERSHEY_SIMPLEX,1.45, CV_RGB(255,0,0),3.0);
for (int i = 0; i < (int)Result.result.size(); i++)
{
// 標出人臉框
int x = (int)(Result.result[i].box.x);
int y = (int)(Result.result[i].box.y);
int w = (int)(Result.result[i].box.width);
int h = (int)(Result.result[i].box.height);
rectangle(image, Rect(x, y, w, h), Scalar(0, 255, 0), 2, 8, 0);
// 標出人臉定位標記
for (int j = 0; j < (int)Result.result[i].landmarks.size(); ++j) {
cv::circle(image, cv::Point((int)Result.result[i].landmarks[j].x, (int)Result.result[i].landmarks[j].y), 2, cv::Scalar(0, 255, 0), 3, 8);
}
}
        disp_commit(image.data, IMAGE_SIZE);

        usleep(20*1000);
}
?
//省略...
}

3.2 人臉檢測處理

人臉檢測處理序邏輯如下:

3.png

代碼如下:

// 識別線程
void *detect_thread_entry(void *para)
{
int ret;
Result_t *pResult = (Result_t *)para;

// 人臉檢測初始化
rknn_context ctx;
face_detect_init(&ctx, "face_detect.model");

Mat image;
while(1)
{
        if(algorithm_image.empty()) {
usleep(5);
            continue;
        }

pthread_mutex_lock(&img_lock);
image = algorithm_image.clone();
pthread_mutex_unlock(&img_lock);
// 算法分析
ret = face_detect_run(ctx, image, pResult->result);
pResult->face_number = pResult->result.size();
if(ret <= 0){
pResult->result.clear();
usleep(1000);
continue;
}

printf("n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>n");
printf("face number : %dn", pResult->face_number);

        usleep(16*1000);
}
/* 人臉檢測釋放 */
face_detect_release(ctx);
return NULL;
}

4 測試

測試效果如下,可以同時檢測到多張人臉,在屏幕左上角標注有檢測到的人臉個數:

4.png

5 總結

本篇介紹了EASY EAI Nano的AI人臉檢測功能,修改官方代碼,改用外接USB攝像頭來采集圖像,并在識別到人臉后,通過OpenCV函數,在屏幕左上角顯示出識別到的人臉個數。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    25

    文章

    5500

    瀏覽量

    102178
  • 靈眸
    +關注

    關注

    0

    文章

    19

    瀏覽量

    3280
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    【評測試用】RA4L1-SENSOR 開發板免費試用

    >>>點擊立即申請一.試用產品概述RA4L1-SENSOR套件基于瑞薩RA4L1系列微控制器,完美實現了低工作電壓、低功耗與高性能之間的理想平衡。RA
    的頭像 發表于 05-13 08:06 ?160次閱讀
    【評<b class='flag-5'>測試用</b>】RA<b class='flag-5'>4</b>L1-SENSOR 開發板免費<b class='flag-5'>試用</b>

    ESP32P4小智AI演示

    最近參加論壇的五一活動,獲得一套小智AI套件。當時正好在嘗試移植小智AI到ESP32P4-Fucntion-EV-Board上。最近完成了大部分
    發表于 05-10 12:40

    基于RK3576開發板的聲卡資源介紹

    EASY-EAI-Orin-Nano有2塊聲卡:card0、card1。關于它們的詳細描述,如下圖所示。
    的頭像 發表于 05-06 16:26 ?263次閱讀
    基于RK3576開發板的聲卡資源介紹

    基于RK3576開發板的遠程桌面調試方法

    EASY EAI Orin-Nano可以基于MobaXterm的ssh遠程桌面登錄調試
    的頭像 發表于 05-06 09:58 ?129次閱讀
    基于RK3576開發板的遠程桌面調試方法

    RV1126 yolov8訓練部署教程

    本教程針對目標檢測算法yolov8的訓練和部署到EASY-EAI-Nano(RV1126)進行說明,而數據標注方法可以參考我們往期的文章。
    的頭像 發表于 04-18 15:18 ?420次閱讀
    RV1126 yolov8訓練部署教程

    基于RV1126開發板的resnet50訓練部署教程

    本教程基于圖像分類算法ResNet50的訓練和部署到EASY-EAI-Nano(RV1126)進行說明
    的頭像 發表于 04-18 15:07 ?313次閱讀
    基于RV1126開發板的resnet50訓練部署教程

    AI功能(SC171開發套件V3)

    AI功能(SC171開發套件V3) 序列 課程名稱 視頻課程時長 視頻課程鏈接 課件鏈接 工程源碼 1 圖像語義分割(deeplabv3)案例----基于SC171開發套件V3 7分4
    發表于 04-16 18:48

    基于RV1126開發板的啟動Logo更換方法

    EASY EAI Nano固件內擁有2個logo,分別用于uboot階段顯示,以及kernel(內核)階段顯示。
    的頭像 發表于 04-15 10:36 ?190次閱讀
    基于RV1126開發板的啟動Logo更換方法

    首創開源架構,天璣AI開發套件讓端側AI模型接入得心應手

    錄音人聲質量,將vivo X200s打造成安卓首款K歌旗艦手機,并獲得臻品錄音Pro級認證,給用戶帶來一款錄音室級的K歌神器。 基于天璣AI開發套件開源彈性架構,聯發科還與美圖合作完成美圖自研
    發表于 04-13 19:52

    RK3576 yolov8訓練部署教程

    本章展示yolov8模型的在EASY EAI Orin nano的部署過程。
    的頭像 發表于 04-02 16:04 ?331次閱讀
    RK3576 yolov8訓練部署教程

    【幸狐Omni3576邊緣計算套件試用體驗】人臉識別

    【幸狐Omni3576邊緣計算套件試用體驗】人臉識別 本文介紹了幸狐 Omni3576 邊緣計算套件結合 Retinaface 算法實現人臉
    發表于 04-01 21:46

    《DNESP32S3使用指南-IDF版_V1.6》第五十八章 人臉檢測實驗

    監控和跟蹤。人臉檢測技術通過使用算法自動搜索圖像/視頻幀中的人臉,判斷是否存在人臉,并返回人臉的位置、大小和姿態。本章,我們使用樂鑫
    發表于 03-24 09:34

    NVIDIA發布小巧高性價比的Jetson Orin Nano Super開發者套件

    Nano Super開發者套件體積小巧,僅相當于一個手掌大小,但其功能卻異常強大。該套件旨在為商業AI開發者、科技愛好者以及學生等各類用戶
    的頭像 發表于 12-19 11:28 ?983次閱讀

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

    01_官方模型測試 02_人臉識別 03_口罩檢測 04_工地防護 05_撲克牌識別 06_手掌關鍵點檢測 07_人臉特征點
    發表于 08-28 09:50

    人臉檢測人臉識別的區別是什么

    人臉檢測人臉識別是計算機視覺領域的兩個重要技術,它們在許多應用場景中都有廣泛的應用,如安全監控、身份驗證、社交媒體等。盡管它們在某些方面有相似之處,但它們之間存在一些關鍵的區別。本文將詳細介紹
    的頭像 發表于 07-03 14:49 ?2079次閱讀