2012-03-11 14 views
12

Mam zamiar napisać program do wykrywania i odróżniania niektórych obiektów od prawie stałego tła. Pierwszy plan i tło mają dużą różnicę kontrastu, którą chciałbym dodatkowo zwiększyć, aby pomóc w procesie identyfikacji obiektu. Zamierzam użyć techniki transformacji Hough i OpenCV.Jak rozpoznać różne obiekty na obrazie?

Sample image

Jak widać na powyższym zdjęciu, chciałbym osobno zidentyfikować okrągłych przedmiotów i obiektów kwadratowych (lub dowolny inny kształt Spośród skończonego zbioru kształtów). Ponieważ jestem całkiem nowy w przetwarzaniu obrazów, nie mam pojęcia, czy taka sytuacja wymaga wdrożenia sieci neuronowej i wcześniejszego poznania kształtu. Czy technika taka jak dopasowanie szablonów pozwoliłaby mi to zrobić bez sieci neuronowej?

Odpowiedz

9

Jeśli chcesz wykryć kształty inne niż tylko okręgi, (i z obrazu zakładam, że robisz), poleciłbym Fazowanie pasujące do na szybki start, zwłaszcza, że ​​masz dobry kontrast.

Podstawową przesłanką, wyjaśnia w prostych słowach, jest następujący:

  1. można zrobić wykrywanie krawędzi (np cvCanny w OpenCV)
  2. utworzyć obraz na odległość, gdzie wartość każdego piksela oznacza odległość od najbliższej krawędzi.
  3. Przyjmujesz kształty, które chciałbyś wykryć, definiujesz punkty próbki wzdłuż krawędzi kształtu i próbujesz dopasować te punkty do obrazu odległości. Zasadniczo wystarczy dodać wartości na obrazie odległości, które są "pod" współrzędnymi punktów próbkowania, biorąc pod uwagę określoną pozycję obiektów.
  4. Znajdź dobry algorytm minimalizacji, skuteczność tego zależy od aplikacji.

To podstawowe podejście jest rozwiązaniem ogólnym, zwykle działa dobrze, ale bez dalszych udoskonaleń jest bardzo powolne.

Zazwyczaj najlepiej jest najpierw rozdzielić interesujące obiekty, aby nie trzeba było zawsze wykonywać pełnego wyszukiwania na całym obrazie. Znajdź dobry threshold, aby można było oddzielać obiekty. Nadal nie wiesz, który to obiekt, ale musisz tylko dopasować się w pobliżu tego obiektu.

Innym dobrym pomysłem jest, zamiast wykonywać pełne wyszukiwanie w wysokiej rozdzielczości obrazu, najpierw zrobić to w bardzo niskiej rozdzielczości.Wynik nie będzie bardzo dokładny, ale możesz znać ogólne obszary, w których warto wykonać wyszukiwanie w wyższej rozdzielczości, aby nie tracić czasu na obszarach, w których nie ma nic ciekawego.

Istnieje wiele bardziej zaawansowanych technik, ale nadal warto przyjrzeć się podstawowemu dopasowaniu fazowania, ponieważ jest to podstawa dużej liczby technik.

Powiązane problemy