dump coco format json and write KITTI format file ( nightowls person night )

# cat nightowlsapi/python/load_validation_data_demo.py
import random
import os
from os import path
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.patches as patches

from coco import COCO

# Ground truth
annFile = '../../nightowls_validation.json'
#image_directory = '/nightowls/images'
target_label_path = "./labels"


cocoGt = COCO(annFile)
print(cocoGt)
imgIds = sorted(cocoGt.getImgIds())
print('There are %d images in the validation set' % len(imgIds))

#annotations is a list which contain all the AnnIds
annotations = cocoGt.getAnnIds()
print('There are %d annotations in the validation set' % len(annotations))

# Select random annotation
for i in range(len(annotations)):
    anno_id = annotations[i]
    anno = cocoGt.loadAnns(ids=anno_id)[0]
    print('Annotation (id=%d): %s' % (anno_id, anno))


    cat = cocoGt.loadCats(ids=anno['category_id'])[0]
    category_name = cat['name']
    print('Object type %s' % category_name)
    if (category_name == "pedestrian"):
       class_name = "person"
    else:
       continue

    # Show the annotation in its image
    #print(cocoGt.loadImgs(ids=anno['image_id']))
    image = cocoGt.loadImgs(ids=anno['image_id'])[0]
    file_name = image['file_name']
    #file_path = path.join(image_directory, image['file_name'])
    #print("file_name is {}".format(file_name))


    bbox = anno['bbox']

    x1 = bbox[0]
    y1 = bbox[1]
    x2 = bbox[0] + bbox[2]
    y2 = bbox[1] + bbox[3]

    label_file = file_name.replace(".png",".txt")

    if not os.path.exists(target_label_path):
        os.makedirs(target_label_path)

    label_file = os.path.join(target_label_path, label_file)
    print("label_file is {}".format(label_file))

    with open(label_file, "a") as f:
         f.write("{} 0.0 0 0.0 {:.2f} {:.2f} {:.2f} {:.2f} 0.0 0.0 0.0 0.0 0.0 0.0 0.0\n".format(class_name, x1, y1, x2, y2))

  https://github.com/ivclab/Day_Night_dataset_list

https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6224623

https://www.nightowls-dataset.org/about/

https://www.nightowls-dataset.org/examples/

https://www.nightowls-dataset.org/download/

https://gitlab.com/vgg/nightowlsapi/-/tree/master

 

 

 

Check basic info for the dataset

# cat load_validation_data_demo_just_show_info.py
import random
from os import path
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.patches as patches

from coco import COCO

# Ground truth
annFile = '../../nightowls_validation.json'
#annFile = '../../nightowls_training.json'
#image_directory = '/nightowls/images'


cocoGt = COCO(annFile)
print(cocoGt)
imgIds = sorted(cocoGt.getImgIds())
print('There are %d images in the validation set' % len(imgIds))

annotations = cocoGt.getAnnIds()
print('There are %d annotations in the validation set' % len(annotations))


# Select random annotation
anno_id = annotations[random.randint(0, len(annotations))]
anno = cocoGt.loadAnns(ids=anno_id)[0]
print('Annotation (id=%d): %s' % (anno_id, anno))

cat = cocoGt.loadCats(ids=anno['category_id'])[0]
category_name = cat['name']
print('Object type %s' % category_name)

# Show the annotation in its image
print(cocoGt.loadImgs(ids=anno['image_id']))
image = cocoGt.loadImgs(ids=anno['image_id'])[0]
file_name = image['file_name']
#file_path = path.join(image_directory, image['file_name'])
print("file_name is {}".format(file_name))


'''
fig,ax = plt.subplots(1)

img=mpimg.imread(file_path)
ax.imshow(img)
'''

bbox = anno['bbox']
print(bbox)


'''
rect = patches.Rectangle((bbox[0],bbox[1]),bbox[2],bbox[3],linewidth=2,edgecolor='g',facecolor='none')
ax.add_patch(rect)


plt.show()

'''

  

posted on 2021-01-30 00:53  cdekelon  阅读(134)  评论(0)    收藏  举报

导航