首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别形状相似但大小不同的两个不同物体

如何识别形状相似但大小不同的两个不同物体
EN

Stack Overflow用户
提问于 2019-10-03 20:59:07
回答 2查看 66关注 0票数 0

我使用的是Mask-RCNN神经网络。我重新训练了我的网络来检测和掩盖压铸玩具汽车的轮子。我正在使用图像,这些图像显示了汽车的侧面(左或右)。

有时汽车有不同大小的车轮,如下图所示。前轮比后轮小得多。我想检测前轮为“前轮”,后轮为“后轮”。如果照片上只有一个轮子(由糟糕的裁剪造成),那么我希望将这个轮子检测为“轮子”。

如果图像包含两个看起来很相似的轮子,我应该怎么做来遮罩两个轮子(并给它们添加合适的标签)?

Car image

EN

回答 2

Stack Overflow用户

发布于 2019-10-11 16:07:42

Mask-RCNN可以单独分割对象的每个实例,而不考虑对象的大小。它不会基于透视对对象进行分类,它会将两个轮子都分类为轮子。

如果你训练的模型有两个类别,比如前轮和后轮,当条件为真时,它会工作得很好,但当轮子的大小相同时,它不会产生预期的输出。

你可以为不同的汽车训练两个不同的模型,比如如果汽车有不同大小的车轮,那么它将把车轮分类为前轮和后轮,这将是下一个模块。这种分割和分类将基于这样的逻辑,即汽车的后轮总是比前轮更大,而不是更小。但如果汽车不属于该类别,那么车轮将不会按大小进行分段,在这种情况下,它将仅将其归类为车轮。

票数 0
EN

Stack Overflow用户

发布于 2019-10-11 16:33:03

Model output of Mask-RCNN提供了边界框。为什么不使用这些边界框来推断每个轮胎的大小并比较轮胎大小?然后,您可以根据它们的area将它们标记为前面或后面。

代码语言:javascript
复制
# Run detection
results = model.detect([image])

# Visualize results
r = results[0]
visualize.display_instances(image, r['rois'], r['masks'], r['class_ids'],
                            class_names, r['scores'])

您可以使用r['rois']计算轮胎面积,如下所示:

代码语言:javascript
复制
y1, x1, y2, x2 = rois[i]

area[i] = (y2-y1)**2 + (x2-x1)**2

那么剩下的唯一事情就是决定哪个区域更大。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58219683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档