刚学完CV入门课,有个物体识别的想法,难点请教
收藏
快速回复
AI Studio平台使用 问答算力相关 1094 12
刚学完CV入门课,有个物体识别的想法,难点请教
收藏
快速回复
AI Studio平台使用 问答算力相关 1094 12

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

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

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

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

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

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

大家有什么好的方法吗?

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

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

0
收藏
回复
全部评论(12)
时间顺序
笨笨
#2 回复于2020-02

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

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

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

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

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

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

0
回复
_
___Azure___
#3 回复于2020-02

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

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

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

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

感谢您的解释

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

背景是比较干净的

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

我现在理解您的意思是:

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

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

这样应该是可以  感谢  

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

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

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

0
回复
水水水的老师
#7 回复于2020-02

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

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

0
回复
AIStudio810258
#8 回复于2020-02

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

0
回复
AIStudio810258
#9 回复于2020-02
可以考虑用paddle-detection做目标检测任务。

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

0
回复
AIStudio810258
#10 回复于2020-02

回归检测框的最小周长。

0
回复
笨笨
#11 回复于2020-03
还麻烦问一下   LSD我大概搜了一下   看到是提取直线的   但我这个需要的是中轴直线   不是边界直线   LSD有相应的提取方法吗?

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

0
回复
笨笨
#12 回复于2020-03
先用目标检测,把区域牙签的区域提取出来 然后再在这个区域上做分割或者LSD直接找到直线

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

0
回复
水水水的老师
#13 回复于2020-03
笨笨 #12
哥们,英雄所见略同 [机智表情]

嘿嘿

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户