【问题标题】:Yolo to keras to coreml : get confidence and coordinates as outputsYolo to keras to coreml : 获得信心和坐标作为输出
【发布时间】:2020-09-01 01:17:04
【问题描述】:

❓问题

嗨, 采取了以下步骤

  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 给出坐标和信心

参考截图:

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

我的 Yolo 模型转换为核心 ml

系统信息

  • Keras==2.1.5

  • coremltools==3.3

【问题讨论】:

    标签: keras yolo coreml coremltools


    【解决方案1】:

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

    请看这里:https://github.com/hollance/YOLO-CoreML-MPSNNGraph

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

    【讨论】:

    • 所以我尝试了博文中提到的步骤,坦率地说,对于初学者来说太难了2个问题:1)有没有捷径2)yolo怎么做?
    • 简短的方法是使用我提到的 YOLO-CoreML-MPSNNGraph 存储库中的代码。这也是最好的方法。
    猜你喜欢
    • 2017-07-01
    • 2022-08-20
    • 1970-01-01
    • 2016-10-27
    • 2017-12-10
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多