在 Matlab 中为 YOLO v3 示例创建具有正确格式的表格?

问题描述

Matlab 有一套相当广泛的使用神经网络进行对象检测的示例。

在 Yolov3 示例中,工具需要具有特定格式的表格作为输入。我有一个带有自定义框的自定义数据集,但无法正确格式化表格。

此表的“预期”格式如下所示(在数据浏览器中查看时)

Table Screenshot

一个表格,其中 Vehicle 列有 4 个元素的数组。

现在,我定义了我自己的表如下:

>>myStruct(1)
ans = 
  struct with fields:

    imageFilename: 'E:\data\NeuralNetwork\cornertrain1\0c7a2fcc-1ff6-4582-b982-70e2c3f710b9.jpg'
          vehicle: [183 145 494 82]
>> cornerTable = struct2table(myStruct);

但它的格式完全不同,它有 1 个车辆列和 4 个子列。

screenshot of my table

如何使用我的结构制作表格,使其格式使“车辆”列具有 4 个元素的数组?

解决方法

问题是我对表格工作方式的误解。

要确定表列的数据类型,请使用 class 函数。所以,在原始表中,我们有:

>> class(vehicleDataset.imageFilename)
ans =
    'cell'
>> class(vehicleDataset.vehicle)
ans =
    'cell'

我提出的解决方案根本不使用单元阵列。进行这种构造的更好方法是创建两个元胞数组,

  • 一个名为 imageFilename 的包含字符数组,
  • 一个名为 vehicle 的包含 4 个元素数组。

然后,标准表格命令“正常工作”

result = table(imageFilename,vehicle);

我在发布问题后意识到这一点。