ディレクトリ構造
/dataset/ xxxx.tif # 原始图像 image-3000 0.tif # 切割后的tif 1.tif ........ 0.json # 生成的json文件也放在该文件夹下 1.json ....... 0_json # 调用labelme_json_to_dataset 0.json 生成的0_json文件夹 img.png # 原始图片的png格式 info.yaml label.png # 标签图片 label_names.txt label_viz.png 1_json ....... 0.png # 将json文件夹中的label.png 提取出来 1.png ....... label_0.tif # 将上边的png标签文件转换为tif格式
データを収集し、高解像度画像
- などUAVデータ、航空データ、
カット画像は、ピクセルサイズはどのくらいですか?
フォーマットTIFこの平均画素データセットのサイズ(40000 * 50000)、LZW圧縮方式
コンピュータのグラフィックスカードを考慮することは、そのような元利3000 3000の使用などの問題を切断することなく目的の建物ではないとしてみてください*
# data:2020-01-04 # user:dean # desc:图像切割脚本 import tifffile as tiff # 也可使用pillow或opencv 但若图片过大时可能会出问题 import os image = r"I:\人工智能数据\DOM\裴庄村51-dom\裴庄村51-dom.tif" target_dir = r"I:\人工智能数据\DOM\裴庄村51-dom\image-3000" # 切割后图片存储位置 width = 1500*2 # 切割图像大小 height = 1500*2 # 切割图像大小 img = tiff.imread(image) # 导入图片 print("导入图片完成",img.shape) # 原始图片大小 pic_width = img.shape[1] pic_height = img.shape[0] row_num = pic_width//width # 纵向切割数量 col_num = pic_height // height # 横向切割数量 print("开始进行切割,可切割总数为{}".format(col_num*row_num)) for j in range(col_num): for i in range(row_num): num = j * row_num + i print("正在进行第{}张切割".format(num + 1)) row = i * width row_end = row + width col = j * height col_end = col + height # print(col,col_end,row,row_end) cropped = img[col:col_end,row:row_end] name = "{}.tif".format(num) image_path = os.path.join(target_dir,name) tiff.imsave(image_path, cropped)
注釈ツールlabelme
各画像にタグを付けるラベルを使用します
pip install labelme # 安装labelme
各画像ファイルにタグ付けした後、対応するname.jsonを生成します
labelme_json_to_dataset xxx.json
# data:2020-01-04 # user:dean # desc:批量将json文件转为 label import os dir = r"I:\人工智能数据\DOM\裴庄村51-dom\image-3000" files = [os.path.join(dir,file) for file in os.listdir(dir) if file.endswith(".json")] for file in files: cmd = "labelme_json_to_dataset {}".format(file) print(cmd) os.system(cmd)
統一されたフォルダを抽出するために、すべてのJSON / label.png
# data:2020-01-04 # user:dean # desc:将label文件夹中的laebl提取出来 import tifffile as tiff from PIL import Image import os target_dir = r"I:\人工智能数据\DOM\裴庄村51-dom\image-3000" # json_label 所在的文件夹 files = [os.path.join(target_dir,file) for file in os.listdir(target_dir)] for i in files: if os.path.isdir(i): lables = os.listdir(i) for file in lables: if file == "label.png": imgae = Image.open(os.path.join(i, "label.png")) name = "{}.png".format(i.split("_")[0]) imgae.save(os.path.join(target_dir,name)) print("第{}个文件夹".format(i)) break;
TIF形式としてすべてlabel.pngを変換します
# coding:utf-8 # file: change_format.py # author: Dean # contact: [email protected] # time: 2020/1/4 20:41 # desc:图片格式转换 from PIL import Image import os target_dir = "I:\人工智能数据\DOM\裴庄村51-dom\image-3000" # png 图片所在文件夹 files = [os.path.join(target_dir,file) for file in os.listdir(target_dir)] print(files) for file in files: if file.endswith(".png"): name = os.path.basename(file) new_name = "label_{}.tif".format(name.split(".")[0]) image = Image.open(file) path = os.path.join(target_dir, new_name) image.save(path) print(path)
端(対応するデータを抽出することができます)
抽出生産を構築する高解像度の画像データセット
おすすめ
転載: www.cnblogs.com/Dean0731/p/12150524.html
おすすめ
ランキング