[[searchwing-bilderkennung]]

This is an old revision of the document!


Image-Processing

By analysing the image with we receive from the camera, we can detect boats on the sea. To achieve this, different algorithms and approaches from the image processing and deep learning domain can be used.

Features
Bootdetektion / Bilderkennung
Erkennung von beliebigen Objekten im Wasser
Klassische Bildverarbeitung
RGB → HSV → Sobel-Kantendetektion je Kanal → Addition → Konturen/Boundingboxes
Bestimmung der genauen 3D Position der Objekte mittels kalibrierter Kamera
Code für ARM Platform optimiert
Laufzeit: 0,8 sek @ 8 MegaPixel(3240×2480 Pixel) @ Raspberry Pi 3
Tracking
Wiedererkennung der Boote über mehrere Bilder
Dadurch kann sich ein genaueres Lagebild geschaffen werden
Falsch-Positiv Detektionen werden verringert
Speicherung
Abspeicherung der Detektionen als Bilddaten auf dem Flieger
GPS Positionsangabe im Bild als EXIF Datenblock
Verwendete Software
ROS
Kommunikation zwischen den einzelnen Modulen
Koordinatensystemtransformationen
Aufnahme und abspielen von Flugdaten
Visualisierung der Detektionsergebnisse
MAVROS
Zur Kommunikation mit der Fliegerhardware via MAVLINK
OpenCV
Implementierung der Bootdetektion
ARM Compute Library
Alternative für ARM optimierte Implementierung der Bootdetektion
Ausblick
Deep Learning basierte Objekterkennung
Testen verschiedener Ansätze
Laufzeitevaluation auf den embedded Systemen
Programmierung von Interfaces für die Übertragung der Detektionen mittels MAVLINK zur Basisstation

Features

Assumptions

* Proposal / boat detector
 <code>
  * Detection of randomly looking objects in the water
    * Classical image processing ( no deep learning)
    * Processing chain depicted in the image
    * There false positives after inital detection
  * Calculation of the 3D Position of the Objects
    * In world coordinates
    * By using a camera calibration
  * Code optimized for ARM Platforms
    * By using ARM related flags for OpenCV
    * Alternative: Compute Library for even faster processing
  * Runtime
    * 0,8 sec @ 8 MegaPixel(3240x2480 Pixel) @ Raspberry Pi 3

</code>

* Tracking
 <code>
  * Redetect boats in consecutive frames
    * Get more information/images about the same boats
    * Reduce false-positive rate
      * Valid detections only if we redetect the same boat
      *
  * Algorithms
    * Association Problem
      * Euclidean distance based cost matrix between each possible track and detection
      * Solve 1-1 assignement problem by using Hungarian Algorithm
    * Tracking
      * Different trackingmodels possible
        * Constant position
        * Kalman constant position
        * Kalman constant velocity
    *

</code>

  • *
  • *

I composed a few images to train a Haar Cascade Classifier. The code is over here:

https://git.etech.fh-augsburg.de/friedrich.beckmann/bilderkennung

Die Bilderkennung markiert in dem Bild mögliche Boote. Das sieht dann so aus:

Bilderkennung Beispiel

Und in der Vergrößerung so:

Bilderkennung Beispiel Detail

In diesem Beispiel wird das zweite Boot mit der blauen Persenning nicht erkannt. Das Boot darüber ist mit dem blauen Rechteck markiert.


  • searchwing-bilderkennung.1559251070.txt.gz
  • Last modified: 2019/05/30 23:17
  • by wf68spef