• Aucun résultat trouvé

3.4 Mécanisme de filtrage

3.4.2 Algorithmes de filtrage

Le filtrage négatif proposé s’appuie sur la modélisation des métadonnées présentée à la section3.3.3. L’objectif est de définir des algorithmes de requêtage basés métadon- nées afin d’écarter de manière automatique les plages inexploitables des vidéos selon des critères de qualité et d’utilité/utilisabilité vidéo. Les algorithmes de filtrage ont pour paramètres une liste de vidéo, une liste de traitement et des seuils paramétrables. Les seuils sont définis pour chaque mode d’analyse (urgent ou approfondi) afin de dé- terminer la compatibilité des séquences vidéo aux différents traitements (détection de visages, détection de véhicules, détection et lecture automatique des plaques d’imma- triculation). La compatibilité à un mode d’analyse est déterminée en comparant la valeur globale des descripteurs de chaque frame (ou groupe de frame) de la vidéo aux seuils de compatibilité définis pour les différents traitements. Ensuite, les résultats des comparaisons sont utilisés pour constituer (regroupement des frames) des segments vidéo.

Étant donné un ensemble de vidéosV D fv1; v2; :::; vig (chaque vidéo vi composée d’un ensemble de frames Fi D ff1i; f

i 2; :::; f

i

ng) et un ensemble de traitement T D .t1; t2; :::; tj/, le résultat du filtrage négatif pour chaque mode d’analyse est un ensemble de triplets : R D fr D .tj; vi; Œfst arti ; fe ndi /g, avec tj 2 T; vi 2 V; et fst arti ; fe ndi 2 Fijfst arti  fe ndi . Pour le mode d’analyse urgent,chaque Œf

i

3.4. Mécanisme de filtrage

vidéo compatible au traitement tj. Pour le mode d’analyse approfondi, on a des segments vidéo Œfst arti ; fe ndi  compatibles aux traitements tj et des segments vidéo Œfi

st art; fe ndi  moyennement compatibles (optionnels) aux traitements tj.

Les algorithmes1et2permettent d’obtenir les résultats du filtrage négatif pour les deux modes d’analyse. Pour ces deux algorithmes, la fonction getV ideoF rames.vi/ récupère dans une liste l’ensemble des frames de la vidéovi, et la fonction getFeature- Value.fk; tj/ récupère pour une frame fk de cette liste la valeur globale des descrip- teurs correspondants au traitementtj. Cette valeur globale des descripteurs est ensuite comparée aux différents seuils définis pour chaque mode d’analyse afin de déterminer la compatibilité de la frame pour le traitement. Les algorithmes s’exécutent en deux grandes étapes qui sont le filtrage proprement dit par frame et la composition des segments.

L’étape de filtrage par frame : est celle qui consiste à comparer chaque frame d’une vidéo aux différents seuils définis afin de déterminer son éligibilité à un traitement donné en fonction d’un mode d’analyse.

L’étape de composition de segments vidéo : un segment vidéo étant défini comme une suite consécutive de frames, cette étape regroupe les frames d’une vidéo de manière chronologique et selon l’indexation (éligibilité à un traitement pour un mode d’analyse) faite à l’étape de filtrage, afin de constituer des segments vidéo indexés, c’est-à-dire éligibles ou non à un traitement donné selon un mode d’analyse choisi.

Un exemple concret de filtrage négatif effectué à l’aide de ces algorithmes est pré- senté à la section 3.4.3.

3.4.2.1 Algorithme de filtrage pour le mode urgent

L’algorithme 1 prend en entrées : un ensemble de traitements et un ensemble de vidéos, et retourne comme résultat pour chaque traitement, un ensemble de segments vidéo compatibles au mode d’analyse urgent.

3.4.2.2 Algorithme de filtrage pour le mode approfondi

L’algorithme 2 prend en entrées : un ensemble de traitements et un ensemble de vidéos, et retourne comme résultat pour chaque traitement, un ensemble de segments vidéo compatibles et un ensemble de segments vidéo moyennement compatibles (ou optionnels) au mode d’analyse approfondi.

3.4. Mécanisme de filtrage

Algorithm 1: Negative filtering algorithm for urgent analysis Input: a set of processing tasks : T and a set of videos : V

Output: a list of compatible video segments per processing tasks : urgentResult

1 foreach tj i n T do 2 foreach vi i n V do

3 f rameLi st getV ideoF rames.vi/;

4 kD 0;

5 while k < size.f rameList/ do 6 not U rge nt t rue;

7 while notUrgent and k < size.f rameList/ do 8 val getF eatureValue.f rameList:get.k/; tj/;

9 if val  tj:s.u/:ValM i n and val  tj:s.u/:ValM ax then 10 not U rge nt f alse;

11 else

12 kC C;

13 end if

14 end while

15 urge nt t rue;

16 while urgent and k < size.f rameList/ do

17 val getF eatureValue.f rameList:get.k/; tj/;

18 if val  tj:s.u/:ValM i n and val  tj:s.u/:ValM ax then 19 ad d.urge ntSeg me nt; f rameLi st:get .k//;

20 kC C;

21 else

22 urge nt f alse;

23 end if

24 end while

25 if urgentSegment is not empty then 26 fst arti debSeg.urgentSegment/;

27 fi

e nd f i nSeg.urgentSegment/; 28 ad d.urge ntResult; tj; vi; Œfst arti ; fe ndi /; 29 clear.urge ntSeg me nt /;

30 end if

31 end while

32 end foreach 33 end foreach

3.4. Mécanisme de filtrage

Algorithm 2: Negative filtering algorithm for in-depth analysis Input: a set of processing tasks : T and a set of videos : V

Output: a list of compatible and optional video segments per processing tasks : i ndept hResult, optionalResult

1 foreach tj i n T do 2 foreach vi i n V do

3 f rameLi st getV ideoF rames.vi/;

4 kD 0;

5 while k < size.f rameList/ do 6 not C ompat i ble t rue;

7 while notCompatible and k < size.f rameList/ do 8 val getF eatureValue.f rameList:get.k/; tj/;

9 if val  tj:s.a/:ValM i n and val tj:s.a/:ValM ax then 10 not C ompat i ble f alse;

11 else if val  tj:s.o/:ValM i n and val tj:s.o/:ValM axthen 12 not C ompat i ble f alse;

13 else

14 kC C;

15 end if

16 end while

17 i ndept h t rue;

18 while indepth and k < size.f rameList/ do 19 val getF eatureValue.f rameList:get.k/; tj/;

20 if val  tj:s.a/:ValM i n and val tj:s.a/:ValM ax then 21 ad d.i ndept hSeg me nt; f rameLi st:get .k//;

22 kC C;

23 else

24 i ndept h f alse;

25 end if

26 end while

27 if indepthSegment is not empty then 28 fst arti debSeg.i ndepthSegment/;

29 fi

e nd f i nSeg.i ndepthSegment/; 30 ad d.i ndept hResult; tj; vi; Œfst arti ; fi

e nd/; 31 clear.i ndept hSeg me nt /;

32 end if

33 opt i onal t rue;

34 while optional and k < size.f rameList/ do 35 val getF eatureValue.f rameList:get.k/; tj/;

36 if val  tj:s.o/:ValM i n and val tj:s.o/:ValM axthen 37 ad d.opt i onalSeg me nt; f rameLi st:get .k//;

38 kC C;

39 else

40 opt i onal f alse;

41 end if

42 end while

43 if optionalSegment is not empty then 44 fst arti debSeg.optionalSegment/; 45 fe ndi f i nSeg.optionalSegment/; 46 ad d.opt i onalResult; tj; vi; Œfst arti ; fi

e nd/; 47 clear.opt i onalSeg me nt /; 48 end if 49 end while 50 end foreach 51 end foreach

3.4. Mécanisme de filtrage