在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

什么是圖像實(shí)例分割?常見(jiàn)的圖像實(shí)例分割有哪幾種?

英特爾物聯(lián)網(wǎng) ? 來(lái)源:英特爾物聯(lián)網(wǎng) ? 作者:英特爾物聯(lián)網(wǎng) ? 2021-06-17 11:15 ? 次閱讀

實(shí)例分割概念

圖像實(shí)例分割是在對(duì)象檢測(cè)的基礎(chǔ)上進(jìn)一步細(xì)化,分離對(duì)象的前景與背景,實(shí)現(xiàn)像素級(jí)別的對(duì)象分離。所以圖像實(shí)例分割是基于對(duì)象檢測(cè)的基礎(chǔ)上進(jìn)一步提升。圖像實(shí)例分割在目標(biāo)檢測(cè)、人臉檢測(cè)、表情識(shí)別、醫(yī)學(xué)圖像處理與疾病輔助診斷、視頻監(jiān)控與對(duì)象跟蹤、零售場(chǎng)景的貨架空缺識(shí)別等場(chǎng)景下均有應(yīng)用。很多人會(huì)把圖像語(yǔ)義分割跟實(shí)例分割搞混淆,其實(shí)圖像的語(yǔ)義分割(Semantic Segmentation)與圖像的實(shí)例分割(Instance Segmentation)是兩個(gè)不同的概念,看下圖:

pYYBAGDKv6uAYBy_AAB9o95sMt0452.jpg

圖-1(來(lái)自COCO數(shù)據(jù)集論文)

左側(cè)是圖像語(yǔ)義分割的結(jié)果,幾個(gè)不同的類(lèi)別人、羊、狗、背景分別用不同的顏色表示;右側(cè)是圖像實(shí)例分割的結(jié)果,對(duì)每只羊都用不同的顏色表示,而且把每個(gè)對(duì)象從背景中分離出來(lái)。這個(gè)就是語(yǔ)義分割跟實(shí)例分割的區(qū)別,直白點(diǎn)可以說(shuō)就是語(yǔ)義分割是對(duì)每個(gè)類(lèi)別、實(shí)例分割是針對(duì)每個(gè)對(duì)象(多個(gè)對(duì)象可能屬于同一個(gè)類(lèi)別)。

常見(jiàn)的實(shí)例分割網(wǎng)絡(luò)

Mask-RCNN實(shí)例分割網(wǎng)絡(luò)

圖像實(shí)例分割是在對(duì)象檢測(cè)的基礎(chǔ)上再多出個(gè)基于ROI的分割分支,基于這樣思想的實(shí)例分割Mask-RCNN就是其經(jīng)典代表,它的網(wǎng)絡(luò)結(jié)構(gòu)如下:

poYBAGDKv6OAFLpIAAEu3WLlC-Q575.jpg

圖-2(來(lái)自Mask-RCNN的論文)

Mask-RCNN可以簡(jiǎn)單地認(rèn)為是Faster-RCNN的基礎(chǔ)上加上一個(gè)實(shí)例分割分支。

RetinaMask實(shí)例分割網(wǎng)絡(luò)

RetinaMask可以看成RetinaNet對(duì)象檢測(cè)網(wǎng)絡(luò)跟Mask-RCNN實(shí)例分割網(wǎng)絡(luò)的兩個(gè)優(yōu)勢(shì)組合,基于特征金字塔實(shí)現(xiàn)了更好的Mask預(yù)測(cè),網(wǎng)絡(luò)結(jié)構(gòu)圖示如下:

poYBAGDKv5yACaWHAAEuFuxGlNc218.jpg

圖-3(來(lái)自RetinaMask論文)

PANet實(shí)例分割網(wǎng)絡(luò)

PANet主要工作是基于Mask-RCNN網(wǎng)絡(luò)上改進(jìn)所得,作者通過(guò)改進(jìn)Backbone部分提升了特征提取能力,通過(guò)自適應(yīng)的池化操作得到更多融合特征,基于全鏈接融合產(chǎn)生mask,最終取得了比Mask-RCNN更好的實(shí)例分割效果,該模型的結(jié)構(gòu)如下:

pYYBAGDKv5WAFU5XAAFrIFAWag0086.jpg

圖-4(來(lái)自PANet論文)

其中全鏈接特征融合mask分支如下圖:

poYBAGDKv4uAQoRpAACclvcVP18135.jpg

圖-5(來(lái)自PANet論文)

YOLACT實(shí)例分割網(wǎng)絡(luò)

該實(shí)例分割網(wǎng)絡(luò)也是基于RetinaNet對(duì)象檢測(cè)網(wǎng)絡(luò)的基礎(chǔ)上,添加一個(gè)Mask分支,不過(guò)在添加Mask分支的時(shí)候它的Mask分支設(shè)計(jì)跟RetinaMask有所不同,該網(wǎng)絡(luò)的結(jié)構(gòu)圖示如下:

pYYBAGDKv4WAEUWxAAF74KAjj7A255.jpg

圖-6(來(lái)自YOLACT作者論文)

CenterMask實(shí)例分割網(wǎng)絡(luò)

該實(shí)例網(wǎng)絡(luò)是基于FCOS對(duì)象檢測(cè)框架的基礎(chǔ)上,設(shè)計(jì)一個(gè)Mask分支輸出,該Mask分支被稱為空間注意力引導(dǎo)蒙板(Spatial Attention Guided Mask),該網(wǎng)絡(luò)的結(jié)構(gòu)如下:

poYBAGDKv36AKwIOAAEWGfj2k_Q871.jpg

圖-7(來(lái)自CenterMask論文)

OpenVINO 支持Mask-RCNN模型

OpenVINO 中支持兩種實(shí)例分割模型分別是Mask-RCNN與YOLACT模型,其中Mask-RCNN模型支持來(lái)自英特爾官方庫(kù)文件、而YOLACT則來(lái)自公開(kāi)的第三方提供。我們這里以官方的Mask-RCNN模型instance-segmentation-security-0050為例說(shuō)明,該模型基于COCO數(shù)據(jù)集訓(xùn)練,支持80個(gè)類(lèi)別的實(shí)例分割,加上背景為81個(gè)類(lèi)別。

OpenVINO 支持部署Faster-RCNN與Mask-RCNN網(wǎng)絡(luò)時(shí)候輸入的解析都是基于兩個(gè)輸入層,它們分別是:

im_data : NCHW=[1x3x480x480]

im_info: 1x3 三個(gè)值分別是H、W、Scale=1.0

輸出有四個(gè),名稱與輸出格式及解釋如下:

name: classes, shape: [100, ] 預(yù)測(cè)的100個(gè)類(lèi)別可能性,值在[0~1]之間

name: scores: shape: [100, ] 預(yù)測(cè)的100個(gè)Box可能性,值在[0~1]之間

name: boxes, shape: [100, 4] 預(yù)測(cè)的100個(gè)Box坐標(biāo),左上角與右下角,基于輸入的480x480

name: raw_masks, shape: [100, 81, 28, 28] Box ROI區(qū)域的實(shí)例分割輸出,81表示類(lèi)別(包含背景),28x28表示ROI大小,注意:此模型輸出大小為14x14

模型實(shí)例分割代碼演示

因?yàn)槟P偷募虞d與推理部分的代碼跟前面系列文章的非常相似,這里就不再給出。代碼演示部分重點(diǎn)在輸出的解析,為了簡(jiǎn)化,我用了兩個(gè)for循環(huán)設(shè)置了輸入與輸出數(shù)據(jù)精度,然后直接通過(guò)hardcode的輸出層名稱來(lái)獲取推理之后各個(gè)輸出層對(duì)應(yīng)的數(shù)據(jù)部分,首先獲取類(lèi)別,根據(jù)類(lèi)別ID與Box的索引,直接獲取實(shí)例分割mask,然后隨機(jī)生成顏色,基于mask實(shí)現(xiàn)與原圖BOX ROI的疊加,產(chǎn)生了實(shí)例分割之后的效果輸出。解析部分的代碼首先需要獲取推理以后的數(shù)據(jù),獲取數(shù)據(jù)的代碼如下:

float w_rate = static_cast(im_w) / 480.0;

float h_rate = static_cast(im_h) / 480.0;

auto scores = infer_request.GetBlob("scores");

auto boxes = infer_request.GetBlob("boxes");

auto clazzes = infer_request.GetBlob("classes");

auto raw_masks = infer_request.GetBlob("raw_masks");

const float* score_data = static_cast::value_type*>(scores->buffer());

const float* boxes_data = static_cast::value_type*>(boxes->buffer());

const float* clazzes_data = static_cast::value_type*>(clazzes->buffer());

const auto raw_masks_data = static_cast::value_type*>(raw_masks->buffer());

const SizeVector scores_outputDims = scores->getTensorDesc().getDims();

const SizeVector boxes_outputDims = boxes->getTensorDesc().getDims();

const SizeVector mask_outputDims = raw_masks->getTensorDesc().getDims();

const int max_count = scores_outputDims[0];

const int object_size = boxes_outputDims[1];

printf("mask NCHW=[%d, %d, %d, %d] ", mask_outputDims[0], mask_outputDims[1], mask_outputDims[2], mask_outputDims[3]);

int mask_h = mask_outputDims[2];

int mask_w = mask_outputDims[3];

size_t box_stride = mask_h * mask_w * mask_outputDims[1];

然后根據(jù)輸出數(shù)據(jù)格式開(kāi)始解析Box框與Mask,這部分的代碼如下:

for (int n = 0; n < max_count; n++) {

float confidence = score_data[n];

float xmin = boxes_data[n*object_size] * w_rate;

float ymin = boxes_data[n*object_size + 1] * h_rate;

float xmax = boxes_data[n*object_size + 2] * w_rate;

float ymax = boxes_data[n*object_size + 3] * h_rate;

if (confidence > 0.5) {

cv::Scalar color(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));

cv::Rect box;

float x1 = std::max(0.0f, xmin), static_cast(im_w));

float y1 = std::max(0.0f, ymin), static_cast(im_h));

float x2 = std::max(0.0f, xmax), static_cast(im_w));

float y2 = std::max(0.0f, ymax), static_cast(im_h));

box.x = static_cast(x1);

box.y = static_cast(y1);

box.width = static_cast(x2 - x1);

box.height = static_cast(y2 - y1);

int label = static_cast(clazzes_data[n]);

std::cout << "confidence: " << confidence << " class name: " << coco_labels[label] << std::endl;

// 解析mask

float* mask_arr = raw_masks_data + box_stride * n + mask_h * mask_w * label;

cv::Mat mask_mat(mask_h, mask_w, CV_32FC1, mask_arr);

cv::Mat roi_img = src(box);

cv::Mat resized_mask_mat(box.height, box.width, CV_32FC1);

cv::resize(mask_mat, resized_mask_mat, cv::Size(box.width, box.height));

cv::Mat uchar_resized_mask(box.height, box.width, CV_8UC3, color);

roi_img.copyTo(uchar_resized_mask, resized_mask_mat <= 0.5);

cv::addWeighted(uchar_resized_mask, 0.7, roi_img, 0.3, 0.0f, roi_img);

cv::putText(src, coco_labels[label].c_str(), box.tl() + (box.br() - box.tl()) / 2, cv::FONT_HERSHEY_PLAIN, 1.0, cv::Scalar(0, 0, 255), 1, 8);

}

}

其中Mask部分的時(shí)候有個(gè)技巧的地方,首先獲取類(lèi)別,然后根據(jù)類(lèi)別,直接獲取Mask中對(duì)應(yīng)的通道數(shù)據(jù)生成二值Mask圖像,添加上顏色,加權(quán)混合到ROI區(qū)域即可得到輸出結(jié)果。

責(zé)任編輯:lq6

聲明:本文內(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)投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1094

    瀏覽量

    41061

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

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

收藏 人收藏

    評(píng)論

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

    分布式存儲(chǔ)哪幾種類(lèi)型?

    分布式存儲(chǔ)哪幾種類(lèi)型?分布式存儲(chǔ)系統(tǒng)是一種將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立節(jié)點(diǎn)上的技術(shù),根據(jù)數(shù)據(jù)模型可分為鍵值存儲(chǔ)、列式存儲(chǔ)、文檔存儲(chǔ)和圖形存儲(chǔ)等類(lèi)型;按數(shù)據(jù)存儲(chǔ)單位可分為基于文件、塊和對(duì)象的存儲(chǔ);按
    的頭像 發(fā)表于 02-20 11:00 ?491次閱讀

    常見(jiàn)的有源變壓器哪幾種

    麻煩問(wèn)一下大家,我們常見(jiàn)的有源變壓器哪幾種?最關(guān)鍵的問(wèn)題是,有源變壓器和無(wú)源變壓器建模方法相同嗎?有源變壓器如何進(jìn)行建模?真心求教,在線等,謝謝了。
    發(fā)表于 01-22 07:47

    卡爾曼濾波在圖像處理中的應(yīng)用實(shí)例 如何調(diào)優(yōu)卡爾曼濾波參數(shù)

    卡爾曼濾波在圖像處理中的應(yīng)用實(shí)例 卡爾曼濾波在圖像處理中主要應(yīng)用于目標(biāo)跟蹤、噪聲消除和圖像恢復(fù)等方面。以下是一些具體的應(yīng)用實(shí)例: 目標(biāo)跟蹤
    的頭像 發(fā)表于 12-16 09:11 ?1656次閱讀

    語(yǔ)義分割25種損失函數(shù)綜述和展望

    本綜述提供了對(duì)25種用于圖像分割的損失函數(shù)的全面且統(tǒng)一的回顧。我們提供了一種新穎的分類(lèi)法,并詳細(xì)審查了這些損失函數(shù)如何在圖像分割中被定制和利用,強(qiáng)調(diào)了它們的重要特征和應(yīng)用,并進(jìn)行了系統(tǒng)
    的頭像 發(fā)表于 10-22 08:04 ?1519次閱讀
    語(yǔ)義<b class='flag-5'>分割</b>25種損失函數(shù)綜述和展望

    畫(huà)面分割器怎么調(diào)試

    畫(huà)面分割器,通常指的是視頻畫(huà)面分割器,它是一種可以將一個(gè)視頻信號(hào)分割成多個(gè)小畫(huà)面的設(shè)備。這種設(shè)備廣泛應(yīng)用于監(jiān)控系統(tǒng)、視頻會(huì)議、多畫(huà)面顯示等場(chǎng)景。調(diào)試畫(huà)面分割器是一個(gè)技術(shù)性很強(qiáng)的工作,需
    的頭像 發(fā)表于 10-17 09:32 ?969次閱讀

    畫(huà)面分割器怎么連接

    器的基本原理 畫(huà)面分割器的工作原理是通過(guò)數(shù)字信號(hào)處理技術(shù),將多個(gè)視頻信號(hào)源(如攝像頭、DVR等)的圖像數(shù)據(jù)進(jìn)行處理,然后在一個(gè)監(jiān)視器上以分割的形式顯示出來(lái)。這些分割可以是1畫(huà)面、4畫(huà)面
    的頭像 發(fā)表于 10-17 09:29 ?888次閱讀

    畫(huà)面分割幾路主輸出

    畫(huà)面分割器,也稱為視頻分割器或多畫(huà)面處理器,是一種可以將一個(gè)視頻信號(hào)分割成多個(gè)獨(dú)立視頻畫(huà)面的設(shè)備。這種設(shè)備廣泛應(yīng)用于監(jiān)控系統(tǒng)、視頻會(huì)議、多媒體展示等領(lǐng)域,能夠?qū)⒍鄠€(gè)攝像頭的信號(hào)整合到一個(gè)顯示設(shè)備上
    的頭像 發(fā)表于 10-17 09:24 ?778次閱讀

    圖像語(yǔ)義分割的實(shí)用性是什么

    圖像語(yǔ)義分割是一種重要的計(jì)算機(jī)視覺(jué)任務(wù),它旨在將圖像中的每個(gè)像素分配到相應(yīng)的語(yǔ)義類(lèi)別中。這項(xiàng)技術(shù)在許多領(lǐng)域都有廣泛的應(yīng)用,如自動(dòng)駕駛、醫(yī)學(xué)圖像分析、機(jī)器人導(dǎo)航等。 一、
    的頭像 發(fā)表于 07-17 09:56 ?830次閱讀

    圖像分割和語(yǔ)義分割的區(qū)別與聯(lián)系

    圖像分割和語(yǔ)義分割是計(jì)算機(jī)視覺(jué)領(lǐng)域中兩個(gè)重要的概念,它們?cè)?b class='flag-5'>圖像處理和分析中發(fā)揮著關(guān)鍵作用。 1. 圖像
    的頭像 發(fā)表于 07-17 09:55 ?1777次閱讀

    圖像分割與目標(biāo)檢測(cè)的區(qū)別是什么

    圖像分割與目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域的兩個(gè)重要任務(wù),它們?cè)谠S多應(yīng)用場(chǎng)景中都發(fā)揮著關(guān)鍵作用。然而,盡管它們?cè)谀承┓矫嬗邢嗨浦帲鼈兊哪繕?biāo)、方法和應(yīng)用場(chǎng)景很大的不同。本文將介紹圖像
    的頭像 發(fā)表于 07-17 09:53 ?2245次閱讀

    圖像識(shí)別算法哪幾種

    圖像識(shí)別算法是計(jì)算機(jī)視覺(jué)領(lǐng)域的核心技術(shù)之一,它通過(guò)分析和處理圖像數(shù)據(jù),實(shí)現(xiàn)對(duì)圖像中的目標(biāo)、場(chǎng)景和物體的識(shí)別和分類(lèi)。 圖像識(shí)別算法的發(fā)展歷程 圖像
    的頭像 發(fā)表于 07-16 11:22 ?2333次閱讀

    機(jī)器學(xué)習(xí)中的數(shù)據(jù)分割方法

    在機(jī)器學(xué)習(xí)中,數(shù)據(jù)分割是一項(xiàng)至關(guān)重要的任務(wù),它直接影響到模型的訓(xùn)練效果、泛化能力以及最終的性能評(píng)估。本文將從多個(gè)方面詳細(xì)探討機(jī)器學(xué)習(xí)中數(shù)據(jù)分割的方法,包括常見(jiàn)分割方法、各自的優(yōu)缺點(diǎn)、
    的頭像 發(fā)表于 07-10 16:10 ?3020次閱讀

    圖像分割與語(yǔ)義分割中的CNN模型綜述

    圖像分割與語(yǔ)義分割是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要任務(wù),旨在將圖像劃分為多個(gè)具有特定語(yǔ)義含義的區(qū)域或?qū)ο蟆>矸e神經(jīng)網(wǎng)絡(luò)(CNN)作為深度學(xué)習(xí)的一種核心模型,在
    的頭像 發(fā)表于 07-09 11:51 ?1807次閱讀

    機(jī)器人視覺(jué)技術(shù)中常見(jiàn)圖像分割方法

    、場(chǎng)景理解、導(dǎo)航和交互等任務(wù)至關(guān)重要。以下是一些常見(jiàn)圖像分割方法: 閾值分割法(Thresholding) 閾值分割法是一種基于像素強(qiáng)度的
    的頭像 發(fā)表于 07-09 09:31 ?1286次閱讀

    機(jī)器人視覺(jué)技術(shù)中圖像分割方法哪些

    機(jī)器人視覺(jué)技術(shù)是人工智能領(lǐng)域的一個(gè)重要分支,它涉及到圖像處理、模式識(shí)別、機(jī)器學(xué)習(xí)等多個(gè)學(xué)科。圖像分割是機(jī)器人視覺(jué)技術(shù)中的一個(gè)重要環(huán)節(jié),它的目標(biāo)是從一幅圖像中將目標(biāo)物體與背景分離出來(lái),以
    的頭像 發(fā)表于 07-04 11:34 ?1605次閱讀
    主站蜘蛛池模板: 色妇网 | 又粗又爽又色男女乱淫播放男女 | 欧美黑人性色黄在线视频 | 国产精品美女在线观看 | 狠狠轮| 中日韩欧美在线观看 | 一区二区不卡免费视频 | 久草视频这里只有精品 | 三级在线观看国产 | 色综合888| 天天射天天干天天操 | 国产亚洲精品成人一区看片 | 午夜免费啪在线观看视频网站 | 丁香婷婷开心激情深爱五月 | 91网站在线看 | 天天综合天天做天天综合 | 2022欧美高清中文字幕在线看 | yy肉戏多纯黄的小说 | 午夜性福| 精品国产柚木在线观看 | 久久精品国产清自在天天线 | 欧美性精品videofree | 永久在线免费 | 亚洲日本在线观看 | 久久国产精品免费 | 视频在线观看高清免费大全 | 四虎hu | 高清国产一区二区三区 | 视频在线视频免费观看 | 永久黄网站色视频免费观看99 | 国产伦精品一区二区三区女 | 女人又色又爽又黄 | 天天射干 | 日韩在线影院 | 特黄一级| 视频精品一区二区三区 | 国产一级毛片午夜福 | 性色网址 | 在线观看视频一区二区三区 | 亚洲一区二区免费视频 | 狠狠干在线观看 |