2015-08-13 21 views
5

Próbuję sklasyfikować obrazy MRI guzów mózgu na łagodne i złośliwe za pomocą C++ i OpenCV. Planuję używać metody work-of-words (BoW) po skupieniu deskryptorów SIFT przy użyciu kmeans. Znaczenie: Będę reprezentować każdy obraz jako histogram z całym "zestawem kodów"/słownikiem dla osi X i ich liczbą występowania na obrazie dla osi Y. Histogramy te będą wówczas moim wejściem dla mojego klasyfikatora SVM (z jądrem RBF).Przestrzenne dopasowanie piramidy (SPM) dla SIFT, następnie wprowadzenie do SVM w C++

Jednak wadą używania BoW jest to, że ignoruje informacje przestrzenne o deskryptorach na obrazie. Ktoś zasugerował użycie SPM zamiast:. Czytałem o tym i natknąłem this link podając następujące kroki:

  1. Compute K słowa wizualnych ze zbioru treningowego i mapy wszystkich lokalnych możliwości jego wizualnej słowa.
  2. Dla każdego obrazu zainicjuj histogramy współrzędnych K wielorakiej rozdzielczości na zero. Każdy histogram współrzędnych składa się z L poziomów, a każdy poziom ma 4^i komórek, które równo dzielą bieżący obraz.
  3. Dla każdego obiektu lokalnego (powiedzmy, że wizualny identyfikator słowny jest k) na tym obrazie, wybierz histogram współrzędnej k, a następnie skumuluj jedną liczbę o wartości dla każdej z L odpowiadających komórek na tym histogramie, zgodnie z współrzędne funkcji lokalnej. Komórki L są komórkami , gdzie lokalna cecha mieści się w L różnych rozdzielczościach.
  4. Połączyć wielorazowe histogramy współrzędnych K, aby utworzyć ostateczny "długi" histogram obrazu. Podczas konkatenacji histogram k-th jest ważony prawdopodobieństwem k-tego wizualnego słowa.
  5. Aby obliczyć wartość jądra na dwóch obrazach, zsumuj wszystkie komórki przecięcia ich "długich" histogramów.

Teraz mam następujące pytania:

  1. Co to histogram współrzędnych? Czy histogram nie pokazuje tylko zliczeń dla każdej grupy na osi X? W jaki sposób dostarczy informacji na temat współrzędnych punktu?
  2. Jak bym obliczyć prawdopodobieństwo wizualnej słowo k-tej?
  3. Jaki będzie korzystanie z wartości „jądra”, że otrzymam? Jak wykorzystam to jako wejście do SVM? Jeśli dobrze rozumiem, czy wartość jądra jest używana w fazie testowania, a nie w fazie szkolenia? Jeśli tak, to w jaki sposób będę ćwiczyć moją maszynę SVM?
  4. A myślisz, że nie trzeba obciążać siebie z informacją przestrzenną i po prostu trzymać się normalnego łuk dla mojej sytuacji (guzy łagodne i złośliwe)?

Ktoś proszę o pomoc tę biedną licencjackim. Będziesz miał mój zawsze wdzięczność, jeśli nie. Jeśli masz jakieś wyjaśnienia, nie wahaj się zapytać.

Odpowiedz

4

Oto link do rzeczywistej pracy, o ile jest http://www.csd.uwo.ca/~olga/Courses/Fall2014/CS9840/Papers/lazebnikcvpr06b.pdf

kod MATLAB tutaj http://web.engr.illinois.edu/~slazebni/research/SpatialPyramid.zip

Koordynacja histogram (wspomniane w poście) jest tylko podregion w obrazie, w którym obliczyć histogram. Te slajdy wyjaśniają to wizualnie, http://web.engr.illinois.edu/~slazebni/slides/ima_poster.pdf.

Masz tutaj wiele histogramów, po jednym dla każdego regionu na obrazie. Prawdopodobieństwo (lub liczba przedmiotów zależałaby od punktów przesianych w tym podregionie).

Myślę, że trzeba zdefiniować jądro piramidy, jak wspomniano w slajdach.

Konwolucyjna sieć neuronowa może lepiej pasować do zadania, jeśli masz wystarczającą liczbę próbek treningowych. Prawdopodobnie możesz rzucić okiem na Torch lub Caffe.