Компьютерное зрение является одной из ведущих областей в искусственном интеллекте (ИИ), которая изменила то, как машины воспринимают и интерпретируют визуальный мир вокруг нас.
По своей сути, компьютерное зрение в ИИ наделяет машины способностью понимать, анализировать и извлекать инсайты из визуальной информации, во многом подобно тому, как человеческий глаз и мозг работают в тандеме.
Здесь давайте подробно разберемся, что такое компьютерное зрение в искусственном интеллекте (ИИ), его приложения, модели, примеры, проблемы и многое другое.
Предыдущая статья: Что такое компьютерное зрение? Приложения, примеры, модели, проблемы
Предварительная обработка изображений означает подготовку изображений до того, как компьютер попытается их понять. Это все равно, что убедиться, что изображения представлены в формате, с которым компьютер может легко работать.
Представьте, что вы учите компьютер распознавать лица. Вы хотите убедиться, что все изображения лиц четкие, не слишком большие и не слишком маленькие, и не имеют отвлекающих цветов. Предварительная обработка изображений в computer vision помогает сделать снимки именно такими, на которых компьютер может учиться.
Допустим, вы учите компьютер распознавать кошек. Вы собираете фотографии кошек из разных мест, но они не все одинаковые. Некоторые из них слишком большие, некоторые слишком маленькие, а некоторые слишком яркие или слишком темные.
Если вы передадите эти фотографии непосредственно компьютеру, он может запутаться. Он может не понять, что маленькая темная кошка – это то же самое, что большая яркая кошка. Это все равно что пытаться учить кого-то в мутных очках; он может не видеть вещи ясно.
Теперь представьте, что перед началом обучения вы делаете все картинки одинакового размера, настраиваете цвета и следите за тем, чтобы они не были слишком яркими или темными. Это похоже на чистку очков перед началом обучения. Предварительная обработка изображений помогает компьютеру видеть вещи более четко и понимать: “О, на всех этих фотографиях изображены кошки, даже если они выглядят немного по-другому”.
Роль данных изображений в искусственном интеллекте сродни фундаменту здания — это фундаментально. Изображения служат основными входными данными для моделей искусственного интеллекта в таких задачах, как распознавание изображений, обнаружение объектов и даже медицинская диагностика.
В отличие от людей, компьютеры не могут интерпретировать изображения интуитивно; они полагаются на значения пикселей и шаблоны. Данные изображения предоставляют визуальную информацию, необходимую машинам для обучения и принятия решений.
Качество и разнообразие этих данных напрямую влияют на способность модели искусственного интеллекта обобщать и выполнять точные действия. По сути, данные изображений – это исходный материал, который при правильной обработке позволяет системам искусственного интеллекта “видеть” и постигать визуальный мир.
Работа с необработанными данными изображений сопряжена с рядом проблем для приложений искусственного интеллекта:
Ниже приведены наиболее распространенные методы предварительной обработки изображений в машинном обучении:
Значения пикселей представляют интенсивность изображения. Масштабирование гарантирует, что эти значения попадают в определенный диапазон (обычно от 0 до 1 или от -1 до 1), что делает вычисления более управляемыми и предотвращает преобладание больших значений.
Нормализация настраивает значения пикселей так, чтобы они имели среднее значение 0 и стандартное отклонение 1. Это повышает стабильность модели во время обучения, сохраняя значения в пределах стандартного диапазона, способствуя сходимости.
Изменение размера гарантирует, что все изображения в наборе данных будут иметь одинаковые размеры, что облегчает обучение модели. Это предотвращает вычислительные проблемы и позволяет модели равномерно изучать шаблоны в разных выборках.
Кадрирование фокусируется на определенных областях изображения, исключая несущественные детали. Это полезно для задач, где местоположение объекта имеет важное значение, оптимизируя способность модели распознавать конкретные особенности.
Расширение данных включает в себя создание вариаций существующих изображений путем применения таких преобразований, как поворот, переворачивание и масштабирование. Это разнообразит набор данных, улучшая способность модели обобщать и хорошо работать с невидимыми данными.
Цветовые пространства представляют способ кодирования цветов. RGB является общим для изображений, в то время как HSV разделяет информацию о цвете для лучшего манипулирования. Понимание и правильный выбор цветового пространства имеют решающее значение для конкретных задач.
Когда и зачем Преобразовывать цветовые пространства:
Шум, случайные изменения значений пикселей, могут вводить модели в заблуждение во время обучения и влиять на точность. Уменьшение шума важно для обеспечения фокусировки модели на значимых шаблонах.
Одним из методов предварительной обработки изображений для уменьшения шума является сглаживание по Гауссу. Он применяет размытие для уменьшения высокочастотного шума. Это все равно что наложить на изображение щадящий фильтр, устраняющий ненужные мелкие детали без потери основных характеристик, повышающий производительность модели в условиях шума.
Выравнивание гистограммы – это метод, который повышает контрастность изображения за счет перераспределения интенсивности пикселей. Он расширяет диапазон интенсивности, делая темные области темнее, а светлые – ярче, улучшая общую видимость и детализацию.
Извлечение объектов включает в себя захват основных шаблонов или особенностей из необработанных данных. При предварительной обработке изображений речь идет об определении отличительных характеристик изображения, таких как края или текстуры.
Извлечение объектов упрощает сложные данные изображения, предоставляя модели значимую информацию. Фокусируясь на соответствующих объектах, это снижает вычислительную нагрузку и помогает модели лучше обобщать, улучшая общее понимание и производительность.
Несбалансированные наборы данных, в которых некоторые классы содержат значительно меньше выборок, могут привести к смещению моделей. Методы решают эту проблему, гарантируя, что модель будет иметь сбалансированное представление всех классов во время обучения.
Растяжение сигмовидной мышцы включает применение функции сигмовидной мышцы к значениям пикселей. Эта функция сжимает или растягивает интенсивность пикселей, часто повышая контрастность средних тонов изображения.
Варианты использования:
Преобразование яркости пикселей включает в себя настройку яркости пикселей в изображении. Этого можно достичь, применяя математические операции к каждому значению пикселя, такие как сложение или умножение, чтобы сделать изображение ярче или темнее.
Варианты использования:
Гамма-коррекция – это нелинейная корректировка значений пикселей изображения. Это включает в себя повышение значения каждого пикселя до определенной мощности (гамма), что помогает контролировать общую яркость и контрастность, особенно в условиях низкой или высокой освещенности.
Варианты использования:
Гамма-коррекция – это нелинейная корректировка значений пикселей изображения. Это включает в себя повышение значения каждого пикселя до определенной мощности (гамма), что помогает контролировать общую яркость и контрастность, особенно в условиях низкой или высокой освещенности.
Варианты использования:
Геометрические преобразования изменяют пространственные отношения между пикселями. Обычные преобразования включают поворот, масштабирование, перемещение и сдвиг. Эти изменения могут быть применены для исправления искажений или увеличения набора данных для повышения надежности модели.
Варианты использования:
Преобразование Фурье преобразует изображение из его пространственной области в частотную. Оно представляет изображение в виде суммы синусоидальных составляющих, выявляя закономерности и частоты внутри изображения.
Варианты использования:
Обработка изображений имеет широкое применение в различных областях, улучшая интерпретацию, анализ и манипулирование визуальными данными:
Реализация предварительной обработки изображений имеет решающее значение для оптимизации производительности различных моделей искусственного интеллекта. Для достижения наилучших результатов в различных моделях могут потребоваться индивидуальные подходы к предварительной обработке.
Загружайте данные изображения, обеспечивая равномерное изменение размера и нормализацию значений пикселей.
Дополняйте данные с помощью таких методов, как поворот, переворачивание и масштабирование, чтобы повысить надежность модели.
Нормализуйте значения пикселей до стандартного диапазона (например, [0, 1] или [-1, 1]) для согласованного ввода данных по слоям.
Используйте такие методы, как заполнение и регулировка шага во время свертки, чтобы эффективно управлять пространственными размерами.
При использовании предварительно подготовленных CNN настройте предварительную обработку в соответствии с требованиями предварительно подготовленной модели. Например, некоторые модели могут ожидать ввода в определенном цветовом пространстве.
Для последовательных данных изображения (например, кадров видео) расположите изображения в последовательности для ввода RNN.
Применяйте методы увеличения времени, такие как дрожание или выборка кадров, чтобы имитировать изменения в последовательности.
Извлекайте релевантные объекты из каждого изображения, используя такие методы, как CNNs, или другие методы извлечения объектов, специфичных для конкретного изображения.
При использовании слоев с распределением по времени в RNN убедитесь, что предварительная обработка изображения применяется последовательно на всех временных этапах.
Управляйте переменной длиной последовательности, дополняя или маскируя изображения, обеспечивая единообразие входных данных модели.
При использовании предварительно обученных моделей для определения характеристик изображения адаптируйте предварительную обработку в соответствии с требованиями предварительно обученной модели.
Используйте библиотеки, специфичные для фреймворка (например, TensorFlow, PyTorch), для эффективной реализации этапов предварительной обработки.
Адаптируйте предварительную обработку на основе конкретных требований модели искусственного интеллекта и ее архитектуры.
Оптимизируйте предварительную обработку для приложений реального времени за счет минимизации вычислительных затрат.
Поэкспериментируйте с предварительной обработкой гиперпараметров (например, размера изображения, параметров увеличения) для достижения оптимальной производительности модели.
Когда делается снимок, его метаданные информируют компьютеры о том, как отобразить входное изображение, о том, как оно хранится на диске, с именем ориентации EXIF, присвоенным этим метаданным. Это справедливо и для моделей – если мы установили аннотированные рамки привязки к тому, как мы рассматривали изображение для ориентации. Тем не менее, наша модель видит изображение в другой ориентации; нам нужно быть более внимательными к модели.
Изменение размера изображения кажется простым, но есть вещи, о которых следует помнить. Немногие устройства получают изображения точно квадратной формы, хотя для многих топологий моделей требуются квадратные входные изображения. Увеличение размеров изображения, чтобы сделать его квадратным, является одним из вариантов, равно как и сохранение соотношения сторон изображения при добавлении дополнительных пикселей для заполнения вновь образовавшегося мертвого пространства.
Наша модель должна учитывать, что объект не всегда можно прочитать слева направо или сверху вниз, произвольно отразив его вокруг оси x или y. Перелистывание может быть нерациональным в обстоятельствах, зависящих от порядка, таких как расшифровка текста.
Изменение цвета – это один из видов преобразования изображения, применяемый ко всем изображениям. Случайные изменения также могут быть внесены в изображения только во время обучения в качестве дополнений. Часто каждое изображение подвергается масштабированию в оттенках серого, что изменяет цвет.
Если ожидается, что модель будет работать в различных условиях освещения, наиболее подходящим является случайное изменение яркости изображения на более яркое или более темное. Необходимо учитывать максимальный и минимальный уровни яркости в помещении.
Несколько инструментов и библиотек предлагают предварительную обработку изображений в приложениях искусственного интеллекта, упрощая задачи и повышая эффективность. Вот несколько популярных из них.:
import cv2
image = cv2.imread('image.jpg')
resized_image = cv2.resize(image, (new_width, new_height))
from PIL import Image
img = Image.open('image.jpg')
resized_img = img.resize((new_width, new_height))
from skimage import io, color, exposure
image = io.imread('image.jpg')
gray_image = color.rgb2gray(image)
equalized_image = exposure.equalize_hist(gray_image)
import tensorflow as tf
from tensorflow.keras.preprocessing import image
img = image.load_img('image.jpg', target_size=(new_width, new_height))
Пример использования:
from torchvision import transforms
from PIL import Image
transform = transforms.Compose([
transforms.Resize((new_width, new_height)),
transforms.ToTensor()
])
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")
Что такое поисковые системы? Поисковые системы – это сложные программные комплексы, предназначенные для поиска информации…
Интернет – это невероятное пространство возможностей, но одновременно и место, где за вашей онлайн-активностью может…
В современном цифровом мире защита конфиденциальности стала первостепенной задачей. Каждый день мы оставляем следы своей…
Что это такое? Анонимность в интернете – это состояние, при котором ваша личность и действия…
Фишинг – это одна из самых распространенных киберугроз, которая ежегодно обходится пользователям интернета в миллионы…
Что такое защита данных в облаке? Защита данных в облаке – это комплекс мер, направленных…