SITA

Processen op luchthavens worden steeds verder geautomatiseerd ten behoeve van de efficiëntie en het gemak voor passagiers en personeel. Sita is een bedrijf dat airport solutions aanbiedt waaronder hun BagDrop systeem voor het inchecken van bagage. Zie ook https://www.sita.aero/solutions-and-services/solutions/sita-smart-path-bag-drop

 

Het probleem: overbodig personeel ter controle self check-in

Er is personeel nodig ter controle van wat men probeert in te checken bij self check-in machines. Het kan zijn dat men probeert voorwerpen in te checken die op de conveyor belts vast komen te zitten, of die kunnen omvallen. Denk aan voorwerpen zoals rugzakken met straps en bijvoorbeeld buggy’s. Items die niet worden herkend zorgen voor storingen in het systeem en dus voor vertragingen.

 

De uitdaging: automatisch herkennen van non-conveyable items

De uitdaging zat hem vooral in het ontwikkelen van een algoritme die lage resolutie 3D beelden in de vorm van point clouds kon analyzeren. Het algoritme moet in staat zijn om allerlei soorten objecten er uit te kunnen filteren en vervolgens ook controleren of men de instructies heeft opgevolgd en het voorwerp eventueel in een bak heeft gelegd. Ook ronde- en cylindervormige objecten moeten er uit gefilterd worden, eveneens rechtopstaande voorwerpen of wanneer men meer dan 1 voorwerp tegelijk probeert in te checken. Zie hieronder een voorbeeld van een point cloud file waar wij analyses voor hebben moeten schrijven.

 

 

 

De oplossing middels beeldanalyse

Dankzij ons creatief gebruik van statistische technieken zijn we er in eerste instantie in geslaagd de tubs (bakken) te herkennen in een point-cloud file. Dat was onze eerste opdracht. Dit heben we bereikt door een "gemiddeld" beeld te maken van een bak via een reeks filter functions. Vervolgens gebruikte we deze filter functions op nieuwe scans en middels een composiete cost-function bepaald het algoritme vervolgens hoe goed deze gefilterde scan zich kan plaatsen in de "gemiddelde" bak. Op deze manier is het ons gelukt om 98% van alle bakken te herkennen. Niet slecht, aangezien de requirement 90% was. De grootste uitdaging was alsnog dat de voorwerpen met een bepaalde snelheid door de SIC scanner werden getrokken waardoor de voor- en achterrand van de tubs niet gescanned werden.

Vervolgens moesten we de non-conveyable items er zoveel mogelijk uit filteren. Het ging hierbij om koffers die rechtop stonden, meer dan 1 voorwerp tegelijk (ook al stonden ze tegen elkaar aan), ronde of cylindervormige objecten en ook objecten met grote straps zoals rugtassen. Deze laatste moesten indien mogelijk in een bak worden geplaatst. Voor het detecteren van rugtassen met straps hebben we wederom meerdere statistische en numerieke methodes gebruikt om ons algoritme te leren wat het verschil is tussen een kist en een octopus. Hiertoe hebben wij een volume distributie functie geschreven die de volume distributie analyseert in meerdere richtingen en een reeks parameters geidentificeerd waarop een computer kan herkennen dat het hier niet om een koffer gaat, maar om een rugtas met straps. Ook was het in staat om koppers met grote labels te onderscheiden van rugtassen met straps. Voor de ronde, cylindervormige en rechtopstaande objecten hebben we vrij eenvoudige functies geschreven. Een andere uitdaging was de "multiple objects detection", vooral wanneer de objecten tegen elkaar aan stonden in een "V" opstelling. Ook dit is uiteindelijk gelukt dankzij het creatief gebruik van wiskunde en numerieke methoden.

Tags

C++, Python, OpenCV, PCL, Point Cloud Library, Wiskunde, Statistiek, Algoritmes

Mijn digitaal profiel

Download mijn CV, whitepaper en voorbeeldprojecten in een makkelijk printbare PDF


Download