天天看點

如何處理計算機視覺和深度學習中的圖像資料

作者:ChinaIT數字變革未來

#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。

● 確定在測試或部署模型時也應用訓練期間應用于圖像的預處理。

來源:機器視覺産業聯盟

繼續閱讀