2013-03-29 41 views
4

我有蚊子的圖像與這些蚊子相似,我想自動圍繞圖像中每隻蚊子的頭部。他們顯然處於不同的方向,並且在不同的圖像中有隨機數。一些錯誤是好的。算法的任何想法做到這一點?在圖像中發現蚊子的頭

enter image description here

enter image description here

回答

2

這個問題類似於人臉檢測因此您可以先嚐試一種天真的方法,並在必要時對其進行優化。

首先,您需要重新創建您的訓練集。爲此,您需要提供小圖像,例如什麼是蚊子頭或什麼不是蚊子頭。

Training set example

然後你就可以使用這些圖片來訓練分類算法,要小心有一個平衡的訓練集,因爲如果你的數據是偏向一個類這將打擊該算法的性能。由於圖像是二維的,算法通常只是將一維數組作爲輸入,所以您還需要將圖像排列爲該格式(例如:http://en.wikipedia.org/wiki/Row-major_order)。

我通常使用支持向量機,但是邏輯迴歸等其他算法也可以實現。如果您決定使用支持向量機,我強烈建議您檢查libsvm(http://www.csie.ntu.edu.tw/~cjlin/libsvm/),因爲它是一個非常成熟的庫,可以與幾種編程語言綁定。他們還有一個非常容易遵循的指南針對初學者(http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf)。

如果你有足夠的數據,你應該能夠避免容忍方向。如果您沒有足夠的數據,那麼您可以創建更多的訓練行,並且旋轉一些樣本,這樣您就可以擁有更具代表性的訓練集。

至於預測你可以做的是給圖像,使用網格剪切它,每個單元格的尺寸與您在訓練集上使用的尺寸相同。然後你將每個圖像傳遞給分類器並標記分類器給出正面輸出的那些方塊。如果你真的需要圈子,然後採取給定的正方形的中心,半徑將是正方形尺寸的一半(抱歉明顯)。

enter image description here

這樣做的目的後,你可能有大小問題(一些蚊子可能會出現更接近攝像機比其他人),因爲我們沒有訓練算法應儘量容忍規模。而且,即使所有蚊子的規模相同,我們仍然可能會錯過其中一些蚊子,因爲它們完全不適合我們的網格。爲了解決這個問題,我們需要重複這個過程(網格切割和預測)將給定圖像重新縮放到不同的尺寸。多少尺寸?在這裏你必須通過實驗來確定。

這種方法對您使用的「窗口」的大小很敏感,這也是我建議您嘗試使用的。

0

從您提供的圖片看來,這似乎是一個非常困難的圖像識別問題,我懷疑你會得到任何接近可接受的識別率。

我會建議一個更簡單的方法:

首先,如果你有在圖像的任何控制,在拍攝照片之前,蚊子分開,使用白色無標記的地下,甚至一些從下面照亮。這將使分離蚊子變得更容易。

然後閾值圖像。例如在這裏,我做了一個快速的嘗試服用紅色通道,然後從其減去藍色通道* 5,然後應用的80閾值:

enter image description here

使用形態膨脹和腐蝕擺脫小腿部結構。

通過連接組件標籤識別合適大小的斑點爲moquitoes。如果一個斑點大到足以成爲兩隻蚊子,那就把它切掉,然後對它施加更多的膨脹/侵蝕。

一旦你有一個單一的斑點像這樣

enter image description here

你可以找到採用主成分分析身體的方向。頭部應該是橫截面最厚的部位。

enter image description here