问题描述
Matlab 有一套相当广泛的使用神经网络进行对象检测的示例。
在 Yolov3 示例中,工具需要具有特定格式的表格作为输入。我有一个带有自定义框的自定义数据集,但无法正确格式化表格。
此表的“预期”格式如下所示(在数据浏览器中查看时)
即一个表格,其中 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 个子列。
如何使用我的结构制作表格,使其格式使“车辆”列具有 4 个元素的数组?
解决方法
问题是我对表格工作方式的误解。
要确定表列的数据类型,请使用 class
函数。所以,在原始表中,我们有:
>> class(vehicleDataset.imageFilename)
ans =
'cell'
>> class(vehicleDataset.vehicle)
ans =
'cell'
我提出的解决方案根本不使用单元阵列。进行这种构造的更好方法是创建两个元胞数组,
- 一个名为
imageFilename
的包含字符数组, - 一个名为
vehicle
的包含 4 个元素数组。
然后,标准表格命令“正常工作”
result = table(imageFilename,vehicle);
我在发布问题后意识到这一点。