【发布时间】:2017-02-26 16:14:44
【问题描述】:
我正在尝试在 PascalVoc 预训练数据集上运行 CNTK 对象检测示例。我在 fastrcnn 中运行所有必需的脚本,并获得数据集中定义的测试数据的可视化输出。现在我想在自己的图像上测试网络,我该怎么做?
【问题讨论】:
标签: neural-network object-detection cntk
我正在尝试在 PascalVoc 预训练数据集上运行 CNTK 对象检测示例。我在 fastrcnn 中运行所有必需的脚本,并获得数据集中定义的测试数据的可视化输出。现在我想在自己的图像上测试网络,我该怎么做?
【问题讨论】:
标签: neural-network object-detection cntk
对于 Fast R-CNN,您需要一个库来为您的测试图像生成候选 ROI(感兴趣区域),例如selective search。
如果要评估一批图像,可以按照tutorial中的描述生成测试映射文件和ROI坐标(见test.txt和test.rois.txt在相应的proc子文件夹中) .如果要评估单个,则需要将图像和候选 ROI 坐标作为输入传递给 cntk eval,类似于 this example:
# compute model output
arguments = {loaded_model.arguments[0]: [hwc_format]}
output = loaded_model.eval(arguments)
【讨论】:
对于 FastRCNN,您需要首先通过选择性搜索算法运行自定义图像以生成 ROI(感兴趣区域),然后将其提供给您的模型,如下所示:
output = frcn_eval.eval({image_input: image_file, roi_proposals: roi_proposals})
您可以在此处找到更多详细信息:https://github.com/Microsoft/CNTK/tree/release/latest/Examples/Image/Detection/FastRCNN
无论如何,FastRCNN 并不是最有效的方法,因为使用了选择性搜索(这是这里真正的瓶颈)。如果您想提高性能,您可以尝试 FasterRCNN,因为它摆脱了 SS 算法并用性能更好的区域建议网络代替它。 有兴趣可以查看我在 GitHub 上的 repo:https://github.com/karolzak/CNTK-Hotel-pictures-classificator
【讨论】: