python写真データ集のロットにラベルを付ける

2541 ワード

1.データセットの紹介
OutdoorSceneデータセット:http://people.csail.mit.edu/torralba/code/spatialenvelope/
This dataset contains 8 out door scene categories:coast、mountain、forest、open country、street、inside city、tall buildings and highways.
The re re 2688カラーイメージ、256 x 256 pixels.All the objecs、regions in in this dataset have been.The re re more more than 29.00 objecs.The annotations.rable e.rabelMe format.
データセットをダウンロードして解凍したらこのようになります.
python 图片数据集批量打标签_第1张图片部分データセット画像
 2.pythonでロットタイプのラベルを実現する.
データ集中の写真が見られます.カテゴリによって.番号.jpgは名前を統一して、sqlitでファイル名を切って、彼らがどの種類に属するかを判断して、結果をマトリックスに保存して、csvファイルに書き込んでください.
import os
import numpy as np
import csv
'''
 outdoorscene     8        
directory_name:     
'''
def read_directory(directory_name):
    
    i = 0
    print('    :',len(os.listdir(directory_name)))
    img_target = np.zeros((len(os.listdir(directory_name)),8),dtype=int)

    for filename in os.listdir(directory_name):
       
        category = filename.split('_',1)[0]

        if category == 'coast':
            img_target[i,0]=1
        elif category == 'forest':
            img_target[i,1]=1
        elif category == 'highway':
            img_target[i,2]=1
        elif category == 'insidecity':
            img_target[i,3]=1
        elif category == 'mountain':
            img_target[i,4]=1
        elif category == 'opencountry':
            img_target[i,5]=1
        elif category == 'street':
            img_target[i,6]=1
        elif category == 'tallbuilding':
            img_target[i,7]=1            
        
        i=i+1

    return img_target

csvFile = open('target.csv','w', newline='')
writer = csv.writer(csvFile)
writer.writerows(list(read_directory("D:\spatial_envelope_256x256_static_8outdoorcategories")))
csvFile.close()
プログラム実行結果:
python 图片数据集批量打标签_第2张图片 csvファイル