Affettatura e riconoscimento del titolo e dell'autore del libro dall'immagine dello scaffale


13

Sto cercando, per i miei scopi di apprendimento, di sviluppare un'implementazione di un algoritmo che elenchi i libri, con l'immagine di una libreria come la seguente:

inserisci qui la descrizione dell'immagine

Il primo passo è dividere l'immagine in singoli libri.

Il mio algoritmo, in Mathematica , è:

    img = ColorConvert[Import["http://i.stack.imgur.com/IaLQk.jpg"], "GrayScale"]
  • eseguire un rilevamento dei bordi di base e
  • rimuovere il testo e provare a mantenere le righe lunghe

    edge = DeleteSmallComponents[EdgeDetect[img, 3],Last[ImageDimensions[img]]/5]
    
  • quindi rimuovere le linee orizzontali indesiderate

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

I risultati, tuttavia, sono meno che eccezionali:

inserisci qui la descrizione dell'immagine

Le mie domande sono:

  1. Come posso migliorare questo per ottenere risultati migliori?
  2. C'è un modo più intelligente per farlo?
  3. quanto ulteriormente dovrei elaborare le immagini per aumentare la precisione nella fase (successiva) dell'OCR?
  4. Come utilizzare le informazioni sul colore per migliorare la segmentazione?

1
@OrenPinsky Non vedo il problema con la segmentazione: il numero di "aree di libri falsi" non è elevato (ne vedo solo uno nell'esempio che hai fornito) e se prevedi di fare un qualche tipo di riconoscimento del testo come prossimo passo, dovrebbe essere sufficiente per discriminare tra libri (l'area contiene testo) e non libri (nessun testo)
penelope,

3
@OrenPinsky, direi che i tuoi risultati sono piuttosto grandi. :)
Dima,

Risposte:



4

Quale metodo stai usando per rilevare le linee? Hai provato a sperimentare l' LSD ?

Ecco i risultati di un test rapido che ho fatto usando l'LSD:

0.1heightpic1

La seconda immagine sono i risultati con lo stesso vincolo angolare ma ignorando le lunghezze dei segmenti: pic2

Puoi provare a giocarci un po ', capire come scegliere i migliori segmenti di linea, estenderli alle linee e forse ottenere risultati leggermente migliori rispetto a quelli che hai pubblicato.


6
"Hai provato a sperimentare l'LSD?" Bel tentativo, FBI;)
Lorem Ipsum,

ImageLine di Mathematica si basa sulla trasformazione di Hough e ora sono convinto (dal feedback qui, principalmente) che funzioni abbastanza bene. Mi preoccupa, però, che sto perdendo dati rilevanti quando mi trasformo in scala di grigi e che in questa applicazione i dati di colore potrebbero essere (intuitivamente) utili per un robusto rilevatore di bordi. Proveremo l'LSD e vedremo come va! (ha funzionato incredibilmente bene per Steve Jobs! ;-)
Oren Pinsky il

Ho visto un amico usare l'LSD per il rilevamento delle porte, penso che alla fine sia soddisfatto dei risultati. Direi che vale la pena provare: D
penelope il

1

Puoi provare a eseguire il rilevamento dei bordi su singoli domini di colore e quindi unirli, usando il tuo metodo preferito per il rilevamento dei bordi.

Rispetto al rilevamento dei bordi direttamente sull'immagine a colori, potrebbe produrre risultati migliori.


0

Il documento dal collegamento interrotto fornito da isrish potrebbe essere trovato Combinando le caratteristiche di immagine e testo: un approccio ibrido al riconoscimento della colonna vertebrale dei libri mobili , Proc. 19a conferenza internazionale ACM su Multimedia, 2011. Si possono anche consultare altri articoli di David Chen et al. , ad esempio Tracciamento di risorse a basso costo utilizzando i telefoni con telecamera compatibili con la posizione , Proc. SPIE 2010.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.