2010-07-27 4 views
2

Есть ли у кого-нибудь информация или советы по настройке одного изображения, чтобы оттенки кожи в нем соответствовали изображению другого изображения?Изменить цвет кожи программно

Это немного неясный вопрос, но я надеялся, что кто-то столкнется с этой проблемой раньше! Цель этого сделать так, чтобы я мог заменить лицо на одном изображении лицом из другого, используя Python (или любой язык, только если он программно).

я нашел несколько статей, связанных с темой:

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

Любой совет будет очень благодарен, потому что я в настоящее время не понимаю, что делать.

+0

+1 для ссылки на документы. Я снял первый и обнаружил, что это тоже над моей головой. Я думаю, что хороший подход для вас попытается просмотреть ссылки и посмотреть, какие прошлые документы они приводят, в частности, в разделе 4.2. Если вы вернетесь достаточно далеко, вы можете найти что-то более понятное или, по крайней мере, поможет вам понять новые подходы. – misha

ответ

2

Вот несколько общих советов высокого уровня о том, как начать работу.

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

  1. Создайте функцию подсчета очков, которая может рассказать вам о том, насколько хорош результат. Чем больше число, тем лучше.
  2. Создайте функцию, которая принимает входные данные и некоторые параметры, и производит вывод, который может быть набран.
  3. Это важно: функция подсчета очков должна быть несколько непрерывной на основе параметров для # 2. Если у вас было два параметра, и они были построены в 3D (param1, param2, score), это выглядело бы как ухабистая поверхность с большими холмами.
  4. Теперь ваша задача - найти максимум на поверхности. У вас может быть более двух параметров - в этом случае у вас есть N-D поверхность, но идея одна и та же

Посмотрите, как поднимаются горы, генетические алгоритмы или проблемы оптимизации. Хорошая книга python с кодом - «Программирование коллективного интеллекта» Тоби Сегарана.

Вообще пониженное что-то вроде:

  1. сделать хорошую догадку параметров
  2. Создать вывод и оценка
  3. Измените один параметр несколько
  4. Score выхода
  5. Если лучше идти в этом направлении, если это хуже, измените направление.
  6. Если вы застряли - пойдите в другое место на поверхности и попробуйте там.
  7. Если вы нашли локальный максимум, но это не достаточно хорошо - куда-нибудь еще и попытаться там

Посмотрите реальные алгоритмы, хотя они несколько более сложным, чем это.

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

Использование этой общей схемы - просто попробуйте яркость/контрастность в качестве функции генерации выходного сигнала (яркость и контрастность являются входами). Для подсчета очков вам понадобится способ сравнения двух фотографий для матча - чтобы начать, выберите что-то простое (возможно, жесткий код для проверки).

Как только вы это сделаете, вы получите больше информации о том, как это сделать, и можете вернуться к документам для идей.