I trained two custom datasets with ssd object detection model using mobilenetv1 backbone in tlt with original parameters in the tlt document (I use this tlt image version: tlt-streamanalytics:v2.0_py3).
the mAP results of my training are as below (after 100 epochs):
- first dataset with 2 classes and 7851 images, the mAP result reached to %80.
- second dataset with 1 class and 14500 images, the mAP result reached %83.
for improving the results I did some preprocessing on images :
a) I extracted the aspect ratio of boxes to set the aspect_ratios_global property in ssd_config file
b) and among different dimension of my images, I extracted the frequency size of my images
for 1st dataset most of my images are 1070 * 600 so I resized all images
to this size.
for 2nd dataset most of them are 224 * 224 then I resized my images to
and also changed these following parameters of ssd_config file:
d. number of epochs
e. number of batch
f. zoom_min, zoom_max in spatial_augmentation
g. and regularizer type(L1, L2).
(it should be mentioned I don’t want to change the mv1 backbone).
but with these custom parameters, the mAP result decreased instead of improving.
the best results are obtained when I resized my images to the original size mentioned in tlt : 1248 * 384, with original parameters in tlt config file.
why the results do not improve by changing the parameters of config file which are more adaptable than original parameter values?
why the original config file of ssd caused better results in both datasets?
I trained these 2 datasets with TensorFlow for 1st the mAP is %86 but tlt mAP is %80,
for 2nd dataset mAP of TensorFlow is %89 but tlt mAP is %83.