【问题标题】:Yolo from scratch dataset and outputYolo 从头开始​​数据集和输出
【发布时间】:2021-01-27 08:12:56
【问题描述】:

您好,我从头开始编写了一个 YOLO 模型,然后才意识到我的数据集不适合模型输出。这就是我的意思: 该模型输出一个S x S x (B * 5 + C) 矩阵。 y[0](第一张图片的答案)的形状是(7,5)。 我将如何让模型使用我的标签。 据我所知和阅读,yolo 算法的标签采用这种格式x,y,w,h,objectiveness_score, class_scores,那么为什么模型会输出 3D 矩阵而标签是 2d 矩阵。

我将如何使用 numpy 和 keras 解决我的问题?

【问题讨论】:

标签: python numpy keras artificial-intelligence yolo


【解决方案1】:

根据paper (section 2)S x S x (B * 5 + C) 形状的输出表示 YoloV1 将图像分割成的S x S 网格单元。最后一层可以实现为全连接层,输出长度为S x S x (B * 5 + C),然后您可以简单地将输出重塑为 3D 形状。

论文指出:

“我们的系统将输入图像划分为 S × S 网格。 如果一个对象的中心落入一个网格单元,该网格单元 负责检测该对象。”

这意味着您必须将每个标签分配给其相应的网格单元才能进行反向传播。作为参考,可以找到损失计算的 keras/tensorflow 实现here(由 github 用户 FMsunyh 提供)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多