什么是张量
张量是多维数组的泛概念。一维数组我们通常称之为向量,二维数组我们通常称之为矩阵,但其实这些都是张量的一种。以此类推,我们也会有三维张量、四维张量以及五维张量。那么零维张量是什么呢?其实零维张量就是一个数。
张量的基本操作
两个张量的内积
<χ,y>=i1=1∑I1i2=1∑I2...iN=1∑INxi1i2...iNyi1i2...iN
介绍
observation[I]=image[Iclean]+noise[η]
算法描述
张量简介
HOSVD分解
基于HOSVD的去噪算法
算法流程
Algorithm 1:HOSVD denoising
input :Inoisy:original imag,σ
output:Idenoised:Denoised image
Set kHard = 8
Precomputes Block matching with threshold:3×chnls×σ2×kHard2
foreach pixel position (i,j) do
Define matrix unfold1(kHard,kHard \times nSx_r \times chnls)
Define matrix unfold1(kHard,kHard \times nSx_r \times chnls)
Define matrix unfold2(kHard,kHard \times nSx_r \times chnls)
Define matrix unfold3(chnls,kHard^2 \times nSx_r)
Define matrix unfold4(nSx_r,kHard^2 \times chnls)
Fill unfold1,unfold1,unfold1,unfold1 from Inoisy
Compute the SVD svdi of unfoldi
Define matrix U42
if chnls==1 then
└U42=svd4.matrixU()⊗svd2.matrixU()
if chnls==3 then
└U42=svd4.matrixU()⊗svd3.matrixU()⊗svd2.matrixU()
Define matrix core=svd1.matrixU()T×unfold1×U42
Threshold core using 2×log(kHard2×nSxr×chnls)
Store denoised tensor fromCore = svdi.matrixU()×core×U42T
Perform averaging of all ovelapping pathes to produce Idenoised
