{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "XMMppWbnG3dN"
},
"source": [
"\n",
"# Estimation de posture dans une image\n",
"\n",
"Pour ce TP ainsi que le suivant, nous allons traiter le problème de la détection du \"squelette\" d'un humain dans une image, tel qu'illustré dans la figure ci-dessous.\n",
"\n",
"![Texte alternatif…](https://drive.google.com/uc?id=1HpyLwzwkFdyQ6APoGZQJL7f837JCHNkh)\n",
"\n",
"Nous allons pour ce faire utiliser le [Leeds Sport Pose Dataset](https://sam.johnson.io/research/lspet.html) qui introduit 10000 images présentant des sportifs dans diverses situations, augmentées d'une annotation manuelle du squelette.\n",
"\n",
"À chaque image est associée une matrice de taille 3x14, correspondant aux coordonnées dans l'image des 14 joints du squelette de la personne décrite dans l'image. La 3e dimension désigne la visibilité du joint (1 s'il est visible, 0 s'il est occulté)\n",
"\n",
"Ces joints sont, dans l'ordre :\n",
"* Cheville droite\n",
"* Genou droit\n",
"* Hanche droite\n",
"* Hanche gauche\n",
"* Genou gauche\n",
"* Cheville gauche\n",
"* Poignet droit\n",
"* Coude droit\n",
"* Épaule droite\n",
"* Épaule gauche\n",
"* Coude gauche\n",
"* Poignet gauche\n",
"* Cou\n",
"* Sommet du crâne\n",
"\n",
"Pour un rappel des notions vues en cours sur ce sujet, vous pouvez regarder la vidéo ci-dessous :\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "COfRON-Mp1Iu"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import IFrame\n",
"IFrame(\"https://video.polymny.studio/?v=84ace9c1-f460-4375-9b33-917c3ff82c83/\", width=640, height=360)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "z3mdNJJXc6Wy"
},
"source": [
"Commencez par télécharger la base de données sur Github\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "3IVjmLKWRDag"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"fatal: le chemin de destination 'lsp' existe déjà et n'est pas un répertoire vide.\n"
]
}
],
"source": [
"!git clone https://github.com/axelcarlier/lsp.git"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "quOHEF__pf36"
},
"outputs": [
{
"data": {
"text/plain": [
"((10, 64, 64, 3), (10, 3, 14))"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"import PIL\n",
"from PIL import Image\n",
"import os, sys\n",
"from scipy.io import loadmat\n",
"\n",
"# Cette fonction permettra plus tard de charger plus ou moins d'images (en modifiant le paramètre num_images)\n",
"# et de modifier la dimension d'entrée\n",
"def load_data(image_size=128, num_images=1000):\n",
"\n",
" path = \"./lsp/images/\"\n",
" dirs = sorted(os.listdir(path))\n",
"\n",
" x = np.zeros((min(num_images,len(dirs)),image_size,image_size,3))\n",
" y = np.zeros((min(num_images,len(dirs)), 3, 14))\n",
" \n",
" #Chargement des joints \n",
" mat_contents = loadmat('./lsp/joints.mat')\n",
" joints = mat_contents['joints']\n",
"\n",
" # Chargement des images, qui sont rangées dans lsp/images\n",
" for i in range(min(num_images,len(dirs))):\n",
" item = dirs[i]\n",
" if os.path.isfile(path+item):\n",
" img = Image.open(path+item)\n",
" # Redimensionnement et sauvegarde des joints\n",
" y[i, 0] = joints[:,0,i]*image_size/img.size[0]\n",
" y[i, 1] = joints[:,1,i]*image_size/img.size[1]\n",
" y[i, 2] = joints[:,2,i]\n",
" # Redimensionnement et sauvegarde des images \n",
" img = img.resize((image_size,image_size))\n",
" x[i] = np.asarray(img)\n",
"\n",
"\n",
" return x, y\n",
"\n",
"# Chargement de seulement 10 images, de taille 64x64\n",
"x, y = load_data(image_size=64, num_images=10) \n",
"x.shape, y.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"id": "zRc0B4oxe6h_"
},
"outputs": [],
"source": [
"labels= {0: 'Cheville droite',\n",
" 1: 'Genou droit',\n",
" 2: 'Hanche droite',\n",
" 3: 'Hanche gauche',\n",
" 4: 'Genou gauche',\n",
" 5: 'Cheville gauche',\n",
" 6: 'Poignet droit',\n",
" 7: 'Coude droit',\n",
" 8: 'Épaule droite',\n",
" 9: 'Épaule gauche',\n",
" 10: 'Coude gauche',\n",
" 11: 'Poignet gauche',\n",
" 12: 'Cou',\n",
" 13: 'Sommet du crâne'}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "meezS1y4G8QO"
},
"source": [
"La fonction suivante vous permet de visualiser les données. Vous vous rendrez compte que certaines données sont manquantes ! En effet quand des joints sont occultés dans les images, des valeurs de position aberrantes (négatives) sont indiquées. Dans ce cas, nous n'afficherons pas les articulations."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "JvcqdQIZdCYk"
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"