精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

深度學習中動作識別網絡學習

英特爾物聯網 ? 來源:英特爾物聯網 ? 作者:英特爾物聯網 ? 2021-06-25 10:32 ? 次閱讀

動作識別網絡

深度學習在人體動作識別領域有兩類主要的網絡,一類是基于姿態評估,基于關鍵點實現的動作識別網絡;另外一類是直接預測的動作識別網絡。關于姿態評估相關的網絡模型應用,我們在前面的文章中已經介紹過了。OpenVINO2021.2版本中支持的動作識別網絡都不是基于關鍵點輸出的,而是基于Box直接預測,當前支持動作識別的預訓練模型與識別的動作數目支持列表如下:

12dd20c8-d50f-11eb-9e57-12bb97331649.png

表-1

這些網絡的輸出都是基于SSD檢測頭實現對象檢測與動作預測。

輸入與輸出格式

以person-detection-action-recognition-0005模型為例說明它們的輸入與輸出數據格式支持,我也不知道什么原因(個人猜測因為Caffe框架的原因),網絡的輸出居然都是SSD原始檢測頭,怎么解析,我有妙招,稍后送上!先看一下輸入與輸出格式說明:

輸入格式:

格式 NCHW=[1x3x400x680] ,Netron實際查看:

注意:OpenVINO2021.2安裝之后的文檔上格式說明是NHWC

輸出格式:

輸出有七個分支頭的數據,它們的名稱跟維度格式列表如下:

12f04c16-d50f-11eb-9e57-12bb97331649.png

表-2

關于輸出格式的解釋,首先是num_priors值是多少,骨干網絡到SSD輸出頭,是實現了16倍的降采樣,最終輸出的h x w=25x43然后每個特征點預測4個PriorBox, 每個特征點預測動作,總計有三類的動作,所以動作預測輸出為: [b, 3, h, w] = [1x3x25x43],總計PriorBoxes數目為:num_priors=25x43x4=4300,這些都是SSD檢測頭的原始輸出,沒有非最大抑制,沒有經過轉換處理,所以想直接解析它們對開發應用的人來說是一個大麻煩!

輸出數據解析與處理問題

person-detection-action-recognition-0005網絡推理之后的輸出數據解析跟后處理特別的復雜,怎么解析原始輸出頭是個技術活,我從示例代碼中提取跟整理出來兩個C++文件,它們是:

action_detector.h

cnn.h

以及它們的實現文件:

action_detector.cpp

cnn.cpp

這個其中最重要的就是有個ActionDetection類,它有幾個方法,分別是:

void enqueue(const cv::Mat &frame)

void submitRequest()

void wait()

DetectedActions fetchResults()

這幾個方法的解釋分別如下:

enqueue方法的就是實現了推理請求創建與圖像數據的輸入設置,它的代碼實現如下:

if (!request) {

request = net_.CreateInferRequestPtr();

}

width_ = static_cast《float》(frame.cols);

height_ = static_cast《float》(frame.rows);

Blob::Ptr inputBlob = request-》GetBlob(input_name_);

matU8ToBlob《uint8_t》(frame, inputBlob);

enqueued_frames_ = 1;

submitRequest方法,就是執行推理,支持同步與異步推理執行模型,它的代碼實現如下:

if (request == nullptr) return;

if (isAsync) {

request-》StartAsync();

}

else {

request-》Infer();

}

wait方法,當同步推理時候無需調用,異步推理調用

fetchResults方法,該方法是推理過程中最復雜的部分,負責解析輸出的七個分支數據,生成Box與action標簽預測。簡單的說它的執行過程是這樣,首先獲取輸出的七個輸出數據,然后轉換為基于Mat的數據,然后循環每個特征圖的特征點預測Box與置信得分,大于閾值的置信得分對應的預測Box與PriorBox計算真實的BOX坐標,同時閾值化處理Action的置信得分,最終對結果完整非最大抑制之后輸出,得到數據結構為:

struct DetectedAction {

/** @brief BBox of detection */

cv::Rect rect;

/** @brief Action label */

int label;

/** @brief Confidence of detection */

float detection_conf;

/** @brief Confidence of predicted action */

float action_conf;

這樣就完成了對輸出的數據解析。

這個就是上述四個相關依賴文件,我已經把其他不相關的或者非必要的依賴全部去掉,基于這四個相關文件,就可以實現對表-1中動作識別模型的推理與解析輸出顯示。

動作識別代碼演示

動作識別代碼演示基于person-detection-action-recognition-0005網絡模型完成,該模型是基于室內場景數據訓練生成的,適合于教育智慧教室應用場景。首先需要初始化動作檢測類與初始化推理引擎加載,然后配置動作檢測類的相關參數,這些參數主要包括以下:

- 模型的權重文件路徑

- 推理引擎的計算設備支持

- 對象檢測閾值

- 動作預測閾值

- 支持動作類別數目

- 是否支持異步推理

等等。

配置完成之后設置與初始化ActionDetection類,然后就可以直接調用上述提到幾個類方法完成整個推理與輸出,根據輸出結果繪制與顯示即可,這部分的代碼如下:

cv::Mat frame = cv::imread(“D:/action_001.png”);

InferenceEngine::Core ie;

std::unique_ptr《AsyncDetection《DetectedAction》》 action_detector;

// Load action detector

ActionDetectorConfig action_config(model_xml);

action_config.deviceName = “CPU”;

action_config.ie = ie;

action_config.is_async = false;

action_config.detection_confidence_threshold = 0.1f;

action_config.action_confidence_threshold = 0.1f;

action_config.num_action_classes = 3;

action_detector.reset(new ActionDetection(action_config));

action_detector-》enqueue(frame);

action_detector-》submitRequest();

DetectedActions actions = action_detector-》fetchResults();

std::cout 《《 actions.size() 《《 std::endl;

for (int i = 0; i 《 actions.size(); i++) {

std::cout 《《 actions[i].rect 《《 std::endl;

std::cout 《《 actions[i].label 《《 std::endl;

cv::rectangle(frame, actions[i].rect, cv::Scalar(0, 0, 255), 2, 8, 0);

putText(frame, action_text_labels[actions[i].label], actions[i].rect.tl(), cv::FONT_HERSHEY_SIMPLEX, 0.75, cv::Scalar(0, 0, 255), 2, 8);

}

cv::imshow(“動作識別演示”, frame);

cv::waitKey(0);

return 0;

責任編輯:haq

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

    關注

    73

    文章

    5493

    瀏覽量

    120979

原文標題:OpenVINO? 室內動作識別

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深度學習的卷積神經網絡模型

    深度學習近年來在多個領域取得了顯著的進展,尤其是在圖像識別、語音識別和自然語言處理等方面。卷積神經網絡作為
    的頭像 發表于 11-15 14:52 ?269次閱讀

    NPU在深度學習的應用

    隨著人工智能技術的飛速發展,深度學習作為其核心驅動力之一,已經在眾多領域展現出了巨大的潛力和價值。NPU(Neural Processing Unit,神經網絡處理單元)是專門為深度
    的頭像 發表于 11-14 15:17 ?298次閱讀

    GPU深度學習應用案例

    GPU在深度學習的應用廣泛且重要,以下是一些GPU深度學習應用案例: 一、圖像識別 圖像
    的頭像 發表于 10-27 11:13 ?328次閱讀

    AI大模型與深度學習的關系

    AI大模型與深度學習之間存在著密不可分的關系,它們互為促進,相輔相成。以下是對兩者關系的介紹: 一、深度學習是AI大模型的基礎 技術支撐 :深度
    的頭像 發表于 10-23 15:25 ?378次閱讀

    基于Python的深度學習人臉識別方法

    基于Python的深度學習人臉識別方法是一個涉及多個技術領域的復雜話題,包括計算機視覺、深度學習、以及圖像處理等。在這里,我將概述一個基本的
    的頭像 發表于 07-14 11:52 ?1184次閱讀

    深度學習的時間序列分類方法

    時間序列分類(Time Series Classification, TSC)是機器學習深度學習領域的重要任務之一,廣泛應用于人體活動識別、系統監測、金融預測、醫療診斷等多個領域。隨
    的頭像 發表于 07-09 15:54 ?707次閱讀

    深度學習的無監督學習方法綜述

    應用往往難以實現。因此,無監督學習深度學習扮演著越來越重要的角色。本文旨在綜述深度
    的頭像 發表于 07-09 10:50 ?514次閱讀

    深度學習在視覺檢測的應用

    深度學習是機器學習領域中的一個重要分支,其核心在于通過構建具有多層次的神經網絡模型,使計算機能夠從大量數據自動
    的頭像 發表于 07-08 10:27 ?627次閱讀

    深度學習與nlp的區別在哪

    深度學習和自然語言處理(NLP)是計算機科學領域中兩個非常重要的研究方向。它們之間既有聯系,也有區別。本文將介紹深度學習與NLP的區別。 深度
    的頭像 發表于 07-05 09:47 ?815次閱讀

    深度學習的模型權重

    深度學習這一充滿無限可能性的領域中,模型權重(Weights)作為其核心組成部分,扮演著至關重要的角色。它們不僅是模型學習的基石,更是模型智能的源泉。本文將從模型權重的定義、作用、優化、管理以及應用等多個方面,深入探討
    的頭像 發表于 07-04 11:49 ?948次閱讀

    深度學習與卷積神經網絡的應用

    隨著人工智能技術的飛速發展,深度學習和卷積神經網絡(Convolutional Neural Network, CNN)作為其中的重要分支,已經在多個領域取得了顯著的應用成果。從圖像識別
    的頭像 發表于 07-02 18:19 ?810次閱讀

    深度學習在自動駕駛的關鍵技術

    隨著人工智能技術的飛速發展,自動駕駛技術作為其中的重要分支,正逐漸走向成熟。在自動駕駛系統深度學習技術發揮著至關重要的作用。它通過模擬人腦的學習過程,實現對車輛周圍環境的感知、理解
    的頭像 發表于 07-01 11:40 ?676次閱讀

    深度解析深度學習下的語義SLAM

    隨著深度學習技術的興起,計算機視覺的許多傳統領域都取得了突破性進展,例如目標的檢測、識別和分類等領域。近年來,研究人員開始在視覺SLAM算法引入
    發表于 04-23 17:18 ?1241次閱讀
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>學習</b>下的語義SLAM

    詳解深度學習、神經網絡與卷積神經網絡的應用

    在如今的網絡時代,錯綜復雜的大數據和網絡環境,讓傳統信息處理理論、人工智能與人工神經網絡都面臨巨大的挑戰。近些年,深度學習逐漸走進人們的視線
    的頭像 發表于 01-11 10:51 ?1916次閱讀
    詳解<b class='flag-5'>深度</b><b class='flag-5'>學習</b>、神經<b class='flag-5'>網絡</b>與卷積神經<b class='flag-5'>網絡</b>的應用

    GPU在深度學習的應用與優勢

    人工智能的飛速發展,深度學習作為其重要分支,正在推動著諸多領域的創新。在這個過程,GPU扮演著不可或缺的角色。就像超級英雄電影的主角一樣,GPU在
    的頭像 發表于 12-06 08:27 ?1212次閱讀
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>中</b>的應用與優勢