keras - Yolo to keras to coreml : 获得信心和坐标作为输出
问题描述
❓问题
您好,已采取以下步骤
我在一个只有一个类的自定义数据集上训练了 yolo tiny
将 .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 模型转换为 core ml 给出坐标和信心
参考截图:
第 3 方 Yolo 模型转换为核心 ml
我的 Yolo 模型转换为 core ml
系统信息
凯拉斯==2.1.5
coremltools==3.3
解决方案
不要添加这个:class_labels=output_labels
-- 它会让你的 Core ML 模型变成一个分类器,在 Core ML 中被特殊对待。由于您的模型是对象检测器,因此您不希望这样做。
看看这里的其余部分:https ://github.com/hollance/YOLO-CoreML-MPSNNGraph
基本上,您需要在 Swift 或 Obj-C 代码中自己解码边界框坐标。您也可以将其添加到模型中,但根据我的经验,这比较慢。(这是一篇博客文章,展示了如何为 SSD 执行此操作,它与 YOLO 相似但不完全相同。)
推荐阅读
- r - R 中的 C5.0 机器学习,对测试数据具有 100% 的准确度
- sql - 用户定义函数返回表
- java - 如何在 gradle 脚本中使用`ant.parallel`
- javascript - 如何使用 AJAX 作为同步操作
- python - 使用python计算每个事务之间的时间差
- javascript - 如何避免使用 vuejs 重复 websocket 客户端
- java - 如何使用 selenium java 将鼠标悬停在圆环图弧上?
- python - spacy中的重要名称实体识别
- image - matlab中的SVD用于图像压缩
- awk - 将 np.int64 函数添加到参数之一