主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

大規模な制約付き線形最小二乗法,ソルバーベース

この例では,大規模な範囲制約付き線形最小二乗最適化問題を解いて,不鮮明なイメージを修正する方法を説明します。この例では,ソルバーベースのアプローチを使用します。問題ベースのアプローチについては,大規模な制約付き線形最小二乗法,問題ベースを参照してください。

問題

興味深いナンバープレートの自動車に乗っている人物の写真があります。

负载optdeblur[m, n] =大小(P);mn = m * n;imshow (P)标题(sprintf (“原始图像,大小%d-by-%d, %d像素”, m, n, mn))

問題は,この写真にブレを追加してからブレを除去しようとすることです。最初のイメージは白黒であり,m行n列の行列P内の0から1の範囲にあるピクセル値から構成されています。

動きの追加

各ピクセルと上5下ピクセルの平均をとることによって,垂直方向の動きのブレの影響をシミュレートします。単一の行列乗算でブレを追加するためのスパース行列Dを作成します。

模糊= 5;mindex = 1:锰;nindex = 1:锰;mindex=[mindex I +1:mn 1:mn- I];nindex = [nindex 1: mn-i i + 1 mn):;结束D =稀疏(mindex nindex 1 /(2 + 1) *模糊);

Dの図を描画します。

cla轴ijx = 31;y = 15;xlim ([0, x + 1]);ylim ([0, y + 1]);[ix, iy] = meshgrid (1: (xs-1), 1: (ys-1));l = abs (ix-iy) < = 5;文本(iy ix (l) (l),“x”)文本(第九(~ l), iy (l ~),' 0 ')文本(x *的(y, 1), 1: y,“……”);文本(1:x, y *的(x, 1),“……”);标题('模糊运算符D (x = 1/11)'

イメージPに行列Dを乗算して,ブレを追加したイメージGを作成します。

G = D * (P (:));图imshow(重塑(G, m, n));标题(模糊图像的

イメージは判別が困難になり,ナンバープレートを読むことができなくなりました。

ブレを除去したイメージ

ブレを除去するため,ブレを追加する演算子Dが既知であると仮定します。どの程度,ブレを除去して,元のイメージPを復元できるでしょうか。

最も簡単な方法は,次の最小二乗問題をxについて解くことです。

0 x 1 という条件で 最小值 D x - G 2

この問題では,与えられたブレ追加行列Dを使用して,DxGDPに最も近くなるxを求めようとします。解が妥当なピクセル値を表すように,解を0から1に制限します。

磅= 0 (mn, 1);Ub = 1 + lb;索尔= lsqlin (D、G ,[],[],[],[], 磅,乌兰巴托);
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。
xpic =重塑(溶胶,m, n);图imshow (xpic)标题(“解模糊图像”

ブレを除去したイメージは,ブレを追加したイメージよりはるかに鮮明になっています。再び,ナンバープレートを読むことができるようになりました。しかし,ブレを除去したイメージには,右下の舗道の部分にある水平の帯のような不自然さがあります。おそらく,これらの不自然さは,正則化によって除去できます。

正則化

正則化は,解を平滑化する方法です。正則化の方法は多数あります。簡単なアプローチとして,次のように目的関数に項を追加します。

0 x 1 という条件で 最小值 D + ε x - G 2

ε という項は,生成される二次問題をより安定させます。 ε 0 0 2 を使用して,再び問題を解きます。

另外= speye (mn);sol2 = lsqlin (D + 0.02 *另外,G ,[],[],[],[], 磅,乌兰巴托);
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。
xpic2 =重塑(sol2, m, n);图imshow (xpic2)标题(“解模糊正规化的形象”

この簡単な正則化では,不自然さが除去されないようです。

関連するトピック