色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    5033

    瀏覽量

    97378
  • 靈眸
    +關注

    關注

    0

    文章

    19

    瀏覽量

    3194
收藏 人收藏

    評論

    相關推薦

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

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

    如何用OpenCV的相機捕捉視頻進行人臉檢測--基于米爾NXP i.MX93開發板

    本篇測評由優秀測評者“eefocus_3914144”提供。 本文將介紹基于米爾電子MYD-LMX93開發板(米爾基于NXP i.MX93開發板)的基于OpenCV的人臉檢測方案測試。 OpenCV
    發表于 11-15 17:58

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

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

    人臉檢測模型有哪些

    人臉檢測是計算機視覺領域的一個重要研究方向,它涉及到從圖像或視頻中檢測出人臉的位置和大小。隨著深度學習技術的發展,人臉檢測模型的性能得到了顯
    的頭像 發表于 07-03 17:05 ?1010次閱讀

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

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

    聆思CSK6視覺語音大模型AI開發板入門資源合集(硬件資料、大模型語音/多模態交互/英語評測SDK合集)

    自定義大模型應用并接入到開發套件上實現語音交互,由淺入深地展示如何開發自己的大模型助手。 離線AI能力示例SDK清單 序號AI 能力 1語音喚醒 + 坐姿檢測 2語音合成 3坐姿
    發表于 06-18 17:33

    谷歌安卓系統引入AI詐騙電話檢測功能

    谷歌解釋稱,新功能依靠本地運行的Gemini Nano模型。當AI系統監測到異常信息(如銀行工作人員查詢密碼等隱私信息)時,便會觸發警報。
    的頭像 發表于 05-15 11:16 ?369次閱讀

    DEKRA被CSA指定為Zigbee統一測試工具開發和優化新功能測試用

    DEKRA德凱被CSA聯盟(Connectivity Standards Alliance,CSA)指定負責為Zigbee統一測試工具(Zigbee Unified Test Harness,ZUTH)開發和優化新功能測試用
    的頭像 發表于 04-09 14:10 ?508次閱讀

    【LicheeRV-Nano開發套件試用體驗】LicheeRV-Nano上的IAI技術應用

    開發板,之前試用過 DUO對其清奇骨骼,小巧的身板,強勁的性能所吸引,在知道其更加強悍的兄弟板出來后,第一時間申請到試用。 此次開發板包含物料比較充分,除了有Nano開發板,還有帶觸摸的全貼合屏幕
    發表于 03-07 17:32

    【LicheeRV-Nano開發套件試用體驗】+智能平板開發

    開發 6.攝像頭開發 7.AI人臉識別、運動偵測、姿態檢測調試開發 預期成果 1.熟練算能軟件工具使用,代碼編寫調試 2.外設功能驅動達成相應效果 3.網絡、音頻調通
    發表于 03-06 23:05

    【LicheeRV-Nano開發套件試用連載體驗】+ 實現三麥克納姆輪小車自主導航

    【LicheeRV-Nano開發套件試用連載體驗】+ 實現三麥克納姆輪小車自主導航 非常感謝被選中成為Sipeed矽速科技、電子發燒友論壇組織的此次試用體驗幸運兒,有機會參與
    發表于 03-03 14:20

    EASY-EAI攜手Hailo推出高性能、高算力的邊緣AI硬件組合

    EASY-EAI與Hailo建立合作關系,共同推出高算力的邊緣AI產品組合。
    的頭像 發表于 02-21 09:56 ?820次閱讀

    對基于 FPGA 的 AI 視覺應用進行基準測試

    ,這里沒有運行 NLP-SmartVision 或 AI。 操作系統 沒有人工智能 獨立式 31-64 PetaLinux GStreamer 140-190 USB攝像頭 操作系統 人臉檢測 物體
    發表于 02-02 10:26

    【新品體驗】LicheeRV-Nano開發套件免費試用

    名單:2024年 2 月 27 日 3. 發貨日期:2024年 2 月 28 日 4. 試用期限:2024年 2 月 28 日 - 2024年 3 月 28 日 點擊立即申請&gt;&gt;
    發表于 01-26 16:34

    EASY EAI Nano】RV1126實時讀取攝像頭并進行yolo檢測顯示

    實現了三個并行模塊,分別是 攝像頭讀取,使用opencv轉換到適合大小 yolo檢測 托管到Qt進行現實 檢測的DEMO從每幀10次改到每幀2次,可以看到還是具備一定實時性。 代碼:倉庫
    發表于 01-14 18:53
    主站蜘蛛池模板: 国产精品成久久久久三级四虎| 97精品伊人久久大香线蕉app| 2022国产91精品久久久久久| 高清bblxx手机在线观看| 精品人伦一区二区三区潘金莲 | 国产乱码卡二卡三卡4W| 久久亚洲欧美国产综合| 熟女理发厅| 99久久精品全部| 饥渴的新婚女教师| 帅哥男男GV在线1080P| 99久久久无码国产精品AAA| 花蝴蝶免费观看影视| 国产精品v片在线观看不卡| 女仆乖H调教跪趴| 岳的奶大又白又胖| 国产精品亚洲精品久久品| 欧美做真爱欧免费看| 最新亚洲一区二区三区四区| 极品色αv影院| 掀开奶罩边躁狠狠躁软学生| 成人人猿泰山| 琪琪的色原网站| 99视频免费播放| 免费A级毛片无码鲁大师| 永久免费在线观看视频| 精品第一国产综合精品蜜芽| 羞羞漫画视频| 国产一区二区不卡老阿姨| 午夜勾魂曲| 国产在线观看成人| 亚洲 欧美 国产 综合不卡| 国产人成精品综合欧美成人| 午夜啪啪免费视频| 国内精品蜜汁乔依琳视频| 性欧美13处14处破| 国产无线乱码一区二三区| 亚洲欧美国产双大乳头| 黄片在线观看| 1973性农场未删减版| 秋霞午夜鲁丝片午夜精品久|