回答
如果2D濾波器內核1的rank
那麼它是分開的。您可以在例如Matlab或倍頻:
octave-3.2.3:1> sobel = [-1 0 1 ; -2 0 2 ; -1 0 1];
octave-3.2.3:2> rank(sobel)
ans = 1
octave-3.2.3:3>
參見:http://blogs.mathworks.com/steve/2006/11/28/separable-convolution-part-2/ - 這包括使用SVD
(奇異值分解)來提取可分離2D內核中的兩個一維的內核。
也這個問題參見DSP.stackexchange.com:Fast/efficient way to decompose separable integer 2D filter coefficients
也可以分割成矩陣對稱和歪斜部件和獨立的每個部分,其可以有效地用於較大的二維卷積。
你能舉個例子來澄清一下嗎? – mrgloom 2015-02-11 15:52:26
如果你可以把你的2d矩陣作爲矢量乘積'xy'+ u.v''等等,你可以做一系列行和列的1d卷積而不是2d卷積,只需要4N乘/加,而不是N^2。如果'u.v''具有更小的尺寸,則縮小更大。這通常假定您已經預先了解矩陣的結構以減輕分離。它也將取決於你的計算引擎 - GPU可能偏愛另一種結構。 – 2015-02-11 23:36:55
- 1. 空間可分卷積
- 2. 1卷積可以分成2個卷積嗎?
- 3. 確定卷是否是來自代碼
- 4. 卷積與可分離內核
- 5. 是否存在TensorFlow解卷積?
- 6. 如何確定卷積神經元網絡的架構
- 7. 卷積:在卷積的最後一個元素是永遠正確的
- 8. 如何計算Xception紙張中的可分卷積?
- 9. 是否可以對iOS中的視頻進行解卷積?
- 10. 如何確定PDF是否可搜索
- 11. 如何確定monad是否可交換?
- 12. 如何確定主機是否可達?
- 13. 如何確定cameraDevice是否可用?
- 14. 如何確定卷是否支持垃圾箱?
- 15. 如何確定視圖是否部分可見
- 16. 如何在CUDA中執行零卷積以進行卷積
- 17. FFT卷積不是比cannonical卷積計算
- 18. 驗證卷積定理
- 19. 轉置卷積(反捲積)算法
- 20. 確定FILE *是否可寫
- 21. 確定是否點可見
- 22. 確定AJAX是否可能?
- 23. 確定WindowServer是否可用?
- 24. 如何確定幾何是否是多部分?
- 25. 卷積在MATLAB
- 26. 卷積在Python
- 27. C++ STL卷積
- 28. 卷積核
- 29. Tensorflow:在卷積
- 30. 解卷積C++
SVD是去這裏的路。可分離的(即1級)內核是非常具體的,SVD允許你用可分離的(小)和來近似內核。 – 2011-05-04 21:19:29