天天看点

自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法

在人像美化中,肤色检测有助于防止磨掉头发、胡子等需要保持细节的部分,也可以使美白算法仅作用于皮肤,不对人像周边环境产生影响。

网上找了一下肤色检测模型,效果都太差,换了一种思维,找个训练集,自己做一个。

训练结果,正确率大概85%,运行起来,确实还是比网上找的公式好,勉强可用了。

算法最终反映为 opengl 的一个片断着色器,直接看shader代码吧。

自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法
自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法
自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法
自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法
自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法
自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法
自己做的一个肤色检测模型肤色检测模型肤色检测结果训练方法

找到这个网站:

<a href="http://blog.csdn.net/wangkr111/article/details/44514097">http://blog.csdn.net/wangkr111/article/details/44514097</a>

下载了一组肤色检测的数据,用python脚本将其转换为机器学习所需的矩阵数据。提取 r、g、b、y、cb、cr分量值。

机器学习算法库是自己造的轮子,使用c++开发,特别重视cache命中率,部分地方引入opencl加速,性能可以说是一流的。

使用的代码如下:

一开始本来用的是逻辑回归,因为这个出来的预测公式很简单,shader上运行速度快,但它的效果实在不行。后面改用了决策树,限制树深,以免模型太大。

至于为什么不用svm:svm出来的模型在shader上根本没法运行啊。。。

继续阅读