Come implementare il riconoscimento dell'attività umana nel deep learning e indicarmi eventuali dataset disponibili pubblicamente
In breve, classificherei quattro approcci DL chiave per la comprensione dell'attività:
- RNN-based [0], che spesso utilizzano una rete LSTM/GRU definita sulla cima delle caratteristiche a livello di immagine calcolate da una CNN, come una addestrata per la classificazione ImageNet. Generalmente, è troppo costoso backpropagare tutto il percorso a ritroso attraverso l'immagine-CNN, o non ci sono abbastanza dati di allenamento video, quindi i pesi dell'immagine-CNNs sono tenuti congelati.
Datasets: La RNN può fornire un'etichetta alla fine per classificare l'intera sequenza, ad esempio identificare il tipo di sport come nel dataset UCF-101 [1] o più azioni diverse come nel dataset Kinetics [2], oppure può fornire etichette per-frame per segmentare temporalmente il video come nei singoli passi di un'attività di cucina secondo il dataset EPIC-Kitchen[3]. Si possono trovare molti altri dataset correlati citati in questi documenti sui dataset [1,2,3]. - Convoluzioni temporali [4]: Queste forniscono un'alternativa solo convoluzionale alle RNN, e hanno dimostrato di allenarsi molto più velocemente delle RNN con accuratezze potenzialmente superiori, specialmente quando si modellano le dipendenze a lungo raggio.
Praticamente, funzionano in modo abbastanza simile agli approcci RNN, prendendo le caratteristiche a livello di immagine calcolate dalle CNN per-frame. - 3D CNNs [5]: Queste concatenano più fotogrammi in un "volume" 3D e addestrano una CNN 3D su di essi; molto più costoso in termini di requisiti di memoria della GPU.
- CNN 3D "gonfiate" [6]: Queste usano le image-CNN come la loro spina dorsale (in modo da poter utilizzare pesi pre-addestrati su dataset di immagini), ma poi concatenano le caratteristiche da più fotogrammi in un "volume". Questo riduce significativamente la quantità di memoria richiesta rispetto a 3, ma permette il backprop fino alle "image CNNs".
Inoltre, queste forniscono un modo più diretto di usare le "caratteristiche di movimento" come il flusso ottico (che aiuta sempre), invece di alimentarle come descrittore globale di caratteristiche negli approcci precedenti.
I modelli 3D dovrebbero essere lo stato dell'arte almeno per i compiti di classificazione di azioni singole.
Il codice della maggior parte di questi approcci è disponibile online.
[0] https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Singh_A_Multi-Stream_Bi-Directional_CVPR_2016_paper.pdf
[1] Center for Research in Computer Vision at the University of Central Florida
[2]DeepMind Research - Kinetics | DeepMind
[3] EPIC-KITCHENS 2018 Dataset
[4] https://arxiv.org/pdf/1611.05267.pdf
[5] https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Tran_Learning_Spatiotemporal_Features_ICCV_2015_paper.pdf
[6] https://arxiv.org/pdf/1705.07750.pdf