对于一些学有所成的高手乃至大牛,参加Kaggle也常常会获得很多启发,与来着世界各地的队伍进行厮杀的刺激更让人欲罢不能。今天我们对kaggle学术活动题目-鲸鱼和海豚识别解析一番。
比赛题目:Happywhale - 鲸鱼和海豚识别
比赛链接:https://www.kaggle.com/c/happy-whale-and-dolphin/
比赛类型:CV、细粒度分类
常规思路现有比赛的思路如下,主要是图像分类中度量损失来开展。分为训练和预测两部分,使用CNN相似度来搜索。
训练部分使用已有训练标签进行训练,训练好的模型在测试阶段通过提取特征,然后计算相似度。关键点匹配思路在图像识别中关键点也可以充当重要的作用,因为本次赛题是实体识别的识别,因此关键点值得尝试。
具体的尝试步骤如下:
对海豚图片进行前背景分割对海豚图片进行特征提取关键点进行关键点匹配具体的实现结果如下:
def match_and_draw(im_path, img_in1, img_in2):
# 加载图像
img1 = load_torch_image(im_path + img_in1)
img2 = load_torch_image(im_path + img_in2)
# 关键点提取模型
matcher = KF.LoFTR(pretrained='outdoor')
# 关键点匹配
mkpts0 = correspondences['keypoints0'].cpu().numpy()
mkpts1 = correspondences['keypoints1'].cpu().numpy()
H, inliers = cv2.findFundamentalMat(mkpts0, mkpts1, cv2.USAC_MAGSAC, 0.5, 0.999, 100000)
inliers = inliers > 0
参考样例:https://www.kaggle.com/remekkinas/whales-feature-matching-loftr-kornia
关键点匹配细节为什么需要抠图?
因为背景也会提取到关键点,如果不排除背景,则背景会影响到最终的结果。
如何提取关键点?
可以用OpenCV内置的SIFT或ORB,也可以使用比较新的关键点检测算法,用深度学习模型提取关键点。
有匹配错误的关键点吗?
肯定有的,关键点匹配本质是计算关键点特征的相似度。可以使用RANSAC或图像变换矩阵消除错误匹配。
关键点匹配用在哪儿?
可以用在最终结果ReRank环节。
报名通道已开启,更多赛事信息及参赛经验分享,请扫码添详细咨询
还有不定期的高能讲座等你来参加!
翰林课程体验,退费流程快速投诉邮箱: yuxi@linstitute.net 沪ICP备2023009024号-1