- Введение
- Что такое предварительная обработка изображений?
- Пример предварительной обработки изображения
- Роль данных изображений в искусственном интеллекте
- Проблемы с необработанными данными изображений
- Распространенные методы предварительной обработки изображений
- 1. Масштабирование и нормализация
- 2. Изменение размера и обрезка изображений
- 3. Увеличение изображения
- 4. Преобразование цветового пространства
- 5. Шумоподавление
- Передовые методы предварительной обработки изображений
- 1. Выравнивание гистограммы
- 2. Извлечение признаков
- 3. Устранение дисбаланса данных
- 4. Растяжение Сигмовидной кишки
- 5. Преобразования яркости пикселей (PBT)
- 6. Гамма-коррекция
- 6. Гамма-коррекция
- 7. Геометрические преобразования
- 8. Преобразование Фурье
- Приложения для обработки изображений
- 1. Медицинская визуализация
- 2. Дистанционное зондирование
- 3. Биометрия
- 4. Развлечения и средства массовой информации
- 5. Автомобильная промышленность
- 6. Безопасность и видеонаблюдение
- 7. Промышленная автоматизация
- 8. Сельское хозяйство
- 9. Искусственный интеллект и машинное обучение
- 10. Мониторинг окружающей среды
- 11. Розничная торговля и электронная коммерция
- 12. Образование
- Реализация предварительной обработки изображений в моделях искусственного интеллекта
- 1. Сверточные нейронные сети (CNN)
- 2. Рекуррентные нейронные сети (RNN) для последовательностей изображений
- 3. Общие соображения
- Этапы предварительной обработки изображений в глубоком обучении
- Инструменты и библиотеки предварительной обработки изображений
- 1. OpenCV
- Пример использования:
- 2. Pillow
- Пример использования:
- 3. scikit-Image
- Пример использования:
- 4. Тензорный поток и Keras
- Пример использования:
- 5. Пыторч
- 6. Изображение
- Пример использования:
Введение
Компьютерное зрение является одной из ведущих областей в искусственном интеллекте (ИИ), которая изменила то, как машины воспринимают и интерпретируют визуальный мир вокруг нас.
По своей сути, компьютерное зрение в ИИ наделяет машины способностью понимать, анализировать и извлекать инсайты из визуальной информации, во многом подобно тому, как человеческий глаз и мозг работают в тандеме.
Здесь давайте подробно разберемся, что такое компьютерное зрение в искусственном интеллекте (ИИ), его приложения, модели, примеры, проблемы и многое другое.
Предыдущая статья: Что такое компьютерное зрение? Приложения, примеры, модели, проблемы
Что такое предварительная обработка изображений?
Предварительная обработка изображений означает подготовку изображений до того, как компьютер попытается их понять. Это все равно, что убедиться, что изображения представлены в формате, с которым компьютер может легко работать.
Представьте, что вы учите компьютер распознавать лица. Вы хотите убедиться, что все изображения лиц четкие, не слишком большие и не слишком маленькие, и не имеют отвлекающих цветов. Предварительная обработка изображений в computer vision помогает сделать снимки именно такими, на которых компьютер может учиться.

- Предварительная обработка изображений в компьютерном зрении используется для выполнения операций с изображениями на самом низком уровне абстракции.
- Это не увеличивает информативность изображения, но уменьшает ее, если энтропия является информационной мерой.
Пример предварительной обработки изображения
Допустим, вы учите компьютер распознавать кошек. Вы собираете фотографии кошек из разных мест, но они не все одинаковые. Некоторые из них слишком большие, некоторые слишком маленькие, а некоторые слишком яркие или слишком темные.
- Без Предварительной обработки изображения:
Если вы передадите эти фотографии непосредственно компьютеру, он может запутаться. Он может не понять, что маленькая темная кошка – это то же самое, что большая яркая кошка. Это все равно что пытаться учить кого-то в мутных очках; он может не видеть вещи ясно.
- С Предварительной Обработкой изображений:
Теперь представьте, что перед началом обучения вы делаете все картинки одинакового размера, настраиваете цвета и следите за тем, чтобы они не были слишком яркими или темными. Это похоже на чистку очков перед началом обучения. Предварительная обработка изображений помогает компьютеру видеть вещи более четко и понимать: “О, на всех этих фотографиях изображены кошки, даже если они выглядят немного по-другому”.
Роль данных изображений в искусственном интеллекте
Роль данных изображений в искусственном интеллекте сродни фундаменту здания — это фундаментально. Изображения служат основными входными данными для моделей искусственного интеллекта в таких задачах, как распознавание изображений, обнаружение объектов и даже медицинская диагностика.
В отличие от людей, компьютеры не могут интерпретировать изображения интуитивно; они полагаются на значения пикселей и шаблоны. Данные изображения предоставляют визуальную информацию, необходимую машинам для обучения и принятия решений.
Качество и разнообразие этих данных напрямую влияют на способность модели искусственного интеллекта обобщать и выполнять точные действия. По сути, данные изображений – это исходный материал, который при правильной обработке позволяет системам искусственного интеллекта “видеть” и постигать визуальный мир.
Проблемы с необработанными данными изображений
Работа с необработанными данными изображений сопряжена с рядом проблем для приложений искусственного интеллекта:
- Различия в разрешении: Изображения могут иметь разное разрешение, что влияет на уровень детализации.
- Шум и искажения: Необработанные изображения часто содержат шум или искажения, влияющие на способность модели различать значимые шаблоны.
- Цветовые пространства: Изображения могут использовать различные цветовые представления (RGB, оттенки серого и т.д.), что требует стандартизации для согласованного анализа.
- Форматы файлов: Различные форматы (JPEG, PNG и т.д.) Могут усложнить обработку данных; стандартизация имеет решающее значение для бесперебойной обработки.
- Большие наборы данных: Изображения с высоким разрешением или обширные наборы данных могут напрягать вычислительные ресурсы во время обучения.
- Ограничения при хранении: Управление большими объемами необработанных данных изображений и их хранение сопряжены с логистическими проблемами.
- Дисбаланс классов: Некоторые категории в наборах данных изображений могут содержать значительно меньше выборок, что приводит к предвзятым результатам моделирования.
- Культурная предвзятость: Наборы данных могут непреднамеренно отражать предвзятость, присутствующую в процессе сбора данных, что влияет на справедливость модели.
- Накладные расходы на обработку: Сложные задачи обработки изображений, такие как изменение размера или аугментация, могут быть трудоемкими с точки зрения вычислений.
- Требования к работе в режиме реального времени: Некоторые приложения, такие как автономные транспортные средства, требуют быстрой обработки изображений, что создает проблемы для внедрения в режиме реального времени.
- Проблемы с медицинской визуализацией: Медицинские изображения могут потребовать специального обращения из-за их уникальных характеристик и соображений конфиденциальности.
- Факторы окружающей среды: На изображения, сделанные на открытом воздухе, могут влиять условия освещения, погода и другие факторы окружающей среды, что затрудняет анализ.
Распространенные методы предварительной обработки изображений
Ниже приведены наиболее распространенные методы предварительной обработки изображений в машинном обучении:
1. Масштабирование и нормализация
Значения пикселей представляют интенсивность изображения. Масштабирование гарантирует, что эти значения попадают в определенный диапазон (обычно от 0 до 1 или от -1 до 1), что делает вычисления более управляемыми и предотвращает преобладание больших значений.
Нормализация настраивает значения пикселей так, чтобы они имели среднее значение 0 и стандартное отклонение 1. Это повышает стабильность модели во время обучения, сохраняя значения в пределах стандартного диапазона, способствуя сходимости.
2. Изменение размера и обрезка изображений
Изменение размера гарантирует, что все изображения в наборе данных будут иметь одинаковые размеры, что облегчает обучение модели. Это предотвращает вычислительные проблемы и позволяет модели равномерно изучать шаблоны в разных выборках.
Кадрирование фокусируется на определенных областях изображения, исключая несущественные детали. Это полезно для задач, где местоположение объекта имеет важное значение, оптимизируя способность модели распознавать конкретные особенности.
3. Увеличение изображения
Расширение данных включает в себя создание вариаций существующих изображений путем применения таких преобразований, как поворот, переворачивание и масштабирование. Это разнообразит набор данных, улучшая способность модели обобщать и хорошо работать с невидимыми данными.
- Вращение: Вносит изменения путем поворота изображений.
- Переворачивание: зеркальное отображение изображений по горизонтали или вертикали.
- Масштабирование: настраивает масштаб изображения. Эти методы имитируют различные сценарии реального мира, повышая адаптивность модели.
4. Преобразование цветового пространства
Цветовые пространства представляют способ кодирования цветов. RGB является общим для изображений, в то время как HSV разделяет информацию о цвете для лучшего манипулирования. Понимание и правильный выбор цветового пространства имеют решающее значение для конкретных задач.
Когда и зачем Преобразовывать цветовые пространства:
- Когда: Преобразуйте, когда конкретная информация о цвете более актуальна в другом пространстве (например, HSV для определения тона кожи).
- Почему: Различные цветовые пространства обладают явными преимуществами; преобразование может улучшить определенные функции или упростить анализ в зависимости от требований задачи.
5. Шумоподавление
Шум, случайные изменения значений пикселей, могут вводить модели в заблуждение во время обучения и влиять на точность. Уменьшение шума важно для обеспечения фокусировки модели на значимых шаблонах.
Одним из методов предварительной обработки изображений для уменьшения шума является сглаживание по Гауссу. Он применяет размытие для уменьшения высокочастотного шума. Это все равно что наложить на изображение щадящий фильтр, устраняющий ненужные мелкие детали без потери основных характеристик, повышающий производительность модели в условиях шума.
Передовые методы предварительной обработки изображений
1. Выравнивание гистограммы
Выравнивание гистограммы – это метод, который повышает контрастность изображения за счет перераспределения интенсивности пикселей. Он расширяет диапазон интенсивности, делая темные области темнее, а светлые – ярче, улучшая общую видимость и детализацию.
- Примеры использования: Полезно при медицинской визуализации для лучшей визуализации структур, а также в сценариях, где улучшение детализации имеет решающее значение.
- Ограничения: Может усиливать шум в изображении и приводить к неестественному виду выходных данных. Необходимо тщательно продумать, чтобы избежать непреднамеренных артефактов.
2. Извлечение признаков
Извлечение объектов включает в себя захват основных шаблонов или особенностей из необработанных данных. При предварительной обработке изображений речь идет об определении отличительных характеристик изображения, таких как края или текстуры.
Извлечение объектов упрощает сложные данные изображения, предоставляя модели значимую информацию. Фокусируясь на соответствующих объектах, это снижает вычислительную нагрузку и помогает модели лучше обобщать, улучшая общее понимание и производительность.
3. Устранение дисбаланса данных
Несбалансированные наборы данных, в которых некоторые классы содержат значительно меньше выборок, могут привести к смещению моделей. Методы решают эту проблему, гарантируя, что модель будет иметь сбалансированное представление всех классов во время обучения.
- Передискретизация: Реплицирует выборки меньшего класса, чтобы сбалансировать распределение классов.
- Недостаточная выборка: Уменьшает количество выборок мажоритарного класса для достижения сбалансированного набора данных.
- Взвешивание классов: присваивает более высокие веса классам меньшинств, направляя модель уделять больше внимания недопредставленным категориям.
4. Растяжение Сигмовидной кишки
Растяжение сигмовидной мышцы включает применение функции сигмовидной мышцы к значениям пикселей. Эта функция сжимает или растягивает интенсивность пикселей, часто повышая контрастность средних тонов изображения.
Варианты использования:
- Улучшение видимости деталей на изображениях с низким или неравномерным контрастом.
- Улучшайте изображения для лучшего распознавания объектов.

5. Преобразования яркости пикселей (PBT)
Преобразование яркости пикселей включает в себя настройку яркости пикселей в изображении. Этого можно достичь, применяя математические операции к каждому значению пикселя, такие как сложение или умножение, чтобы сделать изображение ярче или темнее.
Варианты использования:
- Увеличение или затемнение определенных областей изображения.
- Адаптация изображений к различным условиям освещения.

6. Гамма-коррекция
Гамма-коррекция – это нелинейная корректировка значений пикселей изображения. Это включает в себя повышение значения каждого пикселя до определенной мощности (гамма), что помогает контролировать общую яркость и контрастность, особенно в условиях низкой или высокой освещенности.
Варианты использования:
- Коррекция изображений, снятых в неидеальных условиях освещения.
- Улучшение видимости на изображениях с низкой контрастностью.

6. Гамма-коррекция
Гамма-коррекция – это нелинейная корректировка значений пикселей изображения. Это включает в себя повышение значения каждого пикселя до определенной мощности (гамма), что помогает контролировать общую яркость и контрастность, особенно в условиях низкой или высокой освещенности.
Варианты использования:
- Коррекция изображений, снятых в неидеальных условиях освещения.
- Улучшение видимости на изображениях с низкой контрастностью.

7. Геометрические преобразования
Геометрические преобразования изменяют пространственные отношения между пикселями. Обычные преобразования включают поворот, масштабирование, перемещение и сдвиг. Эти изменения могут быть применены для исправления искажений или увеличения набора данных для повышения надежности модели.
Варианты использования:
- Выравнивание изображений для согласованного анализа.
- Генерация дополнительных обучающих данных путем увеличения.

8. Преобразование Фурье
Преобразование Фурье преобразует изображение из его пространственной области в частотную. Оно представляет изображение в виде суммы синусоидальных составляющих, выявляя закономерности и частоты внутри изображения.
Варианты использования:
- Анализ текстур и узоров изображений в частотной области.
- Отфильтровывание определенных частот, полезных для снижения уровня шума.

Приложения для обработки изображений
Обработка изображений имеет широкое применение в различных областях, улучшая интерпретацию, анализ и манипулирование визуальными данными:
1. Медицинская визуализация
- Рентгеновские снимки, компьютерная томография и магнитно-резонансная томография выигрывают от обработки изображений, помогая в диагностике заболеваний и планировании лечения.
- Повышение четкости медицинских изображений для лучшей визуализации анатомических структур.
2. Дистанционное зондирование
- Анализ спутниковых снимков для мониторинга окружающей среды, сельского хозяйства, городского планирования и борьбы со стихийными бедствиями.
- Извлечение информации о землепользовании, растительности и рельефе местности из аэрофотоснимков и спутниковых снимков.
3. Биометрия
- Идентификация и верификация отдельных лиц на основе черт лица в целях безопасности и аутентификации.
- Улучшение и анализ изображений отпечатков пальцев в целях идентификации.
4. Развлечения и средства массовой информации
- Применение фильтров, ретуши и спецэффектов в кино и фотографии.
- Создание иммерсивных впечатлений путем обработки и рендеринга реальных и виртуальных изображений.
5. Автомобильная промышленность
- Анализ и интерпретация изображений с камер для обнаружения объектов, отслеживания полосы движения и объезда препятствий.
- Повышение безопасности за счет таких функций, как адаптивный круиз-контроль и предотвращение столкновений.
6. Безопасность и видеонаблюдение
- Идентификация и отслеживание объектов или людей на кадрах видеонаблюдения.
- Оповещение систем безопасности о необычных действиях или событиях.
7. Промышленная автоматизация
- Проверка и анализ изображений произведенных изделий на наличие дефектов или отклонений.
- Руководство роботами в производственных процессах путем обработки визуальной информации.
8. Сельское хозяйство
- Анализ спутниковых или беспилотных снимков для оценки состояния сельскохозяйственных культур и выявления потенциальных проблем.
- Оптимизация использования ресурсов путем анализа изображений для целей орошения, внесения удобрений и борьбы с вредителями.
9. Искусственный интеллект и машинное обучение
- Обучающие модели для распознавания и классификации объектов на изображениях.
- Поиск и идентификация объектов на изображении.
10. Мониторинг окружающей среды
- Анализ спутниковых снимков для отслеживания изменений растительного покрова, ледяных шапок и вырубки лесов.
- Отслеживание популяций животных и закономерностей миграции с использованием данных изображений.
11. Розничная торговля и электронная коммерция
- Позволяет пользователям осуществлять поиск и совершать покупки на основе изображений, снятых камерой.
- Анализ изображений для отслеживания уровня запасов и управления ими.
12. Образование
- Содействие медицинскому образованию путем анализа оцифрованных слайдов патологии.
- Использование дополненной реальности для получения захватывающего образовательного опыта.
Реализация предварительной обработки изображений в моделях искусственного интеллекта
Реализация предварительной обработки изображений имеет решающее значение для оптимизации производительности различных моделей искусственного интеллекта. Для достижения наилучших результатов в различных моделях могут потребоваться индивидуальные подходы к предварительной обработке.
1. Сверточные нейронные сети (CNN)
- Загрузка и предварительная обработка данных:
Загружайте данные изображения, обеспечивая равномерное изменение размера и нормализацию значений пикселей.
Дополняйте данные с помощью таких методов, как поворот, переворачивание и масштабирование, чтобы повысить надежность модели.
- Стандартизация входных данных:
Нормализуйте значения пикселей до стандартного диапазона (например, [0, 1] или [-1, 1]) для согласованного ввода данных по слоям.
- Сверточные слои:
Используйте такие методы, как заполнение и регулировка шага во время свертки, чтобы эффективно управлять пространственными размерами.
- Передача обучения:
При использовании предварительно подготовленных CNN настройте предварительную обработку в соответствии с требованиями предварительно подготовленной модели. Например, некоторые модели могут ожидать ввода в определенном цветовом пространстве.
2. Рекуррентные нейронные сети (RNN) для последовательностей изображений
- Последовательность изображений:
Для последовательных данных изображения (например, кадров видео) расположите изображения в последовательности для ввода RNN.
- Временное Увеличение:
Применяйте методы увеличения времени, такие как дрожание или выборка кадров, чтобы имитировать изменения в последовательности.
- Извлечение признаков:
Извлекайте релевантные объекты из каждого изображения, используя такие методы, как CNNs, или другие методы извлечения объектов, специфичных для конкретного изображения.
- Слои, распределенные по времени:
При использовании слоев с распределением по времени в RNN убедитесь, что предварительная обработка изображения применяется последовательно на всех временных этапах.
- Заполнение и маскировка:
Управляйте переменной длиной последовательности, дополняя или маскируя изображения, обеспечивая единообразие входных данных модели.
- Передача знаний для функций изображения:
При использовании предварительно обученных моделей для определения характеристик изображения адаптируйте предварительную обработку в соответствии с требованиями предварительно обученной модели.
3. Общие соображения
- Реализации, ориентированные на конкретный фреймворк:
Используйте библиотеки, специфичные для фреймворка (например, TensorFlow, PyTorch), для эффективной реализации этапов предварительной обработки.
- Требования к конкретной модели:
Адаптируйте предварительную обработку на основе конкретных требований модели искусственного интеллекта и ее архитектуры.
- Обработка в режиме реального времени:
Оптимизируйте предварительную обработку для приложений реального времени за счет минимизации вычислительных затрат.
- Настройка гиперпараметра:
Поэкспериментируйте с предварительной обработкой гиперпараметров (например, размера изображения, параметров увеличения) для достижения оптимальной производительности модели.
Этапы предварительной обработки изображений в глубоком обучении
- Ориентация
Когда делается снимок, его метаданные информируют компьютеры о том, как отобразить входное изображение, о том, как оно хранится на диске, с именем ориентации EXIF, присвоенным этим метаданным. Это справедливо и для моделей – если мы установили аннотированные рамки привязки к тому, как мы рассматривали изображение для ориентации. Тем не менее, наша модель видит изображение в другой ориентации; нам нужно быть более внимательными к модели.
- Изменить Размер
Изменение размера изображения кажется простым, но есть вещи, о которых следует помнить. Немногие устройства получают изображения точно квадратной формы, хотя для многих топологий моделей требуются квадратные входные изображения. Увеличение размеров изображения, чтобы сделать его квадратным, является одним из вариантов, равно как и сохранение соотношения сторон изображения при добавлении дополнительных пикселей для заполнения вновь образовавшегося мертвого пространства.
- Случайные Перевороты
Наша модель должна учитывать, что объект не всегда можно прочитать слева направо или сверху вниз, произвольно отразив его вокруг оси x или y. Перелистывание может быть нерациональным в обстоятельствах, зависящих от порядка, таких как расшифровка текста.
- Оттенки серого
Изменение цвета – это один из видов преобразования изображения, применяемый ко всем изображениям. Случайные изменения также могут быть внесены в изображения только во время обучения в качестве дополнений. Часто каждое изображение подвергается масштабированию в оттенках серого, что изменяет цвет.
- Различная Экспозиция
Если ожидается, что модель будет работать в различных условиях освещения, наиболее подходящим является случайное изменение яркости изображения на более яркое или более темное. Необходимо учитывать максимальный и минимальный уровни яркости в помещении.
Инструменты и библиотеки предварительной обработки изображений
Несколько инструментов и библиотек предлагают предварительную обработку изображений в приложениях искусственного интеллекта, упрощая задачи и повышая эффективность. Вот несколько популярных из них.:
1. OpenCV
- Обширная библиотека для задач компьютерного зрения.
- Поддерживает чтение изображений, манипулирование ими и базовую предварительную обработку.
- Широко используется для таких задач, как изменение размера, обрезка и преобразование цветового пространства.
Пример использования:
import cv2
image = cv2.imread('image.jpg')
resized_image = cv2.resize(image, (new_width, new_height))
2. Pillow
- Библиотека обработки изображений на Python.
- Поддерживает открытие, манипулирование и сохранение различных форматов файлов изображений.
- Полезно для базовых преобразований изображений, таких как изменение размера и обрезка.
Пример использования:
from PIL import Image
img = Image.open('image.jpg')
resized_img = img.resize((new_width, new_height))
3. scikit-Image
- Часть экосистемы scikit-learn, ориентированной на обработку изображений.
- Предоставляет инструменты для сегментации, фильтрации и извлечения признаков.
- Полезно для сложных задач предварительной обработки изображений.
Пример использования:
from skimage import io, color, exposure
image = io.imread('image.jpg')
gray_image = color.rgb2gray(image)
equalized_image = exposure.equalize_hist(gray_image)
4. Тензорный поток и Keras
- Модуль tf.image от TensorFlow и Keras предоставляют функции для предварительной обработки изображений.
- Интеграция с моделями глубокого обучения для сквозных рабочих процессов.
- Поддерживает слои увеличения, нормализации и пользовательской предварительной обработки.
Пример использования:
import tensorflow as tf
from tensorflow.keras.preprocessing import image
img = image.load_img('image.jpg', target_size=(new_width, new_height))
5. Пыторч
- Библиотека torchvision от PyTorch предлагает инструменты для предварительной обработки изображений.
- Интеграция с моделями PyTorch для бесшовной предварительной обработки.
- Поддерживает общие задачи, такие как увеличение данных.
Пример использования:
from torchvision import transforms
from PIL import Image
transform = transforms.Compose([
transforms.Resize((new_width, new_height)),
transforms.ToTensor()
])
6. Изображение
- Упрощенная библиотека для работы с задачами компьютерного зрения.
- Построен поверх TensorFlow и Keras.
- Предоставляет предварительно обученные модели и упрощает такие задачи, как обнаружение объектов.
Пример использования:
from imageai.Detection import ObjectDetection
detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath("path/to/model.h5")
detector.loadModel()
detections = detector.detectObjectsFromImage(input_image="image.jpg", output_image_path="detected_image.jpg")