簡體   English   中英

圖像中的目標檢測

[英]Object Detection in an Image

我想檢測圖像中的某些元素。 為此,我得到圖像和指定的元素(如鼻子),然后從Pixel(0,0)開始搜索我的元素。 但是軟件性能太差了,因為我一個接一個地遍歷像素。 我認為我需要一些智能算法來解決這個問題。 也許機器學習算法對此很有用。 你有什么想法

我將從viola jones對象檢測框架開始

這是一種有監督的學習技術,可讓您檢測出具有高概率的任何對象。
(盡管本文主要指的是面孔,但它是為一般對象設計的。)

如果您選擇這種方法-您的主要工作將是獲得分類訓練集。 您以后可以評估使用交叉驗證的算法的質量。

AFAIK,它在OpenCV庫中實現(我不熟悉該庫以提供幫助)

您可以使用圖像和搜索模式的傅立葉變換來進行非常快速的互相關

一個很好的實現是例如OpenCV的matchTemplate函數

如果您的圖案始終在圖像上始終具有相同的旋轉度和縮放比例,則效果最佳。 如果不是,則可以使用模式的多個縮放/旋轉版本重復搜索。

這種方法的一個優點是不需要培訓階段。


另一個更適合您的模式的更簡單方法是:

使用連接的組件標簽來識別具有正確數量的白色像素的斑點,將其作為元素的中心矩形。 這將消除幾乎所有的誤報。 將搜索集中在剩下的幾個景點上。 同樣,OpenCV具有一個不錯的Blob庫,用於處理此類問題。

如果您要在計算機生成的圖像中尋找簡單的幾何形狀(如您提供的示例),那么您就不必為機器學習而煩惱。

例如,這是您嘗試在原始圖像中找到的組件之一:

(圖片已根據要求刪除)

假設此組件始終以相同的尺寸繪制,則頂線和底線始終相距21個像素。 通過將此圖像與其垂直方向偏移21個像素的副本進行組合,並將兩個圖像中較亮的一個作為每個位置的像素值,可以大大縮小搜索空間。

(圖片已根據要求刪除)

同樣,此組件左右兩邊的垂直線相距47像素,因此我們可以使用47像素的水平移位重復此過程。 這將在組件位置處產生大約24px高的垂直條。

(圖片已根據要求刪除)

通過在經過處理的圖像的垂直列中查找22至26像素長的黑色像素,可以很容易地檢測到這些條。 這將為您提供候選位置的簡短列表,您可以在其中更徹底地檢查此組件的存在,例如,通過計算局部2D互相關。

這是處理整個圖像后的結果。 到達此階段僅需幾毫秒。

(圖片已根據要求刪除)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM