惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
博客园 - 司徒正美
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
L
LangChain Blog
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
雷峰网
雷峰网
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测
图形AI粗读丨图像处理——斯坦福大学2023年课件
Hakumen · 2025-03-28 · via 机核

前言

最近几周读的课题可能主要是关于图像的处理和识别、比较。

图像是一种能通过丰富的维度来进行处理和解析的数据源,将其视为离散信号、矩阵或是其它形式都能有丰富的数学或计算机图形学工具来对其进行处理。

图像的生成式AI以人类的眼光来看,其过程大致可以理解为:先逐步生成一个模糊的轮廓,再以类似“降噪”的方式,辅助各种训练后的子网络对这一图像进行反复迭代。而机器学习则基于各种训练方式来优化其中各个子节点,以及整个过程——这些步骤离不开图像的数学或信号表达。

这次选择的斯坦福大学计算机图形2023年的课件,确实和其它一些网上能找到的课件比起来既制作得更好、图文搭配合适,内容也详略得当。因为这是一门本科课程,因此理解上相对难度不会太高。

本文还是以翻译原PDF页中文字为主,打星号的部分则是我的补充说明。

1 图像处理案例

*这里已经假定了颜色值是归一化之后(RGB各自)在0和1之间的一个值。实际的情况比这要复杂,之前一篇介绍颜色空间的文章中就提到过。

2 卷积和模糊

*卷积在信号处理上可以视为:将输入的信号(图中g)以一定的过滤方式卷积核(图中f)进行处理以得到输出信号的过程。

*由于积分可以理解成函数下方区域的“面积”。以图中的分段函数f(x)为例,则其对应的卷积效果(f * g)可以视为原函数g(的x位置对应的函数值)在x-0.5和x+0.5上取了平均的一个“模糊了”的版本。

*之前也提到过,filter翻译成“过滤”多少有点不算准确,理解成“输入一些东西,然后按一定规则修改输出”比较合适。

*对于离散2D卷积,积分过程直接变为了求和过程。其中i和j的范围限制在了-1到1之间,而I则可以视为后面图像上的一个点。

*由于这时的f(i,j)可以用一个3X3矩阵来表示,因此通常也被称为“过滤权重”或“过滤核”。

*从图中伪代码可以看出,对于行列上的每一个点tmp,进行了一个3X3的循环(jj和ii循环),将其中对应的位置以输入来源(input)对应1/9的值进行了处理。

*采用更大的模糊盒,计算量更大,模糊程度也更大。

过滤系数是通过采样2D高斯函数来获得的(如图)。

通过这种(贡献基于距离衰减)的方式得出相邻像素的权重和——在实践中,为了提高效率,在超出一定距离后就将过滤器截断(不计算)了。

*例如图中的3X3矩阵,其权重和还是1。相比前面的Box模糊,相对有着数学上更“科学”的模糊方式。

以图中的过滤器进行卷积是什么效果?锐化图像。

*右侧的图是图像在频域空间的视觉化(频谱)。其中的高频信号表现为散射出的“线”。

*图像中的高频信号,例如跨越轮廓边缘等;相对的,如果一大片区域都是类似的颜色,在频域上就表现为低频。B站Games101系列课中也引用了同样的图片(讲解了同样的课题),详细讲解可以去看视频。

*在经过低通过滤器处理后,图像变得模糊了。

  • I是原始图像。

  • 图像中的高频信号可以表示为:I = I - blur(I)

  • 锐化后的图像可以表示为:I + (I - blur(I))

3 边缘探测

以图中的过滤器进行卷积是什么效果?——提取水平梯度、垂直梯度。

*上下两张图分别是:水平梯度、垂直梯度。

备注:你可以把一个过滤器想象成一个纹样的“探测器”,输出的图像中的像素点的值(量级)可以视为对输入图像中其周围像素区域的“反应”(这是计算机视觉领域的一项常规解释)。

*参照前页,Gx是水平梯度、Gy是垂直梯度。通过图中下方的公式可以计算出图像中的边缘——这也常被运用于像素级的图像处理或操作中。

*这里不是计算的算法复杂度,而是像素被迭代的次数。

*(如图)那么NXN的过滤器,其开销是:N ² * 宽 * 高。

  • 如果一个过滤器可以表达为另两个其它过滤器的乘积,则说它是可分离的。

  • 例如:一个2D Box模糊(如图)。作为实践,可以尝试将2D高斯模糊或者垂直、水平梯度检测过滤器写成1D过滤器的乘积(它们都是可以分离的)。

  • 关键属性:可分离过滤器的2D卷积可以写成两个1D卷积的形式。

*那么NXN的过滤器,其开销是:2N * 宽 * 高。(相对降低了计算开销)

*如图,可以看到原本是嵌套的循环可以写成i和j分别循环。

在硬边缘其余不进行平滑(模糊),而在非边缘区域进行平滑。

双边过滤器的用例:在保持边缘的同时消除噪点(磨皮)。

*公式部分红字(从左到右)依次翻译如下:归一化(权重和应为1)、对于所有高斯核的支撑区域内的像素(进行累加)、基于输入像素值的差分进行重新计算权重、高斯模糊核、输入图像。

*Wp的则是对权重项f(x)和高斯核G的累加。i和j对应高斯核的尺寸。

  • 双边过滤器是一种“边缘保持”的过滤器:它下调了位于强边缘“另一侧”的像素的权重。f(x)项定义了“强边缘”。

  • 空间距离项f(x)自身也可以是一个高斯函数——或者其它更简单的形式(如图,直接用分段函数)。

输出像素(x,y)的值,是计算了截断的高斯核所得的支撑区域中的所有像素的加权值。

不过这里权重是空间距离和输入图像的像素强度差分的组合。(过滤器的权重依赖输入的图片内容)

  • 图1:原始图像的值以高度图的方式表达,其中两个平面上各自凹凸不平,且平面之间有明显高度差(代表图像中的边缘)。

  • 图2:原始的高斯核,符合其基于距离权重(依高斯函数)下降的特性。

  • 图3:有着明显强度差分的像素对于过滤的结果贡献很小(它们是在“边缘的另一边”)。

  • 图4:G * f 是被重新分配了权重的高斯核。

  • 图5:过滤的结果——在保持高度差(边缘)的同时,各自平面内被模糊“抹平”了。

*可以看到例图中的3处位置,由于f(x)项内容输入了范围内的一些原始像素,因此得到的各位置的高斯核也不同。

4 同时进行空间和频域编辑

*这里指同时在一定的空间和频域范围对图像做局部修改。

  • 步骤1:移除高频信号(也被称为——模糊)。(*aka,also known as)

  • 步骤2:稀疏地采样像素(在这个例子中:每隔一个像素)

*这部分伪代码反应了前述的思路。Blur部分是一个4X4的模糊核,循环部分则跳过了一半的原始像素。

通过对低分辨率的图像做双线性插值。(*即XY轴同时计算插值)

*图示中黑色点是原始像素,红色点是输出像素。这里基于自像素的行列位置计算了权重w1和w2(0.75和0.25),它们分别用于计算原始的4个像素对新的1个像素的贡献。

*图示可能画成4个黑点中间的4个红点,会更好理解一些。

金字塔中的每一层图片包含了更加低通的信号(通过降采样的方式)。

*注意这里虽然看着和游戏图形中的mipmap相似,但是其计算步骤是不同的。

*这里中间我略去了一些纯过程的图片页。感兴趣的可以去看原文。

每一级(数字递增的)拉普拉斯金字塔代表了一组(逐渐降低的)图像中的频率信息。

*可以理解为down的过程中被模糊掉的部分(依照图中公式)。

问题:如何通过图像的拉普拉斯金字塔(和低分辨率图像)来重建原始图像?

*即逐级up然后加上L项。

  • 高斯和拉普拉斯金字塔都是以其中的像素表达了原始图像中的一个区域的频率信息。

  • Gi(x,y)——将频率限制为基于i给定的上限

  • Li(x,y)——频率信息加上Gi+1就可以得到Gi

  • 注意:要增加一个像素(x,y)周围的频率带宽,增加Li(x,y)在拉普拉斯金字塔的系数。

考虑一个简单的案例:我们想混合两个图像纹样。直接组合则不够“平滑”。

*图中的公式就是图形渲染中常说的“Alpha Blend”公式——可以理解为颜色值的一种加权计算。这里主要是讨论这个遮罩过渡如何给定。

窗口(渐变)太大时,会有“鬼影”视觉效果。

窗口(渐变)尺寸太小,则看起来没有羽化过渡。

  • 为避免接缝,过渡窗口需要大于等于最大的显著特征。

  • 为避免鬼影,过渡窗口需要小于最小的显著特征的2倍尺寸。

  • 换言之,最大和最小特征的尺寸需要在2倍的范围内,这样羽化后就能得到好的视觉效果。

  • 直觉上:粗糙的(大尺寸的)图像结构需要在图像间缓慢过渡,精细的结构需要快速混合。

方案:混合拉普拉斯金字塔(而非像素),基于Alpha遮罩的高斯金字塔。

5 现代应用:HDR摄影

*这一节提到的Tone Mappling也是游戏图形中常用的后处理效果(通常是基于LookUpTable查表)。这一节主要是考虑了摄影中混合多张不同曝光情况的图像。

  • 度量用的图像值(基于摄像机传感器)通常是10-12bit每像素,而常规图像格式是8bit每像素。

  • 如何进行这一转换?

*以图中为例,如果最亮和最暗的情况直接做裁剪,显然会丢失很多信息,且过渡也不自然。

HDR图像的暗处和亮处的细节。

*上方图片依次是:曝光时间从短到长的像素值和权重。

(色调调整是为了)提升图像的美感,通过局部调整对比度,增强暗的区域、减弱过亮的区域(而不是进行基于物理的调整)。

  • 四张不同的曝光图(权重没有展示出)

  • 左侧的混合结果(基于权重遮罩):由于不同曝光间强度值是绝对的,因此会产生很重的“带状轮廓”。

  • 右侧的混合结果(在对权重遮罩做模糊后):注意到边缘会有“光晕”的视觉问题。

  • 计算所有拉普拉斯金字塔级别

  • 混合金字塔(图像特征)而不是图像像素

  • 之后“平整”混合后的金字塔以获得最后的图像

*图中右侧是基于这一方案混合的结果。由于提取了图像特征(高频)进行了处理,因而一定程度上规避了前述的一些问题。

  • 卷积是一项强大的图像处理操作——不同的核能带来不同的效果。

  • 基于原始数据的核能用于边缘感知的图像处理(拉普拉斯过滤器)。

  • 高斯和拉普拉斯金字塔:能用于空间和频域两方都局部修改的数据结构。

结语

图像处理既有其很“数学”的一面,也有其很“美学”和“直觉”的一面,最终人们提炼积累了很多算法和处理过程。例如什么是“半透明”,什么是“磨皮效果”,读完这篇应该就能有很直观的理解了——实际应用中当然还会有各种组合和改良,但其基本思想是不变的。

另外,由于各类概念中Gaussian(高斯)一词出现频率过高(由于高斯其人对于数学的卓越贡献),因此结合了Gaussian的概念很多时候还是得看到其细节才知道具体是在做什么——例如Gaussian Splatting是一种使用了其数学工具来做三维空间表达的方案,虽然也能缩写成Gaussian,但又完全不是一回事了。

最后是资料链接: