如何使用Python和OpenCV實(shí)現(xiàn)對象檢測任務(wù)的數(shù)據(jù)擴(kuò)充過程?
數(shù)據(jù)擴(kuò)充是一種增加數(shù)據(jù)集多樣性的技術(shù),無需收集更多的真實(shí)數(shù)據(jù),但仍然有助于提高模型的準(zhǔn)確性和防止模型過度擬合。在這篇文章中,你將學(xué)習(xí)使用Python和OpenCV實(shí)現(xiàn)最流行和最有效的對象檢測任務(wù)的數(shù)據(jù)擴(kuò)充過程。
介紹的數(shù)據(jù)擴(kuò)充方法包括:隨機(jī)剪裁CutoutColorJitter添加噪聲過濾首先,讓我們導(dǎo)入幾個(gè)庫并準(zhǔn)備一些必要的子例程。import os
import cv2
import numpy as np
import random
def file_lines_to_list(path):
'''
### Convert Lines in TXT File to List ###
path: path to file
'''
with open(path) as f:
content = f.readlines()
content = [(x.strip()).split() for x in content]
return content
def get_file_name(path):
'''
### Get Filename of Filepath ###
path: path to file
'''
basename = os.path.basename(path)
onlyname = os.path.splitext(basename)[0]
return onlyname
def write_anno_to_txt(boxes, filepath):
'''
### Write Annotation to TXT File ###
boxes: format [[obj x1 y1 x2 y2],...]
filepath: path/to/file.txt
'''
txt_file = open(filepath, "w")
for box in boxes:
print(box[0], int(box[1]), int(box[2]), int(box[3]), int(box[4]), file=txt_file)
txt_file.close()
下圖在本文中用作示例圖像。
隨機(jī)剪裁隨機(jī)剪裁:隨機(jī)選擇一個(gè)區(qū)域并將其裁剪出來,形成一個(gè)新的數(shù)據(jù)樣本,被裁剪的區(qū)域應(yīng)與原始圖像具有相同的寬高比,以保持對象的形狀。
在上圖中,左邊的圖像是帶有真實(shí)邊界框的原始圖像(紅色部分),右邊的圖像是通過裁剪橙色框中的區(qū)域創(chuàng)建的新樣本。在新樣本的標(biāo)注中,去除所有與左側(cè)圖像中橙色框不重疊的對象,并將橙色框邊界上的對象的坐標(biāo)進(jìn)行細(xì)化,使之與新樣本相匹配。對原始圖像進(jìn)行隨機(jī)裁剪的輸出是新的裁剪后的圖像及其注釋。def randomcrop(img, gt_boxes, scale=0.5):
'''
### Random Crop ###
img: image
gt_boxes: format [[obj x1 y1 x2 y2],...]
scale: percentage of cropped area
'''
# Crop image
height, width = int(img.shape[0]*scale), int(img.shape[1]*scale)
x = random.randint(0, img.shape[1] - int(width))
y = random.randint(0, img.shape[0] - int(height))
cropped = img[y:y+height, x:x+width]
resized = cv2.resize(cropped, (img.shape[1], img.shape[0]))

發(fā)表評論
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個(gè)字
最新活動(dòng)更多
-
7月8日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身智能機(jī)器人產(chǎn)業(yè)技術(shù)創(chuàng)新應(yīng)用論壇
-
免費(fèi)參會(huì)立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
- 3 一文看懂視覺語言動(dòng)作模型(VLA)及其應(yīng)用
- 4 “支付+”時(shí)代,支付即生態(tài) | 2025中國跨境支付十大趨勢
- 5 中國最具實(shí)力AI公司TOP10
- 6 特斯拉Robotaxi上路,馬斯克端上畫了十年的餅
- 7 國家數(shù)據(jù)局局長劉烈宏調(diào)研格創(chuàng)東智
- 8 AI的夏天:第四范式VS云從科技VS地平線機(jī)器人
- 9 張勇等人退出阿里合伙人
- 10 AI視頻,攪動(dòng)1.5萬億市場