You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TensorFlow的create_coco_tf_record脚本转COCO JSON至TFRecord时报错

解决create_coco_tf_record脚本“list index out of range”报错

兄弟,我之前用这个脚本的时候也踩过类似的坑,你的问题大概率是提供的COCO JSON缺少了核心必需字段,导致脚本在处理时试图访问空列表的元素,直接触发了索引越界错误。

问题根源分析

你给出的JSON只包含了info和images字段,但标准COCO格式至少还需要categories(类别定义)和annotations(标注数据)这两个字段。create_coco_tf_record脚本内部会遍历annotations列表,或者尝试读取列表中的元素,当这个字段完全缺失或者为空列表处理逻辑不严谨时,就会抛出“list index out of range”。

解决方案

1. 补充完整COCO JSON的必需字段

  • 添加categories数组:定义你的检测/分割类别,哪怕只有一个类别也要明确声明。
  • 添加annotations数组:即使没有任何标注(比如全是负样本),也必须保留这个字段(可以是一个空数组),不能直接省略。

2. 修正后的完整JSON示例

{
    "info": { 
        "year": 2018, 
        "version": null, 
        "description": "TransferLearningTest", 
        "contributor": "ralph@r4robotics.com.au", 
        "url": "labelbox.io", 
        "date_created": "2018-03-25T08:30:27.427851+00:00" 
    }, 
    "images": [
        { 
            "id": "cjf6gxqjw2fho01619gre5j0y", 
            "width": 615, 
            "height": 409, 
            "file_name": "https://firebasestorage.googleapis.com/v0/b/labelbox-1939..."
        }
    ],
    "categories": [
        {"id": 1, "name": "test_object", "supercategory": "none"}
    ],
    "annotations": []
}

3. 额外注意事项

  • 如果后续要添加标注,确保每个annotation的image_id和对应image的id完全匹配;
  • 部分版本的脚本可能对file_name是URL的情况处理不好,如果后续出现图片读取错误,建议把file_name替换成本地图片的绝对路径;
  • 要是脚本强制要求annotations非空,可以添加一个dummy标注(比如bbox: [0,0,0,0]、area: 0)来绕过检查。

内容的提问来源于stack exchange,提问作者Oblomov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:42:25