1

我想建立自己的 Faster Rcnn 模型,我从https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3下载了一个示例

运行代码时出现错误,不知道为什么

Traceback (most recent call last):
  File "C:/Users/l/Desktop/Faster-RCNN/train.py", line 216, in <module>
    train.train()
  File "C:/Users/l/Desktop/Faster-RCNN/train.py", line 148, in train
    blobs = self.data_layer.forward()
  File "C:\Users\l\Desktop\Faster-RCNN\lib\layer_utils\roi_data_layer.py", line 75, in forward
    blobs = self._get_next_minibatch()
  File "C:\Users\l\Desktop\Faster-RCNN\lib\layer_utils\roi_data_layer.py", line 71, in _get_next_minibatch
    return get_minibatch(minibatch_db, self._num_classes)
  File "C:\Users\l\Desktop\Faster-RCNN\lib\utils\minibatch.py", line 30, in get_minibatch
    im_blob, im_scales = _get_image_blob(roidb, random_scale_inds)
  File "C`enter code here`:\Users\l\Desktop\Faster-RCNN\lib\utils\minibatch.py", line 67, in _get_image_blob
    im, im_scale = prep_im_for_blob(im, cfg.FLAGS2["pixel_means"], target_size, cfg.FLAGS.max_size)
  File "C:\Users\l\Desktop\Faster-RCNN\lib\utils\blob.py", line 35, in prep_im_for_blob
    im = im.astype(np.float32, copy=False)
AttributeError: 'NoneType' object has no attribute 'astype'
4

1 回答 1

0

要构建自己的Faster RCNN Models,您可以按照官方 Tensorflow Github 存储库中提到的说明进行操作。

遵循这些说明的好处是,如果您遇到任何问题,可以在此 Repo中提出问题,Google 工程师将为您提供帮助。

为了社区的利益,指定Github Repo中提到的步骤(以防链接中断)。

定义一个新的 Faster R-CNN 或 SSD 特征提取器:

在大多数情况下,您可能不会DetectionModel从头开始实现 --- 相反,您可能会创建一个新的特征提取器以供 SSD 或 Faster R-CNN 元架构之一使用。DetectionModel(我们将元架构视为使用抽象定义整个模型系列的类)。

注意:为了使以下讨论有意义,我们建议首先熟悉Faster R-CNN论文。

现在让我们假设您已经发明了一种全新的网络架构(例如,“InceptionV100”)用于分类,并希望了解 InceptionV100 将如何作为特征提取器进行检测(例如,使用 Faster R-CNN)。SSD 模型也适用类似的程序,但我们将讨论 Faster R-CNN。

要使用 InceptionV100,我们必须定义一个新的FasterRCNNFeatureExtractor并将其作为输入传递给 FasterRCNNMetaArch 构造函数。分别参见和object_detection/meta_architectures/faster_rcnn_meta_arch.py的定义。A必须定义几个函数:FasterRCNNFeatureExtractorFasterRCNNMetaArchFasterRCNNFeatureExtractor

  • preprocess:在输入图像上运行检测器之前,对输入值进行任何必要的预处理。
  • _extract_proposal_features:提取第一阶段的区域提议网络(RPN)特征。
  • _extract_box_classifier_features: 提取第二阶段的 Box Classifier 特征。
  • restore_from_classification_checkpoint_fn:将检查点加载到 TensorFlow 图中。

object_detection/models/faster_rcnn_resnet_v1_feature_extractor.py定义为例。一些备注:

  • 我们通常使用来自Slim Resnet-101 分类检查点的权重来初始化此特征提取器的权重,并且我们知道在训练此检查点时通过从每个输入图像中减去通道均值来对图像进行预处理。因此,我们实现了预处理函数来复制相同的通道均值减法行为。
  • slim中定义的“完整” resnet分类网络被分成两部分——除了最后一个“resnet块”之外的所有部分都放入_extract_proposal_features函数中,最后一个块在函数中单独定义_extract_box_classifier_features。一般来说,可能需要进行一些实验来确定一个最佳层,在该层上将特征提取器“切割”成这两个部分以用于 Faster R-CNN。

有关更多信息,请参阅此链接和此 Github Repo for Tensorflow 模型

希望这可以帮助。快乐学习!

于 2020-05-20T15:03:51.120 回答