python-以编程方式更改肤色

是否有人对调整一个图像有任何信息或建议,以使其中的肤色与另一幅图像相匹配?

这个问题有点晦涩难懂,但我希望以前会有人遇到过这个问题!我这样做的目的是使我可以使用Python(或任何语言,只要通过编程即可)将一张图像中的一张脸替换为另一张图像中的一张脸.

我发现了与该主题相关的几篇论文:

> Face Swapping: Automatically Replacing Faces in Photographs(pdf)(另请参阅:Their website)
> Face Relighting with Radiance Environment Maps(pdf)
> Face Re-Lighting from a Single Image under Harsh Lighting Conditions(pdf)

但是,内容超出了我的范围,因此我无法根据他们的发言来确切确定要做什么.

任何形式的建议将不胜感激,因为我目前对所要做的事情一无所知.

解决方法:

以下是有关入门的一些一般性高级建议.

基本上,您正在做的是优化问题.这些算法用于很多问题,并且有几种众所周知的方法可以做到这一点.他们归结为这个

>创建一个评分功能,可以告诉您一个结果的好坏.数字越大越好.
>创建一个函数,该函数接受输入和一些参数,并产生可以被评分的输出
>这很重要:根据#2的参数,评分功能应该是连续的.如果您有两个参数,并以3D形式绘制(param1,param2,score),则该表面看起来像是凹凸不平的山丘.
>您现在的工作是在表面上找到最大值.您可能有两个以上的参数-在这种情况下,您有一个N-D曲面-但想法是相同的

查找爬坡,遗传算法或优化问题.一部不错的带代码的python书是Toby Segaran撰写的“ Programming Collective Intelligence”.

通常,爬山是这样的:

>很好地猜测参数
>创建输出并评分
>稍微更改一个参数
>对输出进行评分
>如果更好,请继续朝这个方向发展,如果更糟,请改变方向.
>如果卡住了-请移至表面的其他地方并在那里进行尝试.
>如果您找到一个局部最大值,但还不够好-请去其他地方尝试

虽然查找实际的算法,但比这要复杂一些.

许多研究归结为提出了良好的评分功能,以及了解哪些参数有效以及如何使用它们的好方法.

使用此一般轮廓-只需尝试将亮度/对比度用作您的输出生成功能(亮度和对比度就是输入).要进行评分,您将需要比较两张照片以进行比赛的方式-首先,选择简单的内容(也许硬编码要检查的区域).

一旦开始,您将对如何执行此操作有更多的见解,并且可以回到论文中寻求建议.

上一篇:Mysql时间函数


下一篇:30行Python代码爬取英雄联盟全英雄全皮肤