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

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

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

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

什么是Mask R-CNN?Mask R-CNN的工作原理

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-07-20 08:53 ? 次閱讀

編者按:發(fā)展至今,計(jì)算機(jī)視覺已經(jīng)產(chǎn)生了不少令人驚嘆的應(yīng)用,但一提到它,人們首先想到的總是人臉檢測(cè)、物品識(shí)別……除去已經(jīng)發(fā)展得很成熟的人臉識(shí)別技術(shù),我們難道只能用檢測(cè)室內(nèi)物品來練習(xí)技巧嗎?作為一個(gè)極具工程價(jià)值的領(lǐng)域,也許大家應(yīng)當(dāng)擴(kuò)張技術(shù)應(yīng)用的廣度,把它和現(xiàn)實(shí)場(chǎng)景結(jié)合起來,真正做一些更接地氣的嘗試。

本文旨在構(gòu)建一個(gè)自定義Mask R-CNN模型,它可以檢測(cè)汽車車身的損壞區(qū)域(如下圖所示)。這背后的應(yīng)用理念是,購買二手車時(shí),消費(fèi)者首先會(huì)關(guān)注車身刮擦情況,有了這個(gè)模型,他們足不出戶就能大致了解車子情況,避免被坑。而對(duì)于日常生活中的小事故,如果用戶只需上傳圖片就能完成車輛破損鑒定,保險(xiǎn)公司的索賠效率也會(huì)大幅提高。

什么是Mask R-CNN?

Mask R-CNN是一個(gè)實(shí)例分割模型,它能確定圖片中各個(gè)目標(biāo)的位置和類別,給出像素級(jí)預(yù)測(cè)。所謂“實(shí)例分割”,指的是對(duì)場(chǎng)景內(nèi)的每種興趣對(duì)象進(jìn)行分割,無論它們是否屬于同一類別——比如模型可以從街景視頻中識(shí)別車輛、人員等單個(gè)目標(biāo)。下圖是在COCO數(shù)據(jù)集上訓(xùn)練好的Mask R-CNN,如圖所示,大到每一輛車,小到單根香蕉,它都能用窗口標(biāo)出目標(biāo)物品在畫面中的像素位置。

不同于Faster R-CNN這樣的經(jīng)典對(duì)象檢測(cè)模型,Mask R-CNN的一個(gè)特點(diǎn)是可以給窗口內(nèi)表示對(duì)象輪廓的像素著色。可能有人會(huì)覺得這是個(gè)雞肋功能,但它對(duì)自動(dòng)駕駛汽車和機(jī)器人控制意義非凡:

著色可以幫助汽車明確道路上各目標(biāo)的具體像素位置,從而避免發(fā)生碰撞;

如果機(jī)器人想抓取某個(gè)目標(biāo)物品,它就需要知道位置信息(如亞馬遜無人機(jī))。

如果只是單純想在COCO上訓(xùn)練Mask R-CNN模型,最簡(jiǎn)單的方法是調(diào)用Tensorflow Object Detection API,具體內(nèi)容Github都有,此處不再詳談。

Mask R-CNN的工作原理

在構(gòu)建Mask R-CNN模型之前,我們首先來了解一下它的工作機(jī)制。

事實(shí)上,Mask R-CNN是Faster R-CNN和FCN的結(jié)合,前者負(fù)責(zé)物體檢測(cè)(分類標(biāo)簽+窗口),后者負(fù)責(zé)確定目標(biāo)輪廓。如下圖所示:

它的概念很簡(jiǎn)單:對(duì)于每個(gè)目標(biāo)對(duì)象,F(xiàn)aster R-CNN都有兩個(gè)輸出,一是分類標(biāo)簽,二是候選窗口;為了分割目標(biāo)像素,我們可以在前兩個(gè)輸出的基礎(chǔ)上增加第三個(gè)輸出——指示對(duì)象在窗口中像素位置的二進(jìn)制掩模(mask)。和前兩個(gè)輸出不同,這個(gè)新輸出需要提取更精細(xì)的空間布局,為此,Mask R-CNN在Faster-RCNN上添加一個(gè)分支網(wǎng)絡(luò):Fully Convolution Networ(FCN)。

FCN是一種流行的語義分割算法,所謂語義分割,就是機(jī)器自動(dòng)從圖像中分割出對(duì)象區(qū)域,并識(shí)別其中的內(nèi)容。該模型首先通過卷積和最大池化層把輸入圖像壓縮到原始大小的1/32,然后在這個(gè)細(xì)粒度級(jí)別進(jìn)行分類預(yù)測(cè)。最后,它再用上采樣和deconvolution層把圖還原成原始大小。

因此簡(jiǎn)而言之,我們可以說Mask R-CNN結(jié)合了兩個(gè)網(wǎng)絡(luò)——把Faster R-CNN和FCN納入同一巨型架構(gòu)。模型的損失函數(shù)計(jì)算的是分類、生成窗口、生成掩模的總損失。

此外,Mask R-CNN還做了一些基礎(chǔ)改進(jìn),使其比FCN更精確,具體可以閱讀論文。

構(gòu)建用于檢測(cè)汽車漆面情況的Mask R-CNN模型

GitHub:github.com/matterport/Mask_RCNN

這是一個(gè)在Python 3、Keras和TensorFlow上實(shí)現(xiàn)Mask R-CNN的現(xiàn)成資源。雖然最近TensorFlow目標(biāo)檢測(cè)庫也更新了和Mask R-CNN相關(guān)的資源,但如果想一帆風(fēng)順地搭建模型,我們還是推薦這個(gè),用TensorFlow太容易出bug了。

當(dāng)然,這不是不鼓勵(lì)大家去勇敢試錯(cuò),畢竟熟悉了這些錯(cuò)誤,我們才能更好地理解整個(gè)過程。但這個(gè)實(shí)現(xiàn)絕對(duì)值得收藏。

收集數(shù)據(jù)

考慮到本文只是演示,這里我們只Google了66張受損車輛圖像(50張訓(xùn)練集,16張驗(yàn)證集)。如果想做個(gè)大點(diǎn)的數(shù)據(jù)集,建議把搜索關(guān)鍵詞設(shè)為“damaged car painting”,用中文容易出現(xiàn)一大堆補(bǔ)漆廣告,搜車禍則是大量引擎蓋變形圖。下面是一些圖像樣本

注釋數(shù)據(jù)

為了構(gòu)建Mask R-CNN模型,首先我們要對(duì)圖像進(jìn)行注釋,標(biāo)出其中的損壞區(qū)域。我們使用的注釋工具是VGG Image Annotator?—?v 1.0.6,它有一個(gè)在線版本。除了常規(guī)圖形,它也允許我們繪制多邊形蒙版:

注釋完后,記得把它們下載下來,保存為.json格式。這里是注釋好的66幅圖。

訓(xùn)練模型

完成上述步驟,現(xiàn)在我們就可以訓(xùn)練模型了。首先,把GitHub里的東西復(fù)制下來,然后加載我們的圖像和注釋。

classCustomDataset(utils.Dataset):

def load_custom(self, dataset_dir, subset):

"""Load a subset of the Balloon dataset.

dataset_dir: Root directory of the dataset.

subset: Subset to load: train or val

"""

# 添加類別標(biāo)簽,我們只有一個(gè)

self.add_class("damage", 1, "damage")

# 訓(xùn)練集和驗(yàn)證集

assert subset in ["train", "val"]

dataset_dir = os.path.join(dataset_dir, subset)

# 我們主要關(guān)心每個(gè)區(qū)域的x和y坐標(biāo)

annotations1 = json.load(open(os.path.join(dataset_dir, "via_region_data.json")))

annotations = list(annotations1.values()) # don't need the dict keys

# 即使沒有任何注釋工具也會(huì)把圖像保存在JSON中

# 跳過未注釋圖像。

annotations = [a for a in annotations if a['regions']]

# 添加圖像

for a in annotations:

# 獲取構(gòu)成每個(gè)對(duì)象實(shí)例輪廓多邊形點(diǎn)的x,y坐標(biāo)

# 它們?cè)趕hape_attributes里((參見上面的json格式))

polygons = [r['shape_attributes'] for r in a['regions'].values()]

# 輸入圖像大小后,load_mask()才能把多邊形轉(zhuǎn)成蒙版

image_path = os.path.join(dataset_dir, a['filename'])

image = skimage.io.imread(image_path)

height, width = image.shape[:2]

self.add_image(

"damage", ## 如果只有一類,只需在此處添加名稱即可

image_id=a['filename'], # use file name as a unique image id

path=image_path,

width=width, height=height,

polygons=polygons)

整段代碼在這里。我們復(fù)制了資源里的balloon.py文件,并對(duì)它做了修改。需要注意的是,這些代碼只適合包含一個(gè)類的問題。

此外,你也可以用這個(gè)筆記本內(nèi)容可視化給定圖像上的蒙版。

如果要訓(xùn)練,運(yùn)行以下代碼:

## 如果用的是在COCO上預(yù)訓(xùn)練的模型

python3 custom.py train --dataset=/path/to/datasetfolder --weights=coco

## 如果是繼續(xù)訓(xùn)練您之前訓(xùn)練過的模型

python3 custom.py train --dataset=/path/to/datasetfolder --weights=last

注:用一個(gè)GPU訓(xùn)練10個(gè)epoch需要20-30分鐘。

驗(yàn)證模型

至于模型的權(quán)重和偏差是不是正確的,大家可以參考這個(gè)筆記本

。里面列出了許多設(shè)置,可以作為輔助檢查工具。

實(shí)驗(yàn)結(jié)果

如圖所示,模型準(zhǔn)確標(biāo)出了漆面損壞位置。當(dāng)然,這并不是全部,我們?cè)谶@個(gè)示例里只用了66幅圖,劃痕也比較明顯,所以這個(gè)模型的應(yīng)用性非常有限。如果數(shù)據(jù)集夠大,我們完全可以期待一個(gè)能檢測(cè)微小傷痕的模型,當(dāng)消費(fèi)者在家里觀察汽車3D圖時(shí),系統(tǒng)能自動(dòng)標(biāo)出一些不顯眼的痕跡,避免乘興而去,敗興而歸。

除了檢測(cè)車輛劃痕,你認(rèn)為Mask R-CNN模型還有什么潛在應(yīng)用呢?

聲明:本文內(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)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    212

    文章

    29176

    瀏覽量

    210637
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1218

    瀏覽量

    25160

原文標(biāo)題:CV擁抱二手車:構(gòu)建用于檢測(cè)汽車漆面破損的R-CNN模型(Python)

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    手把手教你使用LabVIEW實(shí)現(xiàn)Mask R-CNN圖像實(shí)例分割(含源碼)

    使用LabVIEW實(shí)現(xiàn)Mask R-CNN圖像實(shí)例分割
    的頭像 發(fā)表于 03-21 13:39 ?2840次閱讀
    手把手教你使用LabVIEW實(shí)現(xiàn)<b class='flag-5'>Mask</b> <b class='flag-5'>R-CNN</b>圖像實(shí)例分割(含源碼)

    執(zhí)行“mask_rcnn_demo.exe”時(shí),無法找到帶有名稱的Blob:DetectionOutput是怎么回事?

    引用 將 ONNX* Mask R-CNN 模型轉(zhuǎn)換為 OpenVINO?文檔的中間表示。 已下載并轉(zhuǎn)換 mask_rcnn_R_50_FPN_1x 模型到 IR 執(zhí)行命令
    發(fā)表于 03-05 07:10

    介紹目標(biāo)檢測(cè)工具Faster R-CNN,包括它的構(gòu)造及實(shí)現(xiàn)原理

    在本篇文章中,公司的研究人員介紹了他們?cè)谘芯窟^程中所使用的先進(jìn)目標(biāo)檢測(cè)工具Faster R-CNN,包括它的構(gòu)造及實(shí)現(xiàn)原理。
    的頭像 發(fā)表于 01-27 11:49 ?1.9w次閱讀
    介紹目標(biāo)檢測(cè)工具Faster <b class='flag-5'>R-CNN</b>,包括它的構(gòu)造及實(shí)現(xiàn)原理

    Mask R-CNN:自動(dòng)從視頻中制作目標(biāo)物體的GIF動(dòng)圖

    用深度學(xué)習(xí)模型——Mask R-CNN,自動(dòng)從視頻中制作目標(biāo)物體的GIF動(dòng)圖。
    的頭像 發(fā)表于 02-03 14:19 ?1.2w次閱讀

    分享下Kaiming大神在CVPR‘18 又有了什么新成果?

    在具體實(shí)現(xiàn)過程中,基于Mask R-CNN提出了一種新穎的遷移學(xué)習(xí)方法。Mask R-CNN可以將實(shí)例分割問題分解為邊框目標(biāo)檢測(cè)和掩膜預(yù)測(cè)兩個(gè)子任務(wù)。在訓(xùn)練中分類信息會(huì)被編碼到邊框頭單
    的頭像 發(fā)表于 06-20 16:45 ?5025次閱讀
    分享下Kaiming大神在CVPR‘18 又有了什么新成果?

    引入Mask R-CNN思想通過語義分割進(jìn)行任意形狀文本檢測(cè)與識(shí)別

    網(wǎng)絡(luò)架構(gòu)由四部分組成,骨干網(wǎng)feature pyramid network (FPN) ,文本候選區(qū)域生成網(wǎng)絡(luò)region proposal network (RPN) ,文本包圍盒回歸網(wǎng)絡(luò)Fast R-CNN ,文本實(shí)例分割與字符分割網(wǎng)絡(luò)mask branch。
    的頭像 發(fā)表于 08-07 14:24 ?1.4w次閱讀

    手把手教你操作Faster R-CNNMask R-CNN

    Mask R-CNN是承繼于Faster R-CNNMask R-CNN只是在Faster R-CNN
    的頭像 發(fā)表于 04-04 16:32 ?1.3w次閱讀

    一種新的帶有不確定性的邊界框回歸損失,可用于學(xué)習(xí)更準(zhǔn)確的目標(biāo)定位

    目標(biāo)檢測(cè)是一種多任務(wù)學(xué)習(xí)問題,包含目標(biāo)定位和目標(biāo)分類。當(dāng)前最佳的目標(biāo)檢測(cè)器(比如 Faster RCNN、Cascade R-CNNMask R-CNN)都依靠邊界框回歸來定位目標(biāo)。
    的頭像 發(fā)表于 04-23 16:38 ?6643次閱讀
    一種新的帶有不確定性的邊界框回歸損失,可用于學(xué)習(xí)更準(zhǔn)確的目標(biāo)定位

    基于改進(jìn)Faster R-CNN的目標(biāo)檢測(cè)方法

    為提高小尺度行人檢測(cè)的準(zhǔn)確性,提出一種基于改進(jìn) Faster r-CNN的目標(biāo)檢測(cè)方法。通過引入基于雙線性插值的對(duì)齊池化層,避免感興趣區(qū)域池化過程中兩次量化操作導(dǎo)致的位置偏差,同時(shí)設(shè)計(jì)基于級(jí)聯(lián)的多層
    發(fā)表于 03-23 14:52 ?3次下載
    基于改進(jìn)Faster <b class='flag-5'>R-CNN</b>的目標(biāo)檢測(cè)方法

    一種基于Mask R-CNN的人臉檢測(cè)及分割方法

    針對(duì)現(xiàn)有主流的人臉檢測(cè)算法不具備像素級(jí)分割,從而存在人臉特征具有噪聲及檢測(cè)精度不理想的問題提出了一種基于 Mask r-CNN的人臉檢測(cè)及分割方法。通過 Res Net-l01結(jié)合RPN網(wǎng)絡(luò)生成候選
    發(fā)表于 04-01 10:42 ?5次下載
    一種基于<b class='flag-5'>Mask</b> <b class='flag-5'>R-CNN</b>的人臉檢測(cè)及分割方法

    基于Mask R-CNN的遙感圖像處理技術(shù)綜述

    較為密集,且容易與港口混合。當(dāng)前對(duì)艦船檢測(cè)的輸岀結(jié)果主要是檢測(cè)框,缺少對(duì)艦船掩碼的輸岀,使得無法全面分析岀模型存在的不足;冋時(shí),由于遙感圖像中的艦船停靠密集,容易產(chǎn)生漏檢問題。為解決上述問題,利用 Mask r-cnn對(duì)艦
    發(fā)表于 05-08 16:39 ?3次下載

    用于實(shí)例分割的Mask R-CNN框架

    我們的方法稱為 Mask R-CNN,擴(kuò)展了 Faster RCNN ,方法是在每個(gè)感興趣區(qū)域 (RoI) 上添加一個(gè)用于預(yù)測(cè)分割掩碼的分支,與用于分類和邊界框回歸的現(xiàn)有分支并行(圖 1)。掩碼分支
    的頭像 發(fā)表于 04-13 10:40 ?2861次閱讀

    3D視覺技術(shù)內(nèi)容理解領(lǐng)域的研究進(jìn)展

    Mesh R-CNN 是一種新型的當(dāng)前最優(yōu)方法,可基于大量 2D 現(xiàn)實(shí)世界圖像預(yù)測(cè)出最準(zhǔn)確的 3D 形狀。該方法利用目標(biāo)實(shí)例分割任務(wù)的通用 Mask R-CNN 框架,能夠檢測(cè)出復(fù)雜的對(duì)象,如椅子腿或者重疊的家具。
    的頭像 發(fā)表于 04-27 14:34 ?1648次閱讀

    PyTorch教程14.8之基于區(qū)域的CNN(R-CNN)

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程14.8之基于區(qū)域的CNN(R-CNN).pdf》資料免費(fèi)下載
    發(fā)表于 06-05 11:09 ?0次下載
    PyTorch教程14.8之基于區(qū)域的<b class='flag-5'>CNN</b>(<b class='flag-5'>R-CNN</b>)

    PyTorch教程-14.8。基于區(qū)域的 CNN (R-CNN)

    14.8。基于區(qū)域的 CNN (R-CNN)? Colab [火炬]在 Colab 中打開筆記本 Colab [mxnet] Open the notebook in Colab
    的頭像 發(fā)表于 06-05 15:44 ?804次閱讀
    PyTorch教程-14.8。基于區(qū)域的 <b class='flag-5'>CNN</b> (<b class='flag-5'>R-CNN</b>)
    主站蜘蛛池模板: ww欧美| 五月婷婷一区 | 亚洲区在线播放 | 男人j桶进女人j的视频 | 亚洲午夜精品久久久久 | 天天做天天爰夜夜爽 | 国产精品一区二区三区免费视频 | 亚洲va久久久噜噜噜久久男同 | 色射啪| 色综合五月婷婷 | 国产视频一二三 | 欧美综合精品一区二区三区 | 在线看黄的网站 | 亚洲色图图片区 | 色优久久 | 黄视频网站在线看 | 久久婷婷丁香七月色综合 | 一卡二卡三卡四卡无卡在线 | 欧美videos 另类 | 午夜一区二区免费视频 | 黄色插插插 | 亚洲黄色网址大全 | 美女一级一级毛片 | a视频免费看| 淫性视频| 国产一级特黄特色aa毛片 | 国产高清在线精品一区 | 日日日日人人人夜夜夜2017 | 99久久99久久久精品齐齐鬼色 | 亚洲色图图片专区 | 欧美一级色 | 下农村女人一级毛片 | a在线免费 | 国产玖玖 | 日本午夜大片a在线观看 | 黄色香蕉网站 | 四虎影院新地址 | 很黄很色的网站 | 久久久久国产成人精品亚洲午夜 | 国产欧美日韩haodiaose | 日本www网站 |