我正在尝试使用 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: 无法为
我使用的是 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 时,“损失”是啥?