dc_rpca_lowrank — 2D decomposition op

数据种类:imageimage

调用:fullseye.apply(img, "dc_rpca_lowrank", a=0.5, b=0.5)(2-D 的模型是一张图 + 两个标量旋钮 a,b∈[0,1])

dc_rpca_lowrank: input → output

*图为在 128×128 合成输入上实际运行的输出。左为输入,右为输出。点云以俯视散点显示(亮度 = z),一维序列为折线,体数据为沿 z 的最大值投影,视频为中间帧,复数图像为幅值;无法成像的返回值直接显示数值。*

扫描旋钮 a(0.1 / 0.5 / 0.9,另一旋钮取默认):

dc_rpca_lowrank: knob a sweep (docs site)

*旋钮 b 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*

换别的图像(合成场景 / 照片 / 硬币。上排为输入,下排为对应输出。旋钮取默认):

dc_rpca_lowrank: other inputs (docs site)

*第 4 列是彩色 (H,W,3) 输入。此算子能正确处理颜色而不跨通道(不把颜色通道当作第三个空间轴卷积)。*

用法

鲁棒 PCA 的低秩(背景)部分。

> 以下的详细说明为原文 —— 摘要与标题已翻译。

画像行列 `MM = L + S(低ランク L + スパース S`)に分解する

Principal Component Pursuit を inexact ALM(Lin/Chen/Ma 2010)で解き、`L`

を返す。スパース項の重みは `λ = (0.5 + 1.5*a) / sqrt(max(m, n))(m, n`

は分解時の行列寸法)で、`a が大きいほど S が疎になり、その分 L` に

残る成分(ランク)が増える。`a=0 では λ` が小さく、ほとんどの変動が

`S に吸われて L はのっぺりする。b` は未使用。反復は最大 60 回、

収束判定は `||M - L - S||_F <= 1e-7 * ||M||_F`。

長辺が 64 を超える画像は 64 に縮小して分解し、`L` だけを線形補間で元の

大きさに戻す(低ランク部は縮小に耐えるため)。入力は [0,1] の 2 次元 float64

に揃え(3 次元はチャネル平均)、返り値も同形・[0,1] に clip。全零画像は入力を

そのまま返す。BLAS のスレッド数は分解中だけ `fsthreads` で絞る(小行列の

SVD ではスレッドが多いほど遅いため)。例外時は fail-soft で入力のクリップ版が

返り、台帳に記録される。

「行や列にわたって繰り返す構造」(縞、グラデーション、周期パターン)を背景と

みなす分解なので、単一の 2 次元画像でも織物・シート・ディスプレイ画素などの

周期背景から孤立欠陥を分離するのに向く。自然画像のような非周期背景では

`L` は単なる低ランク近似で、意味のある背景にならない。対になる欠陥側は

`dc_rpca_sparse(L + (S - 0.5) == 入力`)。エッジ保存の平滑で構造を

取りたいなら `dc_structure_texture`。

详细使用指南

gallery2d_texture_freq 族使用指南

背景知识指南(该算子背后的物理与约定)

blas_threads_and_memory — 行列分解が遅い理由の知識 — BLAS スレッド・キャッシュ・メモリ配置

参考(示例数据・文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者・年份)与用途见上面的族使用指南

在 Studio 中试试

下面的程序已确认可以运行(与图相同的输入)。在 Studio 帮助中,此块会变成按钮,可当场加载并运行。

dc_rpca_lowrank 0.50 0.50

▸ Load this pipeline  ·  Load & run

可运行的示例(实际调用该算子并已验证的样例)

blas_thread_budgetpy -3.11 examples/blas_thread_budget.py

gallery2d_texture_freqpy -3.11 examples/gallery2d_texture_freq.py

类型可衔接的下一个算子(可接受 image 作为输入)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

同类别(decomposition)

dc_structure_texture · dc_texture_residual · dc_rpca_sparse · dc_retinex · dc_local_contrast_norm · dc_homomorphic


*Provenance: ops.py — 2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.