第27名方案:Public LB 0.823 - Private LB 0.828
第27名方案:Public LB 0.823 - Private LB 0.828
作者:Artem Ermolaev
比赛排名:第27名
感谢主办方举办这次比赛,也祝贺所有参赛者。
总结
我的最终解决方案是多个模型的组合:
- 3 个 LoFTR 模型 (分辨率分别为 472x840, 704x1280, 936x1704)
- SuperGlue + SuperPoint (分辨率 472x854,最大关键点数 4096)
- DKM (分辨率 472x854) 包含 600 个特征点
在合并所有关键点以寻找基础矩阵之前,我通过应用阈值为 0.5 的 DEGENSAC 预过滤了 DKM 的异常值。
最终的 RANSAC 参数如下:
cv2.findFundamentalMat(keypoints_1, keypoints_2, cv2.USAC_MAGSAC, ransacReprojThreshold=0.25, confidence=0.99999, maxIters=50000)
对分数有巨大影响的技巧:
- 对 LoFTR 的输入图像进行放大,并使分辨率能被 8 整除。
- 更改 DKM 的默认图像分辨率。
- 在最终的基础矩阵估计之前,过滤掉 DKM 的异常值。
- RANSAC 参数调优。
- 模型集成。
对我无效的尝试:
- HardNet, Hynet, SosNet
- R2D2, DISK
- OANet
- SGMNet (https://github.com/vdvchen/SGMNet)
- LISRD (https://github.com/rpautrat/LISRD)
- Patch2pix (https://github.com/GrumpyZhou/patch2pix)
- 使用在 MIT ADE20K 场景解析数据集上预训练的模型分割出不稳定的类别(如行人、汽车、天空等)(https://github.com/CSAILVision/semantic-segmentation-pytorch)
- 其他类型的 RANSAC(如 GC-RANSAC, DEGENSAC 等)