• Aucun résultat trouvé

Evaluation de la performance

Dans le document eCandy Evolutionary Camera Network Deploy (Page 40-44)

Afin de déterminer la performance d'un réseau de caméras C, on doit d'abord déter- miner la visibilité de l'environnement par le réseau à partir des points échantillonnés. On doit ensuite déterminer l'erreur de reconstruction 3D réalisée en chaque point, puis la précision en fonction de l'erreur tolerable en chaque point. La performance est obtenue par la somme des produits de la précision par l'importance stratégique en chaque point. On présente d'abord à la section 2.4.1 les algorithmes développés permettant de déterminer la visibilité de l'environnement par le réseau. On présente ensuite l'algo- rithme d'évaluation de l'erreur en fonction des points vus à la section 2.4.2, puis fina- lement le calcul de précision à la section 2.4.3.

2.4.1 Évaluation de la visibilité

La visibilité d'une caméra est influencée par ses paramètres intrinsèques et ex- trinsèques ainsi que par les obstacles présents dans l'environnement. On doit d'abord déterminer quels points se trouvent dans le champ de vue d'une caméra. Pour ce faire, on emploie l'équation 2.8 permettant de déterminer les coordonnées images d'un point de l'environnement. Un point est visible si ses coordonnées images sont à l'intérieur de la résolution du capteur optique de la caméra. L'algorithme 2.7 détermine si un point p se trouve dans le champ de vue d'une caméra c.

ISIMAGING(C,P)

1 u <- WORLDTOIMAGE(C, p)

2 if ux > 0 and ux < px and uy > 0 and uy < py then 3 return TRUE

4 else return FALSE

Algorithme 2.7: Inclusion d'un point dans le champ de vue d'une caméra.

Puisque les points échantillonnés sont singuliers, et que l'on effectue une projection dans le plan image d'une caméra pour déterminer s'ils sont visibles, tout point se trou- vant à l'intérieur du champ de vue d'une caméra est défini comme visible. Ainsi, si un point se trouve infiniment loin de la caméra, et qu'il existe une projection du point sur

le plan optique de la caméra, le point sera considéré comme vu. Pour éviter cette in- exactitude, on ajoute au formalisme la possibilité de déterminer la résolution minimale en z que doit avoir un point pour être vu.

Pour déterminer si un point est visible à partir de cette spécification, on calcule, pour un point donné dans l'espace, un second point en ajoutant un delta en z. On effectue ensuite la projection dans le plan optique des deux points. On calcul ensuite la distance entre les deux points images. Si le rapport entre la distance entre les deux points images et le delta en z est supérieur ou égal à la résolution minimale, le point

est visible ; sinon, il n'est pas visible. Si la résolution minimale est définie comme étant

0, on retrouve le cas où tout point se trouvant dans le champ de vue d'une caméra est

visible.

Les murs des obstacles n'ont pas tous une incidence sur la visibilité des caméras

dans l'environnement. On rappelle les hypothèses suivantes : 1. Les régions d'intérêt sont au sol.

2. Il n'y a pas de point à observer à l'intérieur des obstacles.

3. Un obstacle est composé de murs rectangulaires ayant tous la même hauteur. 4. Aucun point ne peut se trouver à l'extérieur de l'environnement.

5. L'environnement est de forme rectangulaire.

En vertu des hypothèses 1, 2 et 3, on détermine que seules les faces de côtés des obstacles influencent le calcul de visibilité. De plus, en vertu des hypothèses 4 et 5, tout mur longeant le périmètre de l'environnement peut être négligé lors du calcul de visibilité. Finalement, si deux murs ont les mêmes coordonnées aux quatre sommets, ou encore qu'un mur s'inscrit entièrement dans un second, le mur inclus ou équivalent au second peut être négligé lors du calcul de visibilité.

A partir des conclusions précédentes, on peut filtrer les murs des obstacles dont la contribution au calcul de visibilité est négligeable afin d'accélérer les calculs. On définit donc un ensemble de murs W incluant seulement les murs influençant la visibilité des réseaux de caméras déployés dans l'environnement.

À partir de cet ensemble de murs, on peut déterminer s'il existe un mur entre une

caméra c et un point p. Pour ce faire, on emploie un algorithme basé sur le principe du tracé de rayons (algorithme 2.8). Le principe consiste à tracer un segment de droite entre l'origine de la caméra et le point. On vérifie ensuite pour chaque mur de l'ensemble W, s'il existe une intersection entre le plan défini par le mur et la droite.

la caméra. Finalement, si l'intersection fait partie du segment, on vérifie qu'elle est à l'intérieur des frontières du mur. Si ces trois conditions sont respectées, le point n'est pas visible, et l'algorithme s'arrête ; sinon, l'algorithme poursuit sa recherche parmi les murs restants de l'ensemble. Si aucune intersection n'est découverte avec aucun mur, le point est visible par la caméra c.

RAYTRACING(C, p) 1 o «— origin[c] 2 if (o — p).n = 0 then 3 r e t u r n TRUE 4 for wall in W do 5 n <— normal[wall] 6 P <— polygon[wall] 7 «s t i ( P [ 0 ] - o ) . n ( p - o ) . n if t > 0 then 9 i «— o + t(p — o) 10 if ISINSIDE(P, i) then 11 r e t u r n FALSE 12 return TRUE

Algorithme 2.8: Calcul d'intersection du rayon entre un point et une droite et les murs.

En somme, pour qu'une caméra puisse voir un point en fonction du formalisme posé : le point échantillonné doit premièrement avoir une projection valide dans le plan image du capteur optique de la caméra ; ensuite, la résolution en z du point doit être au minimum celle paramétrée pour le problème; et finalement, le segment de droite entre l'origine de la caméra et le point ne doit pas être coupé par un mur. On définit par une procédure ISVISIBLE(C, p) l'appel consécutif aux trois conditions précédentes

permettant de déterminer si une caméra c voit un point p.

2.4.2 Évaluation de l'erreur

Sachant qu'un point est vu par une caméra, on peut ensuite déterminer l'erreur de reconstruction 3D en ce point. Puisque tous les points échantillonnés se trouvent dans le plan z = 0, une seule caméra suffit pour effectuer la reconstruction.

Afin de simuler une erreur de positionnement d'un point dans l'image, on ajoute un delta en x et y au point image u. La reconstruction est effectuée en projetant ce point dans le plan 2 = 0. L'erreur de reconstruction correspond à la distance entre le point réel et la projection. Les delta sont paramétrables en fonction du problème étudié. Lorsque plusieurs caméras voient un même point, l'erreur de reconstruction 3D en ce point correspond à l'erreur minimale commise par l'ensemble des caméras. Si un point n'est vu par aucune caméra, l'erreur est infinie.

E R R O R ( C , p) 1 error <— oo 2 for camera in C do 3 if IsVlSlBLE(camera, p) then 4 u <- WoRLDTolMAGE(camera, p) 5 u' <- u + (Ax, A„) 6 p' «- lMAGEToWoRLD(camera, u') 7 if error > ||p — p'|| then 8 error <- ||p — p'|| 9 return error

Algorithme 2.9: Calcul de l'erreur de reconstruction 3D en un point.

2.4.3 Evaluation de la précision

La performance d'un réseau de caméras est définie en fonction de sa précision qui est définie à partir de l'équation 2.12. Si l'erreur de reconstruction 3D est supérieure au maximum toléré (Fe), la précision est égale au carré du rapport entre la valeur maximale de l'erreur tolérée et l'erreur obtenue. Dans le cas où aucune caméra ne voit le point, l'erreur est infinie, donc la précision est nulle. Si l'erreur est inférieure ou égale au maximum toléré, la précision est égale à 1.

PRÉCISION(C, p) = <

' l Fe(p)

l ERROR(C

1, si E R R O R ( C , P ) < Fe(p).

Dans le document eCandy Evolutionary Camera Network Deploy (Page 40-44)

Documents relatifs