• Aucun résultat trouvé

3.3 Reconnaissance d’actions

3.3.3 Classification indépendante de l’orientation

Comme énoncé précédemment, nous voulons une classification d’activités qui fonctionne sur un robot mobile, donc pour laquelle l’orientation n’est pas fixe au départ, et qui soit en plus rapide. Cette première partie va présenter des travaux permettant d’avoir une classification indépendante de l’orientation de la personne.

3.3.3.1 Approche proposée

Comme expliqué précédemment, le problème des approches actuelles en reconnaissance d’actions est une trop forte dépendance à l’orientation de la caméra par rapport à la position de la personne. Les approches utilisant les données de profondeur sont plus précises que les approches basées sur le squelette, mais les approches sur le squelette sont aussi plus indépendantes de cette position (tant que l’algorithme d’extraction du squelette est toujours valide). Afin de garder une bonne précision et d’avoir une invariance à l’orientation, les travaux de Mounir Hammouche ont porté sur une nouvelle méthode pour fusionner ces deux types d’approches de manière plus efficace. Pour tester ceci, un nouvel ensemble de données a également été créé, nommé Multiview3D2dans lequel des actions sont faites avec trois orientations différentes (−30, 0 et +30 degrés).

Dans ces travaux, nous avons proposé une méthode qui se base sur quatre classifieurs de base. Trois d’entre eux ont comme données d’entrée les données de profondeur (chacun avec l’une des orientations) et le dernier les données de squelette. Pour les données de profondeur, après une rapide comparaison des performances en termes de précision et de rapidité, nous avons finalement choisi HOG2(OH N- BA Ret al.,2013) comme descripteur (voir la section 3.3.2.1 qui

présentait ces sélections). Pour les données de squelette, comme expliqué dans le chapitre précédent, nous retenons RJP (VE M U L A P A L L Iet al.,2014) (Relative Joint Position). Les sorties des différents classifieurs de base sont ensuite

combinées pour améliorer la précision de la reconnaissance. Pour la fusion des informations en sortie des classifieurs,

le meilleur classifieur de base. DFSDA utilise les informations de squelette quand tous les segments (ou du moins une majeure partie d’entre eux) sont relativement bien reconnus. Dans le cas contraire, le système se base sur les informations de profondeur. Comme montré dans la Figure 3.7, à partir des deux informations de profondeur et de squelette, nous avons une sortie finale pour la classification. Cette architecture va être détailler dans les paragraphes suivants.

FI G U R E3.6 – Architecture du système logique flou. Les seuils Q0et Q1sont deux seuils flous déterminés sur les bases

expérimentales et qui vont déterminer les fonctions floues utilisées

La relation entre les entrées et la sortie peut être décrite par les règles suivantes :

               Skeleton_Accuracy = Good =⇒ SW = SVM1

Skeleton_Accuracy = Bad ∧ Orientation = Front =⇒ SW = SVM2

Skeleton_Accuracy = Bad ∧ Orientation = Right =⇒ SW = SVM3

Skeleton_Accuracy = Bad ∧ Orientation = Left =⇒ SW = SVM4

Les règles floues sont basées sur la précision du squelette (une donnée de l’algorithme connue et interne de la Kinect) et sur l’orientation de la personne, donnée inconnue. La sortie du système d’inférence flou présenté est un vecteur de poids qui détermine lequel des quatre classifieurs semble le plus adéquat pour reconnaître au mieux l’action en cours. La précision de détection des segments du squelette est une donnée à deux dimensions, comme montré par la figure 3.6 et dont les paramètres (Q0,Q1) dont définis par un algorithme de Fuzzy C-Mean (FCM). FCM est une technique de

clustering qui donne les centres des clusters et le degré d’appartenance de chaque point (DU N N,1973; BE Z D E K,1981). Cette technique peut être utilisée pour construire des systèmes d’inférence et plus précisément un partitionnement flou en utilisant une fonction objectif d’optimisation itérative comme décrit par l’équation 3.5 :

Jm= N X i =1 C X j =1 ui jm||xi− cj||2, 1 ≤ m < ∞ (3.5)

FI G U R E3.7 – Algorithme DFSDA

m est un nombre réel supérieur à 1, xiest la iememesure, cj le centre du cluster et ui jle degré d’appartenance de xi au

cluster j . Les centres des clusters cjet le degré d’appartenance ui j sont calculés par l’équation (3.6).

umi j= 1 PC k=1( ||xi−cj|| ||xi−ck||) 2 m−1 , cj= PN i =1umi j· xi PN i =1ui jm (3.6)

L’algorithme s’arrête lorsque la condition maxi j|uk+1i j − uki j| < ℑ est satisfaite, avec k le nombre d’itérations et ℑ

un seuil de convergence fixé empiriquement. Ce processus itératif converge vers un minimum local de Jm. Dans

notre expérimentation, nous avons pris les valeurs suivantes : ℑ = 1e − 5, et k = 100. Ainsi, nous obtenons un couple (Q0,Q1)=(0.356, 0.716).

Plusieurs approches pour « rendre non floues » sont disponibles dans la littérature telles que la méthode des centroïdes, la méthode des moyennes pondérées, le principe du maximum d’appartenance, etc. (SI N G H A L Aet al.,2014). Dans nos

travaux, nous avons utilisé la méthode des moyennes pondérées, résumée par l’équation (3.7). Nous avons utilisé cette méthode du fait de la sortie de notre système d’inférence flou qui est un vecteur de pondération indiquant l’utilisation des différents classifieurs.

Defuz = P4 i =1P[i ] ·W [i] P4 i =1W [i ] (3.7)

Defuz est la sortie du système d’inférence flou, P[i] la valeur extrême de la iemesortie (fonction d’appartenance) et W [i ] le poids de la iemerègle.

3.3.3.2.1.1 Estimation de l’orientation du corps Pour prédire l’action faite par une personne, utiliser le classifieur

le plus adapté, car appris avec la même orientation (ou une orientation proche) de celle utilisée pour faire le mouvement actuellement donnera les meilleurs résultats. Ainsi, une bonne estimation de l’orientation du corps est nécessaire. L’estimation de l’orientation du corps humain est un défi du fait de la variabilité de la localisation par rapport à la caméra, mais aussi des variabilités anthropométriques et de la différence dans la vitesse d’exécution. Ces facteurs détériorent la précision de l’estimation. De plus, les approches récentes sont souvent basées sur des informations liées à la marche, en prenant en compte que l’orientation est en rapport avec la direction du mouvement (SH I N M U R Aet al., 2015; W. LI Uet al.,2013). Cependant, dans le contexte d’interaction avec un robot, seuls les membres supérieurs vont avoir une utilité pour effectuer l’action. Cela rend l’estimation de l’orientation non triviale.

FI G U R E3.8 – Trois exemples de cartes de profondeur obtenues pour différents points de vue dans l’ensemble Multi- view3D.

Un classifieur SVM est utilisé pour estimer l’orientation du corps. Cependant, pour l’entraîner et le tester, les attributs extraits des cartes de profondeur sont normalisés à partir de la connaissance de l’ensemble des exemples. Une ACP a été réalisée pour minimiser l’ensemble des attributs et ainsi le temps d’exécution de la tâche de classification. Cette approche a été testée en utilisant la moitié de l’ensemble des données pour l’entraînement et l’autre moitié pour le test et a permis un taux de reconnaissance de l’orientation de 86.1%.

3.3.3.2.2 Agrégation des résultats des différents classifieurs

Une dernière étape permet d’encore améliorer notre algorithme, se basant sur la sortie des différents classifieurs et l’agrégeant, comme le montre la figure 3.9. Nous conservons cependant la même stratégie que précédemment qui est de considérer les données issues du squelette ou les données issues de la profondeur en fonction de la précision donnée par l’algorithme de reconstruction du squelette. Un vote majoritaire (KI Met al.,2002) et un algorithme basé

sur la notion d’investissement (Y. LIet al.,2015; PA S T E R N A C Ket al.,2010) sont utilisés pour fusionner les données issues des trois classifieurs basés sur la profondeur.

Ces deux méthodes ont été adaptées et testées dans les travaux de master de Mounir Hammouche.