Innanzitutto, grazie per aver pubblicato una domanda molto interessante.
Per rispondere a breve, un convnet vaniglia addestrato end-2-end per prevedere l'età di una foto sarà generalmente incline a classificare erroneamente immagini come quella che hai pubblicato . In secondo luogo, notare che stimare con precisione l'età di una persona è un compito quasi impossibile 1 .
La principale differenza rispetto all'approccio proposto utilizzando alcuni rilevatori di oggetti (sia esso RCNN, Faster RCNN, YOLO o SSD) è che si utilizzano informazioni diverse per addestrare i modelli. La CNN è addestrata solo sulle immagini e deve scoprire da sola tutte le funzionalità necessarie. Molto probabilmente troverà varie caratteristiche facciali, ma dipenderà anche dall'abbigliamento e forse dalle caratteristiche della scena (i bambini potrebbero essere spesso nella foto con alcuni giocattoli, gli adulti saranno più probabili negli ambienti d'ufficio, ecc.). Queste funzionalità non saranno affidabili per il tuo controesempio.
D'altra parte, se si addestra la rete per rilevare esplicitamente gli oggetti come "torso" e "testa", si stanno fornendo ulteriori informazioni sul fatto che questi oggetti sono importanti per l'attività e quindi semplificano il problema 2 .
Mentre l'approccio del rilevamento di testa e busto e quindi la valutazione del rapporto dimensionale delle scatole di delimitazione suona interessante, posso vedere diversi ostacoli:
- Ottenimento di dati: non sono a conoscenza della disponibilità di set di dati di grandi dimensioni in cui sarebbero presenti sia i riquadri di età che i limiti.
- FOV imperfetto: nella maggior parte delle immagini (ad es. Entrambi i tuoi esempi), le persone non vengono visualizzate intere. Dovresti affrontare il fatto che le scatole di delimitazione del busto non sarebbero sempre perfette semplicemente perché una parte della persona non è nell'immagine e la rete dovrebbe indovinare quanto manca la parte (e le scatole di delimitazione della verità di base sarebbero la maggior parte probabilmente non acquisire queste informazioni). Inoltre, i suddetti rilevatori di oggetti non gestiscono sempre correttamente le previsioni degli oggetti parziali. Ciò potrebbe introdurre troppo rumore nel modello.
- Varie pose: il rapporto busto-testa sarebbe molto diverso per le persone viste frontalmente e lateralmente.
- Adulti: sembra che il rapporto funzioni bene per prevedere età comprese tra 0 e 21 anni, ma non vedo come sarebbe utile prevedere le età degli adulti (suppongo che il rapporto non cambi in età avanzata).
Tutti questi problemi suggeriscono che anche l'approccio del rapporto testa-busto non funzionerà perfettamente, anche se potrebbe essere più robusto per il tuo controesempio particolare.
Immagino che il modo migliore per eseguire questo compito sia quello di 1) rilevare il viso, 2) prevedere l'età solo dal raccolto del viso (rimuove informazioni potenzialmente fuorvianti). Si noti che alcune architetture simili a R-CNN che utilizzano il ROI-pooling potrebbero essere addestrate per fare questo end-2-end.
1 Anche usando metodi medici molto sofisticati (che sono probabilmente molto più istruttivi di una foto della persona) non è possibile farlo con precisione. Vedi questo thread Quora per maggiori informazioni .
2 Consulta l'articolo Questioni di conoscenza: importanza delle informazioni precedenti per l'ottimizzazione per un esempio di come fornire alcune conoscenze intermedie sull'attività può semplificare notevolmente l'apprendimento.