Изменить цвет кожи программно - PullRequest
3 голосов
/ 27 июля 2010

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

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

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

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

Буду очень признателен за любые советы, потому что в настоящее время я не знаю, что делать.

1 Ответ

4 голосов
/ 28 января 2011

Вот несколько общих советов для начинающих.

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

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

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

Вообще, восхождение на холм - это что-то вроде:

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

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

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

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

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

...