首页 > 解决方案 > Yolo to keras to coreml : 获得信心和坐标作为输出

问题描述

❓问题

您好,已采取以下步骤

  1. 我在一个只有一个类的自定义数据集上训练了 yolo tiny

  2. 将 .weights(darknet) 转换为 .h5 (keras) (已验证并且 keras 模型也可以正常工作)

  3. 现在,当我将 Keras 转换为核心 ml 模型时,我没有得到坐标和置信度作为输出

用于转换为核心 ml 的命令

coremltools.converters.keras.convert(
'model_data/yolo.h5',
 input_names='image',
 class_labels=output_labels,
 image_input_names='image',
 input_name_shape_dict={'image': [None, 416, 416, 3]}
 )

虽然我已经检查过第三方 Yolo 模型转换为 core ml 给出坐标和信心

参考截图:

第 3 方 Yolo 模型转换为核心 ml

在此处输入图像描述

我的 Yolo 模型转换为 core ml

在此处输入图像描述

系统信息

标签: kerasyolocoremlcoremltools

解决方案


不要添加这个:class_labels=output_labels-- 它会让你的 Core ML 模型变成一个分类器,在 Core ML 中被特殊对待。由于您的模型是对象检测器,因此您不希望这样做。

看看这里的其余部分:https ://github.com/hollance/YOLO-CoreML-MPSNNGraph

基本上,您需要在 Swift 或 Obj-C 代码中自己解码边界框坐标。您也可以将其添加到模型中,但根据我的经验,这比较慢。(这是一篇博客文章,展示了如何为 SSD 执行此操作,它与 YOLO 相似但不完全相同。)


推荐阅读