刚学完CV入门课,有个物体识别的想法,难点请教
cyh4853307 发布于2020-02-27 23:58 浏览:243 回复:12
0
收藏

本人刚学完CV入门那个课程,想做一个具体实例,方法及可行性请教

问题可以描述为:识别牙签和朝向

设想一根牙签掉在桌子上,现在需要识别出这根牙签,并且计算出它的方向。

我一开始的想法是用图像分割模型,用识别出来的区域取出点坐标,找一个中心点(聚类),并且用分割得到的点拟合一根直线,穿过这个中心点,就可以画出来了。

但是因为我才刚入门CV,感觉有点困难,就先使用EASYDL去训练模型,结果发现准确率极低,常常不足10%,而且标注量已经300以上的情况下,感觉EASYDL对这种细长的东西识别很不好,因为现在刚学到入门CV的识虫比赛那里,我想不知道是不是EASYDL模型里面参数,锚框的预置比例没有特别大的比例造成的,还是其他原因。

现在我想请教大家,我的想法可行吗?

大家有什么好的方法吗?

我搜百度有说旋转角度加到LOSS里面的,感觉这个对我有点难了...

我希望朝向角度是比较精确的

收藏
点赞
0
个赞
共12条回复 最后由西南交大开源回复于2020-03-03 09:22
#13西南交大开源回复于2020-03-03 09:22:29
#12 阿奴波仔回复
哥们,英雄所见略同 [机智表情]

嘿嘿

0
#12阿奴波仔回复于2020-03-02 17:49:06
#7 西南交大开源回复
先用目标检测,把区域牙签的区域提取出来 然后再在这个区域上做分割或者LSD直接找到直线
展开

哥们,英雄所见略同 [机智表情]

0
#11阿奴波仔回复于2020-03-02 17:47:02
#6 cyh4853307回复
还麻烦问一下   LSD我大概搜了一下   看到是提取直线的   但我这个需要的是中轴直线   不是边界直线   LSD有相应的提取方法吗?
展开

这个关系不大,因为你检测的目标很细,检测出来的直线会距离很近。检测出来之后,对直线做一次垂线方向的 merge 就好啦

0
#10189******30回复于2020-02-28 22:44:54

回归检测框的最小周长。

0
#9189******30回复于2020-02-28 22:44:19
#8 189******30回复
可以考虑用paddle-detection做目标检测任务。

先检测牙签,再用旋转图像的方式回归最小周长。觉得这个思路怎样?

0
#8189******30回复于2020-02-28 22:41:09

可以考虑用paddle-detection做目标检测任务。

0
#7西南交大开源回复于2020-02-28 16:31:54

先用目标检测,把区域牙签的区域提取出来

然后再在这个区域上做分割或者LSD直接找到直线

0
#6cyh4853307回复于2020-02-28 13:46:26
#2 阿奴波仔回复
同学你好,我没有用过EasyDL,所以对背后的模型调参不是很清楚。EasyDL你使用的是分割模型还是检测模型呢?听描述是目标检测的模型。 你使用的时候,有没有可以调整 anchor 的比例呢?如果有的话,那就要看看你的调整了。如果没有,需要看看 EasyDL 是如何得到 anchor 的。这个需要从文档上看。可能是通过对你的标注框聚类得到,也可能是一组通用固定值。前者肯定会更加有效一些。 从实用上讲,得看到你的实际场景才能知道。如果是干净的桌面上有牙签,这个桌面颜色和牙签差别很大。那么这个问题其实不复杂,通过颜色对比,或者传统视觉算法就能解决,比如 LSD,openv里就有。如果复杂一些,背景不那么干净,单独LSD就不太能搞得定,需要别的工具配合。用分割是个很自然的想法,只是如果目标很小,颜色比较接近,这个难度是比较大的。 我建议整个系统用多种方式组合来进行: 先用目标检测,把区域牙签的大体区域提取出来。这个的难点就是目标的长宽比变化大。然后再在这个区域上做分割或者LSD,或者训练预测角度的模型,都OK。想把角度计算揉进现有模型中,这个会比较麻烦,需要自己去重新写损失函数和训练,会比较有挑战。 既然是学习,可以去 AI Studio 上找已有的目标检测或者分割的项目跑一跑,实际感受一下,会有更深刻的体会。
展开

还麻烦问一下   LSD我大概搜了一下   看到是提取直线的   但我这个需要的是中轴直线   不是边界直线   LSD有相应的提取方法吗?

0
#5cyh4853307回复于2020-02-28 13:42:42
#2 阿奴波仔回复
同学你好,我没有用过EasyDL,所以对背后的模型调参不是很清楚。EasyDL你使用的是分割模型还是检测模型呢?听描述是目标检测的模型。 你使用的时候,有没有可以调整 anchor 的比例呢?如果有的话,那就要看看你的调整了。如果没有,需要看看 EasyDL 是如何得到 anchor 的。这个需要从文档上看。可能是通过对你的标注框聚类得到,也可能是一组通用固定值。前者肯定会更加有效一些。 从实用上讲,得看到你的实际场景才能知道。如果是干净的桌面上有牙签,这个桌面颜色和牙签差别很大。那么这个问题其实不复杂,通过颜色对比,或者传统视觉算法就能解决,比如 LSD,openv里就有。如果复杂一些,背景不那么干净,单独LSD就不太能搞得定,需要别的工具配合。用分割是个很自然的想法,只是如果目标很小,颜色比较接近,这个难度是比较大的。 我建议整个系统用多种方式组合来进行: 先用目标检测,把区域牙签的大体区域提取出来。这个的难点就是目标的长宽比变化大。然后再在这个区域上做分割或者LSD,或者训练预测角度的模型,都OK。想把角度计算揉进现有模型中,这个会比较麻烦,需要自己去重新写损失函数和训练,会比较有挑战。 既然是学习,可以去 AI Studio 上找已有的目标检测或者分割的项目跑一跑,实际感受一下,会有更深刻的体会。
展开

感谢您的解释

我是用的EASYDL的图像分割模型,anchor自己调整不了这个参数的。  

背景是比较干净的

然后我现在是aistudio也就是刚入门,水平有限,感觉到头我也就只能调调参数把  具体算法肯定是弄不了了....

我现在理解您的意思是:

1,先用图像检测做(效果估计会比分割更好一些,至少能找出来)

2,用截取出来的图做LSD直接找到直线是吧

这样应该是可以  感谢  

我之前的想法是直接用分割出来的点做拟合直线

0
#4cyh4853307回复于2020-02-28 13:32:18
#3 ___Azure___回复
Hiii~ 我是EasyDL的产品经理,方便把模型ID发给我吗,可以帮你看看具体是什么问题哈
展开

图像分割模型   模型ID:50828    模型ID:50692   这两个里面都有很多版本  主要就是cue这个标签   各种图高清的,生成的,多的,少的都试过  map都非常低

0
#3___Azure___回复于2020-02-28 11:34:16

Hiii~ 我是EasyDL的产品经理,方便把模型ID发给我吗,可以帮你看看具体是什么问题哈

0
#2阿奴波仔回复于2020-02-28 10:39:34

同学你好,我没有用过EasyDL,所以对背后的模型调参不是很清楚。EasyDL你使用的是分割模型还是检测模型呢?听描述是目标检测的模型。

你使用的时候,有没有可以调整 anchor 的比例呢?如果有的话,那就要看看你的调整了。如果没有,需要看看 EasyDL 是如何得到 anchor 的。这个需要从文档上看。可能是通过对你的标注框聚类得到,也可能是一组通用固定值。前者肯定会更加有效一些。

从实用上讲,得看到你的实际场景才能知道。如果是干净的桌面上有牙签,这个桌面颜色和牙签差别很大。那么这个问题其实不复杂,通过颜色对比,或者传统视觉算法就能解决,比如 LSD,openv里就有。如果复杂一些,背景不那么干净,单独LSD就不太能搞得定,需要别的工具配合。用分割是个很自然的想法,只是如果目标很小,颜色比较接近,这个难度是比较大的。

我建议整个系统用多种方式组合来进行:

先用目标检测,把区域牙签的大体区域提取出来。这个的难点就是目标的长宽比变化大。然后再在这个区域上做分割或者LSD,或者训练预测角度的模型,都OK。想把角度计算揉进现有模型中,这个会比较麻烦,需要自己去重新写损失函数和训练,会比较有挑战。

既然是学习,可以去 AI Studio 上找已有的目标检测或者分割的项目跑一跑,实际感受一下,会有更深刻的体会。

0
TOP
切换版块