<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
影象分類器通常在訓練更多的影象時表現得更好。在影象分類模型中,一個常見的問題是,模型不能正確地對影象進行分類,只是因為它沒有針對同一影象的不同方向進行訓練。這可以通過向模型提供多種可能的影象方向和轉換來克服。
然而,在現實中,收集這些不同的資料可能需要更多的時間、資源和專業知識,而且對公司來說成本可能很高。在這種情況下,影象資料增強是一個流行的選擇,通過使用一個或多個增強技術來生成用於訓練的各種影象,從而為現有資料集增加多樣性。
儘管一些Python庫支援多種增強技術,但並不是所有的技術都適合訓練模型。使用者需要知道哪些增強技術可以幫助生成用於訓練模型的實際附加資料。
可以使用各種技術來增強影象資料。它可以包括:
Imgaug 是一個開源 python 包,可讓你在機器學習實驗中增強影象。它適用於各種增強技術。它有一個簡單而強大的介面,可以增強影象、地標、邊界框、熱圖和分割圖。
首先使用 pip 安裝這個庫。
pip install imgaug
接下來,使用 pip 命令在命令提示字元下安裝名為“IPyPlot”的 python 包:
pip install ipyplot
IPyPlot 是一個 Python 工具,允許在 Python Notebook 單元格中快速高效地顯示影象。這個包將 IPython 與 HTML 相結合,以提供一種更快、更豐富、更具互動性的方式來顯示影象。這個包的 'plot_images' 命令將用於以網格狀結構繪製所有影象。
此外,將匯入擴充資料所需的所有必要包。
import imageio import imgaug as ia import imgaug.augmenters as iaa 增強的影象路徑在此處定義。將使用鳥類影象作為範例。 input_img = imageio.imread('../input/image-bird/bird.jpg')
可以使用下面的命令水平和垂直翻轉影象。以下程式碼中的“Fliplr”關鍵字水平翻轉影象。同樣,關鍵字“Flipud”垂直翻轉影象。
#Horizontal Flip hflip= iaa.Fliplr(p=1.0) input_hf= hflip.augment_image(input_img) #Vertical Flip vflip= iaa.Flipud(p=1.0) input_vf= vflip.augment_image(input_img) images_list=[input_img, input_hf, input_vf] labels = ['Original', 'Horizontally flipped', 'Vertically flipped'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
每個影象被翻轉的概率由 p 表示。預設情況下,概率設定為 0.0。要水平翻轉輸入影象,請使用 Fliplr(1.0) 。同樣,當垂直翻轉影象時,使用 Flipud(1.0) 。
通過以度為單位定義旋轉,可以旋轉影象。
rot1 = iaa.Affine(rotate=(-50,20)) input_rot1 = rot1.augment_image(input_img) images_list=[input_img, input_rot1] labels = ['Original', 'Rotated Image'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
裁剪影象包括從影象的側面移除畫素的列或行,可以從全尺寸輸入影象中提取較小尺寸的子影象。要刪除的畫素數可以以絕對數或影象大小的一部分指定。
在這種情況下,使用從連續間隔 [0.0, 0.3] 中均勻獲取的隨機分數裁剪影象的每一側,並在每個影象和每側取樣一次。在這裡,為頂部取 0.3 的取樣分數,這會將影象裁剪 0.3*H,其中 H 是輸入影象的高度。
crop1 = iaa.Crop(percent=(0, 0.3)) input_crop1 = crop1.augment_image(input_img) images_list=[input_img, input_crop1] labels = ['Original', 'Cropped Image'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
該增強器將高斯噪聲新增到輸入影象。尺度值是產生噪聲的正態分佈的標準偏差。
noise=iaa.AdditiveGaussianNoise(10,40) input_noise=noise.augment_image(input_img) images_list=[input_img, input_noise] labels = ['Original', 'Gaussian Noise Image'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
該增強器以 -40 到 40 度範圍內的隨機量剪下影象。
shear = iaa.Affine(shear=(-40,40)) input_shear=shear.augment_image(input_img) images_list=[input_img, input_shear] labels = ['Original', 'Image Shearing'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
該增強器通過縮放畫素值來調整影象對比度。
contrast=iaa.GammaContrast((0.5, 2.0)) contrast_sig = iaa.SigmoidContrast(gain=(5, 10), cutoff=(0.4, 0.6)) contrast_lin = iaa.LinearContrast((0.6, 0.4)) input_contrast = contrast.augment_image(input_img) sigmoid_contrast = contrast_sig.augment_image(input_img) linear_contrast = contrast_lin.augment_image(input_img) images_list=[input_img, input_contrast,sigmoid_contrast,linear_contrast] labels = ['Original', 'Gamma Contrast','SigmoidContrast','LinearContrast'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
GammaContrast 函數使用公式 255*((v/255)**gamma 調整影象對比度,其中 v 是畫素值,gamma 從範圍 [0.5, 2.0] 中均勻取樣。
SigmoidContrast 使用公式 255*1/(1+exp(gain*(cutoff-v/255)) 調整影象對比度 (其中v為畫素值,gain 從區間[3, 10]開始均勻取樣(每張影象一次),截斷取樣與區間 [0.4, 0.6] 一致。
LinearContrast 使用公式 127 + alpha*(v-127) 改變影象對比度,其中 v 是畫素值,alpha 從 [0.4, 0.6] 範圍內均勻取樣。
“ElasticTransformation”增強器通過使用位移場在區域性移動畫素來變換影象。增強器的引數是 alpha 和 sigma。位移的強度由 alpha 控制,其中較大的值表示畫素移動得更遠。位移的平滑度由 sigma 控制,其中較大的值會導致更平滑的圖案。
elastic = iaa.ElasticTransformation(alpha=60.0, sigma=4.0) polar = iaa.WithPolarWarping(iaa.CropAndPad(percent=(-0.2, 0.7))) jigsaw = iaa.Jigsaw(nb_rows=20, nb_cols=15, max_steps=(3, 7)) input_elastic = elastic.augment_image(input_img) input_polar = polar.augment_image(input_img) input_jigsaw = jigsaw.augment_image(input_img) images_list=[input_img, input_elastic,input_polar,input_jigsaw] labels = ['Original', 'elastic','polar','jigsaw'] ipyplot.plot_images(images_list,labels=labels,img_width=180)
在使用“Polar Warping”增強器時,首先在極座標表示中應用裁剪和填充,然後再將其扭轉回笛卡爾表示。這個增強器可以為影象新增額外的畫素。這些將被黑色畫素填充。此外,“Jigsaw”增強以類似於拼圖模式的方式移動圖片內的單元格。
Imgaug 還為影象提供邊界框支援。如果在增強期間旋轉,該庫可以旋轉影象上的所有邊界框。
from imgaug.augmentables.bbs import BoundingBox, BoundingBoxesOnImage bbs = BoundingBoxesOnImage([ BoundingBox(x1=40, x2=550, y1=40, y2=780) ], shape=input_img.shape) ia.imshow(bbs.draw_on_image(input_img))
到此這篇關於Python影象增強imgaug的文章就介紹到這了,更多相關Python影象增強imgaug內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45