2017-01-02 4 views
5

Я экспериментирую с глубоким изучением изображений. У меня около ~ 4000 изображений с разных камер с различными условиями освещения, разрешениями изображения и углом обзора.Предварительная обработка изображения в глубоком обучении

Мой вопрос: Какая предварительная обработка изображения была бы полезной для улучшения обнаружения объекта? (Например: нормализация контраста/цвета, шумоподавление и т. Д.)

+2

Никто не мог ответить на этот вопрос, если не взглянул на ваши данные. как правило, с глубоким обучением не требуется. ваша модель может узнать, как адаптироваться к изменениям в ваших данных, если у вас достаточно данных. – Feras

+0

Да, я знаю, что мой вопрос был слишком общим, но ваш ответ помог мне. Мой реальный вопрос: насколько чувствительным является глубокое обучение качеству изображения? – Norbert

+1

У глубокой сети или Си-Эн-Эн есть фильтры, которые, как правило, учатся в вашем наборе данных. у большого количества данных и разнообразия у вас будет более надежная система. конечно, он чувствителен, если ваш целевой домен отличается от вашего домена обучения. – Feras

ответ

1

Для предварительной обработки изображений перед подачей их в нейронные сети. Лучше сделать данные Zero Centered. Затем попробуйте технику нормализации. Это, безусловно, увеличит точность, поскольку данные масштабируются в диапазоне, чем сколь угодно большие значения или слишком маленькие значения.

Пример изображения будет: -

enter image description here

Вот объяснение этого из Стэнфордского CS231n 2016 г. Лекции.

*

Нормализация относится к нормализации размеров данных, так что они имеют приблизительно тот же масштаб. Для данных изображения Существует два общих способа достижения этой нормализации. Один из них состоит в том, чтобы разделить каждый размер на его стандартное отклонение, когда он был центрирован с нулевой точки:
(X /= np.std(X, axis = 0)). Другая форма этой предварительной обработки нормализует каждый размер, так что min и max вдоль размера равны -1 и 1 соответственно. Имеет смысл применять эту предварительную обработку, если у вас есть причина полагать, что разные входные функции имеют разные шкалы (или единицы), но они должны быть примерно одинаковой важности для алгоритма обучения. В случае изображений относительные масштабы пикселей уже приблизительно равны (и находятся в диапазоне от 0 до 255), поэтому нет необходимости выполнять этот дополнительный шаг предварительной обработки.

*

Ссылка для вышеуказанного экстракта: - http://cs231n.github.io/neural-networks-2/

0

Прочитайте this, надеюсь, это будет полезно. Идея состоит в том, чтобы разбить входное изображение на части. Это называется R-CNN (here - некоторые примеры). Для этого процесса существуют два этапа: обнаружение объектов и сегментация. Обнаружение объекта - это процесс, когда определенные объекты на переднем плане обнаруживаются путем наблюдения за изменениями в градиенте. Сегментация - это процесс, когда объекты объединяются в изображение с высокой контрастностью. Высококачественные детекторы изображений используют байесовскую оптимизацию, которая может обнаружить, что может произойти дальше, используя локальную точку оптимизации.

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

Надеюсь, что вся эта информация полезна для вас!

+2

Ответы только на связь, как правило, не рекомендуются. Пожалуйста, добавьте соответствующие детали из ссылки на ваш адрес. Ссылки могут со временем стать недействительными. – MeanGreen

+0

Спасибо за ваш ответ! На самом деле я экспериментирую с умением py-fast-rcnn, поэтому я слышал о R-CNN. Моя проблема заключается в том, что мой набор данных имеет переменное качество изображений, и реальный вопрос заключается в том, насколько важно глубокое обучение качеству изображения? – Norbert

0

Это, конечно, поздно ответ на этот пост, но мы надеемся, поможет кто наткнуться на этот пост.

Вот статья, которую я нашел в Интернете Image Data Pre-Processing for Neural Networks, хотя это, безусловно, было хорошим в статье о том, как следует обучать сеть.

Главная Суть статьи говорит

1) Поскольку данные (изображения) мало в NN должны быть соизмеримы по размеру изображения, что NN предназначен принимать, как правило, квадрат т.е. 100x100,250x250

2) Рассмотрим MEAN (левое изображение) и STANDARD DEVIATION (изображение справа) значение всех входных изображений в вашей коллекции определенного набора изображений

enter image description here

3) Нормализация входов изображений выполняется путем вычитания среднего значения из каждого пикселя, а затем деления результата на стандартное отклонение, что ускоряет конвергенцию при обучении сети. Это будет напоминать кривую Гаусса с центром в нуле enter image description here

4) сокращения РАЗМЕРНОСТЬ RGB в черно-белое изображение, нейронная производительность сети разрешено быть инвариантны к этому измерению, или сделать проблемное обучение более сговорчивым enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^