53 lines
1.4 KiB
Python
Raw Normal View History

# Copyright (c) Alibaba, Inc. and its affiliates.
import os
from easycv.utils.constant import CACHE_DIR
from .commont import VOC_CFG, check_path_exists, download
# Check whether the data exists
def check_data_exists(name, target_dir, split):
root_path = os.path.join(target_dir, 'VOCdevkit', name.upper())
if os.path.exists(root_path):
return check_path_exists({'path': process_voc(root_path, split=split)})
else:
return False
# return abs path
def process_voc(path, split='train'):
if split == 'train':
return os.path.join(path, 'ImageSets/Main/train.txt')
else:
return os.path.join(path, 'ImageSets/Main/val.txt')
# xtract the data
def extract(name, file, target_dir=CACHE_DIR):
cmd = f'tar -xvf {file} -C {target_dir}'
print('begin Unpack.....................')
os.system(cmd)
print('Unpack is finished.....................')
def download_voc(name, split='train', target_dir=CACHE_DIR, **kwargs):
# Declare a global
global cfg
# Use it for testing
if kwargs.get('cfg'):
cfg = kwargs.get('cfg')
else:
cfg = VOC_CFG
if check_data_exists(name, target_dir, split):
return check_data_exists(name, target_dir, split)
# Start the download
file_path = download(cfg.get(name), target_dir=target_dir)
# began to unpack
extract(name, file_path, target_dir=target_dir)
return check_data_exists(name, target_dir, split)