近期,短视频中有一个功能的热度飞速提高,这个功能就是“更换发色”,用户们乐此不疲的尝试不同发色,也因此创作了很多趣味视频。同时,一些对技术感兴趣的小伙伴们比较好奇“染发、更换发色功能是如何实现的”。下文小编就为大家讲解一下。
一、更换发色的原理
在讲述之前,我们需要知道的一件事情,直播、拍摄场景中的实时染发要比单纯的更换发色难度高很多,因为算法模型是完全不同的,实时染发需要通过深度学习技术将头发与其它区域进行“分离”。在实际的染发过程中,想要实现真实、自然的染发效果需要用到光线以及渲染的操作。
1、细节处理
例如:细节方面的处理,刘海、鬓角甚至是眉毛方面,这就需要用到更为精细的算法,在这里就不深入讲解了,因为会涉及到很多核心。除此之外,更换发色不可以在RGB中操作,而是在HSV、HIS中,以此可以保留目标的亮度效果。简单来说,更换发色、染发类的功能都是将毛发与其它区域分离,并且保留毛发区域不改变,然后将发色调整成想改动的颜色即可。
2、实现难点
总的来说,更换发色、染发类功能的通病就是“不够真实、虚假感明显”,为了解决“一眼假”的情况,为了让美颜SDK染发后的头发更加真实自然,开发者们可谓是各出奇招,目前最常见的解决方案就是通过图像锐化的方式,增加纹理特效、渲染,以此提高发丝细节。
二、题外话
上述小编讲到了美颜SDK染发会用到类似于人像分割的技术,实际上这也离不开美颜SDK的人脸识别、五官分析技术,同样这也是其它美颜工具的必备核心技术,可以通过它识别照片的任务数据以及五官特点。通过识别后的数据还可以进行五官建模等操作,在美颜SDK的各种功能操作中,人脸识别、五官分析大多以辅助为主。理论上来讲,识别的关键点越多,后续功能实现会加容易、优质,个别美颜SDK甚至支持上百个关键点位的识别。
上文,小编对美颜SDK更换发色技术进行了讲解,通过实现流程我们可以了解到,美颜SDK的许多功能实现基本都是换汤不换药,可以通过此套逻辑拓展更多趣味功能。