Krojenie i rozpoznawanie tytułu książki i autora z obrazu półki

13

Próbuję, dla własnych celów edukacyjnych, opracować implementację algorytmu, który wyświetlałby książki, biorąc pod uwagę obraz półki z książkami, taki jak poniżej:

wprowadź opis zdjęcia tutaj

Pierwszym krokiem jest podzielenie obrazu na pojedyncze książki.

Mój algorytm w Mathematica to:

    img = ColorConvert[Import["http://i.stack.imgur.com/IaLQk.jpg"], "GrayScale"]
  • wykonaj podstawowe wykrywanie krawędzi i
  • usuń tekst i staraj się zachować długie linie

    edge = DeleteSmallComponents[EdgeDetect[img, 3],Last[ImageDimensions[img]]/5]
    
  • następnie usuń niechciane poziome linie

    lines = Sort[ImageLines[img5] /. {{0., _}, {_, _}} -> Sequence[]]
    Show[img, Graphics[{Thick, Orange, Line /@ lines}]]
    

Wyniki są jednak niezbyt dobre:

wprowadź opis zdjęcia tutaj

Moje pytania to:

  1. Jak mogę to poprawić, aby uzyskać lepsze wyniki?
  2. Czy jest na to lepszy sposób?
  3. jak dalej przetwarzać obrazy, aby zwiększyć dokładność na (późniejszym) etapie OCR?
  4. Jak wykorzystać informacje o kolorze, aby poprawić segmentację?
Oren Pinsky
źródło
1
@OrenPinsky Nie widzę problemu z segmentacją: liczba „fałszywych obszarów książki” nie jest wysoka (widzę tylko jeden z podanych przez Ciebie przykładów), a jeśli planujesz zrobić rozpoznawanie tekstu jako następny krok, który powinien wystarczyć do rozróżnienia między książkami (obszar ma tekst) a nie-książkami (bez tekstu)
penelopa,
3
@OrenPinsky, powiedziałbym, że twoje wyniki są całkiem świetne. :)
Dima,

Odpowiedzi:

7

Oto link do dokumentu badawczego, który próbuje zrobić to samo, co chciałeś. To może ci pomóc. Korzystanie z funkcji obrazu Również fajny film na youtube

isrish
źródło
Niestety pierwszy link jest zepsuty.
Youngjae,
4

Jakiej metody używasz do wykrywania linii? Czy próbowałeś eksperymentować z LSD ?

Oto wyniki szybkiego testu przeprowadzonego przy użyciu LSD:

Na tym pierwszym obrazie pokazałem tylko pionowe segmenty linii o kącie od 75 do 105 stopni i długości większej niż obrazu: 0.1heightpic1

Drugi obraz to wyniki z tym samym ograniczeniem kąta, ale bez uwzględnienia długości segmentów: pic2

Możesz spróbować trochę z tym pograć, dowiedzieć się, jak wybrać najlepsze segmenty linii, rozszerzyć je na linie i być może uzyskać nieco lepsze wyniki niż te, które opublikowałeś.

ppalasek
źródło
6
„Czy próbowałeś eksperymentować z LSD?” Niezła próba, FBI;)
Lorem Ipsum,
ImageLine Mathematiki opiera się na transformacji Hougha i jestem teraz przekonany (głównie z informacji zwrotnych tutaj), że działa całkiem dobrze. Niepokoi mnie jednak to, że tracę odpowiednie dane, kiedy przekształcam się w skalę szarości, i że w tej aplikacji dane kolorów mogą (intuicyjnie) pomóc w niezawodnym wykrywaczu krawędzi. Wypróbuj LSD i zobacz, jak to działa! (zadziałało niesamowicie dobrze dla Steve'a Jobsa! ;-)
Oren Pinsky
Widziałem znajomego, który używa LSD do wykrywania drzwi, myślę, że był zadowolony z wyników. Powiedziałbym, że warto spróbować: D
penelopa,
1

Możesz spróbować wykonać wykrywanie krawędzi na poszczególnych domenach kolorów, a następnie połączyć je, używając wybranej metody wykrywania krawędzi.

W porównaniu z wykrywaniem krawędzi bezpośrednio na kolorowym obrazie, może dawać lepsze wyniki.

Naresh
źródło
0

Można znaleźć papier z niedziałającego linku dostarczony przez isrisha. Łączenie cech obrazu i tekstu: hybrydowe podejście do rozpoznawania kręgosłupa książki mobilnej , Proc. 19. międzynarodowa konferencja ACM na temat multimediów, 2011 r. Można również sprawdzić inne artykuły Davida Chen i in. , na przykład tanie śledzenie zasobów za pomocą telefonów z aparatem wspomagającym lokalizację , Proc. SPIE 2010.

Dimitri Podborski
źródło