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