如何使用Python和OpenCV實現對象檢測任務的數據擴充過程?
# Modify annotation
new_boxes=[]
for box in gt_boxes:
obj_name = box[0]
x1 = int(box[1])
y1 = int(box[2])
x2 = int(box[3])
y2 = int(box[4])
x1, x2 = x1-x, x2-x
y1, y2 = y1-y, y2-y
x1, y1, x2, y2 = x1/scale, y1/scale, x2/scale, y2/scale
if (x1<img.shape[1] and y1<img.shape[0]) and (x2>0 and y2>0):
if x1<0: x1=0
if y1<0: y1=0
if x2>img.shape[1]: x2=img.shape[1]
if y2>img.shape[0]: y2=img.shape[0]
new_boxes.append([obj_name, x1, y1, x2, y2])
return resized, new_boxes
CutoutCutout是2017年由Terrance DeVries和Graham W. Taylor在他們的論文中介紹的,是一種簡單的正則化技術,在訓練過程中隨機掩蓋輸入的正方形區域,可以用來提高卷積神經網絡的魯棒性和整體性能。這種方法不僅非常容易實現,而且表明它可以與現有形式的數據擴充和其他正則化器一起使用,進一步提高模型的性能。論文地址:https://arxiv.org/abs/1708.04552與本文一樣,我們使用了cutout來提高圖像識別(分類)的精度,因此,如果我們將相同的方案部署到目標檢測數據集中,可能會導致丟失目標(特別是小目標)的問題。在下圖中,刪除了剪切區域(黑色區域)內的大量小對象,這不符合數據增強的精神。

為了使這種方式適合對象檢測,我們可以做一個簡單的修改,而不是僅使用一個遮罩并將其放置在圖像中的隨機位置,而是隨機選擇一半的對象,并將裁剪應用于每個目標區域,效果更佳。增強后的圖像如下圖所示。

Cutout的輸出是一個新生成的圖像,我們不刪除對象或改變圖像大小,那么生成的圖像的注釋就是原始注釋。def cutout(img, gt_boxes, amount=0.5):
'''
### Cutout ###
img: image
gt_boxes: format [[obj x1 y1 x2 y2],...]
amount: num of masks / num of objects
'''
out = img.copy()
ran_select = random.sample(gt_boxes, round(amount*len(gt_boxes)))
for box in ran_select:
x1 = int(box[1])
y1 = int(box[2])
x2 = int(box[3])
y2 = int(box[4])
mask_w = int((x2 - x1)*0.5)
mask_h = int((y2 - y1)*0.5)
mask_x1 = random.randint(x1, x2 - mask_w)
mask_y1 = random.randint(y1, y2 - mask_h)
mask_x2 = mask_x1 + mask_w
mask_y2 = mask_y1 + mask_h
cv2.rectangle(out, (mask_x1, mask_y1), (mask_x2, mask_y2), (0, 0, 0), thickness=-1)
return out
ColorJitterColorJitter是另一種簡單的圖像數據擴充類型,我們隨機改變圖像的亮度、對比度和飽和度。我相信這個“家伙”很容易被大多數讀者理解。

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產聯看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩、細節炸,設計師慌了
- 3 6000億美元估值錨定:字節跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發現它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰略
- 10 AI Infra產業鏈卡在哪里了?


分享













