【发布时间】:2019-10-24 12:34:58
【问题描述】:
我的 YOLO 模型可以很好地检测瓶子、人、手机、背包等物体。但我想让我的模型检测到戒指、手镯或头盔(当前 yolo 模型中不存在的对象)。没有 GPU,我可以制作自定义对象检测 yolo 模型吗?涉及哪些风险? (如果有的话)。
我的系统是具有 8GB RAM 的 Windows 10 Home 单一语言。
【问题讨论】:
-
可以,这会大大减慢训练时间和推理速度
我的 YOLO 模型可以很好地检测瓶子、人、手机、背包等物体。但我想让我的模型检测到戒指、手镯或头盔(当前 yolo 模型中不存在的对象)。没有 GPU,我可以制作自定义对象检测 yolo 模型吗?涉及哪些风险? (如果有的话)。
我的系统是具有 8GB RAM 的 Windows 10 Home 单一语言。
【问题讨论】:
重新编译 darknet.exe 以在 CPU 上运行非常慢。我以前试过。这是完全不切实际的。 推荐你学习英特尔 OpenVINO 工具包。
https://software.intel.com/en-us/openvino-toolkit
和
OpenVINO 工具包可以在其 CPU/集成 GPU 上加载和运行任何框架。
您仍然可以使用常规 NVIDIA 卡通过 Darknet YOLO 训练您的自定义对象。 然后使用 3rd-party 转换器工具(可以在 GitHub 上轻松找到)将您训练的 YOLO 权重文件转换为 Tensorflow PB 文件。 然后使用英特尔的模型优化器将 PB 文件和标签文件转换为它们所谓的“推理表示”文件(在 *.bin、*.xml、*.labels 和 *.mapping 文件中命名),稍后可以加载和在 Intel 的 CPU 或集成 GPU 上运行。
他们的模型优化器会自动优化并移除 YOLO 卷积网络文件中一些未使用的节点,提高整体推理速度,这比单纯使用重新编译 CPU 版本的 darknet.exe 在 CPU 上运行 YOLO 权重要快得多。
【讨论】:
是的,你可以这样做。
只需在darknet文件夹的Makefile中更改以下几行-
GPU=1 CUDNN=1(用于 GPU)
改成 -
GPU=0 CUDNN=0(用于 CPU)
是的,你也可以训练你的 YOLO 模型来检测自定义对象。只要关注这个博客 - Link
【讨论】: