From 02eb610c01804e94904d61d1a168eddf98532485 Mon Sep 17 00:00:00 2001 From: Junghoon Seo Date: Thu, 22 Jul 2021 11:36:04 +0900 Subject: [PATCH 1/7] renaming and add object dataset download code --- data.py | 6 ++--- download_objects.py | 37 +++++++++++++++++++++++++++++++ download.py => download_scenes.py | 0 3 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 download_objects.py rename download.py => download_scenes.py (100%) diff --git a/data.py b/data.py index 1196d93..7c1b9b3 100644 --- a/data.py +++ b/data.py @@ -39,14 +39,14 @@ def export_images(db_path, out_dir, flat=False, limit=-1): cursor = txn.cursor() for key, val in cursor: if not flat: - image_out_dir = join(out_dir, '/'.join(key[:6])) + image_out_dir = join(out_dir, '/'.join(str(key[:6]))) else: image_out_dir = out_dir if not exists(image_out_dir): os.makedirs(image_out_dir) - image_out_path = join(image_out_dir, key + '.webp') + image_out_path = join(image_out_dir, str(key) + '.webp') with open(image_out_path, 'w') as fp: - fp.write(val) + fp.write(str(val)) count += 1 if count == limit: break diff --git a/download_objects.py b/download_objects.py new file mode 100644 index 0000000..8bb7f41 --- /dev/null +++ b/download_objects.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- + +from __future__ import print_function, division +import argparse +from os.path import join + +import subprocess +from urllib.request import Request, urlopen + +__author__ = 'Fisher Yu' +__email__ = 'fy@cs.princeton.edu' +__license__ = 'MIT' + + +def download(out_dir, category): + url = 'http://dl.yf.io/lsun/objects/{category}.zip'.format(**locals()) + print(url) + out_name = '{category}.zip'.format(**locals()) + out_path = join(out_dir, out_name) + cmd = ['curl', url, '-o', out_path] + print('Downloading', category, 'set') + subprocess.call(cmd) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('-o', '--out_dir', default='') + args = parser.parse_args() + + categories = ['airplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'dining_table', 'dog', 'horse', 'motorbike', 'person', 'potted_plant', 'sheep', 'sofa', 'train' ,'tv-monitor'] + print('Downloading', len(categories), 'categories') + for category in categories: + download(args.out_dir, category) + +if __name__ == '__main__': + main() + diff --git a/download.py b/download_scenes.py similarity index 100% rename from download.py rename to download_scenes.py From a74f1b2ede598628d5afbf25b56ff25fb8d1845f Mon Sep 17 00:00:00 2001 From: Junghoon Seo Date: Thu, 22 Jul 2021 11:40:00 +0900 Subject: [PATCH 2/7] add makedirs with exists_ok option --- download_objects.py | 2 ++ download_scenes.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/download_objects.py b/download_objects.py index 8bb7f41..d85144b 100644 --- a/download_objects.py +++ b/download_objects.py @@ -3,6 +3,7 @@ from __future__ import print_function, division import argparse from os.path import join +from os import makedirs import subprocess from urllib.request import Request, urlopen @@ -26,6 +27,7 @@ def main(): parser = argparse.ArgumentParser() parser.add_argument('-o', '--out_dir', default='') args = parser.parse_args() + makedirs(args.out_dir, exist_ok=True) categories = ['airplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'dining_table', 'dog', 'horse', 'motorbike', 'person', 'potted_plant', 'sheep', 'sofa', 'train' ,'tv-monitor'] print('Downloading', len(categories), 'categories') diff --git a/download_scenes.py b/download_scenes.py index 4e08d65..8e9a99b 100644 --- a/download_scenes.py +++ b/download_scenes.py @@ -3,6 +3,7 @@ from __future__ import print_function, division import argparse from os.path import join +from os import makedirs import subprocess from urllib.request import Request, urlopen @@ -37,6 +38,7 @@ def main(): parser.add_argument('-o', '--out_dir', default='') parser.add_argument('-c', '--category', default=None) args = parser.parse_args() + makedirs(args.out_dir, exist_ok=True) categories = list_categories() if args.category is None: From c702cdd1ca21bbee648650427a6fa814f07042c5 Mon Sep 17 00:00:00 2001 From: mikigom Date: Thu, 22 Jul 2021 11:41:55 +0900 Subject: [PATCH 3/7] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 01697f1..bcac53d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # LSUN Please check [LSUN webpage](http://www.yf.io/p/lsun) for more information about the dataset. +This forked repo includes the code to download LSUN object dataset. ## Data Release From aa1080614656b9c5a6306a0c59c0b4f0adf23882 Mon Sep 17 00:00:00 2001 From: Junghoon Seo Date: Thu, 22 Jul 2021 11:57:21 +0900 Subject: [PATCH 4/7] add category list option --- download_objects.py | 9 ++++++++- download_scenes.py | 20 ++++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/download_objects.py b/download_objects.py index d85144b..5702c91 100644 --- a/download_objects.py +++ b/download_objects.py @@ -25,11 +25,18 @@ def download(out_dir, category): def main(): parser = argparse.ArgumentParser() + parser.add_argument('-c', '--category', nargs='+', type=str, defualt=None) parser.add_argument('-o', '--out_dir', default='') args = parser.parse_args() makedirs(args.out_dir, exist_ok=True) - categories = ['airplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'dining_table', 'dog', 'horse', 'motorbike', 'person', 'potted_plant', 'sheep', 'sofa', 'train' ,'tv-monitor'] + + if args.category is not None: + for category in args.category: + if category not in categories: + raise AttributeError('Error:', args.category, "doesn't exist in", 'LSUN release') + categories = args.category + print('Downloading', len(categories), 'categories') for category in categories: download(args.out_dir, category) diff --git a/download_scenes.py b/download_scenes.py index 8e9a99b..6e082ff 100644 --- a/download_scenes.py +++ b/download_scenes.py @@ -36,7 +36,7 @@ def download(out_dir, category, set_name): def main(): parser = argparse.ArgumentParser() parser.add_argument('-o', '--out_dir', default='') - parser.add_argument('-c', '--category', default=None) + parser.add_argument('-c', '--category', nargs='+', type=str, defualt=None) args = parser.parse_args() makedirs(args.out_dir, exist_ok=True) @@ -47,15 +47,27 @@ def main(): download(args.out_dir, category, 'train') download(args.out_dir, category, 'val') download(args.out_dir, '', 'test') - else: + + elif len(args.category) == 1: + args.category = args.category[0] + if args.category not in categories: + print('Error:', args.category, "doesn't exist in", 'LSUN release') if args.category == 'test': download(args.out_dir, '', 'test') - elif args.category not in categories: - print('Error:', args.category, "doesn't exist in", 'LSUN release') else: download(args.out_dir, args.category, 'train') download(args.out_dir, args.category, 'val') + else: + print('Downloading', len(args.category), 'categories') + for category in args.category: + if category not in categories: + raise AttributeError('Error:', category, "doesn't exist in", 'LSUN release') + for category in args.category: + download(args.out_dir, category, 'train') + download(args.out_dir, category, 'val') + if __name__ == '__main__': main() + From 7de524d96b623a48d75176d6f9e63c7f498c6cf1 Mon Sep 17 00:00:00 2001 From: mikigom Date: Thu, 22 Jul 2021 12:03:34 +0900 Subject: [PATCH 5/7] Update README.md --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bcac53d..b0067a4 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,20 @@ If you find LSUN dataset useful in your research, please consider citing: Please make sure you have cURL installed ```bash # Download the whole latest data set -python3 download.py +python3 download_scenes.py # Download the whole latest data set to -python3 download.py -o +python3 download_scenes.py -o # Download data for bedroom -python3 download.py -c bedroom +python3 download_scenes.py -c bedroom +# It supports the option for multiple categories +python3 download_scenes.py -c bedroom church # Download testing set -python3 download.py -c test +python3 download_scenes.py -c test + +python3 download_objects.py +python3 download_objects.py -o +python3 download_objects.py -c cat +python3 download_objects.py -c cat dog ``` ## Demo code From a003c85f786fbcd2f9083ffc605273cf65c91b65 Mon Sep 17 00:00:00 2001 From: mikigom Date: Thu, 22 Jul 2021 12:06:56 +0900 Subject: [PATCH 6/7] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b0067a4..5febff7 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ python3 download_scenes.py -c bedroom church # Download testing set python3 download_scenes.py -c test +# The options work in the download script of the object dataset. python3 download_objects.py python3 download_objects.py -o python3 download_objects.py -c cat From af52abfa3d06c2e525b9b56f53dfecdf361783d0 Mon Sep 17 00:00:00 2001 From: Junghoon Seo Date: Thu, 22 Jul 2021 12:11:16 +0900 Subject: [PATCH 7/7] some typos fixed --- README.md | 2 +- download_objects.py | 2 +- download_scenes.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5febff7..a26b337 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ python3 download_scenes.py -o # Download data for bedroom python3 download_scenes.py -c bedroom # It supports the option for multiple categories -python3 download_scenes.py -c bedroom church +python3 download_scenes.py -c bedroom church_outdoor # Download testing set python3 download_scenes.py -c test diff --git a/download_objects.py b/download_objects.py index 5702c91..1d17c1e 100644 --- a/download_objects.py +++ b/download_objects.py @@ -25,7 +25,7 @@ def download(out_dir, category): def main(): parser = argparse.ArgumentParser() - parser.add_argument('-c', '--category', nargs='+', type=str, defualt=None) + parser.add_argument('-c', '--category', nargs='+', type=str, default=None) parser.add_argument('-o', '--out_dir', default='') args = parser.parse_args() makedirs(args.out_dir, exist_ok=True) diff --git a/download_scenes.py b/download_scenes.py index 6e082ff..5e272cc 100644 --- a/download_scenes.py +++ b/download_scenes.py @@ -36,7 +36,7 @@ def download(out_dir, category, set_name): def main(): parser = argparse.ArgumentParser() parser.add_argument('-o', '--out_dir', default='') - parser.add_argument('-c', '--category', nargs='+', type=str, defualt=None) + parser.add_argument('-c', '--category', nargs='+', type=str, default=None) args = parser.parse_args() makedirs(args.out_dir, exist_ok=True)