Elektroda.pl
Elektroda.pl
X
Computer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Rozpoznawanie obiektów

27 Paź 2004 11:51 18718 42
  • Poziom 12  
    Witam! Czy ktoś z Was bawił się kiedyś w analizę obrazów?
    Chodzi mi o rozpoznawanie obiektów, a aktualnie interesuję się konkretnie twarzami.
    Mam kilka koncepcji, kilka już realizuję (m inn. rozpoznawanie konturów i oczyszczanie ich z niepotrzebnych śmieci, następnie wktoryzowanie, itp.),
    jednak jeśli macie jakieś sensowne linki albo koncepcje, to zapraszam do dyskusji.
  • Computer Controls
  • Poziom 19  
    Witam,

    temat mnie kiedys interesowal, ale w praktyce tym sie nie zajmowalem. Natomiast mialem kiedys rozmowe z pewnym 'naukowcem' pochodzenia arabskiego. Zajmował sie on. m.in. próbami odczytu 'hieroglifów', tzn. pisma arabskim. Chodzilo mniej wiecej o OCR. Jedną z metod analizy mialo byc zastosowanie transformaty FFT (szybka transf. Fouriera). Ale tematu nie podjąłem, wiec nie znam szczegółow. Moge sie jedynie domyslac, ze widmo z obrazu ma jakies charakterystyczne prązki dla każdego ze znaków.

    Pozdrawiam
  • Computer Controls
  • Poziom 18  
    Osobiście się tym nie zajmowałem, ale w trakcie studiów na katedrze ludzie w tym robili.
    Generalnie możesz spróbować analizy falkowej zamiast FFT.
    No i do rozpoznawania najlepiej użyć sieci neuronowej bo to daje najlepsze efekty.
  • Poziom 29  
    Kolega Fourier raczej nie pomorzenie, trzeba by chyba pacjenta rozebranego do rosołu mocować w statywie (fft służy poprzez splot do liczenia korelacji między obrazami) rzecz dość prosta więc może warto spróbować, szukać też można stosunków pewnych charakterystycznych wymiarów i statystycznych korelacji z wzorcami, a co do sieci to jest to właśnie coś do czego szczególnie się nadają.
    Choć dla mnie to wróżbiarstwo i imperialistyczna propaganda ;) FBI ma pewnie gotowe rozwiązania.
  • Poziom 12  
    Jeśli chodzi konkretnie o twarze to myślałem żeby wyłuskać oczy, nos, usta itd, a potem właśnie badać ich kształty, proporcje, wzajemne rozstawienie itd...
    Można je bezpośrednio wrzucić na wejście sieci neuronowej, wtedy może będzie potrafiła zweryfikować pewne odchylenia (twarz sfotografowana z innej strony) i przypisać wartości wejściowe do właściciela twarzy...
    Sieci są kuszące, tylko trzeba się zastanowić jakie dane wprowadzać ne wejście i co chcemy otrzymać na wyjściu..
    No, tak sobie głośno myślę czekam na dalsze propozycje i dzięki za szybką reakcję ;)

    Pozdrawiam :)
  • Poziom 27  
    Może zacznij od analizy obrazów mikroskopowych. To nieco prostsze niż rozpoznawanie twarzy, a można solidnie poćwiczyć podstawowe koncepcji obróbki i analizy obrazu.
    Polecam 2 pozycje: "Praktyka analizy obrazu" (Wojnar, Kurzydłowski, Szala) oraz "Podstawowe techniki przetwarzania obrazu" (Woźnicki)
  • Poziom 14  
    Witam sznownych kolegów !

    Temat rozpoznawania twarzy to bardzo trudny temat, mój kolega przygotowuje z tego rozprawę doktorską, ztego co pamiętam to chciał zastosować tam aparat falkowy wspomniany przez przedmówcę, na jakim teraz jest etapie niewiem, bo dawno z nim nie rozmawiałem, jednak chyba falki wydają się być najtrafniejsze.

    Pozdrawiam Krzych
  • Poziom 10  
    Witam

    Mam na swoich studiach przedmiot o nazwie BIOMETRIA. Ostatnio jeden ze studentow opowiadal nam o swojej pracy magisterskiej dotyczacej rozpoznawania twarzy. Z tego co pamietam pokazywal metody rozpoznawania twarzy, to znaczy przykladowo system skanuje twarz danej osoby i stwierdza cyz ta osoba to jest ona naprawde i na przykla jesli rozpoznawanie jest udane to zezwala np na zalogowanie sie do systemu, cos w stylu identyfikacji. Jesli interesuje cie ten temat, moge sprobowac wyluskac od niego ta prace...
  • Poziom 29  
    Darkest: wszystkich to interesuje
  • Poziom 12  
    Jasne że interesuje :) Jeśli możesz coś zdobyć na ten temat będę niesamowicie wdzięczny.

    Może rzeczywiście polukam sobie coś na temat analizy obrazów mikroskopowych, chociaż już pewną koncepcję co do twarzy mam.
    Narazie napisałem kilka filtrów, które wyłuskują mi dosyć dokładne kontury na podstawie zdjęcia kolorowego i potem skonwertowanego na odcienie szarości.

    Teraz myślę nad jakimś sensownym opisem ich. No i kolejne pytanie mi się wczoraj zrodziło. Mam dużo materiałów na temat sieci neuronowych ze wsteczną propagacją. Jeszcze nic nie pisałem (chyba w weekend się do tego zabiorę), ale z tego co rozumiem, żeby nauczyć dobrze sieć jakiegoś zagadnienia, to trzeba jej przedstawić dużo wzorców. Nie widzę problemu, żeby nauczyć sieć rozpoznawać np. oko, bo będę ją uczył używając np. 50 konturów oka różnych twarzy, ale niekiedy przydało by się, żeby nauczyć ją czegoś za pomocą jednego wzorca. Są typy sieci, które uczą się bez "nauczyciela"? Jeśli ktoś się zajmuje SSN, to proszę o pomoc.

    Dzięki za Wasze posty i proszę o jeszcze :o
  • Poziom 13  
    Rozpoznawaniem obrazow zajmowalem sie jakies rok temu.Głownie bylo to pisanie oprogramowania ( Matlab) w celu odszumiania obrazków z zastosowaniem roznych metod filtracji.Stosowałem tez proste metody wyznaczania cech obrazkow i ich klasyfikacji. Jesli jestes zainteresowanym to moge ci podesłac gotowe M-file i ewentualnie jakies opisy.Pozatym warto sie zagłebic w tematyke sieci neuronowych , co zreszto zostalo juz zauwazone na forum.
    Pozdrawiam.
  • Poziom 12  
    Dzięki wielkie. Materiały się przydadzą.
    Dzisiaj bawiłem się w rozpoznawanie kolorów. Na podstawie RGB jest to trudne, ale jak się konwertuje do HSV to daje dobre efekty.
    To czego trudno wykryć za pomocą analizy zmiany jasności w czarnobieli dobrze się uwidacznia analizując kolorami.

    Obiekty są już całkiem nieźle odróżniane, więc za sieci będę musiał się zabrać już całkiem niebawem :D

    Robin: mój email city(malpa)box.ids.pl chętnie M-file zobaczę. DZIĘKI!
  • Poziom 14  
    Witam !
    Wielkie dzieki fajna stronka.

    Pozdrawiam Krzych
  • Poziom 12  
    Cze!

    Nie wiem czy wam się w czymś to przyda ale prowadziłem ostatnio wykład z systemów wizyjnych (w ramach studiów) i mogę go udostępnić.
    Wykład jest o próbkowaniu, kwantyzacji i podstawach zapisu (ostrzegam że nie jest jakiś fachowy, ale to zawsze jakaś podstawa do dalszego szukania)
  • Poziom 22  
    Temat ciekawy, ale dopiero raczkuje . Narazie systemy mają problemy z rozpoznawaniem tablic rejestracyjnych,które przecież są projektowane pod kątem łatwości rozpoznania. A twarze, to wyższa szkoła jazdy . Życzę powodzeniabo chyba nie będzie łatwo,ale przecież to ludzkie marzenia pchają ten wózek do przodu :)

    Pozdrowienia D
  • Poziom 12  
    Dzięki za tego DOCa. Na pewno się przyda choć jeszcze dokładnie go nie czytałem, to widzę że będzie przydatny.

    Ja osobiście uważam, że tematy raczkujące są najciekawsze bo kupa istniejącej teorii nie ogranicza człowieka, można uruchomić wyobraźnie i fantazję, co technikę czyni sztuką.

    To taka mała filozoficzna wstawka. :)
  • Poziom 2  
    moze cos takiego bedzie przydatne

    http://rsb.info.nih.gov/ij/

    ale mam tez pytanie czy nie znalazły by sie jakies materialy na temat segmentacji (tzn co to jest segmentacja jej rodzaje) oraz ogólna charakterystyka co to jest proces rozpoznawania obrazów. Interesują mnie wszelkie opisy tych zagadnień.

    Z góry dziękuję za wszelkie materiały.

    Jeżeli będzie ktoś chciał mi pomóc to bardzo proszę o przesłanie materiałów na adres:
    alladyn2(malpa)o2.pl

    Pozdrawiam
    Ali
  • Poziom 12  
    Ta stronka coś nie wchodzi. no ale może chwilowo padła.

    Cóż... jeśli chodzi o rozpoznawanie obrazów to mogę ciut podywagować :D
    Jeśli będę pisał o rzeczach oczywistych to przepraszam, ale ostatnio okazało się, że nie zawsze są one oczywiste nawet dla osób, dla których oczywistymi być powinny :(

    Otóż to co dajemy komputerowi (np z kamery, albo aparatu) to bitmapy, czyli zbiór pikseli.
    Każdy z pikseli opisany jest trzema składowymi RGB (odpowiednie nasycenie czerwonego, zielonego i niebieskiego). Komputer może przetworzyć te informacje spowrotem na monitor sterując odpowiednio elektronami uderzającymi w matrycę kineskopu ;)
    To że odtwarza jakieś zdjęcie, czy film z postaci cyfrowej, nie oznacza jednak że je rozumie.
    To nasz mózg obserwując obraz wyświetlany na kineskopie potrafi go odpowiednio przetworzyć i zinterpretować. Dla komputera to po prostu ciąg liczb właściwie przypadkowych (a przynajmniej nie ma to dla niego znaczenia :).

    Sęk w tym, że to czym zajmuje się nasz mózg musimy zrobić my w komputerze, a więc wymyślić sposób interpretacji danych o obrazie. W sumie działanie oka ludzkiego i kamery internetowej tak bardzo się od siebie nie różni. Czy matryca CCD, czy siatkówka, mniej więcej działa to podobnie. No może z tą różnicą, że oko ma rozdzielczość ok. 125 mega pikseli, a najlepsze aparaty cyfrowe coś koło 8mln.

    Podejście czysto algorytmiczne do interpretacji obrazów mija się chyba z celem, ponieważ jesteśmy w stanie śledzić piksel po pikselu, traktując każdego z nich osobno, w oderwanym kontekście, ew porównując go z jego najbliższym otoczeniem.

    Aby można było mówić o jakimkolwiek rozpoznawaniu obrazu należy dążyć do uogólnienia przedstawionych na nim obiektów. A więc najpierw obiekty należy od siebie odseparować. Algorytmy wykrywania konturów są bardzo przydatne, ale mimo wszystko uzyskany wynik analizy jest po pierwsze bardzo zaszumiony, a po drugie niedokładny. Kontury są przerywane, mieszają się ze sobą, ciężko potem coś z tym zrobić.

    Można kombinować z rozpoznawaniem obiektów przez kolory. Sam problem rozpoznawania kolorów też nie jest wcale taki prosty. Jako podpowiedź mogę dać, że o wiele lepiej się rozpoznaje kolory zapisując je w standardzie HSV, niż RGB.

    Ogólnie myślę, że przy wyłuskiwaniu obiektów należy się kierować pewną zasadą: potrafimy rozróżnić obiekty od siebie wtedy i tylko wtedy, jeśli różnią się kolorem lub mają wyraźne kontury.

    Ogólnie napisałem chyba z 10 filtrów różnie wyłuskujących kontury. Każdy z nich wyłuskuje jakieś inne szczegóły, ale po złożeniu tego w całość coś już wychodzi.

    No ale co dalej? no ja podążam taką ścieżką, że kiedy mamy już wyodrębione mniej więcej obiekty to ich kształty należy opisać wektorami, albo aproksymowanymi funkcjami (dwumiany wystarczą ;). Wektorowy opis wymaga mniej danych do przechowywania niż bitmapowy, pozatym lepiej się go skaluje, obraca itp....

    No a kiedy mamy już coś takiego to.... no cóż można próbować wpuścić to do sieci neuronowej. Problem polega jednak na tym, że musimy dokładnie wiedzieć co wpuszczamy i jakiej odpowiedzi oczekujemy, co wcale nie jest takie oczywiste.

    Kolejnym pomocnym narzędziem mogą być algorytmy genetyczne, które doskonale optymalizują pewne problemy...

    W tym tygodniu dostanę książkę dokładnie opisującą analizę falkową. Może to coś doda do tego problemu.

    Istnieje również szkoła mówiąca, że do dokładnej analizy obrazu potrzebne są dwie kamery i na podastwaie ich danych można budować szkielety 3d obrazów, które widzi komputer. Ale tu kolejny problem: zawsze dostajemy tylko tą część obiektu, którą widzimy. Mózg potrafi sobie wyobrazić część, której nie widzimy, komputerowi wypadało by tą wyobraźnię zaprogramować.

    Jak widać każde stwierdzenie rodzi nowe pytania. A ja rzuciłem tu tylko kilka stwierdzeń i wymieniłem dziedziny, które warto by było przeanalizować, żeby się za to zagadnienie zabrać.

    No, mam nadzieję, że już niedługo będę mógł opublikować ten kawałek kodu który mozolnie skrobałem w Delphi. Dopiero teraz jednak widzę, jak bardzo rozległy to temat.
    Cieszę się, że program tworzy mi już spójne kontury obiektów, ale to dopiero czubek góry lodowej. Co zrobić z tymi konturami? Jak analizować ich zawartość? To temat na kolejne miesiące dłubania i czytania i dłubania i tak dalej.... ale co by nie narzekać, temat jet piękny.

    Pozdrawiam!!!!
  • Poziom 2  
    Witam

    Jeżeli będzie występował problem z linkiem który podałem to dysponuję kopią tej strony wraz z programem.

    Link możesz zweryfikować poprzez wpisanie w Googlach hasla "imagej"
    Pierwszy link jaki bedzie wyszukany zaprowadzi cie do wlasciwej strony.


    Natrudziles sie i napociles z opisem dla mnie - dziekuje bardzo, ale mam pytanie czy jestes w posiadaniu materialow w wersji elektronicznej opisującej i wyjaśniające takie zagadnienia jak:
    rozpoznawanie obrazów wraz ze wszystkimi procesami
    oraz opis segmentacji.

    Pozdrawiam
  • Poziom 12  
    No napociłem hehe...
    Postaram się w tym tygodniu zdobyć opis analizy falkowej, ponoć się doskonale do tego nadaje.
    A i przy okazji zapytam o segmentację. A jeśli coś dokładniej opiszesz co to jest to będzie mi łatwiej zebrać materiały.

    Pozdro
  • Poziom 12  
    Witam. W Topicu Skaner przestrzeni 3D znalazłem linka do czeskiego uniwerku.

    http://cmp.felk.cvut.cz/cmp/index.html

    Oto jeden z ciekawych filmików: http://cmp.felk.cvut.cz/cmp/demos/Tracking/head/0:17-Oct01.mpg

    Co prawda omawiane na topiku o skanerze 3D zagadnienia niezbyt pokrywają się z tematyką analizy obrazów, ale można sobie poczytać: :)

    https://www.elektroda.pl/rtvforum/topic145369.html
  • Poziom 12  
    Hmmm.... no to wygląda na strzał w dziesiątkę.
    Ponieważ mam już twarz oddzieloną od tła to pora zająć się rozpoznawaniem jej cech.
    Próbowałem znaleźć prace wyszczególnione w dziale PUBLIKACJE na mojej uczelni (PG) ale jakoś nie mogę ich znaleźć.
    Nie masz może elektronicznej wersji czegoś co traktuje o panu Markowie? :)

    Wielkie dzięki i pozdrawiam.
  • Poziom 2  
    Nawiązując do mojej prośby precyzuję co dokładnie z opisów mnie interesuje.
    A więc tak:
    Co to jest segmentacja:
    - przez progowanie
    - przez analizę skupień
    - przez wykrywanie krawędzi
    - hybrydowa

    Jeżeli ma ktoś materiały na ten temat to byłbym bardzo wdzięczny za ich udostępnienie


    Pozdrawiam
  • Poziom 2  
    Witam
    ja poszukuje wszystkiego o przetwarzaniu obrazow w matlabie za pomoca toolboxa Image procesing. Interesuja mnie szczegolnie algorytmy dotyczace wykrywania lini na wykresach i ich dalszego przetwarzania np jak sie lacza lub ich poprawiania. Oraz rownierz wszystko co dotyczy segmetacji obrazu a co dalo by sie zastosowac w wykrywaniu lini.

    jak ktos ma cos i moze podeslac to blackmoon(malpa)poczta.of.pl

    pozd.
  • Poziom 12  
    Witam. Jeśli chodzi o wykrywanie krawędzi, to jest link:
    http://www.informatyka.ibt.pl/algorytmy/grafic/6_filtry3.htm

    Aby to wykożystać powinno się również wiedzieć conieco o samych filtrach:
    http://www.informatyka.ibt.pl/algorytmy/grafic/4_filtry1.htm

    Jeżeli masz prosty wykres niezaszumiony zabardzo, to można też zastosować następujący algorytm:

    1. bierzesz pixel o wsp: x,y
    2. obliczasz średnią arytmetyczną pixeli sąsiednich, czyli:
    sr=([x-1,y-1]+[x,y-1]+[x+1,y-1]+[x-1,y]+[x+1,y]+[x-1,y+1]+[x+y+1]+[x+1,y+1]) / 8
    3. jeżeli wartość pixela [x,y]/sr, przekracza pewien próg (dobrany doświadczalnie) to jest on krawędzią.

    Możesz również do obliczania wartości średniej włączyć pixel [x,y] kwestia kilku prób i masz już gotowy filtr.

    Jeżeli wykres jest czysty, nic nie stoi na przeszkodzie aby wykryć jego początek, koniec i odczytać punkty do niego należące.

    Jeśli ma jakieś przerwy, no to trzeba do odczytanych punktów aproksymować, albo interpolować wielomian.

    Pozdrawiam
  • Poziom 10  
    hej

    Ja moze tak z poza tematu, ale nadal o twarzach. Chodzi mi mianowicie o to jak w matlabie majac obrazek twarzy wycentrowac ja. Czasem zdarza sie bowiem ze na obrazku twarz jest za blisko prawej lub lewej krawedzi. Moze mi ktos pomoc??