刚学完CV入门课,有个物体识别的想法,难点请教
收藏
本人刚学完CV入门那个课程,想做一个具体实例,方法及可行性请教
问题可以描述为:识别牙签和朝向
设想一根牙签掉在桌子上,现在需要识别出这根牙签,并且计算出它的方向。
我一开始的想法是用图像分割模型,用识别出来的区域取出点坐标,找一个中心点(聚类),并且用分割得到的点拟合一根直线,穿过这个中心点,就可以画出来了。
但是因为我才刚入门CV,感觉有点困难,就先使用EASYDL去训练模型,结果发现准确率极低,常常不足10%,而且标注量已经300以上的情况下,感觉EASYDL对这种细长的东西识别很不好,因为现在刚学到入门CV的识虫比赛那里,我想不知道是不是EASYDL模型里面参数,锚框的预置比例没有特别大的比例造成的,还是其他原因。
现在我想请教大家,我的想法可行吗?
大家有什么好的方法吗?
我搜百度有说旋转角度加到LOSS里面的,感觉这个对我有点难了...
我希望朝向角度是比较精确的
0
收藏
请登录后评论
同学你好,我没有用过EasyDL,所以对背后的模型调参不是很清楚。EasyDL你使用的是分割模型还是检测模型呢?听描述是目标检测的模型。
你使用的时候,有没有可以调整 anchor 的比例呢?如果有的话,那就要看看你的调整了。如果没有,需要看看 EasyDL 是如何得到 anchor 的。这个需要从文档上看。可能是通过对你的标注框聚类得到,也可能是一组通用固定值。前者肯定会更加有效一些。
从实用上讲,得看到你的实际场景才能知道。如果是干净的桌面上有牙签,这个桌面颜色和牙签差别很大。那么这个问题其实不复杂,通过颜色对比,或者传统视觉算法就能解决,比如 LSD,openv里就有。如果复杂一些,背景不那么干净,单独LSD就不太能搞得定,需要别的工具配合。用分割是个很自然的想法,只是如果目标很小,颜色比较接近,这个难度是比较大的。
我建议整个系统用多种方式组合来进行:
先用目标检测,把区域牙签的大体区域提取出来。这个的难点就是目标的长宽比变化大。然后再在这个区域上做分割或者LSD,或者训练预测角度的模型,都OK。想把角度计算揉进现有模型中,这个会比较麻烦,需要自己去重新写损失函数和训练,会比较有挑战。
既然是学习,可以去 AI Studio 上找已有的目标检测或者分割的项目跑一跑,实际感受一下,会有更深刻的体会。
Hiii~ 我是EasyDL的产品经理,方便把模型ID发给我吗,可以帮你看看具体是什么问题哈
图像分割模型 模型ID:50828 模型ID:50692 这两个里面都有很多版本 主要就是cue这个标签 各种图高清的,生成的,多的,少的都试过 map都非常低
感谢您的解释
我是用的EASYDL的图像分割模型,anchor自己调整不了这个参数的。
背景是比较干净的
然后我现在是aistudio也就是刚入门,水平有限,感觉到头我也就只能调调参数把 具体算法肯定是弄不了了....
我现在理解您的意思是:
1,先用图像检测做(效果估计会比分割更好一些,至少能找出来)
2,用截取出来的图做LSD直接找到直线是吧
这样应该是可以 感谢
我之前的想法是直接用分割出来的点做拟合直线
还麻烦问一下 LSD我大概搜了一下 看到是提取直线的 但我这个需要的是中轴直线 不是边界直线 LSD有相应的提取方法吗?
先用目标检测,把区域牙签的区域提取出来
然后再在这个区域上做分割或者LSD直接找到直线
可以考虑用paddle-detection做目标检测任务。
先检测牙签,再用旋转图像的方式回归最小周长。觉得这个思路怎样?
回归检测框的最小周长。
这个关系不大,因为你检测的目标很细,检测出来的直线会距离很近。检测出来之后,对直线做一次垂线方向的 merge 就好啦
哥们,英雄所见略同 [机智表情]
嘿嘿