Map axera json annotation format toto coco annotation format
Install swift 5.8.1 or use the devcontainer settings in this code base.
None. Since swift package SwiftyJson not compitable with Linux for now, so write entirely using swift natively on Linux JSONDecoder.
- Image
id
filed is mapped to it's index on theimages
fileds, so mergeing with other source annotated.json
file may cause conflict -
file_name
in the image name is named as absolute path since images can locate at different directories. - split train/val/test :
- To ensure consistant category2id mapping, SHA256 hashmap is used and save in
./Config/categroy2id_hashmap.txt
. If the traning framework like detectron2 force the category-id do not surpass the totoal amount of categories available in the annotations(e.g. total 80 categories, but the dog category has an id 80(the most great id is supposed to be 79)), user should modify there own coco-json annotation.
- coco format set category id=0 as
background
class. When training with detectron2 framework, the totoal class param in your config should be set to total_class_num + 1(background class) - totoal number of class is determined at run time, according to the given axera anno json file. So if an category is not present in original axera anno, it will not present in coco anno.
- id to name mapping format in the .txt file:
A B
, A is thecategoryName
field in the axera anno(为中文字符), also serverd assupercategory
filed in coco annotation, B is the uft8 string that represent the category used by coco anno. e.g.
背景 background
路面箭头 Road_Arrow
人行横道 Crosswalk
停止线 Stop-line
{
"info": {
"year": "2023",
"version": "0.1",
"description": "Exported by Swift_COCO",
"contributor": "gaoyi",
"url": "",
"date_created": "2023-10-17T09:48:27"
},
"licenses": [
{
"url": "",
"id": 1,
"name": ""
},
...
],
"categories": [
...
{
"id": 2,
"name": "cat",
"supercategory": "animal"
},
...
],
"images": [
{
"id": 0,
"license": 1,
"file_name": "<filename0>.<ext>",
"height": 480,
"width": 640,
"date_captured": null
},
...
],
"annotations": [
{
"id": 0,
"image_id": 0,
"category_id": 2,
"bbox": [260, 177, 231, 199], //[left_top_x, left_top_y, width, height]
"segmentation": [...],
"area": 45969, // bbox width * height
"iscrowd": 0
},
...
]
}