免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 飘絮絮絮丶
打印 上一主题 下一主题

【好书推荐+有奖讨论】围观美女图像工程师如何玩转抖音、天天P图的美颜算法! [复制链接]

论坛徽章:
43
15-16赛季CBA联赛之上海
日期:2020-11-04 09:36:5515-16赛季CBA联赛之北控
日期:2018-10-29 18:20:3415-16赛季CBA联赛之北京
日期:2018-10-06 21:39:5715-16赛季CBA联赛之天津
日期:2018-08-09 10:30:41ChinaUnix元老
日期:2018-08-03 17:26:00黑曼巴
日期:2018-07-13 09:53:5415-16赛季CBA联赛之吉林
日期:2018-03-30 12:58:4315-16赛季CBA联赛之佛山
日期:2017-12-01 10:26:3815-16赛季CBA联赛之上海
日期:2017-11-14 09:20:5015-16赛季CBA联赛之江苏
日期:2019-02-20 09:53:3319周年集字徽章-庆
日期:2019-08-27 13:23:2515-16赛季CBA联赛之广夏
日期:2019-09-03 18:29:06
11 [报告]
发表于 2020-08-12 10:06 |只看该作者
(1)各类美颜算法的基础技术是什么,是图像、是视频、还是AI?
    基础技术是图像。视频是图像的连续播放,AI是对多种图像进行学习。



(2)如何通过算法实现抖音视频中抖动、闪白、霓虹、时光倒流、视频反复、慢动作?
  不清楚,我估计是 对视频中的每一帧进行识别, 按 抖动、闪白、霓虹、时光倒流、视频反复、慢动作 的算法进行处理。



(3)国际上通用的视频美颜或美图类先进技术有哪些?国内和国际上的通用技术有区别吗?
美颜的技术不知道,处理图像的有OpenGL。工具有美图秀秀。现在手机上都自带的有美颜功能。拍照方便多了。

评分

参与人数 1可用积分 +10 收起 理由
飘絮絮絮丶 + 10 很给力!

查看全部评分

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
12 [报告]
发表于 2020-08-17 14:07 |只看该作者
(一)各类美颜算法的基础技术是什么,是图像、是视频、还是AI?
“美颜”是一个深度学习+图像处理+图形学的技术。“美颜”牵涉到这些技术包括:人脸检测、人脸关键点定位、瘦脸、磨皮、美白等。其中,人脸检测、人脸关键点定位是用深度学习技术来做的;而瘦脸、磨皮和美白就牵涉到计算机图形学里的技术,使用OpenGL,Metal来对检测到的人脸进行渲染。所以从技术大伽的解释中我们不难看出,美颜算法的基础应该 是图像图形学还有深度学习(AI)等。主要涉及人脸检测、人脸关键点、瘦脸、磨皮与美白等关键点。
(2)如何通过算法实现抖音视频中抖动、闪白、霓虹、时光倒流、视频反复、慢动作?
颜色偏移+微弱的放大效果,代码如下:
  1. precision highp float;

  2. uniform sampler2D Texture;
  3. varying vec2 TextureCoordsVarying;

  4. //传入的纹理时间
  5. uniform float Time;

  6. void main (void) {
  7.    
  8.     //周期
  9.     float duration = 0.7;
  10.     //放大的最大比例
  11.     float maxScale = 1.1;
  12.     //颜色偏移值
  13.     float offset = 0.02;
  14.    
  15.     //当前时间在整个周期中的进度,在0~1
  16.     float progress = mod(Time, duration) / duration; // 0~1
  17.     //具体的偏移量
  18.     vec2 offsetCoords = vec2(offset, offset) * progress;
  19.     //图层放大缩小的比例
  20.     float scale = 1.0 + (maxScale - 1.0) * progress;
  21.    
  22.    //获取缩放之后实际纹理坐标
  23.     vec2 ScaleTextureCoords = vec2(0.5, 0.5) + (TextureCoordsVarying - vec2(0.5, 0.5)) / scale;
  24.    
  25.     //设置缩放之后的纹理坐标和经过具体的颜色偏移坐标
  26.    //三组分别代表RGB不同方向的纹理像素值
  27.     vec4 maskR = texture2D(Texture, ScaleTextureCoords + offsetCoords);
  28.     vec4 maskB = texture2D(Texture, ScaleTextureCoords - offsetCoords);
  29.     vec4 mask = texture2D(Texture, ScaleTextureCoords);
  30.    
  31.     //根据不同的纹理坐标值得到经过颜色偏移之后的颜色
  32.     gl_FragColor = vec4(maskR.r, mask.g, maskB.b, mask.a);
  33. }
复制代码

添加白色图层,白色图层的透明度随着时间变化;添加白色图层还是比较简单的,看代码实现
  1. precision highp float;
  2. uniform sampler2D Texture;
  3. varying vec2 TextureCoordsVarying;
  4. uniform float Time;
  5. const float PI = 3.1415926;

  6. void main (void) {
  7.    

  8.     float duration = 0.6;
  9.     float time = mod(Time, duration);
  10.     //这部分其实是添加了一个白色的纹理像素值,透明度为1.0
  11.     vec4 whiteMask = vec4(1.0, 1.0, 1.0, 1.0);
  12.     float amplitude = abs(sin(time * (PI / duration)));
  13.     vec4 mask = texture2D(Texture, TextureCoordsVarying);

  14.     //纹理像素的混合公式进行混合
  15.     gl_FragColor = mask * (1.0 - amplitude) + whiteMask * amplitude;
  16. }
复制代码

(3)国际上通用的视频美颜或美图类先进技术有哪些?国内和国际上的通用技术有区别吗?
1)跨平台。我们的业务场景涵盖了移动端和PC端。为了提高开发效率,我们要把平台无关的逻辑抽象成公共组件,例如渲染管线、后处理算法等,实现一份代码,多端共用。

2)可扩展。跨平台解决了横向的平台差异问题,而可扩展就是解决业务迭代的纵向问题。我们将渲染逻辑分解成一个一个的小“零件”,业务方可以像搭积木一样自由组合这些“零件”,而算法同学也可以很容易的造“零件”。这样业务迭代就简化成了简单的加减法,效率大大提升。

3)高性能。音视频渲染,尤其是视频渲染,是很耗费计算资源的。在端侧有限的计算资源前提下,还要能实现快速、高质量的渲染效果,就需要我们厘清渲染链路中的每个环节,剔除冗余逻辑,实现高效渲染。

评分

参与人数 1可用积分 +10 收起 理由
飘絮絮絮丶 + 10 优秀

查看全部评分

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
13 [报告]
发表于 2020-08-17 14:08 |只看该作者
Mar——参加了。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
14 [报告]
发表于 2020-09-25 12:32 |只看该作者
马上9月28了。

论坛徽章:
0
15 [报告]
发表于 2020-09-25 13:26 |只看该作者

我 我 我我,忘记 编辑获奖用户了 谢谢提醒 哈哈哈~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP