1. 程式人生 > >openMV使用---多目標檢測

openMV使用---多目標檢測

在使用openMV做一個小東西時,遇到了多目標檢測的問題,就是說我同時想從影象中檢測多個不同的東西,比如,我即想找到影象中的橫線,又想找到影象中的豎線。

對於不同的目標,在影象預處理過程中的要求是不一樣的,比如你想找到影象中的橫線,那麼在預處理時,你可以使用讓水平方向增強的卷積核,而在檢測豎線時,這樣的處理就是無效的,甚至會有負面的效果。

因此,我們在做多目標檢測時,會有當檢測完一種型別的目標後,將影象恢復到初始狀態,然後再進行第二類目標檢測的需求。對於這種型別的需求嘗試了集中方法,記錄如下:

  • 嘗試一:
    直接定義兩個image變數,把未處理的影象的影象先儲存在img2中,首先用img1對第一類目標進行檢測,之後用img2對第二類目標進行檢測。但這個其實不可行。
img1 = sensor.snapshot().lens_corr(1.5)
img2 = img1

實踐過程中你會發現其實img2就是img1,並沒有把原圖儲存下來。這種嘗試失敗!

  • 嘗試二:
    在這種嘗試之後,我又考慮能不能另外開闢儲存空間將原圖儲存下來。
img1 = sensor.snapshot().lens_corr(1.5)
img2 = img1.copy()

這種方法,在迴圈幾個週期之後就會出現,儲存空間不足的異常。考慮可能是申請的儲存空間沒有釋放的原因,但是沒有深究。

  • 嘗試三:
    就是在檢測完第一類目標之後,重新使用sensor.snapshot().lens_corr(1.5)函式獲取攝像頭的快照,再進行第二類目標的檢測。
    這種方法現在看來是可行的,但是在IDE上會看到畫面閃爍的比較厲害,不知道有沒有更好的方法,目前,這種方法能夠實現我的需求。