日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产伦子伦对白视频 | 天天干天天操天天摸 | 关秀媚三级 | 可以看的毛片 | 久久国产精品国产精品 | 50部乳奶水在线播放 | 日韩av在线播放观看 | 亚洲色图 在线视频 | 日日碰 | 美丽的姑娘在线观看免费 | 免费看成人aa片无码视频羞羞网 | 亚洲免费视频播放 | 被灌满精子的波多野结衣 | 永久在线| 杨贵妃颤抖双乳呻吟求欢小说 | 看国产毛片 | 玖草在线视频 | 伊久久 | 日韩大胆人体 | 亚洲视频一区在线观看 | bl动漫在线观看 | 国产精品电影在线观看 | 狠狠网| 国产日产精品一区二区 | 亚洲人成电影在线播放 | 久久久精品欧美 | 色婷婷国产精品 | 亚洲黄在线观看 | 国产精品大片 | 五月婷婷视频在线观看 | 亚洲一区 | a色视频| 日本黄区免费视频观看 | 69视频一区二区三区 | www.国产精品.com | 欧美黑人巨大xxx极品 | 激情五月婷婷色 | 狠狠欧美 | 亚洲av无码一区二区三区观看 | 免费观看黄色的网站 | 少妇熟女视频一区二区三区 | 伊人开心网 | 成人五区| 国产成人亚洲综合 | 青青草av | 日韩一区二区不卡视频 | 日本三级黄色大片 | 日韩午夜av | 在线干 | 黄色一级大片 | 伊人成综合网 | 激情五月婷婷 | 一级黄色a | 国产 欧美 日韩 一区 | 在线免费观看国产 | 一区二区三区麻豆 | 免费福利av | 精品一区二区三区免费观看 | 日本精品入口免费视频 | 日韩黄色免费看 | 日韩a级大片 | 污导航在线 | 99久草| 超碰人人超 | 精品久久久中文字幕人妻 | 在线视频观看 | 亚洲欧美另类在线 | 免费视频日韩 | 熟女丰满老熟女熟妇 | 亚洲日本色图 | 国产主播一区二区三区 | 国产乱码精品一区二区 | 国内偷拍一区二区 | 看片一区 | 韩国中文字幕在线观看 | 欧美激情 一区 | 夜夜嗨aⅴ一区二区三区 | 最污网站在线观看 | 香港台湾日本三级大全 | 天天操操操 | 国产日韩欧美视频在线观看 | 夜夜爱夜夜操 | 九九热精品| 耳光调教vk | 偷拍夫妻性生活 | 右手影院亚洲欧美 | 天堂最新资源在线 | 天天操天天操天天操天天操天天操 | 欧美视频直播网站 | 日产精品久久久久 | 亚洲人性生活视频 | 熟女一区二区三区四区 | 一区二区三区 欧美 | 999免费 | 日韩欧美中文字幕一区 | 华丽的外出在线 | 久久不卡视频 | 成人小视频免费看 | 欧美人成在线 |