Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
ce2f79f7
P
PaddleDetection
项目概览
s920243400
/
PaddleDetection
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleDetection
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ce2f79f7
编写于
9月 16, 2020
作者:
L
liuhui29
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add tools/create_label_list.py.
上级
ee780976
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
98 addition
and
0 deletion
+98
-0
tools/create_label_list.py
tools/create_label_list.py
+98
-0
未找到文件。
tools/create_label_list.py
0 → 100644
浏览文件 @
ce2f79f7
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
absolute_import
from
__future__
import
division
from
__future__
import
print_function
import
argparse
import
glob
import
json
import
os
import
os.path
as
osp
import
sys
import
shutil
import
xml.etree.ElementTree
as
ET
from
tqdm
import
tqdm
import
re
def
main
():
"""
create label_list.txt from dataset, support voc and coco dataset_type.
# create_lable_list from voc dataset
python tools/create_label_list.py --dataset_type voc --xml_dir path_to_xml_dir
# create_lable_list from coco dataset
python tools/create_label_list.py --dataset_type coco --json_path path_to_json_path
"""
parser
=
argparse
.
ArgumentParser
(
formatter_class
=
argparse
.
ArgumentDefaultsHelpFormatter
)
parser
.
add_argument
(
'--dataset_type'
,
help
=
'the type of dataset'
)
parser
.
add_argument
(
'--xml_dir'
,
help
=
'xml directory'
)
parser
.
add_argument
(
'--json_path'
,
help
=
'json_path'
)
parser
.
add_argument
(
'--outfile_path'
,
help
=
'output file path'
,
default
=
'output/label_list.txt'
)
args
=
parser
.
parse_args
()
if
args
.
dataset_type
==
'coco'
or
args
.
dataset_type
==
'COCO'
:
assert
args
.
dataset_type
and
args
.
json_path
try
:
assert
os
.
path
.
exists
(
args
.
json_path
)
except
AssertionError
as
e
:
print
(
'The json file: {} does not exist!'
.
format
(
args
.
json_path
))
os
.
_exit
(
0
)
anno
=
json
.
load
(
open
(
args
.
json_path
))
categories_list
=
[
cat
[
'name'
]
for
cat
in
anno
[
'categories'
]]
with
open
(
args
.
outfile_path
,
'w'
)
as
f
:
for
cat
in
categories_list
[
0
:
-
1
]:
f
.
write
(
cat
+
'
\n
'
)
f
.
write
(
categories_list
[
-
1
])
print
(
'lable_list file: {} create done!'
.
format
(
args
.
outfile_path
))
if
args
.
dataset_type
==
'voc'
or
args
.
dataset_type
==
'VOC'
:
assert
args
.
dataset_type
and
args
.
xml_dir
try
:
assert
os
.
path
.
exists
(
args
.
xml_dir
)
except
AssertionError
as
e
:
print
(
'The xml_dir: {} does not exist!'
.
format
(
args
.
xml_dir
))
os
.
_exit
(
0
)
categories_list
=
set
()
for
xml_file
in
tqdm
(
glob
.
glob
(
osp
.
join
(
args
.
xml_dir
,
'*.xml'
))):
# Read annotation xml
ann_tree
=
ET
.
parse
(
xml_file
)
ann_root
=
ann_tree
.
getroot
()
for
obj
in
ann_root
.
findall
(
'object'
):
cat_name
=
obj
.
findtext
(
'name'
)
categories_list
.
add
(
cat_name
)
categories_list
=
sorted
(
categories_list
)
with
open
(
args
.
outfile_path
,
'w'
)
as
f
:
for
cat
in
categories_list
[
0
:
-
1
]:
f
.
write
(
cat
+
'
\n
'
)
f
.
write
(
categories_list
[
-
1
])
print
(
'lable_list file: {} create done!'
.
format
(
args
.
outfile_path
))
if
__name__
==
'__main__'
:
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录