Domanda

Diciamo che ho una piccola bitmap che contiene una sola cifra (0..9) nella scrittura a mano.

E 'possibile rilevare la cifra utilizzando un perceptron (due strati)?

Ci sono altre possibilità per rilevare una sola cifra da bitmap oltre ad utilizzare le reti neurali?

È stato utile?

Soluzione

Feeding ogni pixel di una bitmap direttamente in una rete neurale richiede un sacco di formazione, e non funziona bene per la manipolazione di ridimensionamento o la rotazione dell'immagine.

Per aiutare la rete neurale eseguire buona classificazione, è necessario eseguire alcune operazioni di pre-elaborazione.

  • Normalizzare l'immagine:
    • Regolare il contrasto e luminosità in modo che l'istogramma dell'immagine corrisponde un'immagine di riferimento.
    • sfocare l'immagine, per rimuovere il rumore.
    • convertirla in bianco e nero, usando una certa soglia.
    • Trova il rettangolo di selezione della forma, la scala a una dimensione predefinita.
  • calcolare le varie caratteristiche dell'immagine che può essere utilizzata per differenziare una cifra da un altro:
    • Il Euler numero dell'immagine - quanti "buchi" dice che c'è sono nella forma (ad esempio due fori per il numero 8).
    • Il numero di pixel bianchi (l'area della cifra)
    • I href="http://en.wikipedia.org/wiki/Principal_components_analysis" componenti principali dell'insieme delle coordinate dei pixel bianchi - si dice come "allungata "la forma è.
    • ... altre caratteristiche che si può pensare che tendono ad avere valori simili per le cifre simili.

I componenti principali possono essere utilizzati anche per normalizzare la rotazione della forma, in modo che l'asse lungo è verticale.

Le caratteristiche sono ciò che si alimentano nella rete neurale per la classificazione, non i pixel.

Altri suggerimenti

Ecco un link ad un enorme database di cifre scritte a mano. La prima pagina ha anche i dati delle prestazioni relative per molti metodi diversi, tra cui le reti neurali 2 strati. Questo dovrebbe dare un buon inizio: MNIST cifre del database e le prestazioni

Si potrebbe anche voler controllare lavoro di Geoff Hinton sulla ristretta Boltzmann Macchine che, dice, effettua abbastanza bene, e c'è una buona lezione esplicativa sul suo sito (molto guardabile).

Ecco un Matlab programma di esempio che utilizza una rete neurale addestrata per rilevare singole cifre (dimensione dell'immagine fissata a 28 * 28).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top