Глубокое обучение, вероятно, лучший выбор для такого рода задач. Попытки использования простого замещения цветов с большой вероятностью не сработают, поскольку они игнорируют контекстуальную информацию. Используя методы глубокого обучения, можно обучить модель "понимать" структуру и контекст на изображении, с тем чтобы более точно определить, какие области требуют перекраски.
Одной из возможных моделей машинного обучения для этой задачи является генеративно-состязательная сеть (GAN), которую можно обучить на основе отдельных примеров каждого цвета (например, зеленый автобус, желтый автобус и т.д.), и затем использовать обучееную модель для перекрашивания изображения с заданным цветом.
Конкретные шаги могут быть следующими:
1. Сначала вам нужно обучить сеть на парах изображений, где есть исходное изображение и его перекрашенная версия (это может быть сложной задачей, если у вас нет пар изображений, но возможно есть некоторые обходные пути, но они могут требовать дополнительной работы);
2. Затем передайте изображение, которое нужно перекрасить, в ваши обученные GAN. Как результат, GAN перекрашивают изображение в требуемый цвет;
3. Внутри вашего GAN, вы скорее всего захотите использовать какую-то форму условного генерирования, чтобы убедиться, что вы перекрашиваете только в правильные области и в правильный цвет.
Приемлемость результатов в значительной степени зависит от качества обучающих данных и самих моделей. Это определенно более сложный подход, но он подходит для сложных задач, таких как перекраска изображений.