[PYTHON] Extraire des images des ensembles de données Cifar et CUCUMBER-9

Il peut être préférable d'avoir un titre qui génère une image à partir d'un tableau numpy en Python3 (osez être une niche (^^;)

cifar est un ensemble d'images d'avions et de chats, et le concombre est un ensemble d'images de concombres (comme son nom l'indique). Il est distribué au format de tableau numpy afin qu'il soit facile à utiliser pour l'apprentissage automatique, mais la motivation est de jeter un œil au contenu réel.

https://www.cs.toronto.edu/~kriz/cifar.html https://github.com/workpiles/CUCUMBER-9

Il semble que le concombre ait le même format que le cifer, mais en réalité, il était différent et nécessitait un traitement séparé. Le format de concombre est-il plus pratique pour Tensorflow? (Je ne connais pas la raison)

data.shape = (10000, 3072) # cifar-10
data.shape = (1485, 1024) # CUCUMBER-9

L'exemple de programme est le suivant. Pour Python2, utilisez cPickle. Nécessite numpy et PIL.

import numpy as np
import _pickle,random
from PIL import Image

def unpickle(file):
    fo = open(file, 'rb')
    dict = _pickle.load(fo, encoding='latin-1')
    fo.close()
    return dict

def image_from_cifar(index,dic):
    name = dic['filenames'][index]
    data = dic['data'][index].reshape(3, 32, 32).transpose(1, 2, 0) # shape=(32, 32, 3)
    img = Image.fromarray(data, 'RGB')
    print(name)
    img.save(name)

def image_from_cucumber(index,dic):
    name = dic['filenames'][index]
    r = dic['data'][index*3]
    g = dic['data'][index*3+1]
    b = dic['data'][index*3+2]
    data = np.array([r,g,b]).T.reshape(32,32,3)
    img = Image.fromarray(data, 'RGB')
    print(name)
    img.save(name)

if __name__ == "__main__":
    dic = unpickle('cifar-10-batches-py/data_batch_1')
    image_from_cifar(random.randint(0,len(dic['filenames'])),dic)

    dic = unpickle('CUCUMBER-9-master/prototype_1/cucumber-9-python/data_batch_1')
    image_from_cucumber(random.randint(0,len(dic['filenames'])),dic)

Si vous exécutez chaque ensemble de données dans le répertoire actuel, il enlèvera au hasard une feuille et l'enregistrera en tant qu'image.

tabby_cat_s_000125.png

2L_00153.jpg

Recommended Posts

Extraire des images des ensembles de données Cifar et CUCUMBER-9
Extraire et empaqueter des images initrd
Extraire du texte d'images avec Python
[Python] (Line) Extraire les valeurs des images graphiques
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
Extraire des images et des tableaux de pdf avec python pour réduire la charge de reporting
Extraire des caractères d'images à l'aide de l'API de reconnaissance de caractères de docomo
[Python débutant] Extrayez la préfecture et la ville de l'adresse (3 lignes).
Supprimez les composants et les rappels de app.py avec plotly Dash
Recherchez et enregistrez l'image de Tomono Kafu depuis Twitter
[Python] Extraire uniquement les nombres des listes et des chaînes de caractères
Extraction de données depuis S3
Extrayez la quantité de caractéristiques (identité) du texte.
Extraire le tableau de wikipedia
Suivez la structure de données de Blender et extrayez les coordonnées des sommets de fbx