Second progress presentation


Vegard Bergsvik Øvstegård

Fri - 16 Oct 2020



Days until delivery: 214 days

GIL-UAV

GPS-Independent Localization for UAVs

System diagram
System diagram

Framework simulation

Status from previous progress presentation

Task Progress
In progress:
1. Create U-net (PyTorch, multi-GPU)
2. Acquire & improve Dataset
To do:
3. Train the U-net
4. Code dataset-producing software
5. Get drone footage
6. Implement framework(C++, SIMD, CUDA)
Completed
Implement naive MCL algorithm (Python)
Get hardware (nVIDIA Jetson TX1)

Updated tasks

Task Progress
1. Create U-net (PyTorch, multi-GPU)
2. Acquire & improve Dataset
3. Train the U-net

Create U-net (PyTorch, multi-GPU)

  • Base model and framework implemented with PyTorch and PyTorch Ignite
  • Features:
    • Gradient clipping
    • Gradient accumulation
    • Early stopping
    • Metrics
    • Distributed data parallel(DDP)
    • Multi GPU training
    • Training notification(Discord)
    • Learning rate scheduler (ReduceLROnPlateau)
    • Rescaling of images.

Create U-net (PyTorch, multi-GPU)

  • Features:
    • Data augmentation for training(All are random to some degree):
      • Contrast
      • Brightness
      • Saturation
      • Noise; Gaussian, Salt & Pepper, Poission, Speckle.
      • Rotations(
        $$n*\frac{pi}{2}$$
        )
      • Vertical and Horisontal flips.

Acquire & improve Dataset

  • Extracted larger aerial photographs from existing data, of which will aid in expanding the dataset by several images.
  • Fine-tuned the ground truth segmentation images as they where not overlapping buildings enough.
  • Have finally gotten access to Kartverkets database: Kartverket meme

Acquire & improve Dataset

Resultsnotes:

  • Ground truth is far from perfect even after fine-tuning. This does yield noise in the dataset, witch may lead to the following cases:
    1. NEGATIVE: Learning gets corrupted and a suitable global optimum may never occur.
    2. POSITIVE: Noise may induce better generalization for the network.
      • Real life scenarios contain occlusions in the images, and network may learn to draw buildings as squares despite say occluding trees.

Train the U-net

  • Attained several good preliminary results despite the network not being tuned and with a lacking dataset.
  • Somewhat sceptical to the results. Test and validation data is completely separate, but they are very similar. I assume images from example drone-footage will not be as good.
  • Results look like overfitting, but no indications of it from metrics.

Train the U-net

U-net preliminary results Segmented buildings masked in white to the right.

Train the U-net

U-net preliminary results Ground truth left and prediction right.

Train the U-net

U-net preliminary results

Training rounds left, validation rounds right.
No indications of overfitting. Light blue had learning-rate of 0.001. Metric is Binary Cross Entropy with Logits(BCEWithLogitsLoss).

Train the U-net

Resultsnotes:

  • Results appear to be overfitting, however without indications in metrics.
  • Image resolution plays a big part, 512x512px images gave far better results then 256x256px.
    • I am considering increasing image size further, how ever this will affect batch-size and memory usage on GPUs.
  • To much variation and randomness in data augmentation is disruptive for training. I.e to much noise results in no training(Duh).
  • Considering adding elastic transformations to data-augmentation as not all buildings are square.
  • Also considering adding grayscale transformations as the network appears to find red-bricked roof-tops much faster than any other. This might aid in a better global optimum.

Current status and progress

Task Progress
In progress:
1. Tune the U-net**
2. Acquire & improve Dataset*
3. Train the U-net*
To do:
4. Code dataset-producing software
5. Get drone footage
6. Implement framework(C++, SIMD, CUDA)
Completed
Create U-net (PyTorch, multi-GPU)*

Updated tasks* New tasks**

Completed tasks

  • Create U-net (PyTorch, multi-GPU)
  • Implement naive MCL algorithm (Python)
  • Get hardware (nVIDIA Jetson TX1)

Plan for the next fortnight:



Week 43 Week 44
Tune and train the U-net Tune and train the U-net
Acquire & improve Dataset Get drone footage
Update master thesis with current results and findings Create orthophoto maps from drone-footage

Print

Back