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

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

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

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

簡(jiǎn)述OpenVINO? + ResNet實(shí)現(xiàn)圖像分類

英特爾物聯(lián)網(wǎng) ? 來(lái)源:英特爾物聯(lián)網(wǎng) ? 作者:英特爾物聯(lián)網(wǎng) ? 2021-05-18 09:23 ? 次閱讀

推理引擎(IE)應(yīng)用開發(fā)流程

與相關(guān)函數(shù)介紹

通過OpenVINO的推理引擎跟相關(guān)應(yīng)用集成相關(guān)深度學(xué)習(xí)模型的應(yīng)用基本流程如下:

3f4a03ea-b4ff-11eb-bf61-12bb97331649.png

圖-1

從圖-1可以看到只需要七步就可以完成應(yīng)用集成,實(shí)現(xiàn)深度學(xué)習(xí)模型的推理預(yù)測(cè),各步驟中相關(guān)的API函數(shù)支持與作用解釋如下:

Step 1:

InferenceEngine::Core // IE對(duì)象

Step 2:

Core.ReadNetwork(xml/onnx)輸入的IR或者onnx格式文件,返回CNNNetwork對(duì)象

Step 3:

InferenceEngine::InputsDataMap, InferenceEngine::InputInfo, // 模型輸入信息
InferenceEngine::OutputsDataMap // 模型輸出信息

使用上述兩個(gè)相關(guān)輸入與輸出對(duì)象就可以設(shè)置輸入的數(shù)據(jù)類型與精度,獲取輸入與輸出層的名稱。

Step 4:

ExecutableNetwork LoadNetwork (
const CNNNetwork &network,
const std::string &deviceName,
const std::map< std::string, std::string > &config={}
)

通過Core的LoadNetwork方法生成可執(zhí)行的網(wǎng)絡(luò),如果你有多個(gè)設(shè)備,就可以創(chuàng)建多個(gè)可執(zhí)行的網(wǎng)絡(luò)。其參數(shù)解釋如下:

network 參數(shù)表示step2加載得到CNNNetwork對(duì)象實(shí)例

deviceName表示模型計(jì)算所依賴的硬件資源,可以為CPUGPUFPGA、 FPGA、MYRIAD

config默認(rèn)為空

InferRequest InferenceEngine::CreateInferRequest()

表示從可執(zhí)行網(wǎng)絡(luò)創(chuàng)建推理請(qǐng)求。

Step 5:

根據(jù)輸入層的名稱獲取輸入buffer數(shù)據(jù)緩沖區(qū),然后把輸入圖像數(shù)據(jù)填到緩沖區(qū),實(shí)現(xiàn)輸入設(shè)置。其中根據(jù)輸入層名稱獲取輸入緩沖區(qū)的函數(shù)為如下:

Blob::Ptr GetBlob (
const std::string &name // 輸入層名稱
)

注意:返回包含輸入層維度信息,支持多個(gè)輸入層數(shù)據(jù)設(shè)置!

Step 6:

推理預(yù)測(cè),直接調(diào)用推理請(qǐng)求的InferRequest.infer()方法即可,該方法無(wú)參數(shù)。

Step 7:

調(diào)用InferRequest的GetBlob()方法,使用參數(shù)為輸出層名稱,就會(huì)得到網(wǎng)絡(luò)的輸出預(yù)測(cè)結(jié)果,根據(jù)輸出層維度信息進(jìn)行解析即可獲取輸出預(yù)測(cè)信息與顯示。

圖像分類與ResNet網(wǎng)絡(luò)

圖像分類是計(jì)算機(jī)視覺的關(guān)鍵任務(wù)之一,關(guān)于圖像分類最知名的數(shù)據(jù)集是ImageNet,包含了自然場(chǎng)景下大量各種的圖像數(shù)據(jù),支持1000個(gè)類別的圖像分類。OpenVINO在模型庫(kù)的public中有ResNet模型1000個(gè)分類的預(yù)訓(xùn)練模型支持,它們主要是:

- resnest-18-pytorch

- resnest-34-pytorch

- resnest-50-pytorch

- resnet-50-tf

其中18、34、50表示權(quán)重層,pytorch表示模型來(lái)自pytorch框架訓(xùn)練生成、tf表示tensorflow訓(xùn)練生成。ResNet系列網(wǎng)絡(luò)的詳細(xì)說明如下:

406b3d52-b4ff-11eb-bf61-12bb97331649.png

圖-2(來(lái)自《Deep Residual Learning for Image Recognition》論文)

我們以ResNet18-pytorch的模型為例,基于Pytorch框架我們可以很輕松的把它轉(zhuǎn)換為ONNX格式文件。然后使用Netron工具打開,可以看到網(wǎng)絡(luò)的輸入圖示如下:

40f2157a-b4ff-11eb-bf61-12bb97331649.png

圖-3

查看網(wǎng)絡(luò)的輸出:

40fe8af8-b4ff-11eb-bf61-12bb97331649.png

圖-4

這樣我們很清楚的知道網(wǎng)絡(luò)的輸入與輸出層名稱,輸入數(shù)據(jù)格式與輸出數(shù)據(jù)格式,其中輸入數(shù)據(jù)格式NCHW中的N表示圖像數(shù)目,這里是1、C表示圖像通道數(shù),這里輸入的是彩色圖像,通道數(shù)為3、H與W分別表示圖像的高與寬,均為224。在輸出格式中1x1000中1表示圖像數(shù)目、1000表示預(yù)測(cè)的1000個(gè)分類的置信度數(shù)據(jù)。

程序?qū)崿F(xiàn)的基本流程與步驟

前面已經(jīng)介紹了IE SDK相關(guān)函數(shù),圖像分類模型ResNet18的輸入與輸出格式信息。現(xiàn)在我們就可以借助IE SDK來(lái)完成一個(gè)完整的圖像分類模型的應(yīng)用部署了,根據(jù)前面提到的步驟各步的代碼實(shí)現(xiàn)與解釋如下:

1. 初始化IE

InferenceEngine::Core ie;

2. 加載ResNet18網(wǎng)絡(luò)

InferenceEngine::CNNNetwork network = ie.ReadNetwork(onnx);
InferenceEngine::InputsDataMap inputs = network.getInputsInfo();
InferenceEngine::OutputsDataMap outputs = network.getOutputsInfo();

3. 獲取輸入與輸出名稱、設(shè)置輸入與輸出數(shù)據(jù)格式

std::string input_name = "";
for (auto item : inputs) {
input_name = item.first;
auto input_data = item.second;
input_data->setPrecision(Precision::FP32);
input_data->setLayout(Layout::NCHW);
input_data->getPreProcess().setColorFormat(ColorFormat::RGB);
std::cout << "input name: " << input_name << std::endl;
}

std::string output_name = "";
for (auto item : outputs) {
output_name = item.first;
auto output_data = item.second;
output_data->setPrecision(Precision::FP32);
std::cout << "output name: " << output_name << std::endl;
}

4. 獲取推理請(qǐng)求對(duì)象實(shí)例

auto executable_network = ie.LoadNetwork(network, "CPU");
auto infer_request = executable_network.CreateInferRequest();

5. 輸入圖像數(shù)據(jù)設(shè)置

auto input = infer_request.GetBlob(input_name);
size_t num_channels = input->getTensorDesc().getDims()[1];
size_t h = input->getTensorDesc().getDims()[2];
size_t w = input->getTensorDesc().getDims()[3];
size_t image_size = h*w;
cv::Mat blob_image;
cv::resize(src, blob_image, cv::Size(w, h));
cv::cvtColor(blob_image, blob_image, cv::COLOR_BGR2RGB);
blob_image.convertTo(blob_image, CV_32F);
blob_image = blob_image / 255.0;
cv::subtract(blob_image, cv::Scalar(0.485, 0.456, 0.406), blob_image);
cv::divide(blob_image, cv::Scalar(0.229, 0.224, 0.225), blob_image);

// HWC =》NCHW
float* data = static_cast(input->buffer());for (size_t row = 0; row < h; row++) { ? ?for (size_t col = 0; col < w; col++) { ? ? ? ?for (size_t ch = 0; ch < num_channels; ch++) { ? ? ? ? ? ?data[image_sizech + row*w + col] = blob_image.at<:vec3f>(row, col)[ch];
}
}
}

在輸入數(shù)據(jù)部分OpenCV導(dǎo)入的圖像三通道順序是BGR,所以要轉(zhuǎn)換為RGB,resize到224x224大小、像素值歸一化為0~1之間、然后要減去均值(0.485, 0.456, 0.406),除以方差(0.229, 0.224, 0.225)完成預(yù)處理之后再填充到Blob緩沖區(qū)中區(qū)。

6. 推理

infer_request.Infer();

7. 解析輸出與顯示結(jié)果

auto output = infer_request.GetBlob(output_name);
const float* probs = static_cast ::value_type*>(output->buffer());
const SizeVector outputDims = output->getTensorDesc().getDims();
std::cout << outputDims[0] << "x" << outputDims[1] << std::endl;
float max = probs[0];
int max_index = 0;
for (int i = 1; i < outputDims[1]; i++) {
if (max < probs[i]) {
max = probs[i];
max_index = i;
}
}<:fp32>

cv::putText(src, labels[max_index], cv::Point(50, 50), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(0, 0, 255), 2, 8);
cv::imshow("輸入圖像", src);
cv::waitKey(0);

解析部分代碼首先通過輸出層名稱獲取輸出數(shù)據(jù)對(duì)象BLOB,然后根據(jù)輸出格式1x1000,尋找最大值對(duì)應(yīng)的index,根據(jù)索引index得到對(duì)應(yīng)的分類標(biāo)簽,然后通過OpenCV圖像輸出分類結(jié)果。

運(yùn)行結(jié)果

圖-5(來(lái)自ImageNet測(cè)試集)

這樣我們就使用OpenVINO 的推理引擎相關(guān)的SDK函數(shù)支持成功部署ResNet18模型,并預(yù)測(cè)了一張輸入圖像。你可以能還想知道除了圖像分類模型,OpenVINO 推理引擎在對(duì)象檢測(cè)方面都有哪些應(yīng)用,我們下次繼續(xù)…….

編輯:jq

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

    關(guān)注

    3

    文章

    4338

    瀏覽量

    62761
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4803

    瀏覽量

    68752
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41388
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1039

    瀏覽量

    46030

原文標(biāo)題:OpenVINO? + ResNet實(shí)現(xiàn)圖像分類

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于FPGA實(shí)現(xiàn)圖像直方圖設(shè)計(jì)

    直方圖統(tǒng)計(jì)的原理 直方圖統(tǒng)計(jì)從數(shù)學(xué)上來(lái)說,是對(duì)圖像中的像素點(diǎn)進(jìn)行統(tǒng)計(jì)。圖像直方圖統(tǒng)計(jì)常用于統(tǒng)計(jì)灰度圖像,表示圖像中各個(gè)灰度級(jí)出現(xiàn)的次數(shù)或者概率。統(tǒng)計(jì)直方圖的
    的頭像 發(fā)表于 12-24 10:24 ?143次閱讀
    基于FPGA<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像</b>直方圖設(shè)計(jì)

    高通AI Hub:輕松實(shí)現(xiàn)Android圖像分類

    高通AI Hub為開發(fā)者提供了一個(gè)強(qiáng)大的平臺(tái),以優(yōu)化、驗(yàn)證和部署在Android設(shè)備上的機(jī)器學(xué)習(xí)模型。這篇文章將介紹如何使用高通AI Hub進(jìn)行圖像分類的程式碼開發(fā),并提供一個(gè)實(shí)際的例子來(lái)展示其在Android平臺(tái)上的應(yīng)用。
    的頭像 發(fā)表于 11-26 01:03 ?268次閱讀
    高通AI Hub:輕松<b class='flag-5'>實(shí)現(xiàn)</b>Android<b class='flag-5'>圖像</b><b class='flag-5'>分類</b>

    使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類的步驟

    使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行圖像分類是一個(gè)涉及多個(gè)步驟的過程。 1. 問題定義 確定目標(biāo) :明確你想要分類圖像類型,例如貓和狗、不同的植物種類等。 數(shù)據(jù)需求 :確定需要多少數(shù)據(jù)以及
    的頭像 發(fā)表于 11-15 15:01 ?324次閱讀

    基于改進(jìn)ResNet50網(wǎng)絡(luò)的自動(dòng)駕駛場(chǎng)景天氣識(shí)別算法

    ResNet50網(wǎng)絡(luò)4組模塊內(nèi)加入SE模塊,以便更好地?cái)M合通道間復(fù)雜的魯棒性。基于自動(dòng)駕駛汽車路測(cè)圖像數(shù)據(jù)對(duì)所提算法進(jìn)行Python編程實(shí)現(xiàn),結(jié)果表明:SE模塊的加入能夠增加算法的魯棒性和準(zhǔn)確性,提高了自動(dòng)駕駛的天氣識(shí)別精度。
    的頭像 發(fā)表于 11-09 11:14 ?950次閱讀
    基于改進(jìn)<b class='flag-5'>ResNet</b>50網(wǎng)絡(luò)的自動(dòng)駕駛場(chǎng)景天氣識(shí)別算法

    手把手教你使用LabVIEW TensorRT實(shí)現(xiàn)圖像分類實(shí)戰(zhàn)(含源碼)

    Hello,大家好,我是virobotics(儀酷智能),一個(gè)深耕于LabVIEW和人工智能領(lǐng)域的開發(fā)工程師。 各位朋友,今天我們一起來(lái)探究一下如何基于LabVIEW使用TensorRT實(shí)現(xiàn)圖像分類
    的頭像 發(fā)表于 11-06 16:07 ?280次閱讀
    手把手教你使用LabVIEW TensorRT<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>圖像</b><b class='flag-5'>分類</b>實(shí)戰(zhàn)(含源碼)

    使用OpenVINO Model Server在哪吒開發(fā)板上部署模型

    OpenVINO Model Server(OVMS)是一個(gè)高性能的模型部署系統(tǒng),使用C++實(shí)現(xiàn),并在Intel架構(gòu)上的部署進(jìn)行了優(yōu)化,使用OpenVINO 進(jìn)行推理,推理服務(wù)通過gPRC或REST
    的頭像 發(fā)表于 11-01 14:19 ?317次閱讀
    使用<b class='flag-5'>OpenVINO</b> Model Server在哪吒開發(fā)板上部署模型

    使用OpenVINO C# API部署YOLO-World實(shí)現(xiàn)實(shí)時(shí)開放詞匯對(duì)象檢測(cè)

    的快速準(zhǔn)確識(shí)別,并通過AR技術(shù)將虛擬元素與真實(shí)場(chǎng)景相結(jié)合,為用戶帶來(lái)沉浸式的交互體驗(yàn)。在本文中,我們將結(jié)合OpenVINO C# API使用最新發(fā)布的OpenVINO 2024.0部署 YOLO-World實(shí)現(xiàn)實(shí)時(shí)開放詞匯對(duì)象檢
    的頭像 發(fā)表于 08-30 16:27 ?742次閱讀
    使用<b class='flag-5'>OpenVINO</b> C# API部署YOLO-World<b class='flag-5'>實(shí)現(xiàn)</b>實(shí)時(shí)開放詞匯對(duì)象檢測(cè)

    簡(jiǎn)述計(jì)算機(jī)總線的分類

    計(jì)算機(jī)總線作為計(jì)算機(jī)系統(tǒng)中連接各個(gè)功能部件的公共通信干線,其結(jié)構(gòu)和分類對(duì)于理解計(jì)算機(jī)硬件系統(tǒng)的工作原理至關(guān)重要。以下是對(duì)計(jì)算機(jī)總線結(jié)構(gòu)和分類的詳細(xì)闡述,內(nèi)容將涵蓋總線的基本概念、內(nèi)部結(jié)構(gòu)、分類方式以及各類總線的具體作用。
    的頭像 發(fā)表于 08-26 16:23 ?2139次閱讀

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都覺得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的優(yōu)化與整理,已經(jīng)是非常貼近開發(fā)的使用習(xí)慣與推理方式。與OpenCV的Mat對(duì)象對(duì)接方式更是幾乎無(wú)縫對(duì)接,非常的方便好用。
    的頭像 發(fā)表于 07-26 09:20 ?994次閱讀

    計(jì)算機(jī)視覺怎么給圖像分類

    圖像分類是計(jì)算機(jī)視覺領(lǐng)域中的一項(xiàng)核心任務(wù),其目標(biāo)是將輸入的圖像自動(dòng)分配到預(yù)定義的類別集合中。這一過程涉及圖像的特征提取、特征表示以及分類器的
    的頭像 發(fā)表于 07-08 17:06 ?774次閱讀

    一種利用光電容積描記(PPG)信號(hào)和深度學(xué)習(xí)模型對(duì)高血壓分類的新方法

    模型提供了更好的結(jié)果[9]。我們的模型實(shí)現(xiàn)了最佳性能,表明在這種情況下使用平均池比最大池具有優(yōu)勢(shì)。這凸顯了為信號(hào)圖像分類任務(wù)選擇適當(dāng)?shù)某鼗夹g(shù)的重要性。
    發(fā)表于 05-11 20:01

    OpenAI發(fā)布圖像檢測(cè)分類器,可區(qū)分AI生成圖像與實(shí)拍照片

    據(jù)OpenAI介紹,初步測(cè)試結(jié)果表明,該分類器在辨別非AI生成圖像與DALL·E 3生成圖像時(shí),成功率高達(dá)近98%,僅有不到0.5%的非AI圖像誤判為DALL·E 3生成。此外,該工具
    的頭像 發(fā)表于 05-09 09:57 ?478次閱讀

    OpenVINO添加對(duì)Paddle 2.5的支持

    我是飛槳黑客馬拉松第五期 OpenVINO 賽題獲獎(jiǎng)?wù)摺獮?OpenVINO 添加了對(duì) Paddle 2.5 的支持。在此記錄下來(lái)貢獻(xiàn)的過程,希望有更多的同學(xué)可以參與到 OpenVINO 的社區(qū)
    的頭像 發(fā)表于 01-19 09:20 ?650次閱讀

    基于OpenVINO?和AIxBoard的智能安檢盒子設(shè)計(jì)

    公共安全問題日益凸顯,傳統(tǒng)安檢手段面臨挑戰(zhàn)。為提高安檢效率和保障公共安全,基于 OpenVINO? 和 AIxBoard 的智能安檢盒子應(yīng)運(yùn)而生。
    的頭像 發(fā)表于 01-18 17:31 ?848次閱讀
    基于<b class='flag-5'>OpenVINO</b>?和AIxBoard的智能安檢盒子設(shè)計(jì)

    如何在MacOS上編譯OpenVINO C++項(xiàng)目呢?

    英特爾公司發(fā)行的模型部署工具 OpenVINO 模型部署套件,可以實(shí)現(xiàn)在不同系統(tǒng)環(huán)境下運(yùn)行,且發(fā)布的 OpenVINO 2023 最新版目前已經(jīng)支持 MacOS 系統(tǒng)并同時(shí)支持在蘋果 M 系列芯片上部署模型。
    的頭像 發(fā)表于 01-11 18:07 ?926次閱讀
    如何在MacOS上編譯<b class='flag-5'>OpenVINO</b> C++項(xiàng)目呢?
    主站蜘蛛池模板: 色大姐综合网| 99久久伊人一区二区yy5o99 | 国产精品免费一区二区三区四区| 国产一区二区高清| 免费。色婬网站| 涩涩游戏盒| 伊人久久综合谁合综合久久| A级韩国乱理伦片在线观看| 国产成人亚洲精品无广告| 久久99AV无色码人妻蜜| 欧美人xxxxx| 亚洲精品无码久久久久A片空| 2020无码最新国产在线观看| 国产99久久久国产精品免费看| 久草在线在线精品观看| 日本午夜看x费免| 伊人久久亚洲精品一区| 攻把受做哭边走边肉楼梯PLAY| 精品视频中文字幕| 日本人吃奶玩奶虐乳| 亚洲色偷偷偷网站色偷一区人人藻| 99久久精品国产亚洲AV| 国产在线精品一区二区在线看| 欧美zzo交| 夜色视频社区| 国产成人刺激视频在线观看| 蜜芽视频在线观看视频免费播放| 性xxx欧美| 被老师按在办公桌吸奶头| 久久re这里视频精品8| 十分钟免费视频大全在线| 69日本xxⅹxxxxx18| 国产在线中文字幕| 日日天干夜夜狠狠爱| 中文字幕乱码一区久久麻豆樱花 | 97国内精品久久久久久久影视| 国产免费毛片在线观看| 秋霞在线观看视频一区二区三区| 影音先锋 av天堂| 国产午夜一区二区三区免费视频| 亲胸揉胸膜下刺激视频在线观看|