un percettrone può essere utilizzato per rilevare le cifre scritte a mano?
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?
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).