當前位置:
首頁 > 知識 > 使用Python進行圖像增強

使用Python進行圖像增強

本文為 AI 研習社編譯的技術博客,原標題 :

Image Augmentation Examples in Python

翻譯 | 就2 校對 | 老趙 整理 | 志豪

https://towardsdatascience.com/image-augmentation-examples-in-python-d552c26f2873

Python中的圖像增強示例

我目前正在進行一項研究,審查圖像數據增強的深度和有效性。本研究的目標是在有限或者少量數據的情況下,學習如何增加我們的數據集大小,來訓練魯棒性卷積網路模型。

這項研究需要列出所有我們能想到的圖像增強方法,並窮舉所有這些組合,嘗試提高圖像分類模型的性能。首先出現在腦海中最簡單的圖片增強:是翻轉,平移,旋轉,縮放,隔離個別的r,g,b顏色通道,和添加噪音。更令人興奮的增強是使用生成對抗網路模型,或用遺傳演算法交換生成器網路,更有甚者在圖像中應用instagram風格的光照濾鏡、隨機區域銳化濾鏡、基於聚類技術的均值圖像增強等創新方法。

本文將向您展示如何使用NumPy對圖像進行增強。

下面是一些增強技術的列表和說明,如果你能想到任何其他方法來增強圖像,可提高圖像分類器的質量,請留下評論。

原始圖片(未增強)


增強

所有的增強都是在沒有OpenCV庫的情況下使用Numpy完成的

# Image Loading Code used for these examples

fromPILimportImage

importnumpyasnp

importmatplotlib.pyplotasplt

img = Image.open("./NIKE.png")

img = np.array(img)

plt.imshow(img)

plt.show()


翻轉

翻轉圖像是最流行的圖像數據增強方法之一。

這主要是由於翻轉代碼的簡單性以及對於大多數問題的直觀性,翻轉圖像會為模型增加價值。

下面的模型可以被認為是看到左鞋而不是右鞋,因此通過這種數據增加,模型對於看到鞋的潛在變化變得更加健壯。

#Flipping images with Numpy

flipped_img = np.fliplr(img)

plt.imshow(flipped_img)

plt.show()


平移

平移增強對檢測類分類器有很大價值。 這個分類模型試圖檢測鞋子何時在圖像中而不是在圖像中。

平移將有助於它在不看鞋架的整個鞋子的情況下拿起鞋子。

# Shifting Left

foriinrange(HEIGHT, 1, -1):

forjinrange(WIDTH):

if(i

img[j][i] = img[j][i-20]

elif(i

img[j][i] = 0

plt.imshow(img)

plt.show()

# Shifting Right

forjinrange(WIDTH):

foriinrange(HEIGHT):

if(i

img[j][i] = img[j][i+20]

plt.imshow(img)

plt.show()

# Shifting Up

forjinrange(WIDTH):

foriinrange(HEIGHT):

if(j 20):

img[j][i] = img[j+20][i]

else:

img[j][i] =

plt.imshow(img)

plt.show()

#Shifting Down

forjinrange(WIDTH,1,-1):

foriinrange(278):

if(j 20):

img[j][i] = img[j-20][i]

plt.imshow(img)

plt.show()


噪點

噪點是一種有趣的增強技術。 我已經看過很多關於對抗訓練的有趣論文,你可以將一些噪點投入到圖像中,因此模型無法正確分類。 但我仍然在尋找產生比下圖更好的噪點的方法。 添加噪點可能有助於光照畸變並使模型更加魯棒(編者就2:意思是這裡讓邊緣光照發生失真,讓尺度不變的情況下特徵轉變(SIFT),從而能增加魯棒性(SURF),使得識別更加準確 ,不過,看這文章的水平應該是我多慮了)。


GANs(生成對抗網路)

我已經收到很多關於研究使用Generative Adversarial Networks進行數據增強的興趣,下面是我能夠使用MNIST數據集生成的一些圖像。

正如我們從上面的圖片中可以看出的那樣,它們確實看起來像3 ,7和9。我目前在擴展網路架構方面遇到一些麻煩,以支持運動鞋的300x300x3尺寸輸出,而不是28x28x1 MNIST數字。

但是,我對這項研究感到非常興奮,並期待繼續這項研究!感謝您閱讀本文,希望您現在知道如何實現基本數據擴充以改進您的分類模型!

想要繼續查看該篇文章更多代碼、鏈接和參考文獻?

戳鏈接:

http://www.gair.link/page/TextTranslation/1088

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

上交大盧策吾團隊 AlphaPose 更新,頂級性能的實時姿態估計
「特徵工程」與「表示學習」

TAG:AI研習社 |