Разделение яркости и цветности в пространстве Lab
Работать напрямую с цветовой моделью RGB в этой задаче нельзя. В RGB каналы сильно коррелируют между собой, поэтому изменение яркости неизбежно искажает цветовой тон. Твою реализацию нужно строить на переходе в пространство CIELAB или YCbCr. В модели Lab канал L отвечает исключительно за освещённость от нуля до ста, сохраняя исходный монохромный снимок без малейших правок. Алгоритм K-средних должен работать только с подбором значений хроматических каналов a и b. Опиши формулы пересчёта через матричные преобразования промежуточного пространства CIE XYZ с указанием точки белого D65.
Формирование вектора признаков для кластеризации
Скалярного значения яркости пикселя категорически мало для надёжного подбора цвета. Тёмно-синее вечернее небо, глубокая тень на траве и тёмный костюм человека могут иметь абсолютно одинаковую яркость в канале L. Каждому пикселю нужно сопоставить многомерный вектор признаков, по которому алгоритм Ллойда будет искать центроиды.
- Среднее значение яркости в скользящем окне размером 5х5 пикселей для сглаживания высокочастотного шума матрицы.
- Стандартное отклонение яркости в окрестности пикселя для отделения гладких поверхностей вроде неба или воды от шероховатых текстур листвы или асфальта.
- Отклик фильтров Собеля или фильтров Габора для фиксации направленности контуров и плотности перепадов полутонов.
- Пространственные координаты пикселя с нормирующим весовым коэффициентом для предотвращения резких цветовых скачков внутри одного объекта.
Алгоритм переноса цвета с изображения-донора
Классический K-means не генерирует новые цвета из ниоткуда. В курсовой работе необходимо реализовать схему переноса цвета с эталонного цветного изображения похожей сцены (метод Welsh, Ashikhmin, Shirley). Сначала ты обучаешь модель на цветном кадре, вычисляя векторы признаков для пикселей и находя K центроидов вместе со средними значениями каналов a и b для каждого кластера. Затем вектор признаков каждого пикселя целевой чёрно-белой фотографии сопоставляется с ближайшим центроидом в пространстве признаков, после чего пикселю присваиваются цветности этого кластера. Обязательно протестируй работу при разных значениях K от 4 до 32 и покажи зависимость времени сходимости от объёма обучающей выборки.
Метрики качества и критерии преподавателя
Преподаватель на защите будет оценивать не столько визуальную привлекательность получившейся картинки, сколько математическую строгость эксперимента. Чтобы объективно подтвердить работоспособность программы, возьми цветные тестовые снимки, программно обесцветь их, запусти свою процедуру раскраски и сравни результат с оригиналом. Рассчитай пиковое отношение сигнала к шуму PSNR и индекс структурного сходства SSIM отдельно для каналов цветности. Также подготовь замеры производительности: построение матрицы расстояний для миллионов пикселей на чистом Python выполняется медленно, поэтому покажи оптимизацию через векторизацию в NumPy или выборку опорных точек.
Частые вопросы
Где брать тестовые наборы изображений?
Используй стандартные бенчмарки компьютерного зрения: датасет Kodak Lossless True Color Image Suite (24 кадра высокого качества) или выборку BSDS500 (Berkeley Segmentation Dataset). В них представлены сцены с выраженными природными и архитектурными текстурами.
Как устранить цветовую пятнистость на границах объектов?
Примени постобработку полученных каналов a и b с помощью билатерального фильтра (Bilateral Filter) или фильтра с сохранением краёв (Guided Filter). Они сглаживают цветовую карту внутри сегмента, не допуская перетекания цвета через границы перепада яркости канала L.