Bonsoir a tous ,
j'utilise c++ avec raspberry pi 2 pour realiser un programme de detection faciale , j'ai trouvé un exemple ici https://github.com/Itseez/opencv/blo...facedetect.cpp
j'ai utilisé gprof pour connaitre le temps d'execution de mon programme donc voila son output
le probleme c'est que la methode release prend environ 66% de temps d'execution et la methode detectAndDraw prend 33% cette derniere methode detecte un visage capturé depuis la caméra => le total est de 99%
donc je cherche une méthode pour réduite un peu le temps d'execution de ces deux méthodes sachant qu'elle tourne dans une boucle infinie afin d'augmenter les performances de mon programme surtout qu'en executant le programmme sur la carte pi 2 overclocked a 1GHZ mais ca reste encore un peu lent
j'ai voulu faire une gestion manuelle de la mémoire => voici le nouveau code (ca fait longtemps que j'ai pas programmé en C++)
Voila pour les methode préfixée de cv ==> c'est du a l'utilisation de opencv c'est une bibliotheque qui fournit plusieurs fonctions utiles pour le traitement d'images .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 for(;;) { IplImage *iplImg = null ; iplImg = new IplImage ; *iplImg = cvQueryFrame( capture); frame = cv::cvarrToMat(iplImg); if( frame.empty() ) break; if( iplImg->origin == IPL_ORIGIN_TL ) frame.copyTo( frameCopy ); else flip( frame, frameCopy, 0 ); delete iplImg; iplImg = NULL; detectAndDraw( frameCopy, cascade, nestedCascade, scale, tryflip ); if( waitKey( 10 ) >= 0 ) goto _cleanup_; // la seule methode de sortir du programme est de cliquer sur ESC }
le programme se compile bien mais a l'executions j'obtiens une erreur :
*** glibc detected *** ./facedetect : free() : invalid pointer
c'est sur que j'ai commis une betise ici je pense merci de me l'indiquer
bonne soirée![]()
Partager