[python]Cityscapes Foggyデータセット回転yoloフォーマット(ターゲット検出タスク)
データセットダウンロード関連論文アドレス データセットの著作権の問題に鑑み、このデータセットは公開ダウンロードされず、スクリプト変換しかできない.しかし、ここではネットユーザーが変換したデータセットを見つけることができます. cityscapesから直接変換することもできます:SFSU_synthetic.
前の内容
cityscapes foggyデータセットはcityscapesに基づいているため、cityscapesのデータセットを先に取得し、関連スクリプト処理でyoloフォーマットに変換する必要があります.詳細は、[python]Cityscapesターゲット検出寸法回転YOLOフォーマットを参照してください.
ps:
一般的に、この2つのペアリングデータセットは、移行学習またはドメイン適応を研究するために使用され、一緒に使用される.次のスクリプトを使用して、cityscapesのyoloタグをfoggyに直接変更することができます.
トランスファスクリプト
処理@gist
前の内容
cityscapes foggyデータセットはcityscapesに基づいているため、cityscapesのデータセットを先に取得し、関連スクリプト処理でyoloフォーマットに変換する必要があります.詳細は、[python]Cityscapesターゲット検出寸法回転YOLOフォーマットを参照してください.
ps:
getFine_trainvaltest.zip
ファイルだけをダウンロードして、上の文章のスクリプトを持って、スクリプトのleftImg8bit
をleftImg8bit_foggy
に変更すればいいです.一般的に、この2つのペアリングデータセットは、移行学習またはドメイン適応を研究するために使用され、一緒に使用される.次のスクリプトを使用して、cityscapesのyoloタグをfoggyに直接変更することができます.
トランスファスクリプト
処理@gist
import json
import os
from pathlib import Path
import re
from tqdm import tqdm
import shutil
def mkdir(url):
if not os.path.exists(url):
os.makedirs(url)
if __name__ == '__main__':
root_dir = Path(__file__).parent
image_dir = root_dir / 'leftImg8bit_foggy'
image_output_root_dir = root_dir / 'images'
label_output_root_dir = root_dir / 'labels' # cityscapes yolo txt
foggy_rates = [0.01, 0.02, 0.005] #
for _t_ in tqdm(['train', 'test', 'val']):
mkdir(image_output_root_dir / _t_)
# 'berlin_000000_000019_leftImg8bit.png' -> 'berlin_000000_000019_leftImg8bit_foggy_beta_0.01.png'
#
for label_file in os.listdir(label_output_root_dir / _t_).copy():
for fr in foggy_rates:
shutil.copy(label_output_root_dir / _t_ / label_file,
label_output_root_dir / _t_ / f'{Path(label_file).stem}_foggy_beta_{fr}.txt')
os.remove(label_output_root_dir / _t_ / label_file)
#
type_files = []
for city_name in os.listdir(image_dir / _t_):
for img_file in os.listdir(image_dir / _t_ / city_name):
shutil.copy(image_dir / _t_ / city_name / img_file, image_output_root_dir / _t_ / img_file) #
type_files.append(f'./images/{_t_}/{img_file}
')
with open(root_dir / f'yolo_{_t_}.txt', 'w') as f: #
f.writelines(type_files)