Pytorch: нормализовать набор данных изображения - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу нормализовать пользовательский набор данных изображений.Для этого мне нужно вычислить среднее и стандартное отклонение, перебирая набор данных.Как я могу нормализовать весь мой набор данных перед созданием набора данных?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Хорошо, давайте возьмем это изображение в качестве примера:

Test image: Lena

Первое, что вам нужно сделать, это решить, какую библиотеку вы хотите использовать:Подушка или OpenCV.В этом примере я буду использовать подушку:

from PIL import Image
import numpy as np

img = Image.open("test.jpg")
pix = np.asarray(img.convert("RGB")) # Open the image as RGB

Rchan = pix[:,:,0]  # Red color channel
Gchan = pix[:,:,1]  # Green color channel
Bchan = pix[:,:,2]  # Blue color channel

Rchan_mean = Rchan.mean()
Gchan_mean = Gchan.mean()
Bchan_mean = Bchan.mean()

Rchan_var = Rchan.var()
Gchan_var = Gchan.var()
Bchan_var = Bchan.var()

И результаты будут такими:

  • Значение красного канала: 134.80585625
  • Дисперсия красного канала: 3211.35843945
  • Зеленый канал означает: 81.0884125
  • Зеленый канал: 1672.63200823
  • Синий канал означает: 68.1831375
  • Синий канал: 1166.20433566

Надеюсь, это поможет вам.

0 голосов
/ 29 ноября 2018

То, что пытается сделать нормализация, - это поддерживать всю информацию в вашем наборе данных, даже если существуют различия в значениях, в случае изображений она пытается выделить некоторые проблемы, такие как яркость и контрастность, которые в определенных случаях не способствуютобщая информация, которую имеет изображение.Есть несколько способов сделать это, каждый со своими плюсами и минусами, в зависимости от того, какой набор изображений у вас есть, и усилий по обработке, которые вы хотите сделать для них, просто назвать несколько:

  • Линейная гистограммаstetching: где вы делаете линейную карту на текущем диапазоне значений в вашем изображении и соединяете ее, чтобы соответствовать значениям 0 и 255 в RGB
  • Нелинейная гистограмма: Когда вы используете нелинейную функцию для отображения входных пикселейк новому образу.Обычно используемые функции - это логарифмы и экспоненты.Моя любимая функция - функция кумулятивной вероятности исходной гистограммы, она работает довольно хорошо.
  • Адаптивная коррекция гистограммы: когда вы выполняете линейную гистограмму, растягивающуюся в определенных местах вашего изображения, чтобы избежать отображения идентичности там, где у вас естьмаксимальный диапазон значений в исходном изображении.
...