作者:Harpal Sahota
編譯:ronghuaiyang
導(dǎo)讀
實現(xiàn)了Google Research,Brain Team中的增強策略。
像許多神經(jīng)網(wǎng)絡(luò)模型一樣,目標(biāo)檢測模型在訓(xùn)練大量數(shù)據(jù)時效果最好。通常情況下,可用的數(shù)據(jù)有限,世界各地的許多研究人員正在研究增強策略,以增加可用的數(shù)據(jù)量。谷歌的大腦團(tuán)隊進(jìn)行了一項這樣的研究,并發(fā)表在了一篇論文中,名為Learning Data Augmentation Strategies for Object Detection。在這篇論文中,作者確定了一組增強稱為策略,它對目標(biāo)檢測問題表現(xiàn)良好。該策略通過增強搜索獲得,提高了通用模型的性能。
作者將增強策略定義為一組子策略。在模型進(jìn)行訓(xùn)練時,隨機選擇其中一個子策略用于增強圖像。在每個子策略中都有要依次應(yīng)用于圖像的增強。每個轉(zhuǎn)換也有兩個超參數(shù):概率和幅度。概率表示該增強將被應(yīng)用的可能性,而幅度表示該增強的程度。下面的代碼顯示了本文中使用的策略:
policy = [
[(‘TranslateX_BBox’, 0.6, 4), (‘Equalize’, 0.8, 10)],
[(‘TranslateY_Only_BBoxes’, 0.2, 2), (‘Cutout’, 0.8, 8)],
[(‘Sharpness’, 0.0, 8), (‘ShearX_BBox’, 0.4, 0)],
[(‘ShearY_BBox’, 1.0, 2), (‘TranslateY_Only_BBoxes’, 0.6, 6)],
[(‘Rotate_BBox’, 0.6, 10), (‘Color’, 1.0, 6)],
]
在這個策略中有5個子策略,如果我們?nèi)〉谝粋€子策略,它就包含了TranslateX_BBox和Equalize增強。TranslateX_BBox操作在x軸上轉(zhuǎn)換圖像的幅度為4。在本例中,大小并不直接轉(zhuǎn)換為像素,而是根據(jù)大小縮放為像素值。該增強的概率也為0.6,這意味著如果該增強被選中,則應(yīng)用該增強的概率為60%。
隨著每個增強都有一個相關(guān)的概率,引入了一個隨機的概念,給訓(xùn)練增加了一定程度的隨機性??偟膩碚f,Brain Team已經(jīng)提出了4個策略: v0, v1, v2和v3。本文中顯示了v0策略,其他三個策略包含更多的子策略,這些子策略具有幾種不同的轉(zhuǎn)換??偟膩碚f,增加分為三類,作者定義為:
顏色操作: 扭曲顏色通道,不影響邊界框的位置。
幾何操作:幾何扭曲圖像,這相應(yīng)地改變了邊界框的位置和大小。
包圍框操作:只會扭曲包圍框中包含的像素內(nèi)容。
BBAug
那么BBAug)在這方面有什么貢獻(xiàn)呢?BBAug是一個python包,它實現(xiàn)了谷歌Brain Team的所有策略。這個包是一個包裝器,可以更容易地使用這些策略。實際的擴展是由優(yōu)秀的imgaug包完成的。
上面顯示的策略應(yīng)用于一個示例圖像,如下所示。每一行是一個不同的子策略,每一列是該子策略的不同運行。
正如你所看到的,在子策略的運行之間有一定程度的變化,因此給訓(xùn)練增加了一定程度的隨機性。這只是BBAug實施的4個策略之一。要查看所有4個策略的完整可視化,請查看包的GitHub頁面:https://github.com/harpalsahota/bbaug。
該包還提供了一些有用的功能,比如定制策略的可能性,以及位于圖像外部的邊界框,如果它們部分位于圖像外部,則會被自動刪除或剪切。例如,在下面的圖像中,應(yīng)用了平移增強,將邊界框部分推到圖像外部。你可以看到新的邊界框已經(jīng)縮小以適應(yīng)這一點。
也可以創(chuàng)建只影響邊界框區(qū)域的增強。在下圖中,solarisaugmentation只應(yīng)用于邊界框區(qū)域:
用隨機策略增加單個圖像有多容易?就像這樣簡單:
from bbaug import policies
# select policy v0 set
aug_policy = policies.policies_v0()
# instantiate the policy container with the selected policy set
policy_container = policies.PolicyContainer(aug_policy)
# select a random policy from the policy set
random_policy = policy_container.select_random_policy()
# Apply the augmentation. Returns the augmented image and bounding boxes.
# Image is a numpy array of the image
# Bounding boxes is a list of list of bounding boxes in pixels (int)。
# e.g. [[x_min, y_min, x_man, y_max], [x_min, y_min, x_man, y_max]]
# Labels are the class labels for the bounding boxes as an iterable of ints e.g. [1,0]
img_aug, bbs_aug = policy_container.apply_augmentation(random_policy, image, bounding_boxes, labels)
# image_aug: numpy array of the augmented image
# bbs_aug: numpy array of augmneted bounding boxes in format: [[label, x_min, y_min, x_man, y_max],。。。]
總結(jié)
該包實現(xiàn)了谷歌Brain Team推導(dǎo)出的增強策略。目前,已經(jīng)實現(xiàn)了所有4個策略,該包還附帶了notebooks,以幫助用戶將這些策略集成到他們的PyTorch訓(xùn)練pipeline中。
英文原文:https://towardsdatascience.com/bbaug-a-package-for-bounding-box-augmentation-in-pytorch-e9b9fbf1504b
編輯:jq
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4797瀏覽量
102367 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13686
原文標(biāo)題:BBAug: 一個用于PyTorch的物體檢測包圍框數(shù)據(jù)增強包
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦

氣體檢漏儀如何操作?注意事項有哪些?
【米爾RK3576開發(fā)板評測】+項目名稱RetinaFace人臉檢測
《DNK210使用指南 -CanMV版 V1.0》第四十一章 YOLO2物體檢測實驗
PyTorch 數(shù)據(jù)加載與處理方法
在目標(biāo)檢測中大物體的重要性

安帕爾:可燃?xì)?b class='flag-5'>體檢測儀怎么樣選擇
pytorch怎么在pycharm中運行
pytorch環(huán)境搭建詳細(xì)步驟
低功耗藍(lán)牙模塊+氣體檢測儀藍(lán)牙方案介紹

評論