了解使用AugLy的數(shù)據(jù)增強(qiáng)
介紹
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型的一個(gè)常見(jiàn)問(wèn)題是“過(guò)度擬合”。這意味著模型在訓(xùn)練數(shù)據(jù)集上的準(zhǔn)確性非常高,但在測(cè)試數(shù)據(jù)上卻沒(méi)有較高的準(zhǔn)確性。
為了解決過(guò)擬合問(wèn)題,我們可以增加數(shù)據(jù)集的大小,即將模型暴露于新數(shù)據(jù)以獲得更好的泛化。額外的數(shù)據(jù)并不總是可用的,收集起來(lái)可能具有挑戰(zhàn)性,而且耗時(shí)且昂貴。在這種情況下,數(shù)據(jù)科學(xué)家使用稱為“數(shù)據(jù)增強(qiáng) (DA)”的過(guò)程。
使用數(shù)據(jù)增強(qiáng),我們可以通過(guò)幾種增強(qiáng)技術(shù)來(lái)擴(kuò)展真實(shí)數(shù)據(jù)的大小。此過(guò)程在具有較小數(shù)據(jù)集和過(guò)擬合的模型的項(xiàng)目中是有益的。數(shù)據(jù)增強(qiáng)有助于提高模型的準(zhǔn)確性。
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型可以使用數(shù)據(jù)增強(qiáng)?梢栽鰪(qiáng)圖像、文本、音頻和視頻類型的數(shù)據(jù)。一些深度學(xué)習(xí)框架——Keras、Tensorflow、Pytorch 等具有內(nèi)置的增強(qiáng)功能,而許多開(kāi)源 Python 庫(kù)是專門為增強(qiáng)而開(kāi)發(fā)的。
針對(duì)不同數(shù)據(jù)類型的增強(qiáng)技術(shù):
圖像:圖像的增強(qiáng)技術(shù)允許縮放、翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、改變亮度/對(duì)比度/清晰度/模糊、顏色過(guò)濾等等。
文本:文本的增強(qiáng)技術(shù)通過(guò)單詞/句子改組、同義詞替換、釋義等來(lái)支持 NLP 任務(wù)。
音頻和視頻技術(shù)可以通過(guò)引入噪聲、改變速度等來(lái)增強(qiáng)數(shù)據(jù)。
圖像和文本數(shù)據(jù)增強(qiáng)
醫(yī)療保健、農(nóng)業(yè)、制造、汽車等領(lǐng)域的計(jì)算機(jī)視覺(jué)項(xiàng)目處理圖像處理,似乎受益于圖像數(shù)據(jù)增強(qiáng)。同樣,具有深度學(xué)習(xí)技術(shù)的自然語(yǔ)言處理 (NLP) 應(yīng)用程序也受益于文本數(shù)據(jù)增強(qiáng)。本文重點(diǎn)介紹圖像和文本增強(qiáng)。
所有生成的增強(qiáng)圖像和文本都是獨(dú)一無(wú)二的,我們可以使用增強(qiáng)技術(shù)的組合來(lái)構(gòu)建用于模型訓(xùn)練的多樣化數(shù)據(jù)集。
重要的是要了解,使用工具擴(kuò)充數(shù)據(jù)集是高效且容易的,但選擇適當(dāng)?shù)臄U(kuò)充選項(xiàng)或技術(shù)組合需要對(duì)手頭的真實(shí)數(shù)據(jù)集有很好的了解和一定程度的經(jīng)驗(yàn)。
有多個(gè)用于圖像和文本的 Python 數(shù)據(jù)增強(qiáng)庫(kù),但我們將在本文中探索“Augly”庫(kù)和一些增強(qiáng)技術(shù)。
什么是AugLy ?
AugLy 是 Facebook 最近推出的用于數(shù)據(jù)增強(qiáng)的 Python 開(kāi)源項(xiàng)目。AugLy 旨在提高 AI 模型在訓(xùn)練和評(píng)估期間的穩(wěn)健性。該庫(kù)包括四種模式(音頻、視頻、圖像和文本),并提供 100 多種數(shù)據(jù)增強(qiáng)方法。
在處理涉及音頻、視頻、圖像或文本數(shù)據(jù)集的機(jī)器學(xué)習(xí)或深度學(xué)習(xí)項(xiàng)目時(shí),該庫(kù)可以增加數(shù)據(jù)并提高模型的性能。
AugLy 是如何工作的?
四種模式的 AugLy 庫(kù)使用相同的接口;诤瘮(shù)的技術(shù)以及基于類的方法可用于數(shù)據(jù)增強(qiáng)。強(qiáng)度函數(shù)定義圖像變化的強(qiáng)度。當(dāng)調(diào)用 AugLy 函數(shù)時(shí),這些是使用參數(shù)定義的。為了更深入地了解數(shù)據(jù)是如何轉(zhuǎn)換的,該函數(shù)為用戶提供了轉(zhuǎn)換后的信息。
現(xiàn)在讓我們看看 AugLy 可用的一些數(shù)據(jù)增強(qiáng)技術(shù)。
使用 AugLy 進(jìn)行圖像數(shù)據(jù)增強(qiáng)
使用 pip 命令安裝 AugLy
pip install augly
上面的命令是下載使用圖像和文本模式所需的先決條件。
要安裝音頻和視頻格式的附加依賴項(xiàng),請(qǐng)使用以下命令
pip install augly[av]
pip 不安裝 python-magic。要安裝它,請(qǐng)運(yùn)行以下命令。某些環(huán)境需要運(yùn)行 AugLy
pip install python-magic-bin
如果你在 Google Colab 上運(yùn)行本教程并遇到“No matching distribution found for python-magic-bin”錯(cuò)誤,請(qǐng)改用此命令。
!sudo apt-get install python3-magic
對(duì)于 AugLy 的圖像子庫(kù),我們將從'augly.'中導(dǎo)入'imaugs'子模型。utils 用于導(dǎo)入示例圖像。
import os
import augly.image as imaugs
import augly.utils as utils
from IPython.display import display
在這里,我們定義了增強(qiáng)的圖像路徑。我們將使用鳥(niǎo)的示例圖像。
# Image path setting
input = '/content/bird.jpg'
圖像縮放
imaugs 的 AugLy 的'scale()' 函數(shù)可以用來(lái)縮放圖像。該方法需要一個(gè)重要的參數(shù)來(lái)定義表示小圖像或大圖像的圖像。如果將其設(shè)置為較低的值,則圖像會(huì)很小。否則,圖像被放大。
# Image Scaling with small factor
image = imaugs.scale(input, factor=0.1)
display(image)
# Image Scaling with large factor
image = imaugs.scale(input, factor=0.7)
display(image)
圖像模糊
使用此選項(xiàng),我們可以降低圖像清晰度,創(chuàng)建模糊圖像。
# Image Blurring
image = imaugs.blur(input, radius = 4.0)
display(image)
圖像亮度
使用此選項(xiàng),可以修改輸入圖像的亮度。
# Increasing Image Brightness
image = imaugs.brightness(input, factor=1.2)
display(image)
圖像暗度
我們可以降低亮度以使具有相同亮度特征的圖像更暗。
# Making Image Darker
image = imaugs.brightness(input, factor=0.3)
display(image)
圖像對(duì)比度
我們可以使用以下命令更改圖像的對(duì)比度。
# Changing Image Contrast
image = imaugs.contrast(input, factor=2.7)
display(image)
圖像翻轉(zhuǎn) - 水平和垂直
使用這些命令,我們可以水平和垂直翻轉(zhuǎn)圖像。
#horizontal flip
image_h(yuǎn) = imaugs.hflip(input)
display(image_h(yuǎn))
#vertical flip
image_v= imaugs.vflip(input)
display(image_v)
圖像灰度要將圖像更改為灰度,我們可以使用以下命令
#Grayscale image
image = imaugs.grayscale(input)
display(image)
圖像退化(椒鹽噪聲)
要向輸入圖像添加噪聲,請(qǐng)使用
# Degrading Image Pixels
image = imaugs.shuffle_pixels(input, factor=0.3)
display(image)
圖像傾斜
此功能以隨機(jī)角度傾斜圖像。
# Image skew
image = imaugs.skew(input)
display(image)
圖像透視變換
我們可以通過(guò)定義 sigma 值(即標(biāo)準(zhǔn)偏差)來(lái)執(zhí)行圖像轉(zhuǎn)換。較高的 sigma 值將意味著更強(qiáng)烈的圖像轉(zhuǎn)換。
# Image Perspective Transform
aug = imaugs.PerspectiveTransform(sigma=20.0)
image=aug(input)
display(image)
圖像縱橫比
使用這種技術(shù),我們可以控制縱橫比,即圖像的高度和寬度。
#Changing Aspect Ratio
aug = imaugs.RandomAspectRatio()
image=aug(input)
display(image)
圖像裁剪
可以使用以下命令將圖像裁剪為必要的像素大小 -
# Cropping Image
image = imaugs.crop(input,x1=0.2,x2=0.8,y1=0.2,y2=0.8)
display(image)
使用 AugLy 創(chuàng)建模因
使用“meme format()”技術(shù),AugLy 可用于創(chuàng)建模因。這種方法通過(guò)提供文本和圖像來(lái)生成代表模因的圖像。
例如,使用的圖像包含文本“LOL”。下面的代碼片段運(yùn)行“meme_format()”函數(shù)并轉(zhuǎn)換圖像。
# Creating a meme
display(
imaugs.meme_format(
input,
caption_h(yuǎn)eight=75,
meme_bg_color=(0, 0, 0),
text_color=(255, 255, 255),
)
)
'caption_h(yuǎn)eight'、'meme_bg_color' 和 'text_color' 等參數(shù)用于自定義 meme 的顯示方式。黑色的 RGB 是 (0, 0, 0),而白色的 RGB 是 (256, 256, 256)。
將圖像轉(zhuǎn)換為屏幕截圖
'Compose()' 方法用于改變圖像的外觀。此函數(shù)需要更多參數(shù)來(lái)進(jìn)行新轉(zhuǎn)換,例如飽和度和應(yīng)用于圖像的疊加類型。
# Applying several transformations together to create a new image
aug = imaugs.Compose(
[
imaugs.Saturation(factor=0.7),
imaugs.OverlayOntoScreenshot(
template_filepath=os.path.join(
utils.SCREENSHOT_TEMPLATES_DIR, "web.png"
),
),
imaugs.Scale(factor=0.9),
]
)
display(aug(input))
AugLy 提供了更多的增強(qiáng)技術(shù)。你可以通過(guò)使用下面的命令來(lái)探索這些,了解它們,并將它們與你的圖像一起使用。
help(imaugs)
使用 AugLy 進(jìn)行文本數(shù)據(jù)增強(qiáng)
第一步是導(dǎo)入包含文本數(shù)據(jù)增強(qiáng)方法的文本模態(tài)。
import augly.text as textaugs
然后,進(jìn)行示例文本輸入。
# Sample text
txt = "Hello, Good Morning! How are you?"
在每個(gè)文本中,“simulates_typos”函數(shù)可用于通過(guò)拼寫錯(cuò)誤、鍵盤距離和交換方法來(lái)增加文本數(shù)據(jù)。
aug_tx = textaugs.simulate_typos(txt)
print(aug_tx)
我們可以在每個(gè)輸入文本中添加標(biāo)點(diǎn)符號(hào)。
print(textaugs.insert_punctuation_chars(txt))
AugLy 的“replace_bidirectional”方法反轉(zhuǎn)每個(gè)輸入文本中的每個(gè)單詞或單詞的一部分,并使用雙向標(biāo)記以原始序列生成它。它單獨(dú)反轉(zhuǎn)每個(gè)單詞,即使換行也能保持單詞順序。print(textaugs.replace_bidirectional(txt))
AugLy 的“replace_upside_down”函數(shù)根據(jù)粒度將文本中的單詞倒置。print(textaugs.replace_upside_down(txt))
結(jié)論
在本文中,我們介紹了數(shù)據(jù)增強(qiáng)在改進(jìn)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型中的作用。此外,我們看到了不同的圖像和文本增強(qiáng)技術(shù)。AugLy庫(kù)支持多種增強(qiáng)技術(shù)。我們從 AugLy 庫(kù)中探索了其中的一些。
本文的主要內(nèi)容:
· 數(shù)據(jù)增強(qiáng)可以克服數(shù)據(jù)短缺,因?yàn)樗试S從可用的真實(shí)數(shù)據(jù)中擴(kuò)展數(shù)據(jù)集。
· 數(shù)據(jù)增強(qiáng)可以提高模型性能并使其更加可靠。
· 可以使用數(shù)據(jù)增強(qiáng)庫(kù)來(lái)增強(qiáng)圖像、文本、音頻和視頻格式的數(shù)據(jù)。有幾個(gè)專門為數(shù)據(jù)增強(qiáng)而開(kāi)發(fā)的開(kāi)源 Python 庫(kù)。
· AugLy 是 Facebook 開(kāi)發(fā)的開(kāi)源數(shù)據(jù)增強(qiáng)庫(kù),支持 100 多種增強(qiáng)技術(shù),并且易于初學(xué)者使用,是不同類型數(shù)據(jù)的不錯(cuò)選擇。
上面討論的增強(qiáng)的代碼可在我的 GitHub 存儲(chǔ)庫(kù)中找到。你可以嘗試本文中分享的增強(qiáng)功能或探索 AugLy 庫(kù)中的其他增強(qiáng)功能。
原文標(biāo)題 : 了解使用AugLy的數(shù)據(jù)增強(qiáng)
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書(shū)》
-
精彩回顧立即查看>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
- 1 【一周車話】沒(méi)有方向盤和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無(wú)人駕駛車,還未迎來(lái)“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 打完“價(jià)格戰(zhàn)”,大模型還要比什么?
- 6 馬斯克致敬“國(guó)產(chǎn)蘿卜”?
- 7 神經(jīng)網(wǎng)絡(luò),誰(shuí)是盈利最強(qiáng)企業(yè)?
- 8 比蘋果偉大100倍!真正改寫人類歷史的智能產(chǎn)品降臨
- 9 諾獎(jiǎng)進(jìn)入“AI時(shí)代”,人類何去何從?
- 10 Open AI融資后成萬(wàn)億獨(dú)角獸,AI人才之爭(zhēng)開(kāi)啟
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市