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