一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

【EASY EAI Nano開(kāi)源套件試用體驗(yàn)】4AI功能測(cè)試之人臉檢測(cè)

開(kāi)發(fā)板試用精選 ? 來(lái)源:開(kāi)發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-11 16:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來(lái)源電子發(fā)燒友社區(qū),作者:碼農(nóng)愛(ài)學(xué)習(xí), 帖子地址:https://bbs.elecfans.com/jishu_2307951_1_1.html


EASY EAI Nano AI人臉檢測(cè)測(cè)試(附上體驗(yàn)視頻,詳細(xì)見(jiàn)原作者帖子)

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

1.jpg

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

1 代碼下載

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

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

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

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

2 人臉檢測(cè)API接口介紹

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

主要來(lái)看下人臉檢測(cè)組件。

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

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);

一些參數(shù):

  • ctx:輸入?yún)?shù),rknn_context句柄
  • path:輸入?yún)?shù),算法模型路徑
  • input_image:輸入?yún)?shù), Opencv Mat格式圖像
  • result:輸出參數(shù), 人臉檢測(cè)的結(jié)果輸出

3 代碼分析與修改

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

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

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

2.png

主要代碼結(jié)構(gòu)如下:

Mat algorithm_image;
pthread_mutex_t img_lock;
?
int main(int argc, char **argv)
{
//省略...
pthread_t mTid;
Result_t Result;
Mat image;
// 1.打開(kāi)USB攝像頭
//省略...
// 2.創(chuàng)建識(shí)別線程,以及圖像互斥鎖
pthread_mutex_init(&img_lock, NULL);
Result.result.clear();
Result.face_number = 0;
CreateNormalThread(detect_thread_entry, &Result, &mTid);
// 3.顯示初始化
    //省略...
// 4.(取流 + 顯示)循環(huán)
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++)
{
// 標(biāo)出人臉框
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);
// 標(biāo)出人臉定位標(biāo)記
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 人臉檢測(cè)處理

人臉檢測(cè)處理序邏輯如下:

3.png

代碼如下:

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

// 人臉檢測(cè)初始化
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);
}
/* 人臉檢測(cè)釋放 */
face_detect_release(ctx);
return NULL;
}

4 測(cè)試

測(cè)試效果如下,可以同時(shí)檢測(cè)到多張人臉,在屏幕左上角標(biāo)注有檢測(cè)到的人臉個(gè)數(shù):

4.png

5 總結(jié)

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


聲明:本文內(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)投訴
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5687

    瀏覽量

    104949
  • 靈眸
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    3313
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】EASY-EAI-Toolkit人臉識(shí)別

    本篇使用算法組件實(shí)現(xiàn)人臉檢測(cè)。 一.準(zhǔn)備工作 1.首先使用到EASY-EAI-Toolkit組件,ubuntu掛載目錄下克隆git clone https://github.com/EASY-
    發(fā)表于 07-20 14:40

    【Sipeed MaixCAM Pro開(kāi)發(fā)板試用體驗(yàn)】+ 02 + 基礎(chǔ)功能測(cè)試

    、基礎(chǔ)功能測(cè)試 1.人臉表情情緒檢測(cè) 通過(guò)開(kāi)發(fā)板自帶的應(yīng)用程序?qū)崪y(cè)發(fā)現(xiàn)識(shí)別準(zhǔn)確率非常的高(但需在離人臉較近的地方進(jìn)行識(shí)別,如果識(shí)別
    發(fā)表于 07-19 22:50

    【Milk-V Duo S 開(kāi)發(fā)板免費(fèi)體驗(yàn)】人臉檢測(cè)測(cè)試(視頻)

    https://bbs.elecfans.com/jishu_2494616_1_1.html我們編譯了人臉檢測(cè)的應(yīng)用,現(xiàn)在攝像頭到了, 我們就進(jìn)行實(shí)際測(cè)試。 視頻見(jiàn)https
    發(fā)表于 07-11 22:33

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】人臉識(shí)別提升

    【前言】【新提醒】【EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】人臉識(shí)別體驗(yàn) - EASY
    發(fā)表于 07-05 15:21

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】EASY-EAI-Toolkit通用組件體驗(yàn)

    、環(huán)境準(zhǔn)備 閱讀EASY EAI Orin Nano開(kāi)發(fā)板說(shuō)明書(shū),板子預(yù)留了UART4、UART8和UART10三個(gè)串口。 UART8靠上面,比較方便接線,就選擇你了。 先配置好UAR
    發(fā)表于 07-04 23:38

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】EASY-EAI-Toolkit初體驗(yàn)

    的軟件開(kāi)發(fā)包,旨在簡(jiǎn)化 AI算法 的開(kāi)發(fā)、轉(zhuǎn)換和部署過(guò)程。? EASY-EAI-Toolkit包含多種算法組件,如 人臉檢測(cè)人臉識(shí)別
    發(fā)表于 06-28 21:21

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】開(kāi)箱和固件燒錄更新體驗(yàn)

    首先感謝靈眸科技和發(fā)燒友組織的開(kāi)發(fā)板大賽! 一、硬件介紹 靈眸科技EASY EAI Orin-Nano基于瑞芯微的RK3576處理器設(shè)計(jì),集成了4個(gè)Cortex-A72和
    發(fā)表于 06-26 23:41

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】人臉識(shí)別體驗(yàn)

    /nfs -o nolock 【注】此處需要插上網(wǎng)線連上網(wǎng),要不提示連接服務(wù)器出錯(cuò)。 3、進(jìn)入人臉識(shí)別目錄,并執(zhí)行./build.sh編譯: root@EASY-EAI-ORIN-NANO:/home
    發(fā)表于 06-26 06:54

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】--開(kāi)發(fā)板開(kāi)箱了解

    感謝靈眸科技與論壇提供的開(kāi)發(fā)板與平臺(tái)。EASY EAI Orin-Nano開(kāi)發(fā)板實(shí)物如下: EASY EAI Orin
    發(fā)表于 06-25 23:32

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】01-開(kāi)箱報(bào)告及開(kāi)發(fā)環(huán)境準(zhǔn)備

    前言 首先要特別感謝發(fā)燒友論壇和廣州靈眸科技給我們提供的本次EASY EAI Orin Nano開(kāi)發(fā)板試用機(jī)會(huì), 在申請(qǐng)通過(guò)后很快就收到順豐郵過(guò)來(lái)的板子,這次發(fā)燒友論壇提供了很多不錯(cuò)的
    發(fā)表于 06-24 19:04

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】安裝nfs服務(wù)器

    /developer/nfsroot * developer@EASY-EAI-Develop:~$ 測(cè)試: 使用typec連上開(kāi)發(fā)板后,執(zhí)行adb shell登錄開(kāi)發(fā)板。 在Desktop中創(chuàng)建nfs 然后
    發(fā)表于 06-22 17:32

    EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】開(kāi)發(fā)環(huán)境準(zhǔn)備

    【前言】 首先感謝電子發(fā)燒友論壇以及靈眸科技給示了我這次非常難得的【EASY EAI Orin Nano開(kāi)發(fā)板試用體驗(yàn)】的機(jī)會(huì),在進(jìn)行評(píng)測(cè)之前首先需要?jiǎng)?chuàng)建開(kāi)發(fā)環(huán)境。 靈眸科技有非常詳細(xì)
    發(fā)表于 06-22 16:42

    基于RK3576處理器,EASY EAI Orin Nano開(kāi)發(fā)板免費(fèi)試用

    EASY EAI Orin Nano是廣州靈眸科技有限公司的旗艦級(jí)硬件產(chǎn)品?;谌鹦疚⒌腞K3576處理器設(shè)計(jì),集成了4個(gè)Cortex-A72和4
    的頭像 發(fā)表于 06-09 15:01 ?498次閱讀
    基于RK3576處理器,<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Orin <b class='flag-5'>Nano</b>開(kāi)發(fā)板免費(fèi)<b class='flag-5'>試用</b>

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】人臉識(shí)別

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】人臉識(shí)別 本文介紹了幸狐 Omni3576 邊緣計(jì)算套件結(jié)合 Retinaface 算法實(shí)現(xiàn)人臉
    發(fā)表于 04-01 21:46

    NVIDIA發(fā)布小巧高性價(jià)比的Jetson Orin Nano Super開(kāi)發(fā)者套件

    Nano Super開(kāi)發(fā)者套件體積小巧,僅相當(dāng)于一個(gè)手掌大小,但其功能卻異常強(qiáng)大。該套件旨在為商業(yè)AI開(kāi)發(fā)者、科技愛(ài)好者以及學(xué)生等各類用戶
    的頭像 發(fā)表于 12-19 11:28 ?1095次閱讀