找回密码
 立即注册
查看: 285|回复: 6

聊聊图像的抽象化处理

[复制链接]
发表于 2023-1-6 13:17 | 显示全部楼层 |阅读模式
最近看了些关于图像的抽象化处理的资料,感觉挺有意思的,在这里跟大家分享一下。自己相对于真实感渲染,比较关注的是NPR方面的东西,所以以后写的东西大概都会发在这个专栏,感兴趣的童鞋可以关注下。
何为图像的抽象化

简单的讲就是输入一张图像,生成一张简单易懂的图像。它可以作为其他风格(比如铅笔画,水彩画等)的预处理。也可以本身形成一种风格。图像的抽象化其实具体有两个方面。一个是结构的简化(比如点线面),一个是颜色的简化。比如标题的图像就是结构变简单了明暗层次也简化了。下面的图也很好地解释了图像的抽象化:


图像抽象化的相关研究

下面会列出一些相关的研究论文,感兴趣的童鞋可以自行搜索。
Stylization and abstraction of photographs[DeCalro et al.SIGGRAPH2002]



主要是边缘检测和色彩分割,在色彩分割的时候导入了观察者的视角的概念。在观察者看得清的地方保留较多细节(分的较细),在看不太到的地方分的较粗。
Real-Time Video Abstraction[Winnemller  et al.TOG 2006]



在lab颜色空间进行处理,用了Bilateral Filter和色彩量化做颜色的简化,然后用DOG提取边缘。
Coherent Line Drawing [Kang et al. NPAR 2007]


生成比较好看的线描画。为了对噪点有比较好的鲁棒性,导入了Edge Tangent Flow的概念。
Image Abstraction by Structureasa Adaptive Filtering[Kyprianidis et al. TPCG. 2008]


用了Bilateral Filter的变种Separated Orientation-aligned Bilateral Filter做了滤波,然后做色彩量化。另外,用了FDOG的变种Separated Flow-based Difference-of-Gaussians来做边缘检测。
Flow-Based Image Abstraction[Kang et al. TVCG 2009]



主要是色彩的简化,使用了Bilateral Filter的变种Flow-Based Bilateral Filter(FBL filter)。
Pixelated Image Abstraction[Gerstner et al. NPAR 2012]



生成像素画的研究。不仅仅是分辨率降低了,也做了色彩的减少。
Non-photorealistic rendering with spot colour[Rosin et al. Proceedings of the Symposium on Computational Aesthetics. 2013]



比较另类的研究,模拟了专色的效果(关于专色可以看这里https://zhuanlan.zhihu.com/p/41835690)。首先将图像转为HSV,然后在H上对图像进行明度量化,通过图像的矩来计算量化得到的色块的形状,还计算了每个色块的显著性。然后对形状相对紧密,并且显著性高的色块上色。但是感觉算法缺乏理论依据,结果也不是很稳定。
Learning Deep Sketch Abstraction[Umar Riaz Muhammad et al. CVPR 2018]



使用强化学习去训练笔触,由于对机器学习不怎么了解,所以没有怎么理解,权当增长见识。
Unity中使用Compute Shader来实现

我选的是Image Abstraction by Structureasa Adaptive Filtering这篇论文的方法,因为这篇论文的算法是用OpenGL实现的,移植到Compute Shader应该是可行的。
处理流程如下:


1.在RGB颜色空间计算结构张量;
2.平滑结构张量;
3.计算结构张量的两个特征向量;
4.将图像转为Lab;
5.用Separated Orientation-aligned Bilateral Filter滤波得到颜色简化的图像;
6.用Separated FDoG对5的结果滤波得到边缘;
7.对5的结果进行颜色量化(只在明度L上进行量化);
8.将6和7的结果合在一起;
9.将Lab转为RGB颜色空间。
结果如下:



原图



抽象化后的图像

由于是在GPU上作为后处理实现的,因此是实时的:

实时的抽象化
https://www.zhihu.com/video/1227325875521540096
通过调整参数可以得到截然不同的风格:

截然不同的风格
https://www.zhihu.com/video/1227328271488159744
算法很简单,代码就不放了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-1-6 13:25 | 显示全部楼层
关注点赞收藏三连发
发表于 2023-1-6 13:29 | 显示全部楼层
我选的是Image Abstraction by Structureasa Adaptive Filtering这篇论文的方法,因为这篇论文的算法是用OpenGL实现的,移植到Compute Shader应该是可行的。----大佬,这个opengl的代码有开源吗?
发表于 2023-1-6 13:39 | 显示全部楼层
没有啊,cs的代码是自己写的
发表于 2023-1-6 13:46 | 显示全部楼层
大佬代码可以分享一下吗
发表于 2023-1-6 13:55 | 显示全部楼层
大佬,可以分享一下代码吗?[感谢]
发表于 2023-1-6 13:59 | 显示全部楼层
大佬,求代码分享
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 12:51 , Processed in 0.093154 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表