From camera we get only compressed images, what can cause bad keypoints detection, matching and most important bad track reconstruction. Task was to discover and compare different neural networks that can restore image. Most chalenging is to create suitable metric for comparing results.
-
python
-
opencv
-
colmap
-
ground truth
-
compressed
-
restored:
results_ARCNN: https://github.com/hkchengrex/PyTorch-ARCNN
results_FBCNN: https://github.com/cszn/DnCNN
results_DNCNN: https://github.com/jiaxi-jiang/FBCNN
- SSIM, PSNR, PSNR-B:
(not horizontal lines means not correct matching)
(optical flow)
Seeing bad results on classic matching algorithms, we decided to use coordinates matchings: match only keypoints that located in 1 pixel radius from another keypoint.
- SIFT-coord
ARCNN mean value: 0.482
DNCNN mean value: 0.4975
FBCNN mean value: 0.5073
- SUPERPOINT-coord
ARCNN mean value: 0.1773
DNCNN mean value: 0.1875
FBCNN mean value: 0.2046
metrics from COLMAP:
-
mean track length
-
mean reprojection error
-
focal length in comparison with ground truth camera params
-
radial distortion in comparison with ground truth camera params