pytorch深度学习-机器视觉-目标检测和边界框简介
機(jī)器視覺之目標(biāo)檢測和邊界框簡介
在圖像分類任務(wù)里,我們假設(shè)圖像里只有一個主體目標(biāo),并關(guān)注如何識別該目標(biāo)的類別。然而,很多時候圖像里有多個我們感興趣的目標(biāo),我們不僅想知道它們的類別,還想得到它們在圖像中的具體位置。在計算機(jī)視覺里,我們將這類任務(wù)稱為目標(biāo)檢測(object detection)或物體檢測。
目標(biāo)檢測在多個領(lǐng)域中被廣泛使用。例如,在無人駕駛里,我們需要通過識別拍攝到的視頻圖像里的車輛、行人、道路和障礙的位置來規(guī)劃行進(jìn)線路。機(jī)器人也常通過該任務(wù)來檢測感興趣的目標(biāo)。安防領(lǐng)域則需要檢測異常目標(biāo),如歹徒或者炸彈。
在接下來的幾節(jié)里,我們將介紹目標(biāo)檢測里的多個深度學(xué)習(xí)模型。在此之前,讓我們來了解目標(biāo)位置這個概念。先導(dǎo)入實驗所需的包或模塊。
%matplotlib inline from PIL import Image from matplotlib import pyplot as plt下面加載本節(jié)將使用的示例圖像。可以看到圖像左邊是一只狗,右邊是一只貓。它們是這張圖像里的兩個主要目標(biāo)。
邊界框
在目標(biāo)檢測里,我們通常使用邊界框(bounding box)來描述目標(biāo)位置。邊界框是一個矩形框,可以由矩形左上角的xxx和yyy軸坐標(biāo)與右下角的xxx和yyy軸坐標(biāo)確定。我們根據(jù)上面的圖的坐標(biāo)信息來定義圖中狗和貓的邊界框。圖中的坐標(biāo)原點(diǎn)在圖像的左上角,原點(diǎn)往右和往下分別為xxx軸和yyy軸的正方向。
# bbox是bounding box的縮寫 dog_bbox, cat_bbox = [60, 45, 378, 516], [400, 112, 655, 493]我們可以在圖中將邊界框畫出來,以檢查其是否準(zhǔn)確。畫之前,我們定義一個輔助函數(shù)bbox_to_rect。它將邊界框表示成matplotlib的邊界框格式。
def bbox_to_rect(bbox, color): # 將邊界框(左上x, 左上y, 右下x, 右下y)格式轉(zhuǎn)換成matplotlib格式:# ((左上x, 左上y), 寬, 高)return plt.Rectangle(xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],fill=False, edgecolor=color, linewidth=2)我們將邊界框加載在圖像上,可以看到目標(biāo)的主要輪廓基本在框內(nèi)。
fig = plt.imshow(img) fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue')) fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'));在目標(biāo)檢測里不僅需要找出圖像里面所有感興趣的目標(biāo),而且要知道它們的位置。位置一般由矩形邊界框來表示。
總結(jié)
以上是生活随笔為你收集整理的pytorch深度学习-机器视觉-目标检测和边界框简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax接受的格式,关于ajax接受js
- 下一篇: maskrcnn用于目标检测_用于目标检