2015-04-20 6 views
10

Sto implementando una CNN con Theano. Nel documento, che devo fare questo pre-elaborazione immagine prima del treno della CNNSottrai media dall'immagine

We extracted RGB patches of 61x61 dimensions associated with each poselet activation, subtracted the mean and used this data to train the convnet model shown in Table 1 

Puoi dirmi cosa vuol dire con "sottratto la media"? Dimmi se questi passaggi sono corretti (è quello che ho capito) 1) Calcola la media per Red Channel, Green Channel e Blue Channel per l'intera immagine 2) Per ogni pixel, sottrai dal valore rosso la media del canale rosso, dal valore verde la media del canale verde e la stessa per il canale blu 3) È corretto avere un valore negativo o devo usare gli addominali?

Grazie a tutti !!

risposta

6

Si consiglia di leggere la carta con attenzione, ma ciò che è la più probabile è che essi significare media delle patch, in modo da avere N matrici 61x61 pixel, che è l'equivalente di un vettore di lunghezza 61^2 (se ci sono tre canali quindi 3*61^2). Cosa fanno - calcolano la media semplice di ciascuna dimensione, quindi calcolano la media su questi vettori N rispetto a ciascuna delle dimensioni di 3*61^2. Come il risultato ottengono un significa vettore di lunghezza 3*61^2 (o matrice media/significa cerotto se si preferisce) e sottrarre da tutti questi N patch. Le patch risultanti avranno valori negativi, è perfettamente soddisfacente, il valore non dovrebbe assumere il valore, le reti neurali preferiscono questo tipo di dati.

+0

Il documento è questo http://arxiv.org/pdf/1407.0717v1.pdf Ho 6 milioni di immagini e non penso che la media menzionata riguardi le patch, ma riguardo la singola immagine. Ovviamente è possibile la tua idea – sakuragi

6

Suppongo che la media indicata nella carta sia la media di tutte le immagini utilizzate nel set di allenamento (calcolato separatamente per ciascun canale).

diverse indicazioni:

Questo è naturalmente solo una prova indiretta dal momento che non riesco a spiegare il perché questo accade. In effetti, mi sono imbattuto in questa domanda mentre cercavo di capire esattamente questo.

// EDIT:

Nel frattempo ho trovato una source conferma la mia affermazione (SELEZIONE aggiunto da me):

Ci sono tre forme comuni di dati di pre-elaborazione una matrice di dati X [. ..]

La sottrazione media è la forma più comune di pre-elaborazione.Lo standard implica la sottrazione della media su ogni singola caratteristica nei dati e ha l'interpretazione geometrica del centraggio del cloud dei dati attorno all'origine lungo ogni dimensione. In numpy, questa operazione sarebbe implementata come: X - = np.mean (X, axis = 0). Con le immagini in particolare, per comodità può essere comune sottrarre un singolo valore da tutti i pixel (ad esempio X - = np.mean (X)), oppure farlo separatamente attraverso i tre canali di colore.

Come possiamo vedere, i dati di intere viene utilizzato per calcolare la media.

+0

Ha senso usare la media su tutte le immagini nel set di allenamento? Dovremmo farlo per ogni pixel del valore RGB di ogni singola immagine. – Zangetsu

+0

Ho fornito un link e una citazione come per il senso di utilizzare l'intero set di dati nella mia modifica. – Zakum