DCTNet
http://giantpandacv.com/academic/%E7%AE%97%E6%B3%95%E7%A7%91%E6%99%AE/%E9%A2%91%E5%9F%9F%E4%B8%AD%E7%9A%84CNN/CVPR%202020%20%E5%9C%A8%E9%A2%91%E5%9F%9F%E4%B8%AD%E5%AD%A6%E4%B9%A0%E7%9A%84DCTNet/
一個對輸入圖像進行頻域轉換和選擇的方法,達到壓縮的目的,主要應用大分辨率圖像壓縮為小的輸入圖像,輸入到神經網絡。
1.首先對圖像進行正常的預處理: resize, croping, flip等.
2.然后轉換到YCbCr空間:
參考:https://zhuanlan.zhihu.com/p/88933905
0.564應該是0.504
3.dct轉換
https://blog.csdn.net/tywwwww/article/details/126464132
分別對 Y, Cb, Cr處理
假如 224 224 1 的圖像,進行patchsize= 8的DCT變換后
得到(56x8) (56x8) 1的圖像
然后 每個8x8 patch相同的頻率的 group在一起,什么意思呢?就是pixelshuffle的逆操作,這樣 變為 56x56x64的 大小, YCbCr一共 192個channel
注意此時每個通道的含義:每個通道表示相同的頻率。
如下圖所示:只是下圖的patch size=2
4.dct channel prune:Learning-based Frequency Channel Selection
雖然以上 圖像h,w降下來了,但是channel 變大,整體數據量是沒有變的。這個時候可以應用通道剪枝的方法,對channel進行篩選。
論文中先 vagpool , 再 1x1卷積 得到tensor3。 剩下的不懂也感覺麻煩。tensor3后面跟softmax 不是就可以 select了嗎 轉化為 0,1
具體選擇了哪些頻率,作者畫出來了:
8x8 patch 共有64個頻率,下圖的數字就是表示各個頻率。 顏色深淺表示保留的概率。
可以看出低頻更容易被保留。因此作者還實驗了 固定保留左上角的頻率,左上角的方塊Square或者三角Triangle。 和動態選擇 的性能差不多。因此是不是就沒必要動態select channel了
在 high level任務上這樣做或許可以,但是low level任務高頻信息一般也比較重要。