日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

UA MATH575B 数值分析下III 图像恢复

發(fā)布時(shí)間:2025/4/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UA MATH575B 数值分析下III 图像恢复 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

UA MATH575B 數(shù)值分析下III 圖像恢復(fù)

  • 圖像去噪的優(yōu)化模型
  • 算法實(shí)現(xiàn)

圖像去噪的優(yōu)化模型

假設(shè)VVV代表原圖,觀測(cè)到的圖像是WWWWWW是原圖與噪聲的疊加W=V+ξW=V+\xiW=V+ξ,我們的目標(biāo)是對(duì)WWW去噪,恢復(fù)原來(lái)的圖像,可以使用一個(gè)優(yōu)化模型來(lái)完成這個(gè)任務(wù)。假設(shè)恢復(fù)后的圖像為UUU,則
U?=arg?min?U(12∥U?W∥22+λ∥?U∥pν)U^* = \argmin_U (\frac{1}{2} \left\|U-W\right\|_2^2 + \lambda \left\| \nabla U\right\|_p^{\nu}) U?=Uargmin?(21?U?W22?+λ?Upν?)
這個(gè)優(yōu)化目標(biāo)的第一項(xiàng)∥U?W∥22\left\|U-W\right\|_2^2U?W22?作用是保證恢復(fù)后的原圖與有噪聲的圖像差別不會(huì)太大;第二項(xiàng)的作用是通過(guò)系數(shù)λ\lambdaλ來(lái)調(diào)節(jié)恢復(fù)后的圖像平滑程度,通常設(shè)定ν=p\nu=pν=p。為了讓這個(gè)模型更可行,將圖像(image)想象成一個(gè)圖(graph),圖的頂點(diǎn)是圖像的像素點(diǎn),圖的邊代表其兩個(gè)端點(diǎn)對(duì)應(yīng)的像素點(diǎn)相鄰。從而優(yōu)化目標(biāo)的第一項(xiàng)可以表示為
∥U?W∥22=∑v(Uv?Wv)2\left\|U-W\right\|_2^2 = \sum_{v} (U_v - W_v)^2 U?W22?=v?(Uv??Wv?)2
vvv代表圖像的像素點(diǎn)。第二項(xiàng)可以表示為
∥?U∥pp=∑e=v1v2∣Uv1?Uv2∣p\left\| \nabla U\right\|_p^p = \sum_{e=v_1v_2} |U_{v_1} - U_{v_2}|^p ?Upp?=e=v1?v2??Uv1???Uv2??p
平滑項(xiàng)取L1L_1L1?范數(shù)的效果一般是比較好的,所以令p=1p=1p=1,但這樣第二項(xiàng)就成了絕對(duì)值函數(shù)不好做優(yōu)化,因此考慮對(duì)絕對(duì)值做一個(gè)近似
∣Uv1?Uv2∣≈?2+(Uv1?Uv2)2|U_{v_1} - U_{v_2}| \approx \sqrt{\epsilon^2 + (U_{v_1} - U_{v_2})^2} Uv1???Uv2???2+(Uv1???Uv2??)2?
其中?\epsilon?是一個(gè)絕對(duì)很小的常數(shù)。因此優(yōu)化問(wèn)題可以表示為
U?=arg?min?U(12∑v(Uv?Wv)2+λ∑e=v1v2?2+(Uv1?Uv2)2)U^* = \argmin_U (\frac{1}{2} \sum_{v} (U_v - W_v)^2 + \lambda \sum_{e=v_1v_2}\sqrt{\epsilon^2 + (U_{v_1} - U_{v_2})^2}) U?=Uargmin?(21?v?(Uv??Wv?)2+λe=v1?v2???2+(Uv1???Uv2??)2?
現(xiàn)在優(yōu)化目標(biāo)是一個(gè)平滑的凸函數(shù)了,記為f(U)f(U)f(U)。其一階偏導(dǎo)為
?f?Uv=Uv?Wv+λ∑v′Uv?Uv′?2+(Uv?Uv′)2\frac{\partial f}{\partial U_v} = U_v - W_v + \lambda \sum_{v'} \frac{U_{v} - U_{v'}}{\sqrt{\epsilon^2 + (U_{v} - U_{v'})^2}} ?Uv??f?=Uv??Wv?+λv??2+(Uv??Uv?)2?Uv??Uv??
v′v'v代表與vvv相鄰的像素點(diǎn)。對(duì)所有的像素點(diǎn)vvv求解一階偏導(dǎo)等于零的非線性方程可以得到恢復(fù)的圖像。但這里考慮采用梯度下降算法來(lái)做,但并不采用傳統(tǒng)的梯度下降每一步循環(huán)計(jì)算梯度搜索步長(zhǎng)更新輸入的方式,這里嘗試用數(shù)值ODE方法來(lái)做梯度下降。令
dUvdt=??f?Uv=Wv?Uv?λ∑v′Uv?Uv′?2+(Uv?Uv′)2\frac{dU_v}{dt} = - \frac{\partial f}{\partial U_v} = W_v - U_v - \lambda \sum_{v'} \frac{U_{v} - U_{v'}}{\sqrt{\epsilon^2 + (U_{v} - U_{v'})^2}} dtdUv??=??Uv??f?=Wv??Uv??λv??2+(Uv??Uv?)2?Uv??Uv??
其中ttt是一個(gè)參數(shù),使用數(shù)值算法求解這個(gè)ODE,當(dāng)Uv(t)U_v(t)Uv?(t)滿足停止準(zhǔn)則后將其值輸出作為圖像在像素點(diǎn)vvv的取值。但這樣有一個(gè)壞處,如果梯度下降比較順利的話收斂時(shí)比較快的,但不考慮自適應(yīng)步長(zhǎng)的ODE算法(比如RK類算法)步長(zhǎng)都是固定的,因此即使能比較順利的下降收斂也不會(huì)變快。為了改掉這個(gè)缺陷,可以仿照加速梯度下降(Nesterov’s accelerated gradient descent,AGD)方法,在ODE中引入一個(gè)慣性項(xiàng)md2Uvdt2m\frac{d^2U_v}{dt^2}mdt2d2Uv??,從而
md2Uvdt2+dUvdt=Wv?Uv?λ∑v′Uv?Uv′?2+(Uv?Uv′)2m\frac{d^2U_v}{dt^2}+\frac{dU_v}{dt} = W_v - U_v - \lambda \sum_{v'} \frac{U_{v} - U_{v'}}{\sqrt{\epsilon^2 + (U_{v} - U_{v'})^2}} mdt2d2Uv??+dtdUv??=Wv??Uv??λv??2+(Uv??Uv?)2?Uv??Uv??
mmm的物理意義是質(zhì)量,但在計(jì)算中它就是一個(gè)超參。

算法實(shí)現(xiàn)

為什么要用這個(gè)枯燥的例子呢?因?yàn)檫@是我的作業(yè)【吐血.jpg】下面這張灰度圖是我要用來(lái)去噪的,不難看出它居然是個(gè)A!

這張圖可以用一個(gè)矩陣來(lái)表示,對(duì)應(yīng)上面的記號(hào),用WWW來(lái)表示,大概長(zhǎng)下面這樣,每個(gè)值代表那個(gè)像素點(diǎn)的灰度,取值是0-255,每個(gè)值占8 bits。上面的原圖就是用這個(gè)矩陣生成的,在matlab里可以用這個(gè)來(lái)生成

function outGrey(A) mat = A; %# A n-by-n matrix imagesc(mat); %# Create a colored plot of the matrix values colormap(flipud(gray)); end


這張圖是64×6464\times 6464×64的,這就意味著一共有4096個(gè)像素點(diǎn),需要重構(gòu)的圖像UUU是一個(gè)有4096個(gè)元素的矩陣。在這個(gè)ODE-based梯度下降的計(jì)算模型中
md2Uvdt2+dUvdt=Wv?Uv?λ∑v′Uv?Uv′?2+(Uv?Uv′)2m\frac{d^2U_v}{dt^2}+\frac{dU_v}{dt} = W_v - U_v - \lambda \sum_{v'} \frac{U_{v} - U_{v'}}{\sqrt{\epsilon^2 + (U_{v} - U_{v'})^2}} mdt2d2Uv??+dtdUv??=Wv??Uv??λv??2+(Uv??Uv?)2?Uv??Uv??
參考老師給的參數(shù),m=0.2,?=0.1m=0.2,\epsilon=0.1m=0.2,?=0.1。先把這個(gè)兩階的ODE用二元一階ODE表示一下,假設(shè)Xv=dUvdtX_v=\frac{dU_v}{dt}Xv?=dtdUv??,則這個(gè)方程可以寫(xiě)成
dXvdt=(Wv?Uv?λ∑v′Uv?Uv′?2+(Uv?Uv′)2?Xv)/mdUvdt=Xv\frac{dX_v}{dt} = (W_v - U_v - \lambda \sum_{v'} \frac{U_{v} - U_{v'}} {\sqrt{\epsilon^2 + (U_{v} - U_{v'})^2}} - X_v)/m \\ \frac{dU_v}{dt} = X_v dtdXv??=(Wv??Uv??λv??2+(Uv??Uv?)2?Uv??Uv???Xv?)/mdtdUv??=Xv?
這個(gè)看起來(lái)是二元一階ODE的東西其實(shí)有8192個(gè)未知數(shù)。現(xiàn)在把這個(gè)圖像讀進(jìn)Matlab,再定義一些參數(shù)

global W lambda epsilon mass; W = textread('A051.txt');% Read image from txt file epsilon = .1; mass = .2;% Set parameters

定義一下ODE右邊那個(gè)函數(shù),RK4會(huì)用到,要注意四個(gè)角和四條邊上的像素相鄰像素點(diǎn)分別只有2和3個(gè)。

function f = RHS(U,X,i,j) %% This is the right hand side function of ODE % input i,j indicate the location of pixel global W lambda mass; S = 0; if ((i==1) &&(j==1))S = S + (U(i,j) - U(i+1,j))/sqrt(epsilon^2 + (U(i,j) - U(i+1,j))^2);S = S + (U(i,j) - U(i,j+1))/sqrt(epsilon^2 + (U(i,j) - U(i,j+1))^2); elseif ((i==64) && (j==1))S = S + (U(i,j) - U(i-1,j))/sqrt(epsilon^2 + (U(i,j) - U(i-1,j))^2);S = S + (U(i,j) - U(i,j+1))/sqrt(epsilon^2 + (U(i,j) - U(i,j+1))^2); elseif ((i==1) &&(j==64))S = S + (U(i,j) - U(i+1,j))/sqrt(epsilon^2 + (U(i,j) - U(i+1,j))^2);S = S + (U(i,j) - U(i,j-1))/sqrt(epsilon^2 + (U(i,j) - U(i,j-1))^2); elseif ((i==64) && (j==64))S = S + (U(i,j) - U(i-1,j))/sqrt(epsilon^2 + (U(i,j) - U(i-1,j))^2);S = S + (U(i,j) - U(i,j-1))/sqrt(epsilon^2 + (U(i,j) - U(i,j-1))^2); elseif ((i==1) && (j>1 && j<64))S = S + (U(i,j) - U(i+1,j))/sqrt(epsilon^2 + (U(i,j) - U(i+1,j))^2);S = S + (U(i,j) - U(i,j-1))/sqrt(epsilon^2 + (U(i,j) - U(i,j-1))^2);S = S + (U(i,j) - U(i,j+1))/sqrt(epsilon^2 + (U(i,j) - U(i,j+1))^2); elseif ((i==64) && (j>1 && j<64))S = S + (U(i,j) - U(i-1,j))/sqrt(epsilon^2 + (U(i,j) - U(i-1,j))^2);S = S + (U(i,j) - U(i,j-1))/sqrt(epsilon^2 + (U(i,j) - U(i,j-1))^2);S = S + (U(i,j) - U(i,j+1))/sqrt(epsilon^2 + (U(i,j) - U(i,j+1))^2); elseif ((j==1) && (i>1 && i<64))S = S + (U(i,j) - U(i-1,j))/sqrt(epsilon^2 + (U(i,j) - U(i-1,j))^2);S = S + (U(i,j) - U(i+1,j))/sqrt(epsilon^2 + (U(i,j) - U(i+1,j))^2);S = S + (U(i,j) - U(i,j+1))/sqrt(epsilon^2 + (U(i,j) - U(i,j+1))^2); elseif ((j==64) && (i>1 && i<64))S = S + (U(i,j) - U(i-1,j))/sqrt(epsilon^2 + (U(i,j) - U(i-1,j))^2);S = S + (U(i,j) - U(i+1,j))/sqrt(epsilon^2 + (U(i,j) - U(i+1,j))^2);S = S + (U(i,j) - U(i,j-1))/sqrt(epsilon^2 + (U(i,j) - U(i,j-1))^2); elseif ((j>1 && j<64) && (i>1 && i<64))S = S + (U(i,j) - U(i-1,j))/sqrt(epsilon^2 + (U(i,j) - U(i-1,j))^2);S = S + (U(i,j) - U(i+1,j))/sqrt(epsilon^2 + (U(i,j) - U(i+1,j))^2);S = S + (U(i,j) - U(i,j-1))/sqrt(epsilon^2 + (U(i,j) - U(i,j-1))^2);S = S + (U(i,j) - U(i,j+1))/sqrt(epsilon^2 + (U(i,j) - U(i,j+1))^2); end f(1) = (W(i,j) - U(i,j) - lambda*S - X(i,j))/mass; f(2) = X(i,j); end

然后寫(xiě)一下RK4的代碼,λ\lambdaλ是平滑參數(shù),我就嘗試了一下8、12、16,輸入x0x_0x0?是初始值(64*64的矩陣),hhh是步長(zhǎng)。

function [y, DY] = RK4(x0,h) x = 0; y = x0; DY = zeros(64,64); delta = 1; k_1 = zeros(64,64,2); k_2 = zeros(64,64,2); k_3 = zeros(64,64,2); k_4 = zeros(64,64,2); N = 0; while (norm(delta)>1e-2 && N<360) % 360 is maximal number of iteration for i = 1:64for j = 1:64k_1(i,j,:) = RHS(x,y,DY,i,j);endendfor i = 1:64for j = 1:64 k_2(i,j,:) = RHS(x+0.5*h,y+0.5*h*squeeze(k_1(:,:,1)),DY+0.5*h*squeeze(k_1(:,:,2)),i,j);endendfor i = 1:64for j = 1:64k_3(i,j,:) = RHS(x+0.5*h,y+0.5*h*squeeze(k_2(:,:,1)),DY+0.5*h*squeeze(k_2(:,:,2)),i,j);endendfor i = 1:64for j = 1:64k_4(i,j,:) = RHS(x+h,y+h*squeeze(k_3(:,:,1)),DY+h*squeeze(k_3(:,:,2)),i,j);endenddelta = (1/6)*(squeeze(k_1(:,:,1))+2*squeeze(k_2(:,:,1))+2*squeeze(k_3(:,:,1))+squeeze(k_4(:,:,1)))*h;y = y + delta; DY = DY + (1/6)*(squeeze(k_1(:,:,2))+2*squeeze(k_2(:,:,2))+2*squeeze(k_3(:,:,2))+squeeze(k_4(:,:,2)))*h; x = x+h;N = N+1; end end

如果λ\lambdaλ取8,輸出是長(zhǎng)這樣的

個(gè)人感覺(jué)幾乎沒(méi)啥區(qū)別。這張是λ\lambdaλ取12的輸出

這個(gè)要稍微白一點(diǎn)了。再看看λ=16\lambda=16λ=16

這個(gè)好像更白一點(diǎn)。這個(gè)模型做出來(lái)效果其實(shí)很一般,要想結(jié)果好一點(diǎn)可以再調(diào)一下步長(zhǎng),迭代次數(shù)上限,平滑參數(shù),停止準(zhǔn)則之類,但我就應(yīng)付個(gè)作業(yè),就寫(xiě)個(gè)大概的思想。

總結(jié)

以上是生活随笔為你收集整理的UA MATH575B 数值分析下III 图像恢复的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费视频软件网站 | 麻豆免费av| 色亚洲视频 | 亚洲成人手机在线 | 国产免费久久精品国产传媒 | 激情综合视频 | 在线无 | 色妞网 | 麻豆成人久久精品一区二区三区 | 奇米影视中文字幕 | 亚洲色图插插插 | 日韩一二三区 | 看片网址国产福利av中文字幕 | 人妻夜夜爽天天爽三区麻豆av网站 | 香蕉视频官方网站 | 伊人超碰 | 国产伦精品一区二区三区88av | 色黄视频在线观看 | 日韩精品在线播放 | 丝袜黄色片 | 国产欧美一区二区精品性色超碰 | 一区二区在线精品 | 国产wwwwwww | 日韩欧美成人免费视频 | 亚洲天堂一区 | 黄色a网| 蜜桃av一区二区 | 男生和女生一起差差差视频 | 国产理论视频 | 人人爽av| 韩国日本美国免费毛片 | 青草青在线视频 | 亚洲天堂2016 | 一道本av| 一区视频网站 | 欧美中文字幕视频 | 国语粗话呻吟对白对白 | 最近最新mv字幕观看 | 国产精品第100页 | 99精品视频在线观看 | 18在线观看免费入口 | 大学生三级中国dvd 日韩欧美一区二区区 | av天天有| 亚洲在线免费观看 | 中文字幕一区二区三区日韩精品 | 97麻豆视频 | 1024国产视频| 欧美一区二区三区网站 | 欧美国产精品久久 | 色777| 自拍偷拍视频在线 | 三区四区 | 看黄色小视频 | 狠狠网 | 黄色污污视频网站 | 午夜久久久久久久久久影院 | 免费涩涩网站 | 久久久999国产精品 天堂av中文在线 | 亚洲88 | 精品无码国产污污污免费网站 | 亚洲最新中文字幕 | 精品一区视频 | 久久我不卡 | av国产在线观看 | 性欧美丰满熟妇xxxx性久久久 | 中文字幕人妻色偷偷久久 | 91超碰在线| 午夜影院| 小蝌蚪视频色 | 性欧美ⅹxxxx极品护士 | 97爱爱爱 | 日韩亚洲欧美一区二区三区 | av中文在线 | 波多野结衣在线免费观看视频 | 精品人妻一区二区三区香蕉 | 久草美女 | 久久综合免费视频 | 97在线免费视频观看 | 99视频一区| 日本做爰三级床戏 | 欧洲金发美女大战黑人 | www.国产在线观看 | 放荡闺蜜高h季红豆h | 国产特黄一级片 | 香蕉视频1024| 国产欧美色图 | 国产一区二区自拍视频 | 在线天堂一区 | 男女羞羞动态图 | 激情小说在线观看 | 欧美色狠 | 校霸被c到爽夹震蛋上课高潮 | 最新欧美大片 | 一级福利片 | 亚洲国产成人精品女人久久久 | 大战熟女丰满人妻av | 在线看片网站 | 台湾a级艳片潘金莲 | 国偷自产av一区二区三区麻豆 |