2010-06-01 25 views
8

Sto studiando la possibilità dell'elaborazione dell'immagine per identificare determinati oggetti e anche contarli in un'immagine.Contare il numero di oggetti in un'immagine

Mi verrà assegnata una foto e ho bisogno di identificare il numero di scatole presenti in quell'immagine.

Qualcuno ha esperienza con le librerie di visione artificiale/elaborazione immagini come ImageJ, Fiji, JAI, jMagick, Java Vision Toolkit? Quale pensi sia più adatto per il lavoro? Cosa suggerite voi ragazzi? Se le API possono essere utilizzate da Java, sarebbe meglio. Grazie.

Modifica: Mi occupo di scatole di magazzino marrone. Sì, sto parlando di foto normali. La fonte è di solito un'immagine di un telefono cellulare.

Edit2: Mi dispiace, la risposta è stata selezionata automaticamente. : (

+1

È un investimento, ma MATLAB ha delle funzioni per farlo. Vedi, ad es. http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/ –

+0

Quanto è astratto questo problema di riconoscimento dei pattern? Cosa intendi per "scatole"? Hai a che fare con fotografie normali? – Amichai

+2

dacci un esempio di foto. – ton4eg

risposta

8

Se è necessario attenersi a Java, è comunque possibile utilizzare OpenCV.

  1. Se si tratta solo di caselle, è possibile utilizzare Hough Transforms per rilevarle.
  2. È possibile utilizzare OpenSURF per rilevare i telefoni in base alle immagini di origine fornite.
  3. Non pensare che ciò sia fattibile nel tuo caso: HAAR Cascades. È possibile creare un classificatore HAAR personalizzato, ma il processo di formazione può richiedere molto tempo.

HTH, George

10

non ho mai usato le librerie che hai elencato, ma ho usato OpenCV

OpenCV è una libreria di computer vision ben supportato e comprovata Ha costruito nel funzionalità per contare il numero di forme primitive in un'immagine.. È scritto in C++ ma è possibile creare un piccolo wrapper da invocare tramite JNI.

RoboRealm è un altro sistema di visione artificiale comprovato utilizzato da appassionati di robot. È un prodotto commerciale a sorgente chiuso che utilizza un'API di controllo basata su socket.

http://opencv.willowgarage.com/wiki/FullOpenCVWiki

http://www.roborealm.com/index.php

5

In Java, ci sono diversi progetti che estendono l'API Java Advanced Imaging per fornire computer vision:

  • JavaVis
  • di elaborazione delle immagini in java + IPJ - estensioni di visione artificiale per JAI
  • Java Vision Toolkit - JVT (MODIFICA: opps, questo è menzionato nella domanda)

C'è un paper per JavaVis che introduce la libreria, confronta e costruisce con queste altre due librerie citate.

JavaVis ha queste caratteristiche:

  • maniglie immagini 2D e 3D (3D essendo più rilevante in questo caso)
  • Ha una GUI per il controllo dei risultati potenziali
  • Matlab immagine esportazione

Anche per java è NeatVision. A differenza degli altri, la documentazione è chiaramente visibile per questo progetto.

Nessuno di questi progetti offrirà una soluzione chiavi in ​​mano. Dovrai capire come funziona la visione artificiale e creare una sequenza di fasi di elaborazione sulle foto per ottenere i migliori risultati dagli algoritmi di visione. A tal fine, JavaVis potrebbe essere più utile, poiché è finalizzato all'insegnamento della visione artificiale.

1

siete disposti a sviluppare il proprio codice per questo? Esistono diverse tecniche che possono essere applicate e adattate al tuo problema specifico, ma non ho mai usato una libreria pacchettizzata, ho sempre sviluppato il mio codice. Posso fornire riferimenti per questo se sei interessato.

+0

Sarei molto interessato. Grazie. – unj2

5

Se non si sta parlando di elaborazione delle immagini in tempo reale, è possibile scrivere un'API su Amazon Mechanical Turk.

+0

Ottima soluzione di pensiero laterale. E per alcuni parametri uno dei più economici e più affidabili. – MZB

+0

foarte tare :)! +1 –

Problemi correlati