它由50种动物类别的37322张图像组成,每张图像均具有预先提取的特征表示。这些类与Osherson的经典类/属性矩阵[3,4]对齐,从而为每个类提供85个数字属性值。使用共享属性,可以在不同的类之间传递信息。
图像数据是在2016年从公共资源(例如Flickr)收集的。在此过程中,我们确保只包括获得免费使用和重新分发许可的图像,请参阅单个许可文件的档案。 用于零样本学习的数据集,50个动物类别,85个属性
文件介绍:
JPEGImages:动物图片,子文件夹名为动物名称
licenses:是些用处不大的文件
class.txt:动物列表,顺序很重要!!!
predicates.txt:属性列表,顺序很重要!!!
predicate-matrix-binary.txt:每行对应每个动物的属性,每行对应的动物类型参考class.txt文件,每列对应的属性参考predicates.txt文件,二值属性
predicate-matrix-binary.txt:每行对应每个动物的属性,每行对应的动物类型参考class.txt文件,每列对应的属性参考predicates.txt文件,连续属性,用于后续的unseen样本的分类,值为每个属性的置信度,可能在实际应用中需要归一化
testclasses.txt:用于测试的类别
trainclasses.txt:用于训练的类别
在实际的使用中,原数据集中提供的数据可能不是很方便使用,可自行将txt文件转为csv文件更加方便使用,如下:
利用VGG19(在ImageNet数据集上预训练过)对该数据集进行特征提取,选取全连接层的倒数第二层输出作为特征,维度为4096维。
源码如下:
# -*- coding: utf-8 -*-
from keras.applications.vgg19 import VGG19
from keras.preprocessing import image
from keras.applications.vgg19 import preprocess_input
from keras.models import Model
import os
import numpy as np
import scipy.io as sio
import csv
##获取文件路径列表dir+filename
def get_files():
attribute_path = r"C:\Users\ZhouFengtao\OneDrive\Program\balabalaba\data\attribute.csv"
path = r"D:\AwA2-data\Animals_with_Attributes2\JPEGImages"
class_list = []
class_num = {}
class_att = {}
image_path = []
image_att = None
attribute_file = csv.reader(open(attribute_path))
# get attribute
print('get attribute')
for row in attribute_file:
att = [float(x) for x in row[1:]]
class_att[row[0]] = att
class_num[row[0]] = 0
for root, dirs, files in os.walk(path):
for name in files:
animal = str.split(name, '_')[0]
if animal not in class_list:
class_list.append(animal)
class_num[animal] = class_num[animal] + 1
if image_att is None:
image_att = class_att[animal]
else:
image_att = np.row_stack((image_att, class_att[animal]))
image_path.append(os.path.join(root, name))
return class_list, class_num, class_att, image_path
if __name__ == '__main__':
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '0'
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
base_model = VGG19(weights='imagenet', include_top=True)
model_fc1 = Model(inputs=base_model.input, outputs=base_model.get_layer('fc1').output) # fc1 layer
class_list, class_num, class_att, image_path = get_files() ##获取图片路径列表
print(class_list)
print(class_num)
print(class_att)
fc1s = None
atts = None
for i, path in enumerate(image_path):
print('number ' + str(i) + ' path: ' + path)
try:
img = image.load_img(path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
fc1 = model_fc1.predict(x)
key = str.split(str.split(path, '\\')[-1], '_')[0]
att = class_att[key]
if fc1s is None:
fc1s = fc1
atts = att
else:
fc1s = np.row_stack((fc1s, fc1))
atts = np.row_stack((atts, att))
except IOError:
print('########################Image Error###########################')
# save extracted feature
sio.savemat('vgg19_feature', {'fc1': fc1s, 'atts': atts})
fw = open("animals_num.txt", 'w+')
fw.write(str(class_num)) # 把字典转化为str
fw.close()
fw = open("animals_sequence.txt", 'w')
fw.write(str(class_list)) # 把list转化为str
fw.close()
animals with attributes标签图像
发布:可思数据
时间:2019-11-04
文件类型:.zip 文件大小:1.6 GB
授权方式:公共开源 发布时间:2019-11-04
数据来源:CHRISTOPH LAMPERT
数据语言:英文
数据介绍:
下载地址:
特别声明:
¤ 此数据集库仅供研究和教育用途,不得用于任何商业用途。¤ 如果您在任何出版物或报告中使用该数据库,则必须添加引用本站来源。
¤ 版权归作者及所在组织所有。
¤ 如用于商业用途,请联系版权所有人。
¤ 本站数据来源于网络如有侵权请联系我们。
¤ 本站数据压缩包统一解压密码:www.sykv.com
人工智能交流群扫码邀请
相关文章:
-
无相关信息
相关推荐:
网友评论:
数据集分类
最新数据集
推荐数据集