Botsingsdetectie: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
(Created page with 'De drone is verantwoordelijk voor het detecteren van de robots, en analyseren of ze een overtreding begaan. De bewegende beelden van de camera onder de drone bevatten veel signal…')
 
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
De drone is verantwoordelijk voor het detecteren van de robots, en analyseren of ze een overtreding begaan. De bewegende beelden van de camera onder de drone bevatten veel signalen en zodoende veel ruis.
De drone is verantwoordelijk voor het detecteren van de robots, en analyseren of ze een overtreding begaan.  
 
== definitie botsing ==
Om over een daadwerkelijke overtreding, in dit geval botsing, te spreken, moet eerst de definitie ervan geformaliseerd worden. <br>
 
De robots hebben een maximale versnelling. Bij een botsing wordt er een impuls doorgegeven, die zorgt voor een hoge, plotselinge versnelling. <br>
Deze versnelling ligt hoger dan de robot's maximale versnelling. Als dit per frame bij wordt gehouden dan is dit een grote richtlijn.<br>
 
Wat daar verder bij komt kijken is de manier van contact tussen robots. De meest duidelijke situatie is wanneer een van de robots stilstaat. <br>
Lastiger wordt het als er een botsing plaatsvindt waarin beide partijen een initiële snelheid hebben.
 
Een lastig punt blijft echter de interpretatie van een botsing en de juiste beslissing nemen. Zelfs voor een getrainde scheids en robotscheids is dit <br>
een lastig karwei. Het is mogelijk een soort AI in te bouwen, en die te laten leren van echte spelmomenten. Natuurlijk vereist dit maanden van verfijning <br>
om de robotscheidsrechter nauwkeurig te laten functioneren.
 
== Analysemethode ==
 
Er wordt gebruik gemaakt van kleurdetectie op de turtles. Het 'rugnummer' (nr 5, zie hieronder) van de robot heeft een bepaalde kleur, zodat deze als robot gezien wordt en in een team ingedeeld kan worden. <br>
Verder wordt de huidige en vorige positie per frame berekend, waardoor een richtingsvector opgesteld kan worden. Als deze richting ver afwijkt van de vorige richting, <br>
dan is er een botsing opgetreden. Nogmaals, is deze methode onnauwkeurig en toegankelijk voor fouten.
 
[[File:turtle.jpg]]
 
=== Kalman Filter ===
 
De bewegende beelden van de camera onder de drone bevatten veel signalen en zodoende veel ruis.
Om het juiste eruit te filteren, de bewegende robots, wordt een Kalman-filter gebruikt. De Kalman-filter is een methode om de ruis uit meetgegevens te verwijderen. De Kalman-filter gaat uit van een proces dat wiskundig te modelleren is. De uitkomst van het model voorspelt de te bepalen waarde op elk gewenst moment. De daadwerkelijke meting wordt met de voorspelde waarde verrekend tot een gewogen gemiddelde. Deze uitkomst is de gefilterde waarde en wordt meteen ook gebruikt om het procesmodel aan te passen.
Om het juiste eruit te filteren, de bewegende robots, wordt een Kalman-filter gebruikt. De Kalman-filter is een methode om de ruis uit meetgegevens te verwijderen. De Kalman-filter gaat uit van een proces dat wiskundig te modelleren is. De uitkomst van het model voorspelt de te bepalen waarde op elk gewenst moment. De daadwerkelijke meting wordt met de voorspelde waarde verrekend tot een gewogen gemiddelde. Deze uitkomst is de gefilterde waarde en wordt meteen ook gebruikt om het procesmodel aan te passen.


Tot op heden is het mogelijk objecten te detecteren. Het MatLab script berekent de verwachte richting. Hier kan dus al een richtingsvector aan verbonden worden. <br>
== Botsing ==
Dit geeft een opzet naar de snelheidsvectoren en het vergelijken van opeenvolgende vectoren. Als hier een grote sprong in zit, dan kan het zjin dat er een botsing is.
 
Om de botsingsdetectie te coderen worden in Matlab een aantal stappen genomen, die in het script zelf (m.b.v. comments) dieper uitgelegd worden. <br>
Om tot een daadwerkelijke oplossing te komen zijn de volgende 'ingredienten' nodig <br>
 
# Een lege track maken om alle eigenschappen bij te houden. Denk aan ID, 'leeftijd', frames zichtbaar of onzichtbaar.
# Lees het frame
# Detecteer objecten in beeld met behulp van kleur en beweging
# Voorspel de volgende positie van het object
# Geef detectie aan voor de tracks
# Update de gedetecteerde tracks
# Maak nieuwe tracks als er een ongelabeld object in beeld komt
# Geef de tracking resutaten weer
# Sla de vorige locatie op van de objecten
# Check of er een botsing opgetreden is
 
Uiteindelijk leidt dit tot het volgende resultaat.<br>
[[File:collisiondetection.gif]] <br>
Het is echter nog niet mogelijk dit met een livestream aan input video te doen. <br>
 
=== Matlab Script ===
 
Alles is geanalyseerd in Matlab. Het script is op de volgende pagina te vinden: [[Matlabscript Botsingsdetectie]]
 
 
----


vooralsnog is het erg ruw in het detecteren van objecten, maar dit kan nog verbeterd worden met een blobanalyse en morphologie.
Terug naar: [[PRE2015_2_Groep2]]

Latest revision as of 17:54, 13 January 2016

De drone is verantwoordelijk voor het detecteren van de robots, en analyseren of ze een overtreding begaan.

definitie botsing

Om over een daadwerkelijke overtreding, in dit geval botsing, te spreken, moet eerst de definitie ervan geformaliseerd worden.

De robots hebben een maximale versnelling. Bij een botsing wordt er een impuls doorgegeven, die zorgt voor een hoge, plotselinge versnelling.
Deze versnelling ligt hoger dan de robot's maximale versnelling. Als dit per frame bij wordt gehouden dan is dit een grote richtlijn.

Wat daar verder bij komt kijken is de manier van contact tussen robots. De meest duidelijke situatie is wanneer een van de robots stilstaat.
Lastiger wordt het als er een botsing plaatsvindt waarin beide partijen een initiële snelheid hebben.

Een lastig punt blijft echter de interpretatie van een botsing en de juiste beslissing nemen. Zelfs voor een getrainde scheids en robotscheids is dit
een lastig karwei. Het is mogelijk een soort AI in te bouwen, en die te laten leren van echte spelmomenten. Natuurlijk vereist dit maanden van verfijning
om de robotscheidsrechter nauwkeurig te laten functioneren.

Analysemethode

Er wordt gebruik gemaakt van kleurdetectie op de turtles. Het 'rugnummer' (nr 5, zie hieronder) van de robot heeft een bepaalde kleur, zodat deze als robot gezien wordt en in een team ingedeeld kan worden.
Verder wordt de huidige en vorige positie per frame berekend, waardoor een richtingsvector opgesteld kan worden. Als deze richting ver afwijkt van de vorige richting,
dan is er een botsing opgetreden. Nogmaals, is deze methode onnauwkeurig en toegankelijk voor fouten.

Turtle.jpg

Kalman Filter

De bewegende beelden van de camera onder de drone bevatten veel signalen en zodoende veel ruis. Om het juiste eruit te filteren, de bewegende robots, wordt een Kalman-filter gebruikt. De Kalman-filter is een methode om de ruis uit meetgegevens te verwijderen. De Kalman-filter gaat uit van een proces dat wiskundig te modelleren is. De uitkomst van het model voorspelt de te bepalen waarde op elk gewenst moment. De daadwerkelijke meting wordt met de voorspelde waarde verrekend tot een gewogen gemiddelde. Deze uitkomst is de gefilterde waarde en wordt meteen ook gebruikt om het procesmodel aan te passen.

Botsing

Om de botsingsdetectie te coderen worden in Matlab een aantal stappen genomen, die in het script zelf (m.b.v. comments) dieper uitgelegd worden.
Om tot een daadwerkelijke oplossing te komen zijn de volgende 'ingredienten' nodig

  1. Een lege track maken om alle eigenschappen bij te houden. Denk aan ID, 'leeftijd', frames zichtbaar of onzichtbaar.
  2. Lees het frame
  3. Detecteer objecten in beeld met behulp van kleur en beweging
  4. Voorspel de volgende positie van het object
  5. Geef detectie aan voor de tracks
  6. Update de gedetecteerde tracks
  7. Maak nieuwe tracks als er een ongelabeld object in beeld komt
  8. Geef de tracking resutaten weer
  9. Sla de vorige locatie op van de objecten
  10. Check of er een botsing opgetreden is

Uiteindelijk leidt dit tot het volgende resultaat.
Collisiondetection.gif
Het is echter nog niet mogelijk dit met een livestream aan input video te doen.

Matlab Script

Alles is geanalyseerd in Matlab. Het script is op de volgende pagina te vinden: Matlabscript Botsingsdetectie



Terug naar: PRE2015_2_Groep2