1. 程式人生 > >影象處理,計算機視覺與machine learning的區別與聯絡(轉載自 https://mp.weixin.qq.com/s/gOikxUxWpqdDRr6_KT2jxQ)

影象處理,計算機視覺與machine learning的區別與聯絡(轉載自 https://mp.weixin.qq.com/s/gOikxUxWpqdDRr6_KT2jxQ)

        隨著科技進步的加速,新的技術出現並且成熟的速度明顯地加快了,過去我們老說成像技術,訊號處理,影象處理,後來又經常說計算機視覺,現在則鋪天蓋地都是machine learning。這些技術或多或少的在我們的身邊出現,到底他們是什麼,與我們目前的工作有哪些聯絡和區別?我們就先從輸入,輸出,工作方法三個角度來談一談影象處理,計算機視覺與machine learning的關係。

影象處理   的輸入輸出都是影象,用訊號處理的方法對影象進行濾波,去噪,邊緣增強,色彩還原等處理。

計算機視覺  的輸入可以是影象,視訊,或者是來自於視覺資料的量化資訊。輸出則是屬性資訊,比如大小,距離,顏色,數量,類別,形狀等。所使用的方法既包含影象處理的技術方法,也包含其他的技術,可以說計算機視覺的技術外延更大。如果說影象處理主要是針對二維的影象,那麼計算機視覺主要是針對三維的空間。

        成像技術可以說主要是製作影象,影象處理主要是增強影象,到了計算機視覺,側重點就主要是分析理解影象了。

 Machine learning則是一種可以應用在計算機視覺中幫助解決識別等問題的方法。所以在這個領域工作可以遇到的一種情況就是,工作在計算機視覺的公司,包含了這三個技術方向的工程師,因為沒有好的成像和影象處理,也就沒有好的計算機視覺的輸入,沒有machine learning的技術,計算機視覺會有很多難解的問題。


        以一個產品開發為例說說這三者之間的聯絡。比如我們要開發一個水下監控相機,用來監控海邊浴場附近的鯊魚,既可以人工監測,也具有自動監測功能。自動監測一旦監測到出現鯊魚,就會警告游泳的人趕緊離開。


        首先做camera的工程師上場,做出一個在水下能清晰攝影的相機,  影象處理  工程師根據應用場景做影象的優化,比如去炫光,散射,處理HDR,做tone mapping,邊緣增強,色彩處理等等。

        然後做計算機視覺  的工程師上場,做幾何標定,運動檢測,物體跟蹤,計算遊動物體的大小和速度。如果大小和速度在一定的範圍內,就認為是鯊魚。


        相機用了一段時間,發現一個問題,就是經常出現虛警,附近活動的潛水員經常會被認為是鯊魚,因為潛水員的遊速和大小與某種鯊魚很近似,所以很容易被認為是鯊魚。這時候就該machine learnning工程師上場了,他們把之前相機拍的所有視訊拿來,把所有有鯊魚的影象標定出來,輸入到一個或者幾個模型進行訓練,教這個模型認識什麼是鯊魚,這個模型可以是

SVMNeural Networks,決策樹等等。


        最後用新採集的視訊進行測試,把幾個模型的識別率做比較。


        可以看出Deep CNN完爆其他方法。

        識別成功率只是一個方面,執行的速度也非常重要,所以要綜合考慮到底用哪種模型。總而言之,machine learning的方法是計算機視覺的一個重要補充。在這個例子裡,它可以大幅減少虛警的情況。

        從這個例子我們可以看出,影象處理和計算機視覺工程師基本的工作方法是有很多共性的,Machine learning 工程師可以完全不懂影象處理,他們主要研究的物件是模型。

        在筆者辦公室裡坐著這三個技術方向的工程師,machine learning的工程師很多都是數學系畢業的。我諮詢了一下從事這方面工作的同事,他給了下面的一些網上免費學習cv和ml的資料,感興趣的朋友可以自學,大話成像公眾號也會在將來多延伸一些計算機視覺和machine learning的文章與大家分享。

斯坦福大學的CV公開課

深度學習課程,通過測試還能拿到證書