計算機視覺算法:您想知道的一切 [2022]
已發表: 2021-01-01了解使計算機能夠感知的算法
目錄
介紹
計算機視覺一詞是指計算機查看和感知周圍環境的能力。 計算機視覺涵蓋了許多應用——對象檢測和識別、自動駕駛汽車、面部識別、球跟踪、照片標記等等。 在深入了解技術術語之前,首先讓我們討論一下整個計算機視覺管道。
整個流水線分為 5 個基本步驟,每個步驟都有特定的功能。 首先,算法需要處理輸入,輸入可以是圖像或圖像流(圖像幀)的形式。 下一步是預處理。 在這一步中,函數被應用於傳入的圖像,以便算法可以更好地理解圖像。
其中一些功能涉及降噪、圖像縮放、膨脹和腐蝕、去除色斑等。下一步是選擇感興趣的區域或感興趣的區域。 在此之下是對象檢測和圖像分割算法。 此外,我們有特徵提取,這意味著從圖像中檢索完成最終目標所必需的相關信息/特徵。
最後一步是識別或預測,我們識別給定圖像幀中的對像或預測給定圖像幀中對象的概率。
例子
讓我們看一下計算機視覺管道的真實應用。 面部表情識別是計算機視覺的一種應用,許多研究實驗室都使用它來了解特定產品對其用戶的影響。 同樣,我們有應用預處理算法的輸入數據。

下一步涉及檢測特定幀中的人臉並裁剪該幀的該部分。 一旦實現這一點,面部標誌就會被識別出來,比如嘴巴、眼睛、鼻子等——這是情緒識別的關鍵特徵。
最後,預測模型(訓練模型)根據中間步驟中提取的特徵對圖像進行分類。
算法
在我開始提到計算機視覺中的算法之前,我想強調一下“頻率”這個詞。 圖像的頻率是強度的變化率。 高頻圖像的強度變化很大。 低頻圖像的亮度比較均勻或強度變化緩慢。
在對圖像應用傅里葉變換時,我們得到一個幅度譜,它產生圖像頻率的信息。 頻域圖像中心的集中點意味著圖像中存在大量低頻分量。 高頻成分包括——邊緣、角落、條紋等。我們知道圖像是 x 和 yf(x,y) 的函數。 為了測量強度變化,我們只取函數 f(x,y) 的導數。
清醒過濾器
Sobel 算子用於圖像處理和計算機視覺中的邊緣檢測算法。 過濾器創建強調邊緣的圖像。 它計算圖像強度函數的斜率/梯度的近似值。 在圖像中的每個像素處,Sobel 算子的輸出既是對應的梯度向量,也是該向量的範數。
Sobel 算子在水平和垂直方向上用一個小的整數值濾波器對圖像進行卷積。 這使得算子在計算複雜性方面成本低廉。 Sx 過濾器檢測水平方向的邊緣,Sy 過濾器檢測垂直方向的邊緣。 它是一個高通濾波器。
將 Sx 應用於圖像
將 Sy 應用於圖像
閱讀:印度的機器學習薪資
平均濾波器
平均過濾器是一種標準化過濾器,用於確定圖像的亮度或暗度。 平均濾波器逐個像素地在圖像上移動,將像素中的每個值替換為包括其自身在內的相鄰像素的平均值。
平均(或均值)過濾通過減少相鄰像素之間的強度變化量來平滑圖像。

平均濾鏡,圖片來源
高斯模糊濾鏡
高斯模糊濾波器是一種低通濾波器,它具有以下功能:
- 平滑圖像
- 阻止圖像的高頻部分
- 保留邊緣
在數學上,通過對圖像應用高斯模糊,我們基本上是將圖像與高斯函數進行卷積。
上式中, x是到原點的水平距離, y是到原點的垂直距離, σ是高斯分佈的標準差。 在二維中,該公式表示一個表面,其輪廓是從原點開始呈高斯分佈的同心圓。
高斯模糊濾鏡,圖片來源
這裡要注意的一件事是選擇正確的內核大小的重要性。 這很重要,因為如果內核維度太大,圖像中存在的小特徵可能會消失,並且圖像看起來會模糊。 如果太小,圖像中的噪點將無法消除。
另請閱讀:您應該知道的 AI 算法類型
Canny 邊緣檢測器
它是一種利用四個濾波器來檢測模糊圖像中的水平、垂直和對角邊緣的算法。 該算法執行以下功能。
- 它是一種廣泛使用的精確邊緣檢測算法
- 使用高斯模糊過濾掉噪聲
- 使用 Sobel 濾波器查找邊緣的強度和方向
- 應用非最大抑制以隔離最強的邊緣並將它們細化為一條像素線
- 使用滯後(雙閾值方法)來隔離最佳邊緣
蒸汽機照片上的 Canny Edge 檢測器,圖片來自 Wikipedia
哈爾級聯
這是一種基於機器學習的方法,其中訓練級聯函數來解決二進制分類問題。 該函數是從大量的正負圖像中訓練出來的,並進一步用於檢測其他圖像中的對象。 它檢測以下內容:
- 邊緣
- 線條
- 矩形圖案
為了檢測上述模式,使用了以下功能:
卷積層
在這種方法中,神經網絡學習屬於同一類別的一組圖像的特徵。 通過使用反向傳播技術和梯度下降作為優化器更新神經元的權重來進行學習。
這是一個迭代過程,旨在減少實際輸出與基本事實之間的誤差。 在該過程中如此獲得的捲積層/塊充當特徵層,用於區分正圖像和負圖像。 下面給出卷積層的示例。

卷積神經網絡,圖像源
完全連接的層以及最後的 SoftMax 函數將輸入圖像分類為它所訓練的類別之一。 輸出分數是一個概率分數,範圍在 0 到 1 之間。
必讀: ML 中的分類算法類型
結論
本博客介紹了計算機視覺中使用的最常見算法的概述以及一般管道。 這些算法構成了更複雜算法(如 SIFT、SURF、ORB 等)的基礎。
如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為工作專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT- B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。
圖像處理和計算機視覺有什麼區別?
圖像處理增強了圖像的原始形式以產生更好的版本。 它也用於提取主圖像的一些特徵。 因此,圖像處理是計算機視覺領域本身的一個獨特部分。 然而,計算機視覺專注於識別刺激對像以進行準確分類。 兩者在他們的程序中也使用了類似的技術。 因此,圖像處理可以成為計算機視覺的主要過程。 它仍然是人工智能的一個突出領域。 圖像處理側重於增強圖像; 計算機視覺技術專注於詳細、準確的分析,以創建更好的系統。
為什麼要使用深度學習來構建計算機視覺算法?
由於嚴格的數據驅動研究和一致的視覺數據分析,計算機視覺使人工智能 (AI) 更加強大。 深度學習是通過神經網絡連續輸入數據的過程。 這些信息來源於人腦過程,以完善高效學習、處理和輸出的算法。 深度學習增強了準確的數據分類,確保了可靠的 AI 模型。 計算機視覺使用這種方法將 AI 與人腦的神經網絡對齊。 深度學習使可靠的系統能夠幫助人類並提高他們的生活質量。
什麼是低通濾波器和高通濾波器?
在計算機視覺算法中,多個過濾器從原始圖像中產生所需的結果。 這些濾鏡執行多種功能,可根據需要平滑、銳化和突出外觀。 濾波器的頻率不同,並提出不同的效果。 例如,高斯模糊濾波器本質上是通過改變圖像的高頻部分並保留邊緣來平滑圖像。 它被稱為低通濾波器,因為它會減少高頻位置並保持低頻位置,從而使其具有更平滑的視覺效果。 在高通濾波器中,低頻位置被減少,而前者被保留,從而產生更清晰的視覺效果。