運算量很大的圖像處理演算法有什麼意義呢?
如題,很多新的演算法做得非常複雜,甚至有些預處理演算法處理一幅圖片都需要很久(比如十幾秒或更多)。本人初涉圖像處理研究領域,對於這種現象有些想不明白:這樣複雜的演算法的意義何在?難道只要效果好就夠了?複雜的運算難道不是一種很大的弊端嗎?請各位大神指教,謝謝~~
複雜的運算是在用時間去換別的資源。
比如精度:衛星照片/醫療影像在設備解析度無法提升的情況下可以用演算法進行圖像增強,處理後的圖像可識別率更高。
比如空間:把點陣圖壓縮為JPEG可以節省大量的存儲空間,比較一下單反相機的RAW格式和JPG格式就知道了,前者往往是後者的幾十倍。
比如彌補:Photoshop支持的一些濾鏡可以有效挽救攝影的失誤:抖動導致的模糊、曝光不足或者過曝、白平衡不準確等等,畢竟比起重新去拍一次原片,做複雜的圖形圖像處理要經濟划算多了。謝邀。我們應該知道,圖像處理時間跟圖像大小是成正比的,完成同一結果,圖像解析度越大,處理時間越長,知道這個前提,我們接下來細聊。
首先,我們必須要清楚,在能夠達到處理精度(圖像處理的目的)的前提下,演算法越簡單越省時間越好,實際應用現場,追求效率和穩定性,杜絕一切以賣弄技術或者以實驗為目的所謂複雜演算法。有成熟的快速的演算法不用,人為複雜化,有病啊!我們儘可能的在圖像源上下功夫,用好點的相機,鏡頭,光源,琢磨一下拍攝環境,把圖拍的效果好一點。不要跟我說,為了節省硬體成本,拍圖效果一般,用更複雜的演算法去彌補,先不說複雜演算法會引入更多的不穩定性,開發及調試這些複雜演算法,不需要時間啊,人工成本免費么?!
其次,當然,如果現有的硬體,只能特么拍成這樣效果了,世界上找不出更好的設備能採集到更好的圖,換任何人也拍不到更好的圖,要處理這樣的圖,現有的演算法搞不定,達不到精度,實現不了效果,腫么辦,只能開發新的演算法,可能耗時秒級,分鐘級,小時級,甚至數天,你不能說開發這樣的演算法沒有意義,這和上面說的賣弄技術有本質不同,這是試驗,以盡量達到結果為目的,我們只能期待計算機硬體或者採集設備能夠不斷發展,讓軟體演算法的時間儘可能縮短儘可能穩定。手機敲的,好累!都已經縮短成十級秒了難道還不值得高興嗎?
很多東西都和場景有關係,複雜運算在需要實時輸出的情況下確實意義不大,但是隨著計算能力提高意義就有了。
舉一個例子,上個月一家叫做Replay Technologies的以色列公司賣給了Intel,他們是做大型賽事的自由視角直播的,但是由於圖像拼接演算法處理很耗時,他們需要用很多的處理器,Intel感興趣的是這個領域對於處理器的需求,如果這個領域發展的好,Intel就會跟著沾光,所以就任性的買買買了(1.7億美金)。
這個例子要這麼理解,圖像本身是我們商業社會下的必需品,所以整個行業以至於產業鏈中每個環節都有動機推進這件事情。有的時候複雜的演算法只是向資本證明了這件事是可以做的,投入更多的錢之後這些事情就可以轉化出價值。
圖像處理的小夥伴們,歡迎來我們這裡,我們在開發一套拍攝自由視角視頻的相機系統,感興趣私信我啦。表示寫過一個200行的代碼,跑圖像處理,不關機跑了1個月。苦逼的人生啊。
根據題主的情況,我猜測指得是是學術領域的情況。而在學術領域這種「新的演算法做得非常複雜」的情況還是比較普遍的;而且大部分情況下,只要該演算法的效果比現有的演算法好,它就是有意義的。
這個所謂的「複雜」是在當前情況下的,我們現在很多熟知的演算法在它們剛剛被提出來的時候也是很「複雜」的。最典型的傅里葉變換,在FFT提出來之前,傅里葉變換隻是實驗室的玩具。在沒有快速演算法的情況下,當時的傅里葉變換根本沒法實際應用。
所以,只要新提出的演算法效果有提升,就是有意義的。在不遠的將來,會因為計算機速度的提高或快速演算法的提出而流行起來。計算機十幾秒,上GPU立馬除以100,十分之一秒,不知題主可滿意
我覺得從兩個當面來說。
一是先別管運算量,至少效果或理論能達到,先談能否做到再來談怎麼做
二是摩爾定率,硬體上的翻新很快,也許過幾年就可以做到了。而且優化那幫人也很變態的。我在做的是視覺測量,系統初始化需要對相機做標定。標定的精度非常重要,而且系統使用很長時間內只需要標一次。這種計算量大但是效果好的演算法正好能用到。
我現在做的傾斜攝影建模,每次需要處理50000張以上的地面解析度5厘米的航空影像,經過基於計算機視覺匹配的演算法,自動生成城市級別的三維數據,如果沒有強大的影像處理演算法的支持是不可想像的
先把東西做出來,能夠實驗功能後慢慢優化演算法。另外運行速度方面。我直接用matlab跑的代碼是3.7s,換成m文件後時間在1s之內,時間問題會有解決辦法的
等到計算機速度夠快的那一天,就有意義了。不過,如果不需要實時計算,精度應該首要被考慮吧。
好多演算法如果需要實時進行,都是可以硬體加速的。我去年的一個數片機項目需要圖像拼接技術,不加速1.5秒,加速後40ms
衛星照片的話,別說十幾秒,你就是一張分析一年,也沒問題啊。比上個更好的衛星重拍神馬的,便宜多了……再說,如果摩爾定律一直成立的話,十秒一幀到一秒60幀,也就是十幾年的事。
推薦閱讀:
※做圖像處理的研究生除了要學習MATLAB外,還要學習什麼編程語言,利用什麼編程軟體?謝謝回答。謝謝?
※opencv,halcon與matlab都有圖像處理的相關功能,它們有什麼聯繫和區別?
※求問matlab圖像處理相關入門和深化的方法或者書籍?
※圖像處理專業的哪些方向就業比較好(碩士),主要去哪些公司?
※入門 C++,求介紹經驗?