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ę?

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:



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ś.


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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.