關注「深度學習衝鴨」,一起學習一起衝鴨!
設為星標,第一時間獲取更多乾貨
著作權歸作者所有,本文僅作學術分享,若侵權,請聯繫後臺刪文處理!!文末附每日小知識點哦!!
目標檢測是圖像處理的重要組成部分。自動駕駛汽車必須檢測車道,路面,其他車輛,人,標誌和信號等。我們生活在一個動態的世界中,一切都在不斷變化。對象檢測的應用無處不在。
我們正在研究自動駕駛汽車的深度學習和計算機視覺。特徵檢測是對象檢測的任務之一。那麼,什麼是特徵檢測?對於人類,我們了解圖案,形狀,大小,顏色,長度以及其他可識別物體的物體。它也有點類似於計算機。
特徵可以是形狀,邊緣,長度等任何形式,也可以是所有特徵的組合。在我們之前有DeepFake檢測的項目,我們使用MSE(均方誤差),PSNR(峰值信噪比),SSIM(結構相似性指數)和直方圖作為特徵從真實圖像中識別DeepFake圖像。
一個好的算法必須是可重複的和可擴展的。例如,假設目標是從大量圖像中檢測狗,其中還包含貓和其他動物的圖像。
關於特徵的表述,它必須是獨特的,並且需要在大多數數據中顯示。如果我們有大部分與上述兩張圖片相似的圖片,那麼這裡的不好的特徵是什麼?
在這種情況下,一個不好的特徵就是耳朵的大小。我們的理解是狗耳朵的大小通常較大。但這不是示例圖像中的原因。在第一個圖像中,狗的耳朵與貓相似,甚至更小。如果我們僅使用耳廓大小作為特徵來僅使用這兩個圖像來訓練模型,則我們將有50%的真陰性或假陽性。這帶來了另一個重要的觀點。如果您想在模型中獲得更高的成功,則應謹慎選擇該功能。大小尺寸也不是一個好的特徵。
我們的目標是識別其他物體,例如道路上的卡車。我們可以使用哈裡斯角點檢測或精巧邊緣檢測之類的技術來檢測邊緣。我們需要將汽車,行人,標誌與圖像分開。我們可以使用OpenCV專門識別卡車。
import cv2cv2.matchTemplate()模板匹配只是一種將輸入圖像複製到模板圖像上,並在模板圖像下比較模板圖像和輸入圖像的技術。它返回一個灰度圖像,表示該模板與多少個像素匹配。OpenCV提供了許多模板匹配方法。這是相關係數的數學公式。
一旦在兩個圖像中都找到匹配項,它將選出相似點。OpenCV官方文檔在此處提供了帶有代碼示例的詳細信息。讓我們找到路上的卡車。
import cv2import numpy as npimport matplotlib.image as mpimgfrom matplotlib import pyplot as plt%matplotlib inlineimage_color =cv2.imread('actual_truck.jpg')plt.imshow(image_color)我們從文件中讀取圖像。我們將在此圖像中找到卡車。
使用灰度的原因是使圖像儘可能簡單。不需要彩色圖像。顏色增加了圖像的複雜度,並增加了信噪比。
image_gray = cv2.cvtColor(image_color,cv2.COLOR_BGR2GRAY)plt.imshow(image_gray,cmap ='gray')
這是我們的模板圖像。OpenCV使用此圖像收集了特徵並找到了卡車。
import cv2import numpy as npimport matplotlib.image as mpimgfrom matplotlib import pyplot as plt%matplotlib inlineimage_color =cv2.imread('sample_truck.jpg')x= 235y = 350h = 200w = 150cropped=image_color[y:y+h, x:x+w]plt.imshow(cropped)status = cv2.imwrite('t.jpg', cropped)print("Image written to file-system :",status)# Perform template matching using OpneCVresult = cv2.matchTemplate(image_gray,template, cv2.TM_CCOEFF_NORMED)print(result.shape)plt.imshow(result)min_val, max_val, min_loc, max_loc =cv2.minMaxLoc(result)top_left = max_locbottom_right = (top_left[0] + w,top_left[1] + h)cv2.rectangle(image_color, top_left,bottom_right, (10,10,255), 5)plt.imshow(image_color)我們介紹了什麼是圖像處理及其應用。然後我們討論有關cv2.matchTemplate()。最後,我們使用模板匹配來識別道路上的卡車。
每天進步一丟丟
用隨機值初始化權重和偏差——把輸入傳入網絡,得到輸出值——計算預測值和真實值之間的誤差——對每一個產生誤差的神經元,調整相應的(權重)值以減小誤差——重複迭代,直至得到網絡權重的最佳值
!重磅!【深度學習衝鴨技術交流二群】微信交流群已成立
投稿或交流學習,備註:暱稱-學校(公司)-方向,申請進入深度學習衝鴨技術交流群。
方向有很多:機器學習,深度學習,python,目標檢測、目標跟蹤、圖像分割、OCR、姿態估計、去噪、人臉檢測&識別等。