计算机图形学中的核密度估计
显然,计算机图形行业中使用了这种高质量的 KDE 算法,但我问过的每个人都拒绝告诉我它是什么。我已经实现了 http://en.wikipedia.org/wiki/Kernel_ Density_estimation ,但是噪音是仍然是一个大问题。我已经看过这种“高质量 KDE”的渲染,其输出比您从维基百科上描述的 KDE 算法获得的输出要优越得多。有谁知道这个高度保密的 KDE 算法是什么?
正在使用的标准 KDE 的一个变体示例是 flam3 程序,它是一个分形火焰渲染和动画程序。 Flam3 的问题在于其渲染的图像包含噪声。 Chaotica 是另一个分形火焰渲染程序,它使用这种“更高质量”的 KDE 算法来消除噪声,从而产生更高质量的渲染。 Chaotica 不是开源的,但它实现了相同的分形火焰算法,该算法需要密度估计算法。此外,Chaotica 的作者还表示,它使用与计算机图形行业不同的 KDE。
Evidently there is this high quality KDE algorithm that is used in the computer graphics industry, but everyone I've asked refuse to tell me what it is. I've implemented http://en.wikipedia.org/wiki/Kernel_density_estimation , but noise is still a big problem. I've seen renderings of this "high quality KDE" and the outputs are far more superior than the ones you get from the KDE algorithm described on wikipedia. Does anyone know what this highly secretive KDE algorithm is?
An example of a variation of the standard KDE in use is the flam3 program, which is a fractal flame rendering and animation program. Problem with flam3 is that its rendered images contain noise. Chaotica, another fractal flame rendering program, uses this 'higher quality' KDE algorithm to eliminate noise and thus produces much higher quality renders. Chaotica isn't open source, but it implements the same fractal flame algorithm which requires a density estimation algorithm. Also, the author of Chaotica has stated that it uses a different KDE that is used in the computer graphics industry.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
KDE 通常不用于图形,至少不用于最终输出。我认为您可能正在寻找的是双三次插值或者立方 Hermite 脊柱
KDE is not normally used for graphics at least not the final output. I think what you might be looking for is bicubic interpolation or maybe cubic hermite spine
您可能走错了路。您担心的噪音并不是坏的 KDE,而是您的输入数据。您可以对其进行平滑或更好地采样(不是更多,而是更智能)。
关于你的例子:上次我查看 Flame 时,它只是向前迭代系统并累积密度。通过计算每个像素累积的频率并将其用作模糊滤镜的输入,可以轻松平滑这一点。或者您可以更好地估计每个样本的数值误差并由此扰动它的位置或重量。或者使用更高的精度来降低噪音。
You are probably on the wrong track here. The noise you are worried about is not a bad KDE, it's your input data. You can smooth it or sample it better (not more, but smarter).
About your example: The last time I looked at flame, it just forward iterates the system and accumulates density. This could be easily smoothed by keeping count of how often you accumulated per pixel and use that as an input to a blur filter. Or you could do better in estimating numerical error per sample and perturbing it's location or weight by that. Or use higher precision to reduce noise.