我正在尝试使用 Mask RCNN 构建对象检测,并在调用 MaskRCNN 方法时出错

Posted

技术标签:

【中文标题】我正在尝试使用 Mask RCNN 构建对象检测,并在调用 MaskRCNN 方法时出错【英文标题】:I am trying to build a object detection using Mask RCNN and get an error when i call MaskRCNN method 【发布时间】:2021-05-16 17:43:33 【问题描述】:

我正在尝试使用 Matterport 的 Mask RCNN 的 keras 实现。当我调用函数 modellib.MaskRCNN 时,出现以下错误。

'''maskrcnnModel = modellib.MaskRCNN(mode='training', config=config, model_dir='/rootdir' )'''

/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/type_spec.py in type_spec_from_value(value) 3, "Failed to convert %r to tensor: %s" % (type(value).name, e))

raise TypeError("Could not build a TypeSpec for %r with type %s" % (值,类型(值)。名称)) TypeError: 无法为 与 KerasTensor 类型构建 TypeSpec

我使用的是 Tensorflow 2.4.1 和 keras 2.4.0 版本

我在很多地方冲浪,但我没有为我工作。我尝试按照其他 *** 问题中的建议修改 model.py,但没有发现任何区别。

感谢您的帮助

【问题讨论】:

【参考方案1】:

经过大量的浏览后,我终于在 github 中找到了另一个帮助我前进的存储库。我能够继续训练模型。感谢 akTwelve 为更新 matterport 的基本代码以适用于 TF 2.4.1 和 Kears 2.4.0 所做的出色工作。可以获取github链接@https://github.com/akTwelve/Mask_RCNN

【讨论】:

【参考方案2】:

改变你的模型:

gt_boxes = KL.Lambda(lambda x: norm_boxes_graph(x, K.shape(input_image)[1:3]))(input_gt_boxes)

h, w = K.shape(input_image)[1], K.shape(input_image)[2]
image_scale = K.cast(K.stack([h, w, h, w], axis=0), tf.float32) 
gt_boxes = KL.Lambda(lambda x: K.cast(x, tf.float32))(input_gt_boxes)

适用于 tensorflow 2.3.1 和 Python 3.8

【讨论】:

以上是关于我正在尝试使用 Mask RCNN 构建对象检测,并在调用 MaskRCNN 方法时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?

在使用 TensorFlow Object Detection API 训练 Mask RCNN 时,“损失”是啥?

如何使用 mask-RCNN 在 python 中计算(x,y)(质心)和掩码的宽度和高度?

实战:使用 Mask-RCNN 的停车位检测

『计算机视觉』Mask-RCNN_关键点检测分支(待续)

检测论文综述(一) : 从RCNN到Mask-RCNN