Added implementation information for SSD

Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
Jim Martens 2019-08-05 18:48:26 +02:00
parent d354b923e0
commit b77a2f6789
1 changed files with 16 additions and 10 deletions

View File

@ -687,23 +687,29 @@ were made. Miller et al. used weights that were trained on MS COCO
to predict on SceneNet RGB-D.
As the source code was not available, I had to implement Miller's
work myself. For the SSD network I used an implementation that
is compatible with Tensorflow; this implementation had to be
work myself. For the SSD network, I used an implementation that
is compatible with
Tensorflow\footnote{\url{https://github.com/pierluigiferrari/ssd\_keras}}; this implementation had to be
changed to work with eager mode. Further changes were made to
support entropy thresholding.
For the Bayesian variant, observations have to be calculated:
detections of multiple forward passes for the same image are averaged
into an observation. This algorithm was implemented based on the
information available in the paper.
information available in the paper. Beyond the observation
calculation, the Bayesian variant can use the same code as the
vanilla version with one exception: the model had to be duplicated
and two dropout layers added to transform SSD into a Bayesian
network.
To better understand the SceneNet RGB-D data set, I counted the
number of instances per COCO class and a huge class imbalance was
visible; not just globally but also between trajectories: some
classes are only present in some trajectories. This makes training
with SSD on SceneNet practically impossible.
I tried to finetune the SSD on SceneNet because the
pre-trained weights did not produce detection results.
The vanilla SSD did not provide meaningful detections on SceneNet
RGB-D with the pre-trained weights and fine-tuning it on SceneNet
did not work either. Therefore, to better understand the SceneNet
RGB-D data set, I counted the number of instances per COCO class and
a huge class imbalance was visible; not just globally but also
between trajectories: some classes are only present in some
trajectories. This makes training with SSD on SceneNet practically
impossible.
\section{Implementing an auto-encoder}