diy:projets:cinematography_panning_and_tracking_actor
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| diy:projets:cinematography_panning_and_tracking_actor [2018/05/24 15:14] – créée gbouyjou | diy:projets:cinematography_panning_and_tracking_actor [2018/06/01 15:25] (Version actuelle) – [Petit cours d'optique (rappel géometrie)] gbouyjou | ||
|---|---|---|---|
| Ligne 13: | Ligne 13: | ||
| est-ce que je traite une image flou ?, ou avec un traitement d' | est-ce que je traite une image flou ?, ou avec un traitement d' | ||
| + | Question de performance, | ||
| + | |||
| + | |||
| + | ---- | ||
| + | ===== Installation de la derniere version d' | ||
| + | |||
| + | ==== Installation des dependances ==== | ||
| + | |||
| + | <code shell> | ||
| + | sudo apt-get -q -y update | ||
| + | sudo apt-get -q -y install build-essential | ||
| + | sudo apt-get -q -y install cmake | ||
| + | sudo apt-get -q -y install pkg-config | ||
| + | sudo apt-get -q -y install libpng12-0 libpng12-dev libpng++-dev libpng3 | ||
| + | sudo apt-get -q -y install libpnglite-dev libpngwriter0-dev libpngwriter0c2 | ||
| + | sudo apt-get -q -y install zlib1g-dbg zlib1g zlib1g-dev | ||
| + | sudo apt-get -q -y install pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools | ||
| + | sudo apt-get -q -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs | ||
| + | sudo apt-get -q -y install ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev | ||
| + | sudo apt-get -q -y install libgstreamer0.10-0-dbg libgstreamer0.10-0 | ||
| + | sudo apt-get -q -y install libxine1-ffmpeg | ||
| + | sudo apt-get -q -y install libunicap2 libunicap2-dev | ||
| + | sudo apt-get -q -y install libdc1394-22-dev libdc1394-22 libdc1394-utils | ||
| + | sudo apt-get -q -y install swig | ||
| + | sudo apt-get -q -y install libv4l-0 libv4l-dev | ||
| + | sudo apt-get -q -y install python-numpy | ||
| + | sudo apt-get -q -y install libpython2.6 python-dev python2.6-dev | ||
| + | sudo apt-get -q -y install libpython2.7 python-dev python2.7-dev | ||
| + | sudo apt-get -q -y install libgtk2.0-dev pkg-config | ||
| + | sudo apt-get -q -y install mplayer | ||
| + | </ | ||
| + | |||
| + | ==== Téléchargement de la derniere version sur sourceforge.net ==== | ||
| + | |||
| + | Allez sur ce [[https:// | ||
| + | Téléchargez la dernière version de opencv | ||
| + | |||
| + | Extraire le dossier et y rentrer | ||
| + | |||
| + | |||
| + | ==== Compilation ==== | ||
| + | |||
| + | Executez ceci | ||
| + | |||
| + | <code shell> | ||
| + | mkdir release | ||
| + | cd release | ||
| + | cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/ | ||
| + | make | ||
| + | sudo make install | ||
| + | </ | ||
| + | |||
| + | Après une bonne heure de compilation, | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | ===== Detection de ma personne ===== | ||
| + | |||
| + | On aurrait pu utiliser la detection de mouvement décrit dans ce [[https:// | ||
| + | ce n'est pas le cas içi. | ||
| + | Mais on utilisera ceçi dans un prochain tuto, ... :-X | ||
| + | |||
| + | Le choix à été fait sur l' | ||
| + | |||
| + | En effet ca s' | ||
| + | l' | ||
| + | Voir ce [[https:// | ||
| + | |||
| + | On aurra pour faire ce tuto pas besoin d' | ||
| + | diverses partie du corps humain. | ||
| + | |||
| + | Vous avez tous les fichiers dans le repertoire / | ||
| + | |||
| + | Nous nous concentrerons sur le fichier haarcascade_frontalface_default.xml | ||
| + | pour suivre les visages. | ||
| + | |||
| + | Utilisons tous ceci pour voir ce que ça donne sur une image de foule prise sur google image. | ||
| + | |||
| + | Import basique opencv | ||
| + | <code python> | ||
| + | import numpy as np | ||
| + | import cv2 | ||
| + | </ | ||
| + | |||
| + | |||
| + | Chargement de la video et de cascade | ||
| + | <code python> | ||
| + | |||
| + | face_cascade = cv2.CascadeClassifier(' | ||
| + | # face_cascade = cv2.CascadeClassifier(' | ||
| + | |||
| + | cap = cv2.VideoCapture(0) | ||
| + | width =cap.get(cv2.CAP_PROP_FRAME_WIDTH) | ||
| + | height =cap.get(cv2.CAP_PROP_FRAME_HEIGHT) | ||
| + | </ | ||
| + | |||
| + | Pour chaque frame du stream, on detect les visages, on les entoures, et on dessines un point au centre de | ||
| + | chaque rectangle/ | ||
| + | On quite en appuyant sur q pour quit | ||
| + | <code python> | ||
| + | while(1): | ||
| + | |||
| + | ret, img = cap.read() | ||
| + | gray = cv2.cvtColor(img, | ||
| + | |||
| + | faces = face_cascade.detectMultiScale(gray, | ||
| + | print(faces) | ||
| + | continue | ||
| + | for (x, y, w, h) in faces: | ||
| + | cv2.rectangle(img, | ||
| + | middle =[cv2.KeyPoint(x +w /2, y +h /2, 1)] | ||
| + | img =cv2.drawKeypoints(img, | ||
| + | # roi_gray = gray[y:y+h, x:x+w] | ||
| + | # roi_color = img[y:y+h, x:x+w] | ||
| + | # eyes = eye_cascade.detectMultiScale(roi_gray) | ||
| + | # for (ex, | ||
| + | # | ||
| + | cv2.imshow(' | ||
| + | |||
| + | k = cv2.waitKey(30) & 0xff | ||
| + | if k == 27: | ||
| + | break | ||
| + | </ | ||
| + | |||
| + | |||
| + | Pour finir on enregistre la dernière image et on free les fenêtres. | ||
| + | <code python> | ||
| + | cv2.imwrite(" | ||
| + | # cv2.waitKey(0) | ||
| + | cv2.destroyAllWindows() | ||
| + | </ | ||
| + | |||
| + | On regarde ce que ça donne sur une image de foule | ||
| + | {{ : | ||
| + | |||
| + | |||
| + | Le résultat est pas mal, ca suffira, et j' | ||
| + | |||
| + | |||
| + | ===== Petit cours d' | ||
| + | |||
| + | Prenons l' | ||
| + | Je connais la taille de l' | ||
| + | Mais comment je sais de combien de degree j' | ||
| + | |||
| + | Pour cela faisons un petit rappel géometrique de collège | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | En attente ... | ||
diy/projets/cinematography_panning_and_tracking_actor.1527174852.txt.gz · Dernière modification : de gbouyjou
