2012-07-02 11 views
10

Załóżmy, że użytkownik posiada nowoczesną przeglądarkę jak Chrome i umożliwia odpowiednie ustawienia aparatu HTML5 (tak, że getUserMedia prace), w jaki sposób można by wykrywać specyficzne predefiniowane obiekty pokazane na oczach kamery, za pomocą JavaScript?Camera wykrywania obiektów w JavaScript

Na przykład jest HTML5/ JS-based face detection, który działa świetnie, i widziałem inne demo hand detection (które nie działało dobrze tutaj, może robię coś nie tak). Jakie są niezbędne kroki, aby wyszkolić kamerę do wykrywania innych obiektów wybranego (programisty)? Powiedz, chcę, żeby kamera rozpoznała lokalizację czerwonego długopisu; a może najciemniejszy obiekt w zasięgu wzroku; lub może czarny iPhone machnął do aparatu itp.

Dzięki!

+13

Piszesz olbrzymią ilość oprogramowania, tak to robisz. – Pointy

+0

Mam powiązania z istniejącymi projektami open source powyżej, więc pomyślałem, że może być szansa, że ​​można je wyszkolić z innymi efektami wizualnymi - czy też uważasz, że nie wchodzi to w grę? –

+0

Dzielę się odpowiedzią Pointy'ego, ale także oferuję punkt wyjścia. W skrócie, będzie to wymagało DUŻEGO oprogramowania. http://www.ee.columbia.edu/ln/mmsp/papers/thesis-hluo.pdf –

Odpowiedz

5

Wykrywanie obiektów samo w sobie jest bardzo trudnym zadaniem. Musisz wiedzieć, jaki jest twój obiekt, czy jest gładki, elastyczny, ma duży kontrast kolorów, porusza się szybko i ma wiele innych pytań, zanim będziesz mógł wybrać najlepszą metodę.

Ponadto, to zależy od tego, czy chcesz tylko wykryć obiekt, lub jeśli chcesz Ślad To podczas jego ruchu przed kamerą.

Będę tu nazywał tylko kilka metod, ponieważ nie mam czasu na wiele opracowań. Prawdopodobnie znajdziesz wiele dokumentów w Google, gdy znasz nazwy, ale pamiętaj, że możesz potrzebować pewnych umiejętności matematycznych, jeśli musisz je wdrożyć samodzielnie. Tak, to zazwyczaj polega na:

  • obliczeniowe deskryptory w interesujących punktów. Przejrzyj deskryptory SIFT lub HoG (Histograms of Gradients) w Google, są to najczęściej używane.
  • Budowanie pewnego rodzaju strukturę rozpoznawania, która znów może zmienić się znacznie, zależnie od przedmiotu i swoimi deskryptorów. Popularne metody obejmują sieci neuronowe, Wektorowe maszyny obsługujące. W przypadku ruchomych obiektów można zazwyczaj dodać do miksu techniki związane z wykresami, takie jak Graph Cuts.

Ponownie, w zależności od obiektu, mogą one nie być nawet zbliżone do właściwej metody.

O ile mi wiadomo, w języku JavaScript jest bardzo mało dostępnych programów, ale chętnie bym to wiedział, jeśli coś znajdziesz. Ponownie, oto kilka wskazówek:

  • Twój wykrywania twarzy próbkę za pomocą czegoś bardzo popularne nazwie Cascade klasyfikator, która jest dostępna w jeszcze bardziej popularne OpenCV biblioteki i jest uważany przez większość za Metoda z wyboru do wykrywania twarzy.
  • Jeśli można rozważyć przeniesienie części przetwarzania na serwerze, można użyć OpenCV który ma mnóstwo dostępnych algorytmów.

Mam nadzieję, że udało mi się pomóc rozpocząć trochę;)

Powiązane problemy