로컬에서 가져온 jpg 파일 그룹을 npy 형식의 데이터 집합으로 설정
오늘, 나는 비망록의 방법으로 현지에서 가져온 이미지 그룹의 데이터 집합을 사용하는 제작 방법을 총괄하고 싶다.
또 이번 데이터 집합은 열거했다Oxford-ⅢT Pets
Oxford-ⅢT Pets
옥스포드 대학이 공개한 동물 이미지 데이터 집합최대 37종.고양이계와 개계.
데이터 세트가 될 이미지 그룹 다운로드
위의 Oxford-Pets III 링크를 클릭하고 Dataset을 클릭하면 압축된 이미지 파일 그룹을 얻을 수 있습니다
///
해동법
///
압축을 풀면 jpg 파일이 많이 나타납니다.
탭의 내보내기 (수작업! 압도적인 수작업!!!)
프로그램에 라벨 일람표를 배열하다.이것과 일치하는 문자열 등으로 필터를 하기 때문에 여기를 줄이면 클래스 분류의 클래스 수를 조정할 수 있습니다
PETS = [
"Abyssinian",
"american_bulldog",
"american_pit_bull_terrier",
"basset_hound",
"beagle",
"Bengal",
"Birman",
"Bombay",
"boxer",
"British_Shorthair",
"chihuahua",
"Egyptian_Mau",
"english_cocker_spaniel",
"english_setter",
"german_shorthaired",
"great_pyrenees",
"havanese",
"japanese_chin",
"keeshond",
"leonberger",
"Maine_Coon",
"miniature_pinscher",
"newfoundland",
"Persian",
"pomeranian",
"pug",
"Ragdoll",
"Russian_Blue",
"saint_bernard",
"samoyed",
"scottish_terrier",
"shiba_inu",
"Siamese",
"Sphynx",
"staffordshire_bull_terrier",
"wheaten_terrier",
"yorkshire_terrier"]
이미지에 대한 PATH 기술grob을 사용합니다.
file_type = 'jpg'
img_list = glob.glob(r"./images/*.jpg")
변수를 정의합시다.#全データ格納用
img_array_list = []
img_label_list = []
#教師用データ格納用
test_array_list = []
test_label_list = []
#学習データ格納用
teach_array_list = []
teach_label_list = []
폴더에서 파일 이름의 문자열을 모두 핥은 후 PETS 배열의 인덱스를 탭으로 적용합니다.for img in img_list:
for i in PETS:
if(i in img):
#print(i)
#print(img)すると、一致しているのがわかるが、長いのでオススメしない
img_label_list.append(PETS.index(i))
imgcv = plt.imread(img)
# 画像の大きさを取得
temp_img = load_img(img,grayscale=False,target_size=(imgcv.shape[0],imgcv.shape[1]))
temp_img_array = img_to_array(temp_img) /255
img_array_list.append(temp_img_array)
그나저나 댓글을 빼면 이런 상황이 생길 수 있다.Egyptian_Mau
./images/Egyptian_Mau_167.jpg
pug
./images/pug_52.jpg
basset_hound
./images/basset_hound_112.jpg
Siamese
그리고 학급당 20장씩(몇 장도 괜찮아요. 좋은 비율이 있으면 알려주세요)교사의 데이터를 삽입하다.
#各クラス20枚ずつ取り出して教師用データにする。
# 20*37 = 740
# 学習データ3050枚、教師データ740枚にわけたい
j=0
for j in range(37):
for i in range(len(img_label_list)):
while(teach_label_list.count(j) <=20):
teach_label_list.append(img_label_list.pop(i))
teach_array_list.append(img_array_list.pop(i))
continue
test_label_list = img_label_list
test_array_list = img_array_list
역시 데이터로는 부족할 것 같으니 37개 반으로 분류하지 않는 게 좋을 것 같아요, 웃음.참고로 Length 검사
print(len(teach_array_list))
print(len(teach_label_list))
print(len(test_label_list))
print(len(test_array_list))
#1180
#1180
#6210
#6210
모두 7390장입니다. (전 200장, 9장 적은 반은 1개 반, 1장 적은 반은 1개 반입니다.)오케이 같은데.그리고 완성된 목록을 빈 그룹으로 설정합니다
test_array_listnp = np.array(teach_array_list)#教師データ
test_label_listnp = np.array(teach_label_list)#教師ラベル
train_array_listnp = np.array(test_array_list)#学習データ
train_label_listnp = np.array(test_label_list)#学習ラベル
np.save npy 파일로 완성!여긴 무거워요np.save('test_array.npy',test_array_listnp)
np.save('test_label.npy',test_label_listnp)
np.save('train_array.npy',train_array_listnp)
np.save('train_label.npy',train_label_listnp)
몇 번 하면 주소 공간에서 확보하지 못해 목록이 비어 있는 경우가 많아요!무슨 해결책이 있으면 알려주세요!아직 검증이 안 됐습니다.만약 결과가 없다면 우선 데이터 집합을 말해 보세요.
Reference
이 문제에 관하여(로컬에서 가져온 jpg 파일 그룹을 npy 형식의 데이터 집합으로 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YaCpotato/items/bf37a5f32eb1e23280ac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)