simpledet
simpledet copied to clipboard
run create_voc_roidb.py
I want to train my own dataset using tridentnet. I convert my voc-format dataset to roidb and run create_voc_roidb.py
the following error:
Traceback (most recent call last):
File "utils/create_voc_roidb.py", line 80, in
voc-format dataset don't have files in json format...
You may need a label map json file to map your classname to train id.
https://github.com/TuSimple/simpledet/blob/f67fca08b33d957b43eb1db5e3745a3a9e3803b5/utils/create_voc_roidb.py#L52
What is the format of this json file?
Just plain kv pairs as { "category_name": train_id }
On Tue, Dec 24, 2019 at 9:23 AM MTfast [email protected] wrote:
What is the format of this json file?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/TuSimple/simpledet/issues/282?email_source=notifications&email_token=ABGODHZUTQVTDROHTJ26HLTQ2FP7VA5CNFSM4J6TPXYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHSHIFQ#issuecomment-568620054, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGODH37G6YMVBBMOJQMGS3Q2FP7VANCNFSM4J6TPXYA .
Hi, how can I make that voc_label_map.json? could you know that?
you can write it with any text editor
On Wed, Jun 10, 2020 at 7:03 PM dongjun [email protected] wrote:
Hi, how can I make that voc_label_map.json? could you know that?
— You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/TuSimple/simpledet/issues/282#issuecomment-641928250, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGODH4Q4C7WCJKBKEPU4VDRV5R7BANCNFSM4J6TPXYA .
if someone just want it for clipart dataset, use this.
# voc_label_map.json
{"car": 1, "person": 2, "bicycle": 3, "boat": 4, "sheep": 5, "aeroplane": 6, "tvmonitor": 7, "chair": 8, "bottle": 9, "pottedplant": 10, "diningtable": 11, "train": 12, "dog": 13, "sofa": 14, "bus": 15, "bird": 16, "horse": 17, "motorbike": 18, "cat": 19, "cow": 20}
or here are some codes to make it,
import os
import json
import cv2
path = os.getcwd()
AnnotationsPath = os.listdir(os.path.join(path, "Annotations"))
from xml.etree.ElementTree import parse
words = []
for file in AnnotationsPath:
tree = parse(os.path.join(path, "Annotations", file))
root = tree.getroot()
objects = root.findall("object")
names = [x.findtext("name") for x in objects]
for name in names:
if name not in words:
words.append(name)
tempDictionary = {}
train_id = 1
for word in words:
tempDictionary[word] = train_id
train_id += 1
print(tempDictionary)
with open("voc_label_map.json", "w") as write_file:
json.dump(tempDictionary, write_file)