COCO数据集转换为tfrecord(目标检测)

首先将COCO数据集转换为tfrecord格式,然后在对得到的tfrecord文档使用该文件得到没有bbox的图片。
1 COCO数据集转换为tfrecord格式:
参考model,代码链接为:得到Create_COCO_tfrecord.py
2.删选出不含bbox的图片

import os
import tensorflow as tf

file_list = tf.gfile.Glob(os.path.join('/DATA/coco/tfrecords', 'val-?????-of-?????'))
i = 0
count = 0
for file in file_list:
    for string_record in tf.python_io.tf_record_iterator(file):
        example = tf.train.Example()
        example.ParseFromString(string_record)

        i += 1
        image_id = example.features.feature['image/image_id'].int64_list.value
        xmax = example.features.feature['image/object/bbox/xmax'].float_list.value
        # xmin = example.features.feature['image/object/bbox/xmin'].float_list.value
        # ymax = example.features.feature['image/object/bbox/ymax'].float_list.value
        # ymin = example.features.feature['image/object/bbox/ymin'].float_list.value

        if xmax == []:
            print(image_id)
            count += 1
    print(file, 'has been checked.')

print(i, 'images have been checked.')
print(count, 'annotations without bbox.')

3. 去掉没有bbox的文件重新转一次tfrecord格式
这里可以参考M2Det-tensorflow中的程序。

注意:在刚开始转换得到的tfrecord文件,然后开始训练会使得loss=NAN,该原因是数据处理不当,有的文件没有bbox的原因导致的。
除此之外,COCO的train和val的json文件中,有部分不包含annotation文件,这个也会导致在训练的过程中loss为NAN。

参考文献:
https://www.cnblogs.com/southtonorth/p/10485943.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值