Automatische detectie van achtergelaten bagage op openbare plaatsen Dries Verbiest
Promotoren: prof. dr. ir. Wilfried Philips, prof. dr. ir. Aleksandra Pizurica Begeleider: Vedran Jelaca Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Telecommunicatie en Informatieverwerking Voorzitter: prof. dr. ir. Herwig Bruneel Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2010-2011
Automatische detectie van achtergelaten bagage op openbare plaatsen Dries Verbiest
Promotoren: prof. dr. ir. Wilfried Philips, prof. dr. ir. Aleksandra Pizurica Begeleider: Vedran Jelaca Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Telecommunicatie en Informatieverwerking Voorzitter: prof. dr. ir. Herwig Bruneel Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2010-2011
Toelating tot bruikleen De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen van de masterproef te kopi¨eren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. 5 juni 2011
iv
Dankwoord Ik wil mijn promotoren Prof. Dr. Ir. Wilfried Philips en Prof. Dr. Ir. Aleksandra Pizurica bedanken voor het aanbieden van het interessante onderwerp voor deze masterproef. Veel dank aan ook mijn begeleiders, Ir. Vedran Jelaca en Dr. Ir. Peter van Hese voor de nuttige feedback, het aanrijken van interessante informatie over het onderwerp en het nalezen van de masterproef. Verder wil ik mijn familie en vrienden bedanken die me tijdens dit thesisjaar gesteund hebben. In het bijzonder dank ik mijn ouders voor de steun en het vertrouwen die ze mij tijdens mijn hele studieloopbaan gegeven hebben.
v
vi
Automatische detectie van achtergelaten bagage op openbare plaatsen Dries Verbiest Promotoren: prof. dr. ir. Wilfried Philips, prof. dr. ir. Aleksandra Pizurica Begeleider: Vedran Jelaca Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Vakgroep Telecommunicatie en Informatieverwerking Voorzitter: prof. dr. ir. Herwig Bruneel Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2010-2011
Samenvatting In deze masterproef werd een systeem ontwikkeld en ge¨ımplementeerd voor het detecteren van achtergelaten bagage. Het ontwikkelde systeem is gebaseerd op de methodes uit de literatuur die gebruik maken van ´e´en camera: Eerst worden de objecten gedetecteerd met behulp van achtergrond/voorgrondsegmentatie. Vervolgens worden de objecten in de videobeelden getraceerd, worden splitsingen van objecten gedetecteerd en tot slot worden de punten geprojecteerd en het achterlaten van bagage gesignaleerd. Dit systeem werd uitgebreid en verbeterd met een aantal eigen methodes. De achtergrond/ voorgrond-segmentatie werd geoptimaliseerd door een adaptieve leerfactor te gebruiken. Hierdoor kunnen objecten langer worden waargenomen zonder verhoging van het aantal artefacten. Het detecteren en traceren van objecten werd uitgevoerd op alle bruikbare camera’s. De resultaten hiervan werden met elkaar geassocieerd met een zelf ontwikkelde methode zodat in vergelijking met de methode met ´e´en camera bijna vier keer minder objecten niet gedetecteerd werden, er meer dan 25% minder valse positieven waren en meer dan 20% meer nauwkeurige locaties verkregen werden. De combinaties van de objecten uit de verschillende camera’s werden gebruikt om voor elk object uit elke camera associaties te maken met de objecten uit de andere camera’s die hetzelfde object voorstellen. Hierdoor kunnen in het geval van occlusie de locatie van eigenaar en bagage toch nog achterhaald worden. Dankzij deze methode werd in vijf van de zes testsequenties het achterlaten van de bagage gedetecteerd binnen de seconde en met een afwijking van minder dan 30 centimeter.
Trefwoorden Bagagedetectie, Tracking, Multi-camera
Automatic detection of left-luggage Dries Verbiest Supervisor(s): Vedran Jelaca, Peter Van Hese Promoter(s): Wifried Philips, Aleksandra Pizurica II. Method A. Blob detection For the background/foreground segmentation the method by Zivkovic et al. [7] with shadow detection has been used. This method is based on the Gaussian mixture model. For every pixel a number of Gaussians are used to model the background. The background model is updated based on the images from the camera: (a) camera 1
(b) camera 2
2
µ(t) = µ(t − 1) + α ∗ (x(t) − µ(t − 1)) 2
2
2
σ (t) = σ (t − 1) + α.((x(t) − µ(t − 1)) − σ (t − 1)),
(c) camera 3
(d) camera 4
Fig. 1: De area captured from the 4 cameras’ point of view
1
Abstract— The need for security in public spaces is addressed by increasing the number of security cameras. This raises a need for automated tools to analyze the streamed images. In this work, a tool to detect the abandonment of luggage is presented. Therefore a new technique is developed to track objects in multiple cameras. The technique is based on trackers using one camera and combines their output. This method is more robust to occlusion and results in a better localization than these single-camera trackers. The developed method was tested on the PETS2006 dataset [1]. The results showed only one abandonment was not detected and only one false alarm was raised. Keywords— Luggage detection, Tracking, Multi-camera
I. introduction Due to increasing demand for security measures in public areas the number of security cameras has grown fast over the last few years. To handle the amount of data they produce automated tools are needed to assist security personnel. In this paper a tool to detect left luggage is presented. The left luggage detection methods can be divided in two general categories: methods using a single camera [2][3][4] and methods using multiple cameras [5] en [6]. These methods start with the background/foreground segmentation of the frames. The multi-camera methods subsequently project the foreground to the ground plane in order to find the locations of the objects. The tracking of the objects then is done in the real world coordinates. In the single-camera methods the tracking is done directly in the camera images and the resulting tracks are projected to real world coordinates.
(1) (2)
where µ is the average value and σ is the standard deviation. x is the value of the pixel in the frame. For this application it is necessary to keep the objects in foreground even if they stand still. Therefore a slow learning factor α is required. A slower learning factor has drawbacks. For initially non-empty spaces foreground objects are learned as background. When these foreground objects move this results in ‘ghosts’: background that is seen as foreground. To solve this problem the learning factor is initially set high and then gradually decreased to 0.0005. After the foreground pixels have been found they are grouped into blobs using a connected components method. Finally bounding boxes are created for every blob in order to track them. B. Single-camera tracking in 2D-images The tracking is done in the camera images for every camera. When a new foreground blob is detected its location (x,y) and size (w,h) are stored in the tracker. If the blob is detected in the subsequent frame its attributes are updated with the new location and size. Also an estimation of the speed is made by subtracting the found locations. To decide if two detections in subsequent frames belong to the same blob we check the overlap between the new detection and the prediction of the blob based on its location and speed from earlier detections. If the overlap is bigger than 50%, the detections are said to be of the same blob. When objects occlude or stop occluding the foreground blobs will merge or split respectively. These events are handled by creating merged objects and predicting where the sub objects will be at the time they split again. These split events will be used for detecting left luggage. C. Combining locations on the groundplane After the blobs have been tracked the middle of the bottom of the bounding box is projected to real world coordinates so the distance between a luggage object and an owner object can be measured. To improve the accuracy of the found location the results of tracking in multiple cameras are combined. In order to do this the bounding boxes of the detections of each camera are projected to the ground plane as well. Two detections’ locations from different cameras are said to be from the same object when: a) the detection’s location lies within the other detection’s bounding box and b) the distance between the detections is under a threshold of 1 meter (minimal distance between to
not detected false positives average deviation (both detected)
developed method 4,48 % 1,17 % 23,18 cm 20,40 cm
single-camera method 17,59 % 1,64 % 25,51 cm 25,51 cm
TABLE I: Results of the localization. For the single-camera method camera three was used as it gives the best results. ‘both detected’ gives the deviation for the objects that were detected both in the developed as in the single-camera method.
(a) image in camera 3 (numbers are IDs of blobs)
ref. [2] ref. [3] ref. [4] ref. [6] Our method
Alarms 5/6 6/6 5/6 6/6 5/6
False Alarms 0 1 1 5 1
Distance — 31,8 cm 23,7 cm 32,45 cm 22,0 cm
Timing 0,16s 0,93s 1,11s 0,73s 0,62s
TABLE II: Results of the left-luggage detection. Distance is the average deviation from the found location of luggage with the ground truth. Timing is the average difference in timing between the detection and the real event. (b) Projected points and bounding boxes
Fig. 2: The projected points from all cameras along with the projected bounding boxes. The black dots are the locations that are found. The resulting dots match the objects as seen in camera 3.
persons) see Fig. 2. When there’s only a detection of an object from one camera angle, this might be a false positive caused by bad segmentation. If the detection is within another bounding box it will be assumed it’s a true positive, if it’s not it can be assumed that there was a false detection of foreground. In most cases this will be because of shadow that has not correctly been removed from the foreground. The combination of the detections of an object in multiple cameras gives a more accurate location. Another advantage is that we can now associate detected objects from multiple cameras with each other by checking how many times these detections were seen as one object. This will allow the system to locate an object detected in one camera even when it’s occluded in that camera. D. Event detection Every time there is a blob splitting event in the tracker it is possible that it is a piece of luggage left by an owner. The objects that split are now tracked. An object is thought to be luggage when it does not move. If one of the two objects from a split is classified as luggage then the other one is classified as the owner. If the owner is not attending (within 2-3 meters) his luggage for over 30 seconds a warning is given. If the owner has left his luggage (further than 3 meters) for over 30 seconds an alarm is given. III. Experimental evaluation The experiments were conducted on the PETS2006 dataset [1]. The performance of the developed system was tested by measuring its detection ratio and the accuracy of localization of objects by comparing the results with manually verified locations. The maximal allowed deviation for a detection to match an object was set to 75 centimeters (assumed maximal with of an object). The performance of the left-luggage detection was tested by checking how accurately the events were detected.
In table I the results for the localization of the developed method are compared to the single-camera method (projection of blob locations). The detection rate is a lot higher and false positives rate is lower. For the objects detected in both methods the localization is 20% more accurate then the single-camera method. In table II the results of the proposed left-luggage detection are compared to other left-luggage detection systems. The alarm was not given in scenario 4 when a person leaves his briefcase with another person. The false positive is caused by a door opening, causing a change of the background and thus a blob detection. A maximal luggage size could solve this but would give problems in scenarios where a big piece of luggage is left. IV. Conclusion The developed method for combining the video sequences from multiple cameras manages to raise the detection rate of objects while reducing the false positives rate compared to the single-camera method. Furthermore the accuracy of the locations of the detected objects is improved by 20%. This allows a quick and accurate detection of left luggage. In this method the association between object detections from different cameras is only used to help track objects while they are occluded. Future work could use the associations to generate feedback to the 2D trackers to determine which object is which after the occlusion. References [1] “Performance evaluation of tracking and surveillance,” 2000. [2] S. Kwak, G. Bae, and H. Byun, “Abandoned luggage detection using a finite state automaton in surveillance video,” Optical Engineering, vol. 49, pp. 027007–+, Feb. 2010. [3] F. Lv, X. Song, B. Wu, V. Kumar, and S. R. Nevatia, “Left luggage detection using bayesian inference,” in In PETS, 2006. [4] K. Smith, P. Quelhas, and D. Gatica-perez, “Detecting abandoned luggage items in a public space,” in in PETS, 2006, pp. 75–82. [5] B. S. G. R. Dejan Ars´ıc, Martin Hofmann, “Multi-camera person tracking and left luggage detection applying homographic transformation,” 2008. [6] E. Auvinet, E. Grossmann, C. Rougier, M. Dahmane, and J. Meunier, “Leftluggage detection using homographies and simple heuristics,” in Proc. IEEE Workshop on Performance Evaluation in Surveillance and Tracking, 2006. [7] Z. Zivkovic and F. van der Heijden, “Efficient adaptive density estimation per image pixel for the task of background subtraction,” Pattern Recogn. Lett., vol. 27, pp. 773–780, May 2006.
Inhoudsopgave Toelating tot bruikleen
iv
Dankwoord
v
Overzicht
vi
Extended abstract
vii
1 Inleiding
1
2 Context
5
3 State-of-the-Art
9
3.1
Object detectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.1
Segmentatiemethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1.2
Objectherkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.2
Traceren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.3
Projecteren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.4
Gebeurtenisherkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4 Ontwikkelde Methode 4.1
4.2
19
Objectdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
4.1.1
Achtergrond/voorgrondsegmentatie . . . . . . . . . . . . . . . . . . . . . .
20
4.1.2
Groeperen in objecten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.1.3
Omhullende rechthoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.1.4
Detecteren van personen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
Objecten traceren
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
28
x 4.2.1
Beslissen of opeenvolgende gedetecteerde objecten verwant zijn . . . . . .
28
4.2.2
Gebeurtenissen in de traceerfunctie . . . . . . . . . . . . . . . . . . . . . .
30
Fysieke locatie berekenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.3.1
Kalibreren van de camera’s . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.3.2
Projecteren van objectlocaties naar wereldco¨ordinaten . . . . . . . . . . .
35
4.4
Het detecteren van het achterlaten van bagage . . . . . . . . . . . . . . . . . . .
43
4.5
Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.3
5 Experimenteel Opzet
47
5.1
PETS 2006 dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.2
Praktische uitwerking van het systeem . . . . . . . . . . . . . . . . . . . . . . . .
49
5.3
Experimenteel opzet voor de evaluatie . . . . . . . . . . . . . . . . . . . . . . . .
50
5.3.1
Adaptieve achtergrond/voorgrondsegmentatie . . . . . . . . . . . . . . . .
50
5.3.2
Lokalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.3.3
Gebeurtenisherkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
6 Resultaten en Discussie 6.1
6.2
6.3
52
Adaptieve achtergrond/voorgrondsegmentatie . . . . . . . . . . . . . . . . . . . .
52
6.1.1
Bagagedetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
6.1.2
‘Geesten’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Lokaliseren van objecten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
6.2.1
Resultaten
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
6.2.2
Bespreking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Detecteren van achtergelaten bagage . . . . . . . . . . . . . . . . . . . . . . . . .
58
6.3.1
Resultaten
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
6.3.2
Bespreking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
7 Besluit
65
Hoofdstuk 1
Inleiding Probleemstelling In de afgelopen jaren, en vooral sinds de aanslagen van 11 september 2001 is de dreiging van terrorisme een belangrijk onderwerp geworden. In 2009 zijn er in Europa volgens het “TESAT 2010 EU terrorism situation and trend report” [1] 294 aanslagen gepleegd met 7 dodelijke slachtoffers tot gevolg. Wereldwijd waren er in 2008 echter 11 725 aanslagen [2]. Het aantal slachtoffers liep op tot 14 971. Een aantal van deze aanslagen wordt gepleegd door explosieven te plaatsen in een tas of rugzak, deze op een drukbezochte openbare plaats zoals luchthavens en stations achter te laten en vervolgens met behulp van een timer of van op afstand te doen ontploffen. Een recent voorbeeld van een dergelijke aanslag is de dodelijke aanslag van 23 maart 2011 op een bushalte in Jeruzalem [3]. Bij dit type aanvallen verloopt er enige tijd tussen het moment waarop de mogelijke bom kan ge¨ıdentificeerd worden en het moment waarop de bom tot ontploffen wordt gebracht. Dat laat de veiligheidsdiensten toe om in te grijpen indien de dreiging tijdig gedetecteerd kan worden. Met behulp van bewakingscamera’s kan men zien wanneer een tas wordt achtergelaten en optreden om de aanslag te voorkomen en op die manier levens redden. Uit onderzoek blijkt dat men massaal gaan investeren is in beveiligingssystemen. Onderzoek [4] toont aan dat de budgetten voor bewakingscameras in 2010 1,36 miljard dollar zou bedragen. In de Belgische stations van de NMBS-groep werd in 2009 de tweeduizendste bewakingscamera ge¨ınstalleerd [5]. Sinds 2006 investeerde de NMBS 11 miljoen euro in bewakingscamera’s. De beelden van deze camera’s moeten allemaal verwerkt worden. Deze stijging van het aantal bewakingscamera’s heeft er echter voor gezorgd dat het voor het beveiligingspersoneel onmogelijk wordt om alle verdachte gebeurtenissen op te volgen. Daarom is er een groeiende nood aan automatische hulpmiddelen die de mensen ondersteunen. In 2006 werd de jaarlijkse PETS [6] (Performance Evaluation of Tracking and Surveillance) workshop gehouden in New York met als thema bewaking van openbare ruimtes en detectie van achtergelaten bagage. Voor deze workshop werd een testset uitgewerkt die gebruikt wordt om de resultaten van verschillende werken rond dit thema te vergelijken. 1
2 Algemene oplossingsmethode Deze masterproef behandelt de specifieke probleemstelling waarbij een aantal bewakingscamera’s een gebied overschouwen waarin gedetecteerd moet worden wanneer een persoon bagage achterlaat. De algemene aanpak bestaat erin om eerst in elk frame van de videocamera’s de locatie van objecten (personen en bagage) te achterhalen, vervolgens over de frames heen de trajecten van de objecten te zoeken en tot slot aan de hand van deze trajecten gebeurtenissen waarop bagage achtergelaten wordt te detecteren. Het achterlaten van bagage wordt gedetecteerd wanneer de trajecten van twee objecten (een stuk bagage en zijn eigenaar) uit elkaar gaan. Doordat de trajecten van de objecten achterhaald worden kan men nagaan dat een object een stuk bagage is (het object staat stil) en kan men de afstand tussen de bagage en zijn eigenaar meten. Op deze manier kan ten gepaste tijde een waarschuwing of een alarm gegeven worden aan het veiligheidspersoneel. Voor het achterhalen van de locatie van objecten wordt meestal segmentatie gebruikt. Door regio’s te groeperen aan de hand van gemeenschappelijke eigenschappen zoals kleurintensiteit en patronen, of aan de hand van onderscheid tussen regio’s aan de hand van grenzen. Voor het detecteren van objecten in bewakingsbeelden kiest men meestal voor achtergrond/voorgrondsegmentatie (a/v-segmentatie) zoals in [7] [8] [9] [10] [11]. Deze methode cre¨eert een model voor de achtergrond en vergelijkt de beelden van de camera’s met dit model en bepaalt zo welke regio’s voorgrond zijn. Deze regio’s kunnen vervolgens gegroepeerd worden in objecten. In [9] wordt a/v-segmentatie gecombineerd met segmentatie op basis van kleurintensiteit. In deze masterproef wordt een methode voorgesteld om bestaande a/v-segmentatiemethoden voor deze toepassing te verbeteren. Voor het achterhalen van de trajecten die de objecten afleggen bestaan verschillende aanpakken. In sommige systemen [9] [10] [11] gebruikt men slechts ´e´en camera en traceert men de objecten in de videobeelden. Aan de hand van eigenschappen zoals locatie, snelheid en vorm van de gedetecteerde objecten achterhaalt men welke objecten gedetecteerd in opeenvolgende frames overeenkomen. Zo vindt men de trajecten van de objecten in pixelco¨ordinaten die men vervolgens projecteert naar wereldco¨ ordinaten. Deze methode is kwetsbaar voor occlusie. Sommige andere systemen [7] [8] doen het in de omgekeerde volgorde. Eerst worden de voorgrondpixels geprojecteerd naar het grondvlak. Door te kijken waar de projecties uit de verschillende camera’s overlappen vindt men de objectlocaties die men vervolgens in het grondvlak gaat traceren. Deze methode is kwetsbaar voor valse positieven. In deze masterproef wordt een nieuwe methode voorgesteld die de voordelen van de bestaande systemen tracht te combineren. De tracering gebeurt in de videobeelden voor alle camera’s. Vervolgens worden de gevonden trajecten gecombineerd om accuratere trajecten te bekomen en problemen met occlusie te verminderen. Aan de hand van de gevonden trajecten voor de objecten kan men dan deze objecten gaan onderverdelen in personen en bagage. Door de trajecten te vergelijken kan voor een stuk bagage een eigenaar gedefinieerd worden. Door de afstand tussen de bagage en zijn eigenaar te meten kan tot slot gedetecteerd worden wanneer bagage wordt achtergelaten.
3 Originele bijdrage In deze masterproef wordt getracht een aantal originele bijdragen en verbeteringen aan de bestaande systemen toe te voegen. Een eerste bijdrage is het gebruik van een adaptieve leerfactor bij de a/v-segmentatie. Wanneer een plotse verandering in belichting optreedt zoals het aan/uitschakelen van de lichten worden normale a/v-segmentatiemethoden voor deze toepassing (dus met een hoge leerfactor) een tijdlang onbruikbaar. Door een initialisatiefase toe te voegen met hoge leerfactor kan door een reset het systeem binnen enkele seconden terug bruikbaar worden. Een tweede bijdrage is een exactere methode voor het vinden van de wereldco¨ordinaten van gedetecteerde objecten. Bij deze methode worden objecten in elke camera gedetecteerd en wordt hun raakpunt met het grondvlak gebruikt zoals in [9] [10] [11]. Vervolgens worden ook de omhullende rechthoeken van de objecten geprojecteerd. Door enkel de raakpunten te behouden die binnen een geprojecteerde omhullende rechthoek van een andere camera vallen worden valse detecties verwijderd. Door de raakpunten van een object gevonden in de verschillende camera’s te combineren wordt bovendien een exactere locatie van de echte objecten bekomen. De derde bijdrage is de belangrijkste bijdrage voor het specifieke probleem van het achterlaten van bagage. Deze bijdrage pakt het probleem van occlusie aan dat bestaat in methoden die traceren in een camera, zonder valse positieven te introduceren zoals bij de methoden die traceren na projectie naar het grondvlak. Hiervoor wordt gebruik gemaakt van de vorige bijdrage. Daar worden de raakpunten van een object gedetecteerd door verschillende camera’s samengenomen om een exactere locatie van de objecten te bekomen. De detecties uit de verschillende camera’s die hetzelfde object voorstellen worden geassocieerd met elkaar. Wanneer een object niet langer zichtbaar is in een van de camera’s wegens occlusie kan men dit object toch nog gaan traceren door het geassocieerde object uit een andere camera te volgen. Dit is erg nuttig wanneer er occlusie optreedt die de eigenaar van een stuk bagage verbergt vanuit een camera. Inhoud van deze masterproef In hoofdstuk 2 worden een aantal definities rond achtergelaten bagage gegeven die gebruikt kunnen worden voor een objectieve detectie. Hier wordt ook een opstelling gegeven die een idee geeft van de context waarin het ontwikkelde systeem zal werken. In hoofdstuk 3 worden de methoden besproken die de systemen gebruiken. Sommige van deze methoden werden integraal gebruikt in het ontworpen systeem, andere vormden een bron van inspiratie voor het ontwikkelen van eigen methoden. In hoofdstuk 4 wordt de ontwikkeling van het volledige ontworpen systeem besproken. Hier wordt dieper ingegaan op welke methoden gebruikt werden, waarom deze methoden de voorkeur kregen op andere alternatieven en welke andere methoden uiteindelijk niet gebruikt werden. In hoofdstuk 5 wordt besproken hoe het systeem getest en ge¨evalueerd werd. Hier wordt bepaald aan de hand van welke parameters de testen gebeuren en welke onderdelen van het systeem apart ge¨evalueerd kunnen worden.
4 In hoofdstuk 6 worden tot slot de resultaten van het ontwikkelde systeem en zijn subsystemen besproken en vergeleken met de bestaande methoden.
Hoofdstuk 2
Context In 2006 werd in New York een workshop gehouden over het detecteren van achtergelaten bagage op openbare plaatsen. Voor deze workshop werd een dataset [6] opgesteld die scenario’s bevat waarin een persoon in een treinstation al dan niet bagage achterlaat. Deze dataset is specifiek voorzien voor dit probleem en bevat een grondwaarheid waarmee de resultaten van de systemen vergeleken kunnen worden. Dankzij deze standaard dataset is het mogelijk de resultaten objectief te vergelijken met bestaande ontwikkelde methoden. Deze dataset bestaat uit zeven scenario’s die gefilmd werden door vier vaste camera’s die eenzelfde gebied overschouwen (figuur 2.1). De datasets bevatten sequenties van een drieduizendtal frames met een resolutie van 720 x 576 pixels aan een framerate van 25 frames per seconde. Op het grondvlak worden de fysieke locaties van 13 richtpunten op een patroon aangegeven (figuur 2.2), en voor elke camera worden ook de kalibratieparameters opgegeven waarmee men de transformatie van pixelco¨ ordinaten naar wereldco¨ordinaten kan doen. Deze kalibratieparameters zijn niet accuraat, maar met behulp van de fysieke locaties van de richtpunten kunnen wel een correcte kalibratieparameters berekend worden. Om het achterlaten van bagage te defini¨eren worden een aantal regels ingevoerd: • bagage staat onder toezicht zolang de eigenaar zich binnen de twee meter bevindt (figuur 2.3a). • bagage staat niet onder toezicht als de eigenaar zich buiten de twee meter begeeft (figuur 2.3b). • een waarschuwing moet gegeven worden op het moment dat de eigenaar zich meer dan 30 seconden op een afstand groter dan twee meter van de bagage bevindt. • bagage is achtergelaten als de eigenaar zich op meer dan drie meter van de bagage bevindt (figuur 2.3c). • een alarm moet gegeven worden indien de eigenaar gedurende meer dan 30 seconden op een afstand groter dan drie meter van de bagage verwijderd is. 5
6
(a) camera 1
(b) camera 2
(c) camera 3
(d) camera 4
Figuur 2.1: De beelden waargenomen door de 4 camera’s
Figuur 2.2: De fysieke co¨ ordinaten van de referentiepunten. Door de overeenkomstige pixelco¨ ordinaten met deze referentiepunten te associ¨eren worden de camera’s gekalibreerd. (uit [6])
7
(a) bagage bewaakt
(b) bagage niet bewaakt
(c) bagage achtergelaten
Figuur 2.3: Definitie van de verschillende toestanden van bagage-eigenaarparen. De binnenste cirkel heeft een straal van 2 meter en de buitenste heeft een straal van 3 meter. Door te meten hoe lang een eigenaar zich in een bepaalde toestand bevindt kunnen de verschillende gebeurtenissen gedetecteerd worden.
8 Met deze regels worden de gebeurtenissen objectief gedefinieerd. Om de resultaten van detectiesystemen te verifi¨eren wordt een grondwaarheid voorzien die aanduidt wanneer waarschuwingen en alarmen moeten gegeven worden aan de hand van volgende parameters: • tijdstip in seconden sinds het begin van de sequentie • framenummer • locatie: de x- en y-co¨ ordinaat van de plaats waar de bagage werd achtergelaten
Hoofdstuk 3
State-of-the-Art In dit hoofdstuk wordt een overzicht gegeven van de verschillende methoden die in de literatuur te vinden zijn die kunnen gebruikt worden om achtergelaten bagage te detecteren. Hierbij wordt aangegeven welke methoden worden gebruikt door een aantal state-of-the-art systemen voor het detecteren van achtergelaten bagage [7] [8] [9] [10] [11].
3.1
Object detectie
Zoals in de introductie werd aangegeven bestaat de eerste stap erin om de locatie van objecten in de videosequenties te achterhalen. De hiervoor gebruikte methoden kunnen opgesplitst worden in twee aanpakken: Een eerste aanpak is segmentatie, waar men de videobeelden gaat opsplitsen in verschillende segmenten, bestaande uit pixels die gemeenschappelijke karakteristieken hebben. Deze pixels kunnen vervolgens gegroepeerd worden in objecten. De tweede aanpak is objectherkenning. Hier gaat men een systeem ontwikkelen dat objecten tracht te herkennen en lokaliseren aan de hand van hun eigenschappen.
3.1.1
Segmentatiemethode
In segmentatiemethoden gaat men voor elke pixel bepalen tot welk segment hij behoort. Voor het detecteren van objecten in videosequenties wordt voornamelijk achtergrond/voorgrondsegmentatie (a/v-segmentatie) gebruikt. Bij a/v-segmentatie gaat men videobeelden opsplitsen in voorgrond en achtergrond door een model van de achtergrond te genereren en de nieuwe videobeelden te vergelijken met dit model. Hiervoor bestaan een aantal verschillende aanpakken zoals de ‘running average’, ‘Gaussian mixture model’ en histogrammethoden. Deze methoden worden verderop uitgelegd. In [9] gebruikt men naast de a/v-segmentatie ook een regiogebaseerde segmentatiemethode. Deze segmentatie deelt de beelden op in regio’s met soortgelijke kleurwaarden. In de a/v-segmentatie worden een aantal pixels onterecht als voor- of achtergrond beschouwd. Om dit te corrigeren gaat men ervan uit dat elk segment gevonden in de regio volledig tot de achtergrond of volledig tot 9
10 de voorgrond behoort. Door na te gaan of voorgrond of achtergrondpixels het meest voorkomen in elk segment klasseert men het segment.
a/v-Segmentatie ‘Running average’-methode De ‘running average’ of ‘lopend gemiddelde’-methode is de meest eenvoudige vorm van achtergrondsegmentatie en illustreert de algemene werking van a/vsegmentatie goed. Bij deze methode wordt voor elke pixellocatie in de videobeelden een gemiddelde pixelwaarde µ berekend van een aantal eerdere pixelwaarden (bijvoorbeeld het gemiddelde van de laatste honderd pixelwaarden). Voor de nieuwe videoframes wordt het verschil δ tussen de huidige pixelwaarde x en het gemiddelde berekend: δ = |µ − x|
(3.1)
Hoe kleiner δ is, hoe waarschijnlijker het is dat deze pixel tot de achtergrond behoort. Aan de hand van experimenten kan een drempelwaarde T r bepaald worden om te beslissen of een pixel al dan niet tot de achtergrond behoort: (
T r − δ ≥ 0 achtergrond T r − δ < 0 voorgrond
(3.2)
Deze methode is zeer eenvoudig, maar is niet robuust. In videobeelden treedt altijd ruis op en door deze ruis zullen de pixelwaarden van de beelden licht afwijken van hun werkelijke waarden. Door kleine bewegingen in de camera zal deze ruis niet overal even groot zijn. De drempelwaarde geldt echter wel voor alle pixels, wat voor slechtere segmentatie zal zorgen. Door trillingen in de camera zullen er op plaatsen waar randen optreden grote afwijkingen zijn in de pixelwaarden. In de ‘lopend gemiddelde’-methode wordt slechts ´e´en model van de achtergrond bijgehouden en kunnen dus niet beide achtergrondpixels correct worden gemodelleerd wat voor slechte segmentatie zal zorgen aan randen.
‘Gaussian mixture model’-methode
De ‘Gaussian mixture model’ of ‘Gaussiaans mengsel-
model’-methode is de basis voor veel state-of-the-art a/v-segmentatiemethoden en wordt gebruikt in [7] [9] [11]. Bij deze methode [12] ontwikkeld door Stauffer wordt elke pixel gemodelleerd door K Gaussianen. Wanneer de camera niet trilt, en er slechts ´e´en achtergrond is die moet worden gemodelleerd volstaat ´e´en Gaussiaan. Vaak zal er echter een lichte trilling op de camera zitten en zijn er voor een pixel twee of meer achtergronden die moeten worden gemodelleerd. Ook wanneer men bijvoorbeeld in een metrostation filmt is het gewenst dat zowel de stilstaande metro als de lege sporen als achtergrond worden aanzien. Daarom worden meerdere Gaussianen (meestal 3 tot 5) gebruikt. Voor de pixels uit de nieuwe videoframe wordt gekeken bij welke van de Gaussianen deze pixelwaarde past. Het gewicht ω van deze Gaussiaan wordt als volgt aangepast:
11
ω = (1 − α)ωk,t−1 + alpha
(3.3)
De gewichten van de andere Gaussianen worden:
ω = (1 − α)ωk,t−1
(3.4)
De parameters van de best benaderende Gaussiaan worden als volgt ge¨ updatet:
µ(t) = µ(t − 1) + α ∗ (x(t) − µ(t − 1))
(3.5)
σ 2 (t) = σ 2 (t − 1) + α ∗ ((x(t) − µ(t − 1)) ∗ (x(t) − µ(t − 1)) − σ 2 (t − 1))
(3.6)
Met α de leerfactor die bepaalt hoe snel aanpassingen in de achtergrond worden opgenomen in het model. µ is het gemiddelde en σ de standaardafwijking van de Gaussiaan. De kans dat voor een pixel de waarde x wordt waargenomen is
P (x) =
K X
ωi .η(x, µ, σ)
(3.7)
i=0
met ωi het gewicht van de Gaussiaan en η de Gaussiaanse kansdichtheidsfunctie: x−µ2 1 η(x, µ, σ) = √ e− 2σ2 2πσ
(3.8)
Om te bepalen of een Gaussiaan de achtergrond modelleert wordt een drempelwaarde T gebruikt die het minimale gewicht voorstelt die de achtergrondmodellerende Gaussianen samen moeten hebben. De B distributies met de hoogste gewichten worden geselecteerd tot de drempelwaarde bereikt wordt. B X
ωi > T
(3.9)
i=0
Een pixel behoort tot de achtergrond als hij minder dan Tr standaardafwijkingen σ afwijkt van een Gaussiaan uit de verzameling B. In [12] wordt Tr vastgelegd op 2.5. De beschreven ‘Gaussiaanse mengselmodel’-methode kan omgaan met kleine trillingen in de camera: Het heeft meerdere modellen voor de achtergrond en kan randen dus modelleren. Ook de ruis wordt voor elke pixel apart bepaald wat toelaat met ´e´en drempelwaarde de maximale afwijking van de pixelwaarden toch voor alle pixels correct te kiezen. In [13] wordt aan dit basismodel een schaduwdetectiemodule toegevoegd. Schaduw van objecten zal voor een verandering in pixelwaarde zorgen en daardoor, in vele toepassingen ongewenst, als voorgrond gecatalogeerd worden. Daarom wenst men schaduw van echte objecten te onderscheiden en alsnog als achtergrond te bestempelen. Om schaduw te detecteren neemt deze methode
12 aan dat schaduw voornamelijk een verandering in illuminatie geeft en weinig in chrominantie. Wanneer een pixel dus eerst als voorgrond wordt gedetecteerd en vervolgens weinig chrominantieverschil blijkt te hebben wordt deze als schaduw, en dus achtergrond gecatalogeerd. Doordat deze operatie enkel op de voorgrondpixels moet worden uitgevoerd is er bij normale beelden slechts een kleine verhoging van de complexiteit van het algoritme. In [14] wordt dit model door Zivkovic nog verbeterd door het aantal gebruikte Gaussianen in het mengsel voor elke pixel adaptief te maken. Voor nieuwe frames die binnenkomen in het model te wordt gekeken of deze voldoende dicht bij de bestaande componenten van het Gaussiaanse mengsel gelegen zijn. Indien niet wordt een extra Gaussiaan toegevoegd. Er wordt een maximaal aantal Gaussianen opgelegd en als het maximaal aantal componenten bereikt is wordt de Gaussiaan met het kleinste gewicht verwijderd. Histogrammethode Bij de ‘Gaussiaanse mengselmodel’-methoden worden de pixelwaarden gemodelleerd door een mengsel van Gaussianen. Deze methode gaat ervan uit dat de ruis op de pixelwaarden witte ruis is. Dit is echter vaak niet het geval en daarom werd de histogrammethode ontwikkeld. Ook deze methoden worden gebruikt in state-of-the-art systemen [8]. In [9] wordt bijvoorbeeld de [15] methode gebruikt voor achtergrondsegmentatie. Deze methode gebruikt twee verdelingen om de ruis te modelleren: de helderheidsdistortie en de chromaticiteitsdistortie. Uit experimenten bleken deze verdelingen niet Gaussiaans te zijn. Daarom worden histogrammen gebruikt. Gedurende de leerperiode voor de achtergrond worden histogrammen gecre¨eerd met de helderheids- en de chromaticiteitsdistortie. Aan de hand van deze histogrammen kunnen automatisch de drempelwaarden voor de maximale afwijking gevonden worden voor de gewenste detectieratio. Het voordeel van deze methode is dat een betere verdeling van de ruis bekomen wordt. De nadelen van deze methode zijn dat de drempelwaarden zich niet aan veranderende lichtomstandigheden aanpassen en een trainingsperiode nodig is voordat ze kan gebruikt worden. Relevantie voor eigen methode
Uiteindelijk wordt de methode van Zivkovic gebruikt in
deze masterproef. Voor beelden belicht met kunstlicht, zoals de testsequenties van de PETS database waarop deze masterproef getest werd, werken eenvoudigere methodes ook als er een goede schaduwdetectie is, maar het is de bedoeling dat het ontworpen systeem zo ruim mogelijk kan worden ingezet. Daarom werd voor de state-of-the-art methode gekozen. Aan deze methode werd een verbetering aangebracht om met de specifieke eigenschappen van het onderzochte domein om te gaan.
3.1.2
Objectherkenning
Bij objectherkenning gaat men rechtstreeks objecten uit de beelden halen. Voor het detecteren van achtergelaten bagage moet men de locatie van bagage en zijn eigenaar trachten te vinden. De objecttypes die men wil vinden zijn dus mensen en bagage. Omdat bagage een erg ruime groep verschillende objecttypes omvat is het detecteren van bagage met objectherkenning zeer moeilijk.
13 Zonder context is het zelfs voor menselijke waarnemers niet steeds mogelijk om bagage correct te identificeren. Voor het herkennen van mensen kan objectherkenning wel worden toegepast omdat mensen een aantal duidelijke visuele kenmerken hebben. De objectherkenning is niet erg betrouwbaar, maar kan wel in combinatie met a/v-segmentatie worden gebruikt. In [10] wordt een mensenherkenner gebruikt om in groepen van mensen, die door a/v-segmentatie als ´e´en groep pixels worden gezien, de individuele personen te detecteren. Dit is nuttig wanneer de eigenaar van een stuk bagage getraceerd moet worden. De basiswerking van de verschillende detectoren is dezelfde. Er worden een aantal visuele kenmerken gedefinieerd. Vervolgens traint men de herkenner door een groot aantal voorbeeldafbeeldingen van het te detecteren objecttype en een groot aantal tegenvoorbeelden te geven waarvan de trainer de waarden voor de visuele kenmerken bepaalt. De afbeeldingen met het te detecteren objecttype zullen (meestal) andere waarden hebben voor bepaalde visuele kenmerken dan de tegenvoorbeelden. Deze verschillen worden dan gebruikt in de herkenner zelf om te bepalen of een bepaald beeld al dan niet van het gezochte objecttype is. ‘Object Detection with Discriminatively Trained Part Based Models’
Deze methode
beschreven in [16] is een state-of-the-art objectherkenningsmethode met uitstekende resultaten bij het testen op de PASCAL VOC testbanken. Deze methode maakt gebruik van vervormbare delenmodellen. Eerst wordt met een grove filter het volledige object gefilterd om zo de features te achterhalen. Aan de hand hiervan heeft men een grondlocatie waar er zich een te detecteren object zou kunnen bevinden. Vervolgens worden voor de onderdelen fijnere filters gebruikt. Voor de locaties van de detecties van deze onderdelen wordt gekeken hoeveel zij afwijken van de verwachte locatie van dit onderdeel. De waarschijnlijkheid dat een object zich effectief op een locatie bevindt is de combinatie van de detectie van het volledige object en zijn onderdelen, gewogen met hun afwijking van de normale afstand met de grondlocaties (figuur 3.1). ‘Rapid Object Detection Using a Boosted Cascade of Simple Features’ Deze methode, gekend als de Viola-Jones-detector [17] biedt drie belangrijke bijdragen aan het detecteren van objecten. De eerste is een nieuwe beeldrepresentatie, het integraalbeeld, die na een snelle transformatie toelaat om Haar-achtige features op elke schaal of locatie in dezelfde tijd te vinden. Het integraalbeeld wordt bekomen door elke pixel de waarde te geven van de som van alle pixels die links boven de pixel liggen:
ib(x, y) =
X
i(x0 , y 0 )
(3.10)
x0 ≤x,y 0 ≤y
De som van elk rechthoekig gebied van pixels kan dan snel bekomen worden door de waarde van de pixels van de linkeronderhoek en de rechterbovenhoek af te trekken van de waarden van de linkerbovenhoek en de rechteronderhoek uit het integraalbeeld. Deze transformatie laat toe om de features van objecten op elke schaal snel te berekenen.
14
(a) Links: grove filter van volledige object, Centraal: fijnere filters voor de onderdelen, Rechts: Gewichten voor de afwijking van het centrale punt
(b) Voorbeeldresultaten
Figuur 3.1: Figuren uit [16]. De filters worden gebruikt om de features van de objecten te meten. De afwijking van het centrale punt wordt gebruikt omdat een object wel steeds samenhangt, maar de afstand tussen de onderdelen niet volledig vast ligt. Door kleine afwijkingen weinig te bestraffen kan een volledigere herkenning bekomen worden
15 De tweede bijdrage is de selectie van kritische features van objecten zodat een snelle classificatie kan gedaan worden. Het aantal features is zeer groot. Door enkel de kritische features te bekijken kan een veel snellere classificatie bekomen worden. De derde bijdrage is de ontwikkelde methode die voor meerdere complexe herkenningsmethoden een cascade construeert die een snellere detectie toelaat. Het aantal positieve detecties in een beeld is beperkt. De rekentijd kan vooral naar beneden gehaald worden als de negatieve detecties versnellen. Hiervoor plaatst deze methode herkenningsmethoden in cascade. Enkel indien methode 1 een positief resultaat gaf wordt ook methode 2 getest, als deze positief is methode 3, ... . De volgorde van de detectoren wordt zo bepaald dat het aantal valse positieven geminimaliseerd en de detectieratio gemaximaliseerd wordt. Elk onderdeel van de cascade wordt getraind door features toe te voegen tot de gewenste afweging tussen valse positieven en detectieratio bekomen wordt. Relevantie voor eigen methode Voor deze masterproef werd getracht gebruik te maken van de Viola-Jones-detector. Hiervoor was een implementatie en een getrainde set beschikbaar voor het herkennen van volledige lichamen en hun onderdelen. Zoals in [16] werd geprobeerd deze te combineren om goede resultaten te bekomen. De resultaten van de getrainde set waren echter niet voldoende goed om bruikbaar te zijn.
3.2
Traceren
Na het detecteren van de locaties van de objecten in de videobeelden tracht men te achterhalen welk traject deze objecten afleggen. In een aantal methoden [9] [10] [11] traceert men de objecten in de videobeelden, en gaat men vervolgens een projectie (zie sectie 3.3) doen van de gevonden trajecten. In deze gevallen maakt men gebruik van slechts ¨e´en bewakingscamera. In de andere werken [7] [8] gaat men eerst de projectie uitvoeren van de gesegmenteerde beelden vanuit de verschillende bewakingscamera’s en vervolgens de gecombineerde geprojecteerde locaties van de objecten traceren. Locatiegebaseerde methode In [7] en [8] maakt men gebruik van heuristische methoden voor het traceren van de objecten. Men gebruikt eenvoudige methoden die objecten in opeenvolgende frames met elkaar associ¨eren op basis van nabijheid van opeenvolgende waarnemingen. Wanneer meerdere objecten gedetecteerd worden nabij een locatie waar vroeger slechts een object was splitst men dit object op, wat een mogelijke achterlating van een stuk bagage betekent. In het omgekeerde geval smelt men het samen. In [10] gebruikt men een Kalman filter voor het traceren van de objecten. De Kalman filter wordt gebruikt om de invloed van systeemruis en meetruis te minimaliseren. Men maakt een schatting van de ruis op de gemeten locatie van een object na segmentatie en een schatting van de ruis op de voorspelling van de locatie van een object door het systeem (voorspelde locatie = oude locatie verwachtte beweging). De locatie van het object in het huidige frame wordt
16 bepaald door een gewogen som van de voorspelde locatie en de gemeten locatie. De gewichten die toegekend worden aan de gemeten en de voorspelde locatie worden zo bepaald dat de invloed van de ruis minimaa wordt. Uiterlijk gebaseerde methode
[9] maakt gebruik van Senior’s method [18]. Deze methode
maakt gebruik van de omhullende rechthoeken van de gedetecteerde objecten en vergelijkt frame na frame of de randen van deze omhullende rechthoeken voldoende overeen komen om te beslissen dat deze objecten in de verschillende frames hetzelfde object betreffen. Wanneer een object met meerdere trajecten geassocieerd wordt gaat men over naar het uiterlijk gebaseerde model. Bij dit uiterlijk gebaseerde model kijkt men naar de kleuren van de gedetecteerde objecten. Wanneer een object voor een ander object passeert gaat men na welk van de kleurenmodellen van de objecten voor de overlapping het best overeen komt met de huidige kleur. Dit is dan het object dat langs de voorgrond passeert. Na de occlusie kan men de twee objecten dan opnieuw onderscheiden aan de hand van de vooraf gedetecteerde kleuren. Relevantie voor eigen methode In deze masterproef wordt een locatiegebaseerde heuristische methode gebruikt in de videobeelden voor alle camera’s. Dankzij een goede achtergrondsegmentatie is de meetruis beperkt en door een zelf ontwikkelde methode worden de trajecten uit de verschillende camera’s geassocieerd om met occlusie en met de resterende meetruis om te gaan. Een kalman filter is daarom niet essentieel. Een eenvoudige zelfgeschreven methode laat bovendien gemakkelijker toe om benodigdheden specifiek voor het detecteren van achtergelaten bagage op maat te genereren.
3.3
Projecteren
Voor de methoden die het traceren doen in de videobeelden [9] [10] [11] bestaat het projecteren er eenvoudigweg in om het raakpunt van de getraceerde objecten met de grond te vinden. In [7] en [8] worden de locaties van objecten achterhaald door het projecteren van de als voorgrond gedetecteerde pixels naar het grondvlak. Kalibratie
Voor er kan worden geprojecteerd moet een projectiematrix opgesteld worden die
de pixelco¨ ordinaten omzet in wereldco¨ordinaten. Voor de sequenties uit de PETS2006 dataset [6] worden de parameters voor de projectie volgens het Tsai [19] algoritme gegeven. Hiermee wordt een projectiematrix H bekomen: u.s x v.s y = H × s z 1 Hier zijn u en v de pixelco¨ ordinaten en x,y en z de wereldco¨ordinaten.
(3.11)
17 Grondvlakprojectie In [8] worden alle voorgrondpixels geprojecteerd naar het grondvlak. Doordat het raakvlak van een object met het grondvlak voor alle camera’s op dezelfde locatie geprojecteerd worden kan men objecten gaan lokaliseren door te kijken waar de projecties van de voorgrondpixels overlappen (figuur 3.2a). Omdat de kalibratie niet perfect is worden de gevonden voorgrondobjecten in de camerabeelden gedilateerd zodat een grotere overlapping gevonden wordt (figuur 3.2b). Deze overlappingen zijn de locaties van objecten. Meerlagenprojectie Door enkel te projecteren naar het grondvlak kunnen zich valse positieven voordoen wanneer bijvoorbeeld de romp van een persoon na projectie overlapt met de romp van een andere persoon. In [7] wordt voorgesteld om de voorgrondpixels daarom niet enkel naar het grondvlak te projecteren maar naar meerdere lagen. Enkel daar waar op meerdere lagen voor de zelfde x-en y-co¨ ordinaat een overlapping optreedt wordt een object gelokaliseerd. Voor personen te lokaliseren blijkt een projectie tot op een hoogte van 1.6 meter zeer goed te werken. Het probleem is dat bagage op deze manier niet kan worden gelokaliseerd omdat deze erg klein kan zijn. Er wordt aangegeven dat deze methode daarom niet bruikbaar is voor deze applicatie. Relevantie voor eigen methode Omdat de voorgestelde methoden ofwel valse positieven veroorzaken, ofwel niet bruikbaar zijn voor deze applicatie werd een eigen methode ontwikkeld voor het combineren van de gegevens uit de verschillende camera’s die zowel in staat is om de locatie van (kleine) bagage correct te detecteren als valse positieven te vermijden door overlap van verschillende personen.
3.4
Gebeurtenisherkenning
Voor de gebeurtenisherkenning gebruiken de besproken methoden voor achtergelaten bagage [7] [8] [9] [10] [11] allemaal een set van eenvoudige regels: 1. Bagage beweegt niet 2. Bagage is kleiner dan mensen 3. Bagage heeft een eigenaar Relevantie voor eigen methode Voor de eigen methode wordt regel 2 niet gebruikt. Dankzij een methode ontwikkeld voor een betere lokalisatie van objecten kan een voldoende kleine maximale afwijking van een object ten opzichte van zijn oorspronkelijke locatie gekozen worden zodat quasistilstaande mensen toch niet als bagage worden gedetecteerd. Dit vermijdt dat grote stukken bagage niet gedetecteerd worden.
18
(a) Projectie uit verschillende camera’s
(b) Projectie na dilatie
Figuur 3.2: Figuren uit [8]. De plaatsen waar de voorgrondpixels van meerdere camera’s overlappen zijn objectlocaties
Hoofdstuk 4
Ontwikkelde Methode Uit de gerelateerde werken blijkt dat systemen die achtergelaten bagage detecteren dezelfde algemene structuur met drie stappen hebben: detectie van objecten, traceren van objecten en detecteren van gebeurtenissen. Voor het systeem ontworpen in deze masterproef wordt de lokalisatiestap opgesplitst in een traceerstap en een projectiestap. In de eerste stap worden objecten gedetecteerd aan de hand van de bewakingsbeelden. Deze objecten zijn niet per definitie ´e´en fysiek object zoals een mens of een stuk bagage, maar kunnen een verzameling van fysieke objecten zijn die vanuit het standpunt van de camera als ´e´en geheel worden gezien. In een tweede stap wordt de lijst gedetecteerde objecten verkregen uit de eerste stap getraceerd en gelokaliseerd in de videobeelden. In derde stap worden de fysieke locaties van de gedetecteerde objecten achterhaald door projectie. De vierde stap bestaat er tot slot in om aan de hand van de trajecten verkregen in stap twee en de fysieke locatie uit stap drie te achterhalen wanneer bagage wordt achtergelaten (gebeurtenisdetectie). Grosso modo ziet het systeem er uit als in figuur 4.1. In de praktijk gebeuren de stappen niet helemaal onafhankelijk van elkaar. Het onderscheid tussen stap twee en stap vier is niet eenduidig. Het traceren van een gedetecteerd object dat een persoon met zijn bagage omvat en zich opsplitst in twee nieuwe objecten: een stuk bagage en ´e´en persoon behoort enerzijds tot de traceermodule, maar is anderzijds ook al een onderdeel van het herkennen van een gebeurtenis.
Kalibratiegegevens Video Frames
Waargenomen objecten Objectdetectie
Traceren van objecten
Objecten
Omzetting naar fysieke locatie
ID’s en locaties
koppels
Figuur 4.1: Schema van het systeem.
19
Gebeurtenisdetectie
Waarschuwingen alarmen
20
4.1
Objectdetectie
Voor het detecteren van objecten in de videobeelden wordt gebruik gemaakt van segmentatie. Omdat enkel objecten die de ruimte binnenkomen van belang zijn en niet de objecten die reeds in de ruimte aanwezig zijn wordt voor achtergrond/voorgrondsegmentatie (a/v-segmentatie) gekozen. Deze objectdetectiestap kan op zijn beurt opgedeeld worden in een aantal stappen. Eerst wordt bepaald welke pixels tot de voorgrond behoren, vervolgens worden deze voorgrondpixels gegroepeerd in objecten, en tot slot wordt er voor elk object een omhullende rechthoek gecre¨eerd om door te geven aan de traceermodule.
4.1.1
Achtergrond/voorgrondsegmentatie
Voor de a/v-segmentatie werden twee implementaties voorzien door Ir. Petrovic van de vakgroep TELIN. De ene methode is een running average methode. De andere methode is de zivkovic methode [14]. Uit testen bleken beide methoden vergelijkbare resultaten op te leveren. Wanneer er echter schaduw in de beelden voorkwam bleek de schaduwdetectie voorzien in de zivkovic implementatie voor iets betere resultaten te zorgen (figuur 4.3). Aangezien de implementatie van de running average methode werkt op grijswaardenbeelden was het niet mogelijk om in deze methode een schaduwdetectie in te voeren. Verderop in dit hoofdstuk zal blijken dat het belangrijk is om accuraat het laagste punt van een object te vinden. Met schaduw in de beelden wordt dit bemoeilijkt. De keuze viel bijgevolg op de Zivkovic-methode. Voor het gebruik van a/v-segmentatie in dit systeem waren enkele aanpassingen nodig. De Zivkovic-methode detecteert immers verandering in pixelwaarden, en past zijn achtergrondmodel aan de binnenkomende frames aan. Het doel van deze masterproef is echter het detecteren van achtergelaten bagage. Aangezien bagage die achtergelaten werd niet beweegt zal ze na verloop van tijd niet langer als voorgrond aanzien worden (figuur 4.4b). Daarom moeten de parameters voor de a/v-segmentatie zodanig gekozen worden dat de aanpassing van de achtergrond traag genoeg verloopt om achtergelaten bagage toch te laten detecteren (figuur 4.4c). Hiervoor wordt de leerfactor α klein genomen. Dit houdt in dat het gewicht van de nieuwe beelden op het achtergrondmodel kleiner wordt. De formules voor de update van het gemiddelde en de standaardafwijking van de passende Gaussiaan zijn:
Modelupdate Omhullende rechthoek
AchtergrondObjecten
Figuur 4.2: Schema van het objectdetectiesysteem.
Waarnemingen
21
(a) Origineel beeld
(b) Running averagemethode zonder schaduwdetectie
(c) Zivkovicmethode zonder schaduwdetectie
(d) Zivkovicmethode met schaduwdetectie
Figuur 4.3: Dankzij de schaduwdetectie bij de zivkovicmethode wordt schaduw uit de voorgrond verwijderd. Het verwijderen van schaduw laat een meer accurate lokalisatie toe.
22
µ(t) = µ(t − 1) + α ∗ (x(t) − µ(t − 1))
(4.1)
σ 2 (t) = σ 2 (t − 1) + α ∗ ((x(t) − µ(t − 1)) ∗ (x(t) − µ(t − 1)) − σ 2 (t − 1))
(4.2)
Met x(t) de frame die binnenkomt op tijdstip t, µ(t) het gemiddelde van de Gaussiaan op tijdstip t en σ(t) de standaardafwijking op tijdstip t. Een lagere leerfactor zorgt echter voor nieuwe problemen bij het testen op de voorbeeldsequenties. Indien de aanpassing van het achtergrondmodel te traag gebeurt kan het model de variantie niet snel genoeg modelleren, met een onaangepaste standaardafwijking σ tot gevolg. Om te bepalen of een pixel tot de voorgrond of achtergrond behoort wordt gekeken of de afwijking van de pixelwaarde kleiner is dan een bepaalde drempelwaarde Tb: µ−x<
Tb σ
(4.3)
Door de lage leerfactor zal een aantal pixels, vooral aan de kleurovergangen in het beeld, hierdoor onterecht als voorgrond gezien worden (figuur 4.5). Deze ruis vormt geen probleem zolang er zich geen aaneengesloten oppervlaktes vormen. Een ander probleem is dat niet alle beeldsequenties met een lege achtergrond starten. Bijgevolg doet het fenomeen van ‘geesten’ zich voor. Door de lage leerfactor krijgt het eerste waargenomen beeld een groot gewicht in het achtergrondmodel. Als er zich voorgrondobjecten op dit beeld bevinden zullen ze in het achtergrondmodel worden opgenomen. Wanneer de echte achtergrond zichtbaar wordt wijkt ze af van het achtergrondmodel en zal als voorgrond aanzien worden. De oude locaties van de objecten worden dus als voorgrond aanzien (figuur 4.6b). Door een hogere leerfactor kan de levensduur van deze ‘geesten’ beperkt worden, maar dan doet het probleem van het detecteren van achtergrond zich weer voor. Om deze tegengestelde belangen te verenigen wordt een adaptieve update gebruikt. In de eerste beelden wordt een hoge leerfactor gebruikt zodat het achtergrondmodel zich snel aanpast en ‘geesten’ slechts kortstondig zichtbaar zijn (figuur 4.6c). Vervolgens wordt de leerfactor verlaagd zodat het achtergrondmodel minder wordt be¨ınvloed door nieuwe frames. Op deze manier kan achtergelaten bagage in regime toch worden waargenomen. Om het model te optimaliseren voor de gegeven scenario’s werd door visuele controle van de resultaten gekeken welke parameters optimaal waren. • α : De leerfactor moet initieel zo hoog mogelijk zijn, en in regime laag genoeg zodat bagage zichtbaar blijft. Een abrupte overgang in de leerfactor veroorzaakt nieuwe geesten op het moment van overgang. Daarom wordt een graduele overgang gebruikt die van 100 % invloed van nieuwe beelden naar 0,05 % overgaat. Deze 0,05 % laat toe om objecten meer dan duizend frames zichtbaar te houden. • Tb: De drempelwaarde die bepaalt of een pixel tot de voor of de achtergrond behoort. Hiervoor werd de waarde gekozen die de beste afweging maakte tussen voorgrond die correct als voorgrond aanzien wordt en achtergrond die onterecht als voorgrond aanzien wordt. De optimale waarde bleek rond 40 te liggen.
23
(a) Origineel beeld
(b) Snelle update
(c) Trage update
Figuur 4.4: Detectie van achtergelaten bagage bij snelle en trage update van het achtergrondmodel. Bij de snelle update van het achtergrondmodel wordt achtergelaten bagage niet waargenomen.
24
(a) Origineel beeld
(b) Ruis in afbeelding
Figuur 4.5: Tragere update veroorzaakt ruis. Doordat de ruis zich concentreert dreigt een object onterecht gedetecteerd worden.
• TB: Deze factor staat samen met α in voor het incorporeren van nieuwe objecten in de achtergrond. In de context van deze masterproef is het niet de bedoeling dat nieuwe objecten snel als achtergrond aanzien worden. Hier wordt dus een kleine waarde (0,009) voor gekozen. Een nog kleinere waarde zou bagage nog langer zichtbaar kunnen houden, maar zou in het geval van een belichtingsverandering het systeem langdurig onbruikbaar maken. • τ : De factor die bepaalt of een als voorgrond gedetecteerde pixel mogelijk schaduw is. Deze factor is een maat voor hoe veel donkerder de omgeving kan zijn ten gevolge van schaduw. Visueel bleek de standaardwaarde van 0,5 het best schaduw te verwijderen zonder echte voorgrondobjecten ook als schaduw te zien.
4.1.2
Groeperen in objecten
In de voorgaande stap wordt enkel achterhaald waar voorgrondpixels zich bevinden. De bedoeling is nu om deze pixels te groeperen in objecten. Hiervoor wordt de ‘verbonden componenten’methode gebruikt. Dit houdt in dat twee voorgrondpixels tot een zelfde object behoren als er een pad bestaat tussen deze pixels via voorgrondpixels (figuur 4.7). In figuur 4.8b zijn de objecten in verschillende kleuren aangeduid. Merk op dat enkel de grote oppervlakken ingekleurd zijn. Er wordt een minimale grootte opgelegd voor de objecten om ruis te elimineren.
4.1.3
Omhullende rechthoek
De traceerstap gebruikt rechthoeken voor het traceren van objecten. Voor de gevonden objecten wordt een omhullende rechthoek gecre¨eerd. Dit is de kleinste rechthoek die alle pixels van een object omvat. In figuur 4.8c zijn de omhullende rechthoeken overeenkomstig met de gedetecteerde objecten aangeduid.
25
(a) Origineel beeld
(b) Trage update van het achtergrondmodel.
(c) Snelle update van het achtergrondmodel.
Figuur 4.6: Bij een trage update van het achtergrondmodel zijn ‘geesten’ zichtbaar. Door een snellere update te doen worden deze snel verwijderd.
26
Figuur 4.7: De donkere ‘pixels’ zijn verbonden omdat er een pad bestaat langs de lichtere ‘pixels’ en behoren bijgevolg tot hetzelfde object. Alle ingekleurde ‘pixels’ behoren hier tot hetzelfde object.
4.1.4
Detecteren van personen
In voorgaande segmentatie worden alle verbonden pixels als ´e´en enkel object beschouwd. Vaak bestaat dit gedetecteerde object echter uit meerdere fysieke objecten. Specifiek voor bewakingscamera’s op openbare plaatsen zoals stations en luchthavens zullen dit personen in groep zijn. Om een meer accurate opdeling in objecten te verkrijgen werd onderzocht of hiervoor een mensendetector gebruikt kon worden. Deze detectors dienen getraind te worden met een groot aantal voorbeeldafbeeldingen om de parameters voor een goede classificatie te bereiken. Om personen te detecteren werd gebruik gemaakt van een set parameters die getraind waren om zowel volledige lichamen als lichaamsdelen zoals de torso, de benen of het hoofd te herkennen met de Viola-Jones objectdetector Na het testen van de detector met de getrainde parameters voor het volledige lichaam bleek er een zeer lage herkenning te zijn (≤ 2 %). De oorzaak is dat de parameters getraind zijn met een set van afbeeldingen die geen rekening houden met de hoek van waaruit de camera filmt, noch met de achtergrond in de geteste sequenties. Een dergelijk lage detectieratio was niet bruikbaar. Daarom werden de parameters minder streng gemaakt om een hogere detectiegraad te bekomen. Omdat ook de valse positieven hierdoor toenemen werden de parameters voor een volgende frame enkel minder streng gemaakt in de omgeving van een detectie uit de vorige frame. Door bovendien binnen de gedetecteerde personen te gaan zoeken naar lichaamsdelen kunnen de meeste valse positieven uitgesloten worden. Het
27
(a) Origineel beeld
(b) De verschillende objecten aangeduid in verschillende kleuren
(c) Omhullende rechthoeken rond de verschillende objecten.
Figuur 4.8: Met de ‘geconnecteerde-componentenmethode’ worden de pixels in verschillende objecten geclassificeerd.
28 aantal correcte herkenningen nam toe tot +/- 50% in de gevallen waar de personen apart staan. Wanneer de personen in groep staan en vanuit het camerastandpunt gedeeltelijk overlappen lag het aantal correcte herkenningen op slechts 5 %. Omdat net in dit laatste geval, waar het nuttig is om de verschillende personen te onderscheiden, slechte resultaten bekomen worden, werd beslist om geen gebruik te maken van de personendetector. De detectoren die gezichten herkennen hebben doorgaans een hoger detectieratio dan deze die volledige lichamen proberen herkennen. In deze toepassing is de doelstelling echter niet het achterhalen van het aantal personen, maar van de locatie van deze personen. Hiervoor is het detecteren van gezichten niet nuttig.
4.2
Objecten traceren
In de voorgaande stap werden de verschillende voorgrondobjecten uit elke frame bekomen, en werden uiteindelijk de omhullende rechthoeken doorgegeven naar de traceerstap. In deze stap worden de waarnemingen van objecten in opeenvolgende frames van elke videosequentie geassocieerd met objecten om zo het afgelegde traject van de objecten te verkrijgen (figuur 4.9). Voor de duidelijkheid wordt vanaf hier een onderscheid gemaakt tussen enerzijds objecten: de objecten die in het systeem zijn opgeslagen en worden getraceerd, en anderzijds waarnemingen: de detecties van objecten in de huidige frame.
4.2.1
Beslissen of opeenvolgende gedetecteerde objecten verwant zijn
Om na te gaan of een waarneming een detectie van een in het systeem opgeslagen object is moeten het object en de waarneming met elkaar vergeleken kunnen worden. Hiervoor worden de eigenschappen van de waarnemingen in volgende parameters gegoten (figuur 4.10): • Grootte: de hoogte en breedte van de waarneming. • Locatie: de co¨ ordinaten van het centrum van de waarneming.
Update Objecten
Waarnemingen
Associatie waarneming met object
Associaties
Gebeurtenissenanalyse
Figuur 4.9: Schema van het traceersysteem.
Gesplitste Koppels
29 breedte
Locatie (x,y)
hoogte
Omhullende rechthoek
Figuur 4.10: De parameters van een waarneming
Voor de objecten in het systeem worden volgende parameters gebruikt (figuur 4.11): • Grootte: de hoogte en breedte van het object. • Locatie: de co¨ ordinaten van het centrum van het object. • Snelheid: een vector waarin grootte, richting en zin van de beweging is opgeslagen. • ID: een uniek nummer om een object mee te identificeren. Bij een voldoende hoge framerate van de videosequenties geldt dat de locatie van de waarneming van een object in het huidige frame weinig zal verschillen van de locatie van dit object in de voorgaande frame. De overlapping van de omhullende rechthoeken in de opeenvolgende frames zal dus groot zijn. Door ook rekening te houden met de geschatte snelheid van het object kan een nog grotere overlapping bekomen worden. Het associ¨eren van waargenomen objecten met eerder waargenomen objecten werd hierop gebaseerd. Wanneer de overlapping van de huidige breedte
beweging x
y
Locatie (x,y)
hoogte
Omhullende rechthoek
Figuur 4.11: De parameters van een object
30 waarneming met de voorspelling van de locatie van een object groter is dan een drempelwaarde wordt aangenomen dat de waarneming tot dit object behoort (figuur 4.12). Voor de minimale overlapping werd 50 % gekozen: voldoende groot om een waarneming niet met het verkeerde object te associ¨eren, maar klein genoeg om elke waarneming met het object te linken.
4.2.2
Gebeurtenissen in de traceerfunctie
In de voorgaande sectie werd enkel het geval besproken waar ´e´en waarneming overlapt met ´e´en bestaand object. Wanneer objecten elkaar kruisen kan er voor bepaalde camera’s occlusie optreden. Deze fysieke objecten kunnen dan als ´e´en enkele waarneming gezien worden. Met dit soort gebeurtenissen moet de traceerfunctie rekening kunnen houden. Er worden 5 mogelijke gebeurtenissen gedefinieerd: 1. Een waarneming overlapt met een object (figuur 4.13b). 2. Een waarneming overlapt met geen enkel object (figuur 4.13c). 3. Een bestaand object overlapt met geen enkele waarneming (figuur 4.13d). 4. Meerdere waarnemingen overlappen met een object: splitsing (figuur 4.13e). 5. Een waarneming overlapt met meerdere objecten: samensmelting (figuur 4.13f). Om met deze gebeurtenissen om te kunnen gaan krijgt elk object een aantal extra parameters naast de eerder opgegeven parameters: • Grootte: de hoogte en breedte van het object. • Locatie: de co¨ ordinaten van het centrum van het object. • Snelheid: een vector waarin grootte, richting en zin van de beweging zijn opgeslagen. • ID: een uniek nummer om een object mee te identificeren. • Waarnemingen: geeft aan hoe regelmatig een object waargenomen wordt. • Subobjecten: lijst van objecten die samengesmolten zijn in dit object. • Superobject: ID van het object waarvan dit object is afgesplitst. Met behulp van deze parameters kan de traceerfunctie gepast reageren: 1. Een waarneming overlapt met een object ⇒ Het Object wordt ge¨ updatet • grootte = grootte waarneming
31
Nieuwe detectie
Voorspelde locatie Opgeslagen object Oude detectie Opgeslagen als object Figuur 4.12: Bij een voldoende grote overlapping wordt de waarneming met het object geassocieerd
• locatie = locatie waarneming • snelheid = gewogen som van oude snelheid en het verschil tussen oude en nieuwe locatie 2. Waarneming overlapt met geen enkel object ⇒ Een nieuw object wordt aangemaakt: • grootte = grootte waarneming • locatie = locatie waarneming • snelheid = 0 • ID = laagste ongebruikte waarde • waarnemingen = 1 • subobjecten = ∅ • superobject = -1 3. Bestaand object overlapt met geen enkele waarneming. ⇒ Het object wordt ge¨ updatet • locatie = oude locatie + snelheid • waarnemingen = oude waarnemingen -1 4. Meerdere waarnemingen overlappen met een object: splitsing.
32
waarneming
object
(a) waarnemingen worden aange-(b) gebeurtenis 1: ´e´en object, ´e´en(c) gebeurtenis 2: geen object, ´e´en duid in stippellijn, objecten waarneming waarneming met volle lijn
(d) gebeurtenis 3: ´e´en object, geen(e) gebeurtenis 4: ´e´en object, twee(f ) gebeurtenis 5: meerdere obwaarneming waarnemingen jecten, ´e´en waarneming
Figuur 4.13: Illustratie van de 5 mogelijke gebeurtenissen waar de traceerfunctie mee moet kunnen omgaan.
33 ⇒ Het oude object wordt verwijderd, voor elke waarneming wordt een nieuw object aangemaakt. Als de subobjectenlijst van het oude object niet leeg is wordt gekeken of deze overeen kunnen komen met de waarneming. • grootte = grootte waarneming • locatie = locatie waarneming • snelheid = 0 OF snelheid van overeenkomstig subobject • ID = laagste ongebruikte waarde OF ID van overeenkomstig subobject • waarnemingen = 1 OF waarnemingen van overeenkomstig subobject • subobjecten = ∅ • superobject = ID oude object 5. Een waarneming overlapt met meerdere objecten: samensmelting. ⇒ Een nieuw object wordt aangemaakt, de oude worden uit het systeem verwijderd en opgeslagen in de subobjectenlijst • grootte = grootte waarneming • locatie = locatie waarneming • snelheid = 0 • ID = laagste ongebruikte waarde OF superID van alle subobjecten indien gelijk • waarnemingen = 1 • subobjecten = object1, object2, • superobject = -1 Op deze manier is de volledige traceerfunctie gedefinieerd en kunnen we voor de videosequenties de trajecten van de objecten achterhalen. Hiervan zijn een aantal voorbeelden gegeven in figuur 4.14.
4.3
Fysieke locatie berekenen
De trajecten die objecten afleggen in de videobeelden zijn nu gevonden. Om te weten of een eigenaar van een stuk bagage al dan niet deze bagage heeft achtergelaten werden criteria gedefinieerd met betrekking tot de afstand van de bagage tot de eigenaar. Daarom is het nodig om de locatie van de objecten in wereldco¨ordinaten te achterhalen. Hiervoor werd een eigen methode ontwikkeld (figuur 4.15).
34
(a) sequentie 1: 1 persoon wandelt door de ruimte.
(b) sequentie 2: Ook na samensmelting behouden de objecten hun ID
(c) sequentie 3: Nadat deze objecten elkaar gekruisd hebben krijgen ze hun oude ID terug
Figuur 4.14: Illustratie van het traceren van objecten. Witte cijfers stellen de ID’s voor.
Lijst punten en Kalibratie
punten
Objecten Projectie
Combinatie punten en omhullenden
Paren
Associatie punten
Verzameling Locaties
Figuur 4.15: Schema van het locatieprojectiesysteem.
35
4.3.1
Kalibreren van de camera’s
Om de locatie van objecten te achterhalen moeten de camera’s gekalibreerd zijn. In de testsequenties van de PETS2006 zijn de kalibratieparameters bijgevoegd. Bij het controleren van deze parameters bleek dat ze niet voor alle camera’s accuraat zijn. Bovendien zijn deze parameters niet steeds voor handen. Daarom werd aan het systeem een kalibratiestap toegevoegd. Voor elke camera wordt er een lijst van co¨ordinaten van fysieke punten en de overeenkomstige pixelco¨ ordinaten ingegeven. Hiermee worden de intrinsieke en extrinsieke parameters die de kalibratie van de camera voorstellen berekend [20]. De intrinsieke parameters vormen de 3x3 kalibratiematrix K. De extrinsieke parameters defini¨eren een rotatie, voorgesteld door een 3x3 rotatiematrix R en een translatie, voorgesteld door een 1x3 matrix t. Met deze matrices kan een 3x4 projectiematrix P berekend worden die gehomogeniseerde wereldco¨ordinaten transformeert naar pixelco¨ ordinaten.
P = K × (R|t)
(4.4)
x u.s y v.s = P × z s 1
(4.5)
Hierbij zijn u en v de pixelco¨ ordinaten die kunnen gevonden worden door de resulterende vector te delen door een factor s. Voor de transformatie van pixelco¨ordinaten naar wereldco¨ordinaten wordt de ‘inverse’ 3x4 projectiematrix H gebruikt. H = RT × (K −1 | − t)
(4.6)
u.s x v.s y = H × s z 1
(4.7)
Het is deze projectiematrix die wordt gebruikt voor het berekenen van de fysieke locaties.
4.3.2
Projecteren van objectlocaties naar wereldco¨ ordinaten
Voor het berekenen van de fysieke locaties van de objecten bestaan er meerdere methoden. Deze maken gebruik van de realistische assumptie dat alle objecten de grond raken.
36 Beperkingen van bestaande methoden Bij methodes waar er slechts ´e´en camera gebruikt wordt kan men het centrale laagste punt van een object projecteren naar het grondvlak. In de gevallen waar er occlusie optreedt kan men met deze methode de locatie van het verscholen object niet meer achterhalen. Wanneer er meerdere camera’s zijn die hetzelfde gebied filmen kan informatie van deze camera’s gecombineerd worden om objectlocaties te vinden. Een methode bestaat er in alle als voorgrond gedetecteerde pixels naar het grondvlak te projecteren. Als een object het grondvlak raakt overlappen de projecties op de locatie van dit object. Het probleem met deze methode is dat valse positieven kunnen optreden wanneer bijvoorbeeld de projectie van de torso van de ene persoon met de projectie van de torso van een andere overlappen (figuur 4.16). Een andere methode lost dit probleem op door de projectie niet enkel naar grondvlak te doen, maar ook naar andere horizontale vlakken. Bij deze meerlagenmethode wordt enkel daar waar op meerdere vlakken voorgrondpixels geprojecteerd worden een object gedetecteerd. Bij testen blijkt deze methode goed te werken om personen in de ruimte te detecteren. Voor het detecteren van bagage is deze methode minder bruikbaar. Bagage kan immers een beperkte hoogte hebben, en zal daardoor niet als object aanzien worden omdat op hogere lagen er geen projectie is (figuur 4.17). Door de hoogte van de lagen te beperken kan bagage wel gedetecteerd worden, maar is er meer kans op valse positieven zoals in figuur 4.16. Alle voorgaande methoden hebben beperkingen die bij het detecteren van achtergelaten bagage voor problemen zorgen. Daarom werd getracht een nieuwe methode te ontwikkelen. Deze nieuwe methode dient net zoals de 1-cameramethode en de meerlagenmethode valse positieven te weren en moet toch om kunnen gaan met occlusie en kleine objecten.
Voorgestelde methode voor projecteren van objectlocaties De methode werd ontwikkeld startend vanuit de bestaande methode die gebruik maakt van ´e´en camera. De eerste stap van deze methode wordt op elke camera toegepast. Van elk object wordt het laagste centrale punt van de omhullende rechthoeken geprojecteerd naar het grondvlak. Op het grondvlak worden nu voor de verschillende camera’s de locaties van de verschillende objecten geprojecteerd (figuur 4.18d). Om de afwijking die kan bestaan op de geprojecteerde locatie van een object te verkleinen en dus een correctere lokalisatie van de objecten te bekomen kunnen de locaties van eenzelfde object worden uitgemiddeld. Hiervoor dient natuurlijk geweten te zijn welke waargenomen objecten in de verschillende camera’s hetzelfde object voorstellen. Dit is eenvoudig te bepalen door na te gaan of de projectiepunten minder dan een maximale afstand van elkaar liggen. Dit geldt helaas enkel als elk object door elke camera perfect wordt waargenomen, iets wat door occlusie en schaduw zelden het geval is. Er moest dus een andere manier gevonden worden om de punten te associ¨eren. De ontwikkelde methode maakt naast de geprojecteerde punten ook gebruik van de projectie
37
Camera 1
Camera 2
Figuur 4.16: De ovalen stellen de projecties van een persoon vanuit de richting van camera 1 en camera 2 voor. Waar het object de grond raakt overlappen deze projecties. De locaties waar de projecties overlappen worden gezien als de locaties van de objecten. In dit geval is er een overlapping van twee verschillende objecten die leidt tot een valse positieve.
van de omhullende rechthoek, uitgebreid met een marge om afwijkingen in de kalibratie te compenseren (figuur 4.18e). De methode maakt gebruik van volgende regels. 1. Een projectiepunt stelt slechts de locatie van een object voor indien ze binnen de uitgebreide omhullende rechthoek van minstens ´e´en andere camera valt. 2. Elk projectiepunt dat binnen een omhullende van een andere camera valt stelt minstens een object voor. 3. Twee projectiepunten behoren slechts tot hetzelfde object als een van beide binnen de andere uitgebreide omhullende rechthoeken valt en de afstand tussen beiden onder een drempelwaarde ligt. De eerste voorwaarde voorkomt dat schaduw die ondanks de schaduwdetectie nog als object gedetecteerd werd een fysieke locatie krijgt (figuur 4.18f rechtsboven). Hetzelfde geldt voor objecten die onterecht in twee gesplitst worden door onvolledige a/v-segmentatie zoals de kar onderaan in het beeld van camera 3 (figuur 4.18b). De derde regel eiste oorspronkelijk dat twee projectiepunten binnen elkaars uitgebreide omhullende rechthoek vielen. Deze regel moest verhinderen dat punten van twee objecten die dicht bij elkaar liggen onterecht met elkaar geassocieerd zouden worden, zoals wel het geval zou zijn als enkel naar een maximale afstand gekeken wordt. De associatie tussen de punten centraal onderaan uit camera 3 met het punt uit camera 1 zou zo verkeerd gebeuren (figuur 4.18e). De extra voorwaarde van maximale afstand is nodig voor het geval waarbij twee camera’s in dezelfde richting met tegengestelde zin filmen. In dit geval kunnen projectiepunten binnen elkaars omhullende rechthoek vallen maar toch niet
38
(a) Origineel beeld
(b) Waarschijnlijkheden na meerlagenprojectie
(c) Meerlagenprojectie na thesholding
Figuur 4.17: Na tresholding blijkt de drempelwaarde te hoog om de bagage te zien en te laag om de twee personen te onderscheiden.
39
(a) Camera 1
(b) Camera 3
(c) Camera 4
(d) Projectie van de raakpunten van objecten en het grondvlak
(e) Projectie van de raakpunten en de omhullende rechthoeken
(f ) Projectie van de raakpunten en de omhullende rechthoeken met de uiteindelijke gevonden objectlocaties in het zwart.
Figuur 4.18: Projectie van de gevonden objecten naar het grondvlak. Voor de drie gebruikte camera’s worden eerst de raakpunten met het grondvlak getoond. Vervolgens ook de uitgebreide omhullende rechthoeken zelf en tot slot de uiteindelijk berekende locaties. (De nummers in de camerabeelden zijn de ID’s van de objecten uit de traceerstap)
40 hetzelfde object voorstellen (figuur 4.19). De verzwakking van de voorwaarde dat de punten binnen elkaars omhullende rechthoeken moeten vallen naar de voorwaarde dat slechts ´e´en van de punten in de andere omhullende rechthoek moet vallen is er gekomen omdat een te groot aantal punten die eenzelfde object voorstellen niet aan de strengere voorwaarde voldoen.
Algoritme
.
Stap 1: Er wordt een lijst van paren met objectID’s gemaakt die een projectiepunt combineert met een geprojecteerde omhullende rechthoek uit een ander camera die dit punt omvat. struct pair pointobject boxobject for (i=1 tot #cameras) for (j=1 tot #cameras, i != j) // voor elke camera bestaat een lijst objecten uit de traceerstap if(i.object.point ligt in j.object.box) pair.pointobject = i.object; pair.boxobject = j.object; pairlist[i,j].addpair(pair); end if end for end for Stap 2: Er wordt een lijst van objectverzamelingen gemaakt die de ID’s van de verschillende objecten uit de verschillende camera’s bijhoudt die hetzelfde object voorstellen. Dit wordt gedaan door voor elk paar na te gaan of de projectiepunten van de twee elementen voldoende dicht bij elkaar liggen. Indien dit het geval is wordt nagegaan of er al een objectverzameling bestaat met het ID van het projectiepunt en wordt dit object aangevuld met het ID van de omhullende rechthoekobject. Anders wordt een nieuwe objectverzameling aangemaakt waar de ID’s samen in worden opgeslagen. Indien de punten niet dicht genoeg bij elkaar liggen wordt een nieuwe objectverzameling
41
(a) origineel beeld (Nummer komt uit de traceerstap)
(b) projectie
Figuur 4.19: De punten liggen in elkaars omhullende maar zijn niet hetzelfde object
42 aangemaakt met enkel het projectiepuntID. struct objectcombination cam[] // cam[x] object uit camera x location; for (i=1 tot #cameras) for (j=1 tot #cameras, i != j) if([i,j].pair.pointObject - [i,j].pair.boxObject < maximale afstand) if(nog geen objectcombination met deze objecten) new objectcombination; objectcombination.cam[i] = pair.pointObject; objectcombination.cam[j] = pair.boxObject; combinationlist.add(objectcombination); else if (reeds object met pointObject) bestaande objectcombination.cam[j] = pair.boxObject; else if (reeds object met boxObject) bestaande objectcombination.cam[i] = pair.pointObject; end if else if([i,j].pair.pointObject - [i,j].pair.boxObject > maximale afstand) if(nog geen object met deze pointObject) new objectcombination; objectcombination.cam[i] = pair.pointObject; combinationlist.add(objectcombination); end if end if end for end for Stap 3: Voor elk object wordt de locatie berekend door het gemiddelde te nemen van de locaties van de punten in de objectverzameling. Deze centrale locatie is de uiteindelijke geschatte locatie van het object (figuur 4.18f). for (combinationlist) locationsum = 0; count = 0; for(i=1 tot #cameras) if(objectcombination.cam[i] bestaat) locationsum += objectcombination.cam[j].location; count++; end if end for objectcombination.location = locationsum/count; end for
43
4.4
Het detecteren van het achterlaten van bagage
Aan de hand van de regels voor het detecteren van bagage zoals gedefinieerd voor de PETS2006 [6] workshop (zie hoofdstuk 2) werd het eigen detectiesysteem ontwikkeld (figuur 4.20). Voor het detecteren van het scheiden van de eigenaar en de bagage kijken we in de traceerfuncties van de verschillende camera’s of er objecten zijn die splitsen. Telkens er zich een splitsing voordoet is het mogelijk dat er bagage werd achtergelaten. Anderzijds zullen splitsingen zich ook voordoen wanneer twee personen uit elkaar gaan. Op het moment van de splitsing is het niet mogelijk om te weten om welk geval het gaat. if(splitsing) new couple; couple.object1 = splitsingsobject1; couple.object2 = splitsingsobject2; couples.add(couple); end if Daarom wordt bij elke splitsing een koppel aangemaakt dat de ID’s van de gesplitste objecten bijhoudt. Dit koppel wordt bijgehouden zolang de mogelijkheid bestaat dat het een eigenaarbagagekoppel is. Dit is niet langer het geval wanneer: • De objecten terug samensmelten. • Beide objecten beweging vertonen. In de traceerfunctie wordt er bij elke samensmelting nagekeken of er koppels bij zijn die terug samengesmolten worden. Deze worden verwijderd. Na het lokaliseren wordt gekeken of de initi¨ele locatie van de objecten na de splitsing meer veranderd is dan een drempelwaarde. Indien dit voor beide objecten het geval is wordt het koppel verwijderd. Voor de drempelwaarde werd 1 meter
Afstand Koppels
Lokalisatie
ID Verzameling ObjectID’s
Locatie
Generatie gebeurtenissen
Locatie Type Object
Locatie door
Figuur 4.20: Schema van het detectiesysteem.
Waarschuwing Alarm
44 gekozen. De lokalisatiefouten die optreden zijn kleiner dan deze drempelwaarde (hoofdstuk 6), maar passerende personen leggen een stuk grotere afstanden af. if(samensmelting) for(couples) if(smeltobject1 == couple.object1 && smeltobject2 == couple.object2) couples.delete(couple); end if end for end for for(couples) if(couple.initiallocation1 - couple.currentlocation1 > maximale afstand) couple.bewogen1++; end if if(couple.initiallocation2 - couple.currentlocation2 > maximale afstand) couple.bewogen2++; end if if(couple.bewogen1 > 10) couple.type1 = persoon; end if if(couple.bewogen2 > 10) couple.type2 = persoon; end if if(couple.type1 = persoon && couple.type2 == persoon) couples.remove(couple); end if end for Voor de resterende koppels wordt gekeken wanneer de afstand tussen de twee objecten groter wordt dan twee (waarschuwingniveau) en dan drie (alarmniveau) meter. Van zodra dit het geval is wordt een teller gestart die blijft tellen tot de objecten terug binnen de gegeven afstanden komen van elkaar komen. Wanneer de teller het aantal frames equivalent met 30 seconden
45 bereikt wordt een waarschuwing of een alarm gegeven. for(couples) if(couple.object2 - couple.object1 > waarschuwingsniveau) couple.warningcount++; end if if(couple.object2 - couple.object1 > alarmniveau) couple.alarmcount++; end if if(couple.warningcount > 30*25) WARNING! if(couple.alarmcount > 30*25) ALARM! end for Een probleem blijft occlusie: het opsplitsen van een object gebeurt in een van de camera’s. Wanneer het zicht op de eigenaar van de bagage belemmerd wordt in deze camera kan zijn locatie niet langer bepaald worden. Hier is het dat de objectverzamelingen uit de lokalisatiestap hun grootste nut bewijzen naast een meer accurate lokalisatie. In de lokalisatiestap worden objecten die hetzelfde object voorstellen samengebracht in objectverzamelingen. Voor elk object wordt in een associatielijst bijgehouden hoe vaak dit object in dezelfde objectverzameling zat als objecten uit andere camera’s. struct objectcount objectID; count; struct association objectID; objectcount[]; for(combinationlist) for(i=1 tot #cameras) if(association.objectID == combinationobject.cam[i]) for(j=1 tot #cameras i != j) if(association.objectcount.ID == combinationobject.cam[j]) association.objectcount.count++; end if end for end if end for end for Wanneer het zicht op de eigenaar verhinderd wordt in het camerabeeld waarin hij gevolgd werd kan de locatie niet langer bepaald worden aan de hand van het ID. Daarom kijkt het systeem
46 in de associatielijst welk object het meest frequent in dezelfde objectverzameling zat als de eigenaar. Er wordt met andere woorden gekeken welk object in een andere camera de eigenaar is. De locatie van dit object wordt in dit geval gebruikt om de eigenaar te lokaliseren. Zolang de eigenaar in een andere camera zichtbaar blijft kan zijn locatie achterhaald worden. for(associations) if(association.objectID == couples.lostobject) vervangingsobject = max(association.objectcount) end if end for
4.5
Samenvatting
Het ontwikkelde systeem is gebaseerd op de methodes die gebruik maken van ´e´en camera: Eerst worden de objecten gedetecteerd met behulp van a/v-segmentatie. Vervolgens worden de objecten in de videobeelden getraceerd, worden splitsingen gedetecteerd en tot slot worden de punten geprojecteerd en het achterlaten van bagage gesignaleerd. Dit systeem werd uitgebreid en verbeterd met een aantal eigen methodes. De a/v-segmentatie werd geoptimaliseerd door een adaptieve leerfactor te gebruiken. Het detecteren en traceren van objecten werd uitgevoerd op alle bruikbare camera’s en de resultaten hiervan werden met elkaar geassocieerd zodat nauwkeurigere uitgemiddelde locaties verkregen werden. De combinaties van de objecten uit de verschillende camera’s werden gebruikt om voor elk object uit elke camera associaties te maken met de objecten uit de andere camera’s die hetzelfde object voorstellen. Hierdoor kunnen de locaties van eigenaar en bagage toch nog achterhaald worden als er occlusie optreedt.
Hoofdstuk 5
Experimenteel Opzet In dit hoofdstuk word het experimentele opzet van het ontworpen systeem besproken. Eerst wordt de dataset waarop het systeem getest werd grondig geanalyseerd. Vervolgens wordt de realisatie van het systeem besproken en tot slot wordt uitgelegd aan de hand van welke parameters het ontworpen systeem ge¨evalueerd kan worden.
5.1
PETS 2006 dataset
In hoofdstuk 2 werden de gebeurtenissen die gedetecteerd dienen te worden gedefinieerd, ter herhaling: • Bagage staat onder toezicht zolang de eigenaar zich binnen de twee meter bevindt (figuur 2.3a). • Bagage staat niet onder toezicht als de eigenaar zich buiten de twee meter begeeft (figuur 2.3b). • een waarschuwing moet gegeven worden op het moment dat de eigenaar zich meer dan 30 seconden op een afstand groter dan twee meter van de bagage bevindt. • Bagage is achtergelaten als de eigenaar zich op meer dan drie meter van de bagage bevindt (figuur 2.3c). • Een alarm moet gegeven worden indien de eigenaar gedurende meer dan 30 seconden op een afstand groter dan drie meter van de bagage verwijderd is. In figuur 5.1 worden de beelden waargenomen door de 4 camera’s weergegeven. Het zicht vanuit camera 2 (figuur 5.1b) is sterk gehinderd. Daarom wordt camera 2 niet gebruikt. Ook in de andere camera’s is niet elk deel van het beeld even nuttig. Om geen rekentijd te verspillen aan delen van de beelden die niet relevant zijn voor het resultaat worden deze delen van de beelden weggefilterd vooraleer ze te verwerken. De uiteindelijk gebruikte beelden worden voorgesteld in figuur. 5.2. 47
48
(a) camera 1
(b) camera 2
(c) camera 3
(d) camera 4
Figuur 5.1: De beelden waargenomen door de 4 camera’s
(a) camera 1
(b) camera 3
(c) camera 4
Figuur 5.2: De beelden waargenomen door de 4 camera’s na filtering. Dit voorkomt invloeden van beelddelen die niet relevant zijn.
49 In elke sequentie wordt een specifiek scenario doorlopen, waarin bagage al dan niet wordt achtergelaten. Voor elk van de scenario’s wordt de subjectieve moeilijkheid aangeduid met ´e´en (zeer eenvoudig) tot vijf (zeer moeilijk) sterren. 1. Een persoon hangt rond vooraleer zijn bagage onbewaakt achter te laten. (*) 2. Twee personen komen afzonderlijk de ruimte binnen. Een persoon zet een aktetas neer op de grond, waarna beide personen samen vertrekken. (***) 3. Een persoon wacht op de trein, zet tijdelijk zijn aktetas neer alvorens terug te vertrekken. (*) 4. Een persoon plaatst een aktetas achter. Een tweede persoon komt praten met de eerste persoon. Vervolgens gaat de eerste persoon weg zonder zijn aktetas. De tweede persoon merkt niet dat de eerste persoon de aktetas achterliet. (****) 5. Een persoon met skimateriaal hangt rond alvorens het materiaal achter te laten.(**) 6. Twee personen komen samen toe. Een van hen plaatst een rugzak op de grond waarna beide personen samen vertrekken. (***) 7. Een persoon met een aktetas hangt rond alvorens de bagage achter te laten. Tijdens deze gebeurtenis komen vijf andere personen dicht in de buurt van de bagage. (*****) Deze testsequenties uit de PETS 2006 dataset [6] trachten de verschillende manieren waarop bagage kan worden achtergelaten te beschrijven. Deze testset wordt door de meeste ontwikkelaars van bagagedetectiesystemen gebruikt zodat een objectieve vergelijking van de methoden mogelijk is.
5.2
Praktische uitwerking van het systeem
Het ontwikkelde systeem werd ge¨ımplementeerd in C++ en maakt gebruik van functionaliteiten uit de OpenCVbibliotheek [21]. De broncode is te vinden op de bijgevoegde CD-ROM. De gebruikte parameters van het programma in de verschillende stappen werden gevonden door naar der resultaten hiervan op de eerste testsequentie van de PETS2006 dataset te kijken, en ze aan de hand van de observaties te verbeteren. Doordat de scenario’s zich in dezelfde ruimte afspelen laat deze aanpak enerzijds toe om de parameters aan de omgeving aan te passen, zonder anderzijds vertekende resultaten te krijgen. De parameters van componenten zoals bijvoorbeeld achtergrond/voorgrondsegmentatie (a/v-segmentatie) voor deze applicatie zijn steeds afhankelijk van de omgeving en dienen voor elke omgeving geconfigureerd te worden. Het is anderzijds niet wenselijk dat de trainingsset die de aanpak bepaalt volledig overeen komt met de evaluatieset. Door de methode specifiek te ontwikkelen voor de gebeurtenissen in de scenario’s zouden de testresultaten een beter, maar vertekend beeld van de kwaliteit van het systeem geven.
50
5.3
Experimenteel opzet voor de evaluatie
Om na te gaan of het systeem goed werkt werd het ge¨evalueerd. Voor het volledige systeem wordt getest of de detectie van het achterlaten van bagage correct gebeurt. Met andere woorden, worden de waarschuwingen en de alarmen op het juiste ogenblik op de juiste plaats gegeven? Door gebruik te maken van de PETS database kunnen deze resultaten worden vergeleken met de aanpakken uit de state-of-the-artmethoden. Naast de controle van de uiteindelijke resultaten worden indien mogelijk ook de prestaties van onderdelen met de voornaamste eigen bijdragen aan het systeem kwantitatief getest. Dit wordt gedaan voor de verbeteringen van de achtergrond/voorgrondsegmentatie door het adaptief maken van de updatesnelheid en voor de ontwikkelde methode voor lokalisatie.
5.3.1
Adaptieve achtergrond/voorgrondsegmentatie
De problemen die de adaptieve a/v-segmentatie tracht op te lossen in deze applicatie zijn: het detecteren van bagage nadat ze is achtergelaten en het verwijderen ‘geesten’ bij sequenties die niet leeg ge¨ınitialiseerd worden. Voor het detecteren van achtergelaten bagage wordt voor de verschillende sequenties visueel nagegaan gedurende hoeveel frames de bagage zichtbaar blijft op de gesegmenteerde beelden. Voor de ‘geesten’ wordt gekeken gedurende hoeveel frames de initi¨ele locatie van de objecten als voorgrondobject wordt gedetecteerd.
5.3.2
Lokalisatie
De PETS 2006 databank voorziet geen grondwaarheid voor de locatie van de verschillende objecten en personen die door de ruimte lopen. Daarom wordt handmatig een grondwaarheid voorzien. Hiervoor wordt gebruik gemaakt van viper-light [22], een tool die toelaat om de locaties van objecten aan te duiden in een afbeelding. Deze locaties worden samen met het framenummer opgeslagen in een xml-bestand. Deze locaties zijn de pixelco¨ ordinaten van de objecten. Voor het evalueren van de lokalisatie zijn de fysieke locaties nodig. Daarom worden de pixellocaties geprojecteerd naar het grondvlak. Zo wordt een referentielijst van objectlocaties bekomen, met daarin voor elke frame de locaties van de aanwezige objecten. Omdat een sequentie bestaat uit ongeveer 3000 frames is het niet mogelijk om voor elke frame de locaties handmatig aan te duiden. Om een representatieve set van referenties te bekomen wordt er om de 20 frames een referentie gemaakt. De objectlocaties van de gedetecteerde objecten in het systeem worden voor de frames met referentie uitgeschreven naar hetzelfde formaat. Vervolgens worden de gedetecteerde locaties met elkaar vergeleken. Er wordt eerst een maximale afwijking van 75 centimeter, overeenkomstig met de verwachte afstand tussen twee objecten, opgelegd. Voor elke referentielocatie wordt gekeken of er zich een gedetecteerd object binnen deze maximale afwijking bevindt. Vervolgens
51 wordt de afwijking met het meest nabije gedetecteerde object opgeslagen. Indien er geen object gedetecteerd werd op een referentielocatie wordt dit ook bijgehouden. Dit resulteert in: • Lijst met afwijkingen • Niet gedetecteerde objecten • Totaal aantal objecten Uit deze basisgegevens kunnen een aantal interessante statistische parameters gehaald worden: de gemiddelde afwijking van gedetecteerde objecten, het aantal niet gedetecteerde objecten en het aantal valse positieven.
5.3.3
Gebeurtenisherkenning
Tot slot wordt uiteraard ook de doelstelling van deze masterproef getest: het detecteren van achtergelaten bagage. Dit houdt in dat enerzijds de waarschuwingen en anderzijds de alarmen worden ge¨evalueerd. De grondwaarheid van de PETS2006 dataset biedt hiervoor het tijdstip en de locatie van achterlaten bagage aan. Het ontwikkelde systeem kan waarschuwingen annuleren indien een object dat eerst als bagage werd geclassificeerd toch geen bagage blijkt te zijn. Voor het evalueren wordt gekeken of een waarschuwing of alarm op een bepaalde locatie al dan niet wordt gegeven en met hoeveel vertraging ten opzichte van de grondwaarde dit gebeurt. Het aantal valse alarmen en waarschuwingen kan worden geteld, en voor de valse waarschuwingen wordt gemeten hoe lang het duurt voor ze kunnen worden geannuleerd.
Hoofdstuk 6
Resultaten en Discussie In dit hoofdstuk worden de resultaten van de experimenten uit het vorige hoofdstuk getoond en besproken.
6.1 6.1.1
Adaptieve achtergrond/voorgrondsegmentatie Bagagedetectie
De adaptieve achtergrond/voorgrondsegmentatie (a/v-segmentatie) moet ervoor zorgen dat enerzijds ‘geesten’ ten gevolge van niet-lege ruimte bij initialisatie zo snel mogelijk verwijderd worden en anderzijds bagage zo lang mogelijk gedetecteerd kan worden. In tabel 6.1 wordt aangegeven hoeveel frames na het achterlaten van de bagage deze bagage nog als voorgrondobject wordt weergegeven. Bagage moet zichtbaar zijn om een correcte objectlokalisatie te doen. Als bagage niet gedetecteerd wordt kan er geen achterlating gedetecteerd worden. In sommige gevallen is de detectie van bagage na achterlating zeer kort, tot zelfs 0. De oorzaak hiervoor is steeds dezelfde: wanneer andere objecten voor het achterlaten van de bagage op dezelfde locatie staan met een gelijkaardige kleur wordt het achtergrondmodel al ge¨ updatet met deze kleur v´ o´ or de bagage wordt achtergelaten (tabel 6.1). scenario camera 1 camera 2 camera 3
1 ∞ ∞ ∞
2 920 901 540
3 nvt nvt nvt
4 nvt 0 nvt
5 1189 ∞ 1267
6 ∞ ∞ ∞
7 654 724 0
Tabel 6.1: Resultaten van de duurtijd (in frames) van detectie achtergelaten bagage voor de verschillende scenario’s vanuit de verschillende camerastandpunten. ∞ geeft aan dat de bagage tot het einde van de sequentie herkend blijft. In scenario 3 wordt geen bagage achtergelaten, in scenario 4 is er steeds occlusie voor camera 1 en 3. In de meeste gevallen wordt de bagage gedetecteerd tot het alarm gegeven wordt. In sommige gevallen is dit niet zo en moet men ervan uit gaan dat de eerdere detectie correct was.
52
53
(a) frame 784: eigenaar staat op locatie waar bagage zal worden neergezet.
(b) frame 1274: bagage neergezet.
(c) frame 1680: bagage niet meer gedetecteerd.
Figuur 6.1: Ongeveer vanaf frame 784 staat er steeds een donker object op de toekomstige locatie van de bagage. In frame 1274 wordt de bagage neergezet. Vanaf dan wordt het achtergrondmodel voortdurend ge¨ updatet met de waarden van de bagage. In frame 1680 blijkt de bagage niet langer gedetecteerd te worden. Dankzij associatie met objecten gedetecteerd in andere camera’s kan de locatie wel nog achterhaald worden. (Nummers zijn aanduidingen uit de traceerstap.)
54
6.1.2
‘Geesten’
In sommige scenario’s is de ruimte niet leeg in de eerste frames. Het achtergrondmodel wordt hierdoor fout ge¨ınitialiseerd wat ‘geesten’ veroorzaakt (figuur 4.6). Door een adaptieve updatesnelheid die bij de initialisatie hoog, en in regime laag is kunnen deze snel verwijderd worden. Tabel 6.2 geeft aan hoe snel het systeem deze ‘geesten’ kan verwijderen. In de meeste gevallen worden de ‘geesten’ vrij snel verwijderd. Bij ´e´en uitschieter duurt het echter 239 frames of bijna 10 seconden voor alle ‘geesten’ verwijderd zijn. De oorzaak is een grote groep mensen die voorbij de zelfde locatie passeert, en het achtergrondmodel er zo van weerhoudt om de echte achtergrond te modeleren (figuur 6.2).
6.2 6.2.1
Lokaliseren van objecten Resultaten
De resultaten van de eigen methode en de methode met ´e´en camera (camera 3) wordt weergegeven in tabel 6.3. De grondwaarheid werd gegenereerd door de projectie van manueel aangeduide punten in camera 3. Figuur 6.4 geeft een histogram weer met de afwijking van de objecten met de grondwaarheid. Voor de valse positieven werd rekening gehouden met de situatie waarbij ´e´en object als meerdere objecten wordt gedetecteerd zoals in figuur 6.3. In dit geval worden beide punten als correct gedetecteerd aanvaard.
6.2.2
Bespreking
Uit tabel 6.3 blijkt dat het aantal niet correct gedetecteerde objecten sterk verminderd wordt door het combineren van de camera’s. Bij de objecten die wel gevonden worden is de gemiddelde afwijking bovendien 10% groter dan bij de eigen methode. Dit is duidelijk zichtbaar op figuur 6.4: De piek ligt op kleinere afwijking bij de eigen methode. Als er enkel gekeken wordt naar de gemiddelde afwijking van de objecten die zowel in de eigen methode als in camera 3 worden gedetecteerd is de afwijking bij de methode met ´e´en camera gemiddeld zelfs 25 % groter. Hierbij dient opgemerkt dat camera 3 veruit de beste resultaten geeft voor de ´e´en-cameramethoden. scenario camera 1 camera 2 camera 3
1 37 nvt nvt
2 90 53 61
3 nvt nvt 239
4 0 17 59
5 79 nvt 128
6 48 57 48
7 53 50 99
Tabel 6.2: Resultaten van de duurtijd (in frames) waarop ‘geesten’ zichtbaar zijn. In de meeste gevallen worden ‘geesten’ binnen de drie seconden (75 frames) verwijderd. ‘Geesten’ zijn stationaire objecten en zouden dus foutief als bagage kunnen aanzien worden.
55
(a) frame 1: druk bevolkte ruimte
(b) frame 100: nog steeds druk bevolkt
(c) frame 239: laatste randeffecten van geesten verdwenen
Figuur 6.2: Doordat de scene drukbevolkt is gedurende de eerste honderd frames kan het achtergrondmodel de werkelijke achtergrond niet leren. Daardoor worden objecten pas volledig goed gedetecteerd na een 239 frames. (Nummers zijn aanduidingen uit de traceerstap.)
56
(a) De zwarte cirkels duiden de geschatte locaties van objecten aan.
(b) Waarneming van de ruimte vanuit camera 3.
Figuur 6.3: Door een te grote afwijking worden twee geprojecteerde punten van hetzelfde object vanuit de verschillende camera’s niet als hetzelfde object aanzien.
niet gedetecteerd valse positieven gemiddelde afwijking (beide gedetecteerd)
eigen methode 4,48 % 1,17 % 23,18 cm 20,40 cm
camera 3 17,59 % 1,64 % 25,51 cm 25,51 cm
Tabel 6.3: Resultaten van de lokalisatie van objecten met de eigen ontwikkelde methode en de methode met ´e´en camera voor camera 3. Camera 3 werd ook gebruikt om de grondwaarheid van de locaties te bepalen. In [9] [10] [11] wordt deze camera gebruikt om de objecten te traceren.
57
Afwijking objectmetingen 90
aantal gevallen binnen elke categorie
80 70 60 50 Eigen methode
40
camera 3 30 20 10 0 5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
afwijking in centimeter
Figuur 6.4: Dit histogram geeft de afwijkingen van de locaties met de manueel geverifieerde locaties weer voor de eigen methode en voor de methode met ´e´en camera (camera 3). De afwijkingen liggen lager bij de eigen methode.
58 Dat er minder objecten niet gedetecteerd zouden worden was vanzelfsprekend. Door meerdere camera’s te gebruiken wordt het effect van occlusie sterk verminderd. Het voordeel van deze methode tegenover een methode die voor elke camera afzonderlijk werkt is dat de gedetecteerde objecten uit de verschillende camera’s geassocieerd worden met elkaar. Hierdoor kunnen de locaties worden uitgemiddeld met een kleinere afwijking tot gevolg. Deze associaties laten bovendien ook toe om in het geval van occlusie in een camera het object verder te volgen in een ander camerabeeld.
6.3 6.3.1
Detecteren van achtergelaten bagage Resultaten
In tabel 6.4 worden de referentiewaarden met de overeenkomstige uitkomsten van het programma op de zeven testsequenties weergegeven. In tabel 6.5 worden deze resultaten samengevat en worden de valse positieven weergegeven. Het blijkt dat ´e´en alarm niet werd gedetecteerd en er zich twee valse alarmen voordeden.
6.3.2
Bespreking
In tabel 6.6 worden de resultaten voor de alarmen bekomen met de eigen methode vergeleken met de state-of-the-art. De ontwikkelde methode blijkt vergelijkbare resultaten te geven. In drie gevallen echter worden er fouten gemaakt. In deze sectie wordt geanalyseerd waarom het in deze gevallen fout gaat, en worden vervolgens mogelijke oplossingen voor het probleem voorgesteld. In tabel 6.7 wordt de afstand gegeven tussen de resultaten bekomen met de detectiemethoden en de referentiewaarden. Dankzij de verbeterde lokalisatiemethode scoort de eigen implementatie hier beter dan de methoden die gebruik maken van ´e´en camera [10] [11], maar ook beter dan de methode die de objecten lokaliseert door overlapping in de projecties. In tabel 6.8 wordt de fout op het alarmtijdstip weergegeven. De gemiddelde waarden van de eigen methoden liggen dicht in de buurt van de bestaande methoden. Met een gemiddelde afwijking van slechts 0,62 seconden heeft dit geen belangrijke impact op de goede werking van het systeem.
Alarm en waarschuwing in scenario 4 worden niet gegeven
In scenario 4 plaatst een
persoon een aktetas op de grond. Een tweede persoon komt praten met de eerste persoon en vervolgens verlaat de eerste persoon de ruimte, terwijl de tweede persoon bij de aktetas blijft staan 6.5. In dit geval is technisch gezien de bagage achtergelaten door de eigenaar. Dit wordt niet gedetecteerd door de ontwikkelde methode omdat de tweede persoon voor occlusie van de bagage zorgt op het moment van achterlaten. Deze persoon beweegt voldoende om niet als bagage aanzien te worden. Binnen de context van het ontwikkelde systeem is het niet mogelijk om deze fout te vermijden.
59
sequentie 1 sequentie 2 sequentie 3 sequentie 4 sequentie 5 sequentie 6
sequentie 7
W A W A W A W A W A W
referentie x y t 0.22 -0.44 2825 0.22 -0.44 2843 0.33 -0.51 2280 0.33 -0.51 2296 — — — — — — 0.24 -0.27 2585 0.24 -0.27 2602 0.34 -0.56 2749 0.34 -0.56 2764 0.80 -0.78 2403
A
0.80
-0.78
2422
W A
0.35 0.35
-0.58 -0.58
2317 2349
x 0.20 0.20 0.26 0.26 0.84 — -9.32 -9.32 0.32 0.32 1,42 0.40 1.42 0.40 0.20 0.20
resultaat y t -0.44 2789 -0.44 2838 -0.40 2279 -0.40 2296 5.78 1704 — — -0.82 1960 -0.82 1965 -0.50 2747 -0.50 2765 2.10 2065 -1,10 2411 2.20 2080 -1,10 2415 -0.46 2274 -0.46 2284
Tabel 6.4: Grondwaarden en resultaten van de herkenning van achtergelaten bagage. In vet is telkens de correcte waarneming aangeduid die overeen komt met de grondwaarde.
W A VW VA
1 1/1 1/1 0 0
2 1/1 1/1 0 0
3 0/0 0/0 1 0
4 0/1 0/1 1 1
5 1/1 1/1 0 0
6 1/1 1/1 1 1
7 1/1 1/1 0 0
TOTAAL 5/6 5/6 3 2
Tabel 6.5: Resultaten van de detectie van achtergelaten bagage. In rij W (waarschuwing) wordt aangeduid hoeveel waarschuwingen correct werden gegeven. In rij A (alarm) wordt aangeduid of hoeveel alarmen correct werden gegeven. In rij VW (valse waarschuwing) wordt het aantal verkeerde waarschuwingen gegeven. In rij VA (vals alarm) worden het aantal foutieve alarmen gegeven.
[8] [9] [10] [11] eigen methode
Scenario alarm vals alarm alarm vals alarm alarm vals alarm alarm vals alarm alarm vals alarm
1 1/1 0 1/1 0 1/1 — 1/1 0 1/1 0
2 1/1 0 1/1 0 1/1 — 1/1 0 1/1 0
3 0/0 0 0/0 0 0/0 — 0/0 0 0/0 0
4 1/1 0 1/1 0 1/1 — 0/1 0 0/1 1
5 1/1 5 1/1 0 1/1 — 1/1 0 1/1 0
6 1/1 0 1/1 0 1/1 — 1/1 0 1/1 (1)
7 1/1 0 0/1 0 1/1 — 1/1 0 1/1 0
TOTAAL 6/6 5 5/6 0 6/6 — 5/6 0 5/6 2 (1)
Tabel 6.6: Vergelijking tussen de alarmen van de ontwikkelde methode en de state-of-the-artmethoden. De eigen methode geeft de alarmen goed aan, zeker gezien het dubieuze geval uit scenario 4 (zie verder), maar heeft te kampen met een twee valse positieven. Andere methoden slagen erin om alle alarmen correct te geven maar hebben ook valse positieven.
60
(a) Persoon 1 heeft de aktetas neergezet
(b) Persoon 2 komt toe en praat met persoon 1
(c) Persoon 1 verlaat de bagage 20 seconden later
Figuur 6.5: Persoon 1 laat een stuk bagage achter, wat niet gedetecteerd wordt door het systeem omdat persoon 2 bij de bagage blijft staan. Of deze aktetas nu achtergelaten is valt niet eenduidig te zeggen. (Nummers zijn aanduidingen uit de traceerstap.)
61 Scenario [8] [10] [11] eigen methode
1 11,8 25,6 16 20,0
2 15,6 31,8 22 13,0
3 — — — —
4 37,7 26,9 — —
5 48,4 43,0 32 6,3
6 10,3 31,8 4 51,2
7 70,9 31,8 19 19,2
GEMIDDELD 32,5 31,6 23,7 22,0
Tabel 6.7: Afwijking van de lokalisatie (in centimeter) van de achtergelaten bagage. De resultaten van de eigen methode geeft het beste resultaat.
Scenario [8] [9] [10] [11] eigen methode
1 +0,0 +0,16 -0,20 -0,78 -0,20
2 +0,2 +0,08 -0,08 -1,08 0,0
3 — — — — —
4 +1,0 -0,36 +0,12 — —
5 +0,2 0,0 +0,28 +0,04 +0,04
6 +2,3 0,0 -4,04 +0,08 -0,28
7 +0,7 — -0.04 -3,56 -2,60
GEMIDDELD 0,73 0,16 0,79 1,11 0,62
Tabel 6.8: Afwijking van het tijdstip (in seconden) waarop het alarm gegeven wordt. Van de stateof-the-artmethoden is [9] is duidelijk de beste. De resultaten van de eigen methode zijn vergelijkbaar met de andere.
De definitie van deze gebeurtenis is redelijk dubieus. Het is perfect mogelijk om de gedragingen van de actoren te verklaren zodat er geen sprake is van achterlaten van bagage. Als de twee personen elkaar kennen, wat aannemelijk is aangezien ze een praatje slaan, kan het zijn dat persoon ´e´en de bagage in bewaring laat bij persoon twee. Men kan zich de vraag stellen of het wel gewenst is om in ieder geval waarbij een persoon zijn bagage in bewaring achterlaat bij een andere persoon een alarm te geven. In de PETS 2006 dataset [6] wordt dit evenwel als achterlating beschouwd.
Vals alarm en waarschuwing in scenario 4 en valse waarschuwing in scenario 3
In
scenario 4 is op de locatie waar het alarm gegeven wordt is op het ogenblik van het alarm geen object te zien (figuur 6.6c). 30 seconden eerder werd gedetecteerd dat een eigenaar drie meter van zijn bagage verwijderd was. De oorzaak van het probleem wordt duidelijk als we op dit ogenblik kijken (figuur 6.6b). De schuifdeur die opengaat om een persoon te laten passeren (figuur 6.6c) wordt door de a/v-segmentatie aanzien als een stationair object en wordt daarom als bagage gedetecteerd. De persoon die door de schuifdeur passeert wordt aanzien als de eigenaar. Hetzelfde probleem doet zich voor bij de valse waarschuwing in scenario 3. Om deze fout te elimineren zijn een aantal aanpassingen mogelijk: • Classificatie van bagage op grootte. In de meeste gevallen zal de grootte van bagage kleiner zijn dan de grootte van een persoon. Door naast de mobiliteit van een object te kijken naar zijn grootte zullen grote objecten, zoals de gedetecteerde open deur, niet langer als bagage geclassificeerd worden. Dit kan echter voor problemen zorgen bij grote stukken bagage zoals in scenario 5 (figuur 6.7).
62
(a) Persoon passeert door schuifdeur.
(b) Persoon is drie meter van de schuifdeur verwijderd.
(c) Alarm wordt na 30 seconden gegeven.
Figuur 6.6: De schuifdeur gaat open om een personeelslid door te laten. Doordat dit een verandering ten opzichte van het achtergrondmodel geeft wordt de open deur als object aanzien. Hierdoor wordt een vals alarm gegeven. (Nummers zijn aanduidingen uit de traceerstap.)
63
Figuur 6.7: Een stuk skimateriaal wordt achtergelaten. Een regel die zegt dat bagage kleiner moet zijn dan de eigenaar zou hier leiden tot een niet gedetecteerd alarm. (Nummers zijn aanduidingen uit de traceerstap.)
• Ontstaan van objecten elimineren. Een object dat voor het eerst gedetecteerd wordt en niet raakt aan een van de zijden van het camerabeeld is geen fysiek object. Iets kan immers niet uit het niets ontstaan. Dit veronderstelt een zeer goede werking van het objectdetectiesysteem dat geen enkel object mist op het ogenblik dat het de ruimte binnenkomt. Bij de initialisatie kunnen er bovendien objecten aanwezig zijn in de ruimte die dus zullen worden gemist, en tot slot kan het openen van een schuifdeur ook rakend aan de rand van een camerabeeld voorkomen.
Vals alarm en waarschuwing in scenario 6
Op de locatie waar het alarm gegeven wordt
is op het ogenblik van het alarm wel een stuk bagage te zien (figuur 6.8). De detectie gebeurt echter meer dan 10 seconden te vroeg. Op het ogenblik dat de ‘eigenaar’ op drie meter van zijn ‘bagage’ gedetecteerd wordt blijkt de ‘bagage’ twee personen te zijn. Doordat ze quasi stilstaan worden ze initieel als bagage geclassificeerd. Wanneer ze later hun bagage achterlaten splitst het object dat hen voorstelt op en verdwijnt. De locatie ervan wordt hierdoor niet meer ge¨ updatet en blijft dus als bagage aanzien worden. Met deze gebeurtenissen werd geen rekening gehouden bij het ontwerp van het systeem. De oplossing bestaat er eenvoudigweg in om een als bagage geclassificeerd object niet langer als bagage te aanzien wanneer het opsplitst. Na het invoeren van deze extra regel kon deze valse positieve worden weggewerkt.
64
(a) De persoon met de tas is 3 meter verwijderd van de andere personen.
(b) De twee personen vertrekken en laten hun bagage achter. Dit zorgt voor een splitsing van een object, waardoor het oude niet langer gevonden wordt
(c) 30 seconden later wordt een alarm gegeven op de plaats waar de twee personen stonden. Hier ligt nu de bagage die zij achterlieten.
Figuur 6.8: Een persoon verlaat twee andere personen en veroorzaakt een vals alarm. Doordat het object dat volgens het systeem achtergelaten werd splitst, verdwijnt het en wordt zijn locatie niet meer ge¨ updatet. Ook de associaties zullen in dit geval verdwijnen omdat er zich in elke camera een splitsing voordoet. Daardoor wordt een vals alarm gegenereerd. (Nummers zijn aanduidingen uit de traceerstap.)
Hoofdstuk 7
Besluit In deze masterproef werd een nieuwe methode ontworpen voor het detecteren van achtergelaten bagage. Deze methode bestaat uit drie stappen: objecten detecteren, objecten traceren en gebeurtenissen herkennen. De methode is gebaseerd op bestaande methoden die ´e´en camera gebruiken en werd uitgebreid door meerdere camera’s te gebruiken, deze segmenteren de camerabeelden in voor- en achtergrond, groeperen deze segmenten in voorgrondobjecten die ze vervolgens traceren. De trajecten van objecten uit de verschillende camera’s werden gecombineerd om ten eerste een betere lokalisatie van de objecten te bekomen en ten tweede beter om te kunnen gaan met occlusie. Met deze methode werd getracht een volledigere detectie van objecten te bekomen zonder daarbij meer valse positieven te krijgen. Vervolgens wordt aan de hand van deze trajecten bepaal welke objecten bagage zijn, welke objecten de eigenaars en ten slotte wanneer deze bagage wordt achtergelaten. De resultaten van deze nieuwe methode zorgen ervoor dat de lokalisatie van objecten ten opzichte van de methode gebruik makende van ´e´en camera duidelijk beter is. Enerzijds zijn er vier keer minder objecten die niet gedetecteerd werden terwijl anderzijds ook het aantal valse positieven daalde. De detectieratio verbetert omdat er met meerdere camera’s minder invloed van occlusie is waardoor meer objecten gedetecteerd worden. Het aantal valse positieven daalt omdat een detectie pas als object wordt aangegeven als die locatie door minstens twee camera’s als voorgrond geklasseerd wordt. Ook de lokalisatie van de resterende objecten is 20% nauwkeuriger doordat de locatie wordt uitgemiddeld met de resultaten van meerdere camera’s. Dankzij deze nieuwe methode kunnen ook objecten die in een camera niet meer zichtbaar zijn door occlusie verder gevolgd worden als ze zichtbaar zijn in een andere camera. Doordat de objecten uit de verschillende camera’s in vorige stappen geassocieerd werden om de locatie te bepalen is nu geweten welke objecten in de ene camera overeen komen met de objecten in de andere camera, en kunnen de objecten tijdens occlusie toch gevolgd worden. De uiteindelijke resultaten van het detecteren van achtergelaten bagage tonen aan dat er nog wat plaats is voor verbetering. In vijf van de zes gevallen werd het achterlaten van bagage correct gedetecteerd en er waren twee valse alarmen. Dit sluit is iets minder goed dan de beste state-ofthe-artmethoden. De lokalisatie van de achtergelaten bagage bleek wel 5 tot 35% nauwkeuriger 65
66 dan de bestaande methoden. De tijdsnauwkeurigheid blijft met een gemiddelde afwijking van 0,6 seconden dicht bij het gemiddelde van de state-of-the-artmethoden. Het ontwikkelde systeem blijkt behoorlijk te werken. De valse alarmen blijken na analyse van de oorzaak deels verholpen te kunnen worden door te eisen dat bagage als voorgrond gedetecteerd blijft tot het ogenblik van het alarm, wat wel een tragere leerfactor met bijbehorende negatieve gevolgen vereist, en striktere voorwaarden voor objecten om als bagage gedetecteerd te worden. Dit houdt wel het risico in dat andere alarmen niet langer gedetecteerd zullen worden. De ontwikkelde techniek voor het traceren van objecten met behulp van meerdere camera’s zou verder uitgewerkt kunnen worden. Het huidige systeem helpt in geval van occlusie enkel om de locatie van het object te detecteren tijdens de occlusie. Om te beslissen welke detectie na de occlusie het object voorstelt wordt enkel gebruik gemaakt van de eigenschappen van die het object in een camerabeeld heeft. In verder onderzoek kan het interessant zijn om te kijken of de associatie tussen objecten gedetecteerd vanuit verschillende camera’s feedback kan geven naar de traceermodules van de camera’s.
Bibliografie [1] “EU Terrorism Situation and Trend Report.” http://www.consilium.europa.eu/uedocs/ cmsUpload/TE-SAT [2] “Country reports on terrorism.” http://www.state.gov/documents/organization/141114.pdf, 2009. [3] Y. K. Melanie Lidman, “Woman killed, dozens hurt in jerusalem bombing,” March 2011. [4] S. Frost, “Research:
Security concerns underpin growing investment in cctv across
europe.” http://www.securityinfowatch.com/Dealers/research-security-concerns-underpingrowing-investment-cctv-across-europe, 2009. [5] “Tweeduizendste bewakingscamera in de stations ingewijd in doornik.” http://www.brail.be/php/press/index.php?lang=Ntask=viewid=1919, November 2009. [6] J. L. C. James Ferryman, “Performance evaluation of tracking and surveillance.” http://www.cvg.rdg.ac.uk/PETS2006/, 2000. [7] B. S. G. R. Dejan Ars´ıc, Martin Hofmann, “Multi-camera person tracking and left luggage detection applying homographic transformation,” 2008. [8] E. Auvinet, E. Grossmann, C. Rougier, M. Dahmane, and J. Meunier, “Left-luggage detection using homographies and simple heuristics,” in Proc. IEEE Workshop on Performance Evaluation in Surveillance and Tracking, 2006. [9] S. Kwak, G. Bae, and H. Byun, “Abandoned luggage detection using a finite state automaton in surveillance video,” Optical Engineering, vol. 49, pp. 027007–+, Feb. 2010. [10] F. Lv, X. Song, B. Wu, V. Kumar, and S. R. Nevatia, “Left luggage detection using bayesian inference,” in In PETS, 2006. [11] K. Smith, P. Quelhas, and D. Gatica-perez, “Detecting abandoned luggage items in a public space,” in in PETS, 2006, pp. 75–82. [12] C. Stauffer and W. E. L. Grimson, “Adaptive background mixture models for real-time tracking.,” in CVPR’99, pp. 2246–2252, 1999. [13] P. Kaewtrakulpong and R. Bowden, “An improved adaptive background mixture model for realtime tracking with shadow detection,” 2001. 67
68 [14] Z. Zivkovic and F. van der Heijden, “Efficient adaptive density estimation per image pixel for the task of background subtraction,” Pattern Recogn. Lett., vol. 27, pp. 773–780, May 2006. [15] T. Horprasert, D. Harwood, and L. S. Davis, “A robust background subtraction and shadow detection,” in In Proceedings of the Asian Conference on Computer Vision, 2000. [16] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detection with discriminatively trained part-based models,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 32, pp. 1627–1645, 2010. [17] P. Viola and M. Jones, “Rapid object detection using a boosted cascade of simple features,” Computer Vision and Pattern Recognition, IEEE Computer Society Conference on, vol. 1, p. 511, 2001. [18] A. Senior, “Tracking people with probabilistic appearance models,” 2002. [19] R. Tsai, “An efficient and accurate camera calibration technique for 3d machine vision,” in Computer Vision and Pattern Recognition, 1986. [20] R. D. Pedram Azad, Tilo Gockel, Computer Vision, Principles and Practice, ch. 2.9 Homography, B. mathematics, pp. 131–136, 292–293. 2008. [21] G. Bradski, “The OpenCV Library,” Dr. Dobb’s Journal of Software Tools, 2000. [22] D. Doermann and D. Mihalcik, “Tools and techniques for video performance evaluation,” Pattern Recognition, International Conference on, vol. 4, p. 4167, 2000.