Yolo 到 keras 到 coreml:获得置信度和坐标作为输出
Yolo to keras to coreml : get confidence and coordinates as outputs
❓问题
你好,
采取了以下步骤
我只用一个自定义数据集训练了 yolo tiny class
将 .weights(darknet) 转换为 .h5 (keras)(已验证并且 keras 模型也工作正常)
现在,当我将 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 模型转换为核心 ml 给出坐标和置信度
参考截图:
第3方Yolo模型转换为核心ml
我的Yolo模型转换成核心ml
系统信息
Keras==2.1.5
coremltools==3.3
不要添加这个:class_labels=output_labels
-- 它会使你的 Core ML 模型变成一个分类器,在 Core ML 中被特殊对待。由于您的模型是一个对象检测器,因此您不需要这个。
在此处查看其余内容:https://github.com/hollance/YOLO-CoreML-MPSNNGraph
基本上,您需要在 Swift 或 Obj-C 代码中自行解码边界框坐标。您也可以将其添加到模型中,但根据我的经验,速度较慢。 (这里有一个 blog post 展示了如何对 SSD 执行此操作,它与 YOLO 类似但不完全相同。)
我会继续更新它,因为它可能对其他人有用:
这将非常特定于您具有 自定义暗网权重 的场景,它检测到 场景中的自定义对象。
典型的后续操作是:
- 训练自定义权重(我假设您将使用 Darknet 来执行此操作)
- 将 Darknet 权重转换为 keras 检查点或 .h5(以适合您的方式)
- 使用 Coreml 工具将您的 keras 模型转换为 coreml 模型
- 确保在创建 coreml 模型时使用 Imagetype
- 测试 coreml 模型是否给出 multi-array 形状 13x13x125
- 在 iOS 应用程序中使用此 coreml 模型
希望这会有所帮助。如果需要更多帮助,请在评论中删除您的请求
问候 Ankit
❓问题
你好, 采取了以下步骤
我只用一个自定义数据集训练了 yolo tiny class
将 .weights(darknet) 转换为 .h5 (keras)(已验证并且 keras 模型也工作正常)
现在,当我将 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 模型转换为核心 ml 给出坐标和置信度
参考截图:
第3方Yolo模型转换为核心ml
我的Yolo模型转换成核心ml
系统信息
Keras==2.1.5
coremltools==3.3
不要添加这个:class_labels=output_labels
-- 它会使你的 Core ML 模型变成一个分类器,在 Core ML 中被特殊对待。由于您的模型是一个对象检测器,因此您不需要这个。
在此处查看其余内容:https://github.com/hollance/YOLO-CoreML-MPSNNGraph
基本上,您需要在 Swift 或 Obj-C 代码中自行解码边界框坐标。您也可以将其添加到模型中,但根据我的经验,速度较慢。 (这里有一个 blog post 展示了如何对 SSD 执行此操作,它与 YOLO 类似但不完全相同。)
我会继续更新它,因为它可能对其他人有用:
这将非常特定于您具有 自定义暗网权重 的场景,它检测到 场景中的自定义对象。
典型的后续操作是:
- 训练自定义权重(我假设您将使用 Darknet 来执行此操作)
- 将 Darknet 权重转换为 keras 检查点或 .h5(以适合您的方式)
- 使用 Coreml 工具将您的 keras 模型转换为 coreml 模型
- 确保在创建 coreml 模型时使用 Imagetype
- 测试 coreml 模型是否给出 multi-array 形状 13x13x125
- 在 iOS 应用程序中使用此 coreml 模型
希望这会有所帮助。如果需要更多帮助,请在评论中删除您的请求
问候 Ankit