導讀
包括了適用于傳統圖像的數據處理和深度學習的數據處理。
介紹:
在過去幾年從事多個計算機視覺和深度學習項目之后,我在這個博客中收集了關于如何處理圖像數據的想法。對數據進行預處理基本上要比直接將其輸入深度學習模型更好。有時,甚至可能不需要深度學習模型,經過一些處理后一個簡單的分類器可能就足夠了。
最大化信號并最小化圖像中的噪聲使得手頭的問題更容易處理。在構建計算機視覺系統時,應考慮使用濾波器來增強特征并使圖像對光照、顏色變化等更加穩健。
考慮到這一點,讓我們探索一些可以幫助解決經典計算機視覺或基于圖像的深度學習問題的方法。相關的代碼倉庫:https://github.com/bikramb98/image_processing。
1. 先簡單再深入:
在應用最新和最好的深度學習解決問題之前,請嘗試經典的計算機視覺技術。特別是在數據可能稀缺的情況下,就像許多現實世界的問題一樣。
檢查計算圖像像素的統計值(例如均值、峰度、標準差)是否會導致不同類別的統計值不同。然后可以在這些值上訓練一個簡單的分類器,例如 SVM、KNN,以在不同的類之間進行分類。
2. 增加圖像信噪比:
在將它們輸入深度學習模型之前,檢查預處理技術是否增強了圖像的主要特征并提高了信噪比。這將有助于模型獲得更好的準確性。
使用閾值處理等技術、腐蝕和膨脹等噪聲消除技術、高斯模糊(平滑邊緣)和中值模糊(消除椒鹽噪聲)等模糊技術。
對于不同的問題,不同的運算可能在不同的順序下有用。
通常的做法是多次使用特定運算符,如果可以增強特征,那就在幾個步驟之后再次應用。
找到濾波器、閾值等不同kernel大小的最佳組合(其組合可能達到數百萬!),可以產生產生最佳效果的圖像,可以通過構建交互式滑塊來幫助找到這些值的理想范圍。
3. 直方圖均衡
增強圖像特征的另一種方法是使用直方圖均衡化。直方圖均衡化提高了圖像的對比度。直方圖均衡化的目的是使出現頻率最高的像素值均勻分布。
讓我們看看下面的例子。
可以看出,上圖的對比度非常低。在這種情況下,重要的是要提高對比度,使圖像的特征更清晰可見。OpenCV 提供了兩種這樣做的技術 —— 直方圖均衡化和對比度受限自適應直方圖均衡化 (CLAHE)。
應用直方圖均衡化,圖像的對比度確實有所提高。但是,它也會增加圖像中的噪點,如下圖中間所示。
這就是CLAHE 的用武之地。使用這種方法,圖像被分成 m x n 網格,然后將直方圖均衡應用于每個網格。可以使用交互式滑塊找到理想的對比度閾值和網格大小,如下所示。
用于查找最佳閾值和圖塊大小值的交互式滑塊
從左到右:原始圖像、直方圖均衡圖像、CLAHE 后圖像
4. 圖像的顏色空間變換:
將圖像轉換到不同的顏色空間,例如 HSV,通常可以提供更好的信息來分割目標,用于目標跟蹤等情況。通常,RGB 顏色空間對陰影、光照的輕微變化(影響目標的顏色)不穩健。對于使用經典計算機視覺進行目標跟蹤等任務,由于上述原因,在稍有不同的環境中使用時,RGB 空間中經過調試的mask通常會失敗。此外,一旦將圖像轉換為不同的空間(例如 HSV),分離通道通常有助于分割感興趣的區域并消除噪聲。如下圖所示,一旦將圖像轉換為 HSV 空間并拆分通道,就可以更輕松地去除陰影并分割網球。
不同的顏色空間(RGB、HSV)及其分量拆分
5. 歸一化圖像:
如果將圖像輸入深度學習模型,則必須使用批歸一化等技術對圖像進行歸一化,這將有助于標準化網絡的輸入。這將有助于網絡學習得更快、更穩定。批量歸一化有時也會減少泛化誤差。
6. 進行有意義的增強:
在增強圖像時,確保應用的增強技術保留圖像的類別并且類似于現實世界中遇到的數據。例如,對狗的圖像應用裁剪增強可能會導致增強后的圖像不像狗。在某些目標使用旋轉和翻轉進行增強的情況下也是如此。在增強時更改圖像屬性(例如顏色)時要非常小心。此外,請確保擴充數據不會更改圖像的標簽。
始終檢查增強圖像是否有意義并反映現實世界。
隨機裁剪等增強如何導致數據損壞的示例
7. 訓練集和驗證集的數據泄露:
確保相同的圖像(比如原始圖像和增強圖像)不在訓練集和驗證集中同時出現是很重要的。這通常發生在訓練驗證集拆分之前就執行數據增強。忽略這一點可能會導致給出錯誤的模型指標,因為它會在訓練期間從非常相似的圖像中學習,這些圖像也存在于驗證集中。
8. 在測試集合驗證集上需要包括所有類別:
確保測試集和驗證集包含所有標簽樣本。這樣模型指標反映的才是模型的真實表現。
以其中一個標簽的樣本數量明顯較少的情況為例。執行隨機訓練集測試集拆分可能會導致更少標簽的類根本不會出現在驗證/測試集中。當訓練好的模型被測試時,它不會在那個特定的類上被測試,模型指標也不會反映其性能的真實表現。
9. 后處理完整性檢查:
模型訓練好之后,執行一些完整性檢查也很重要:
確保在多類分類器的情況下所有類的輸出總和為 1。
確保在測試或部署模型時也應用訓練期間應用于圖像的預處理。
審核編輯 :李倩
-
計算機視覺
+關注
關注
8文章
1700瀏覽量
46130 -
深度學習
+關注
關注
73文章
5516瀏覽量
121553
原文標題:理解如何處理計算機視覺和深度學習中的圖像數據
文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論