• Aucun résultat trouvé

Fichier PDF Cam_detection_fr.pdf

N/A
N/A
Protected

Academic year: 2022

Partager "Fichier PDF Cam_detection_fr.pdf"

Copied!
13
0
0

Texte intégral

(1)

P OB T ECHNOLOGY D ETECTION DE VISAGE PAR WEBCAM

(2)

POB TECHNOLOGY – Tous droits réserves INFORMATIONS LEGALES

Entreprise POB-Technology

Type SARL

SIRET 483 594 386 000 28

APE 742C

CONTACTS

Adresse POB-Technology

11, avenue Albert Einstein 69 100 VILLEURBANNE FRANCE

Adresse mail [email protected]

Téléphone +33 (0)4 72 43 02 36

Fax +33 (0)4 83 07 50 89

GESTION DU DOCUMENT

Nom de Fichier Cam_detection_fr.pdf

Date de création 28/05/2009

Auteur Romain Etchegoyhen – Rémi Bruyas

Alisson Foucault

Modification 09/07/2009

(3)

TABLE DES MATIERES

1. Présentation ... 4

1.1 Généralités ... 4

1.2 Outils nécessaires ... 4

2. Connexion et mise en route ... 5

2.1 Dual-POB et PC ... 5

2.2 Dual-POB et servomoteurs ... 5

2.3 Webcam et PC... 5

3. Annexe : code & ressources ... 6

3.1 Programme d’exécution DUAL-POB ... 6

3.2 Programme de détection faciale ... 7

(4)

POB TECHNOLOGY – Tous droits réserves 1. PRESENTATION

1. 1 GÉNÉRALITÉS

Ce document vous présentera une manière originale d’utiliser votre Dual-POB combinée à deux servomoteurs et une webcam. Vous serez guidés pas à pas afin de concevoir une webcam qui détectera et suivra vos visages.

Ci-dessous vous trouverez la liste des programmes nécessaires à cette réalisation.

1.2 OUTILS NÉCESSAIRES

Afin de concevoir votre webcam mobile, il vous faudra vous doter d’un Dual-POB, de deux servomoteurs, Coté logiciel, POB-tools, le driver de votre webcam, ainsi que l’exécutable fournit suffiront à une exécution de la détection. Pour la modifier et concevoir votre propre programme d’animation des servomoteurs, d’autres logiciels seront nécessaires, tels que OpenCV et Visual Studio. La grande majorité de ce matériel se trouve très facilement sur notre site commercial robot-advance ( http://www.robot-advance.com/FR/).

AF

(5)

2. CONNEXION

Cette partie du document vous aidera à connecter et charger les programmes nécessaires à l’utilisation de notre webcam animée.

2.1 DUAL-POB ET PC

Afin de charger votre programme sur votre Dual-POB, connectez votre Dual-POB à votre PC via le câble mini- USB. Une fois votre carte alimentée et connectée, utiliser l’outil d’upload Dual-POB pour charger le

programme Cam-detection.hex fournit.

2.2 DUAL-POB ET SERVOMOTEURS

Les servomoteurs animant votre webcam doivent être lié à votre Dual-POB selon le schéma suivant :

2.3 WEBCAM ET PC

Prenez soin d’avoir installé les pilotes de votre webcam lors que vous tenterez de l’utiliser. Si vous n’avez plus le cd-rom d’installation, vous pourrez retrouver vos pilotes sur le site constructeur, ou encore en suivant l’assistant de configuration windows. Une fois les pilotes installés, vous pouvez connecter votre webcam au PC via son câble USB.

Il ne vous reste plus qu’a lancer l’exécutable (FaceDetection.exe), et votre Webcam détectera et suivra vos visages !

(6)

POB TECHNOLOGY – Tous droits réserves 3. ANNEXE: CODE & RESSOURCES

Vous trouverez dans cette partie tout ce qui est propre au code source des programmes utilisés, ainsi que les outils nécessaire à leur conception, voir amélioration.

Remarque : Attention, le code à été conçu sous Visual Studio, logiciel sous licence. Ce qui suit se reposera donc sur une modification du code via Visual Studio uniquement.

3.1 PROGRAMME D’EXECUTION DUAL-POB

int main() {

UInt8 defDirHB = 180, defDirDG = 92;

UInt8 DirHB = 0, DirDG = 1;

unsigned char buffer[4], value[2];

SetIOWay(IO_AS_DEFAULT, IO_AS_DEFAULT, IO_AS_DEFAULT, IO_AS_DEFAULT);

InitUART0(115200);

InitDualServo();

// 200 is top - less then 200 goes down, more goes up // 125 is max down, 225 is max up

SetServo(DirHB, defDirHB, 7);

// 92 is front - less than 95 turns right, more turns left // 0 is max right, 200 is max left

SetServo(DirDG, defDirDG, 7);

while(1) {

GetBufferFromUART0(&buffer[0], 3);

buffer[3] = '\0';

if (strcmp((const char *)buffer, "CDG") == 0) {

GetBufferFromUART0(&value[0], 1);

value[1]= '\0';

defDirDG = (int)value[0];

SetServo(DirDG, defDirDG, 7);

}

else if (strcmp((const char *)buffer, "CUP") == 0) {

if (defDirHB > 223) {

defDirHB = 225;

SetServo(DirHB, defDirHB, 7);

} else {

defDirHB = defDirHB + 2;

SetServo(DirHB, defDirHB, 7);

} }

(7)

3.2 PROGRAMME DE DETECTION FACIALE

L’exécutable FaceDetection.exe à été conçu sous Visual Studio avec une librairie OpenCV (Open Source Computer Vision). Il s’agit d’une bibliothèque développée par la société Intel, qui propose un ensemble d'objets et de fonctions en C/C++ liés à la détection par ordinateur. Elle est gratuite et multi plateformes.

Vous pouvez télécharger à partir de ce lien : OpenCV et vous trouverez la documentation à cette adresse : http://www.cognotics.com/opencv/docs/1.0/index.html.

INSTALLATION & CONFIGURATION

Une fois sur le site, il vous suffit ensuite de télécharger opencv-win, la suite se déroule comme pour toutes les installations sous Windows : lancez l'installeur, et laissez-vous guider. Une fois l’installation d’OpenCV

complète, lancez Visual Studio. Il vous faut maintenant intégrer la librairie OpenCV à Visual Studio.

Lancez Visual C++, puis consultez le menu Outils => Options. Dans la liste de gauche, choisissez Projets et solutions -> Répertoires de VC++, ensuite sélectionnez Fichiers bibliothèques dans la liste tout à droite enfin cliquez sur l'icône Nouveau Dossier.

else if (strcmp((const char *)buffer, "CDO") == 0) {

if (defDirHB < 127) {

defDirHB = 125;

SetServo(DirHB, defDirHB, 7);

} else {

defDirHB = defDirHB - 2;

SetServo(DirHB, defDirHB, 7);

} }

}

return 0;

}

(8)

POB TECHNOLOGY – Tous droits réserves Sélectionnez alors le répertoire C:\Program Files\OpenCV\lib.

De la même manière, sélectionnez Fichiers Include dans la liste déroulante, et ajoutez les répertoires suivants :

• C:\Program Files\OpenCV\cv\include

• C:\Program Files\OpenCV\cxcore\include

• C:\Program Files\OpenCV\otherlibs\highgui

• C:\Program Files\OpenCV\cvaux\include

Ensuite, en choisissant l'option Fichiers source, ajoutez les répertoires :

• C:\Program Files\OpenCV\cv\src

• C:\Program Files\OpenCV\cxcore\src

• C:\Program Files\OpenCV\cvaux\src

• C:\Program Files\OpenCV\otherlibs\highgui

Maintenant que la librairie est intégrée au logiciel, il faut l’intégrer au projet lui-même. Créez un projet

"console" sous Visual (File =>New=>Project),

(9)

Allez dans le menu Projet -> Propriétés.

Dans l'onglet Éditeur de liens, choisissez Entrée puis rajoutez, dans les Dépendances additionnelles, les librairies :

cv.lib cvaux.lib cxcore.lib highgui.lib

Enfin, N'oubliez pas d'inclure les DLL d'OpenCV dans le dossier de votre projet. Elles se trouvent dans le répertoire C:\Program Files\OpenCV\bin.

(10)

POB TECHNOLOGY – Tous droits réserves VERIFICATION

Voici un petit programme très basique qui vous permettra de vérifier si votre configuration a bien été effectuée. Glissez dans votre répertoire projet l’image de votre choix en la renommant test.jpg, puis compilez et lancez ce programme

Si vous avez bien configuré votre Visual Studio, votre image sera affichée dans la fenêtre ! PROGRAMME FACEDETECTION.C

Maintenant que Visual Studio est configuré, vous pouvez charger le code source de notre programme de détection.

#include <cv.h>

#include <highgui.h>

int main() {

// Replace "test.jpg by a picture in the directory of your project IplImage *img=cvLoadImage("test.jpg");

// Create a window

cvNamedWindow("Hello World", CV_WINDOW_AUTOSIZE);

// Show the picture

cvShowImage("Hello World", img);

cvWaitKey(0);

// Destroy window

cvDestroyWindow("Hello World");

cvReleaseImage(&img);

return 0;

}

#include <Dual-POB.h>

int main() {

UInt8 portb;

UInt8 defDirHB = 180, defDirDG = 92;

UInt8 DirHB = 0, DirDG = 1;

UInt16 y, x;

unsigned char buffer[4], value[2], position[2];

portb = (IO_AS_INPUT << PIN_7); // set the joystick button as input SetIOWay(portb, IO_AS_DEFAULT, IO_AS_DEFAULT, IO_AS_DEFAULT);

InitUART0(115200);

InitAnalog();

InitDualServo();

(11)

// 200 is top - less then 200 goes down, more goes up // 125 is max down, 225 is max up

SetServo(DirHB, defDirHB, 7);

// 92 is front - less than 95 turns right, more turns left // 0 is max right, 200 is max left

SetServo(DirDG, defDirDG, 7);

y = GetAnalog(7);

x = GetAnalog(6);

while (GetInput(INPUT_PORTB,INPUT_7) != 1) {

y = GetAnalog(7);

x = GetAnalog(6);

if (y < 100) // up {

if (defDirHB < 130) {

defDirHB = 125;

SetServo(DirHB, defDirHB, 1);

} else {

defDirHB = defDirHB - 5;

SetServo(DirHB, defDirHB, 1);

} }

else if (y > 900) // down {

if (defDirHB > 220) {

defDirHB = 225;

SetServo(DirHB, defDirHB, 1);

} else {

defDirHB = defDirHB + 5;

SetServo(DirHB, defDirHB, 1);

} }

if (x < 300) // right {

if (defDirDG < 5) {

defDirDG = 0;

SetServo(DirDG, defDirDG, 1);

} else

(12)

POB TECHNOLOGY – Tous droits réserves

______________________________________________________________________________________________

Fin du document SetServo(DirDG, defDirDG+15, 1);

SetServo(DirDG, defDirDG-15, 1);

SetServo(DirDG, defDirDGv, 1);

while(1) {

GetBufferFromUART0(&buffer[0], 3);

buffer[3] = '\0';

if (strcmp((const char *)buffer, "CDG") == 0) {

GetBufferFromUART0(&value[0], 1);

value[1]= '\0';

defDirDG = (int)value[0];

SetServo(DirDG, defDirDG, 7);

}

else if (strcmp((const char *)buffer, "CUP") == 0) {

if (defDirHB > 223) {

defDirHB = 225;

SetServo(DirHB, defDirHB, 7);

} else {

defDirHB = defDirHB + 2;

SetServo(DirHB, defDirHB, 7);

} }

else if (strcmp((const char *)buffer, "CDO") == 0) {

if (defDirHB < 127) {

defDirHB = 125;

SetServo(DirHB, defDirHB, 7);

} else {

defDirHB = defDirHB - 2;

SetServo(DirHB, defDirHB, 7);

} }

else if (strcmp((const char *)buffer, "GET") == 0) {

position[0] = defDirDG;

position[1] = defDirHB;

SendBufferToUART0(&position[0], 2);

} }

return 0;

}

(13)

Site inte Adresse Télépho Fax

ernet e mail one

CONNTACTER

POB- 11, aven 69 100

R POB-TE

-TECHNOL nue Albert

VILLEUR France

http conta +33 +33

ECHNOLO

LOGY Einstein BANNE

p://www.pob- act@pob-tech (0)4 72 43 02 (0)4 83 07 50

OGY

-technology hnology.com 2 36

0 89

y.com/

Références

Documents relatifs

 Le dépistage et le traitement ne sont pas recommandés avant arthroplastie réglée, chirurgie cardio vasculaire, chez les autres patients immunodéprimés, avant ablation

• Neutropénie fébrile à faible risque (&lt;7j, sans signe de gravité, sans FQ dans les 6 mois) pouvant être traitées en ambulatoire : ciprofloxacine ou lévofloxacine,

Atelier 1 Comment parler du prophète dans notre

Les contrats d'assurance, souscrits par toute personne physique ou morale autre que l'Etat et garantissant les dommages d'incendie ou tous autres dommages à des biens situés en

[r]

Biocomputer specialist at the Genomics Institute - Genoscope (CEA (Atomic Energy Authority) / Direction of life sciences), and member of the piloting committee of the synthetic

• Bernard Perret, Membre du Conseil Général de l’environnement et du développement durable, Ministère de l’Écologie, de l’Énergie du Développement Durable et de la Mer

gestion Samedi 16 Janvier Statistiques Retour à la maison Mardi 5 Janvier Finances publiques Economie du Maroc Jeudi 7 Janvier Audit Contrôle de Gestion Mardi 12 Janvier