Я использую Python + Tensorflow для обучения CNN на высокопроизводительном вычислительном кластере.Я тренирую сверточную нейронную сеть, но у меня относительно небольшой набор данных.Поэтому я внедряю методы, чтобы увеличить его.Сейчас я впервые работаю над основной проблемой компьютерного зрения, поэтому я относительно новичок в этом.
В качестве увеличения количества изображений для обучения используется пакет imgaug (https://github.com/aleju/imgaug), для которого требуется cv2кажется идеальным и простым решением для умножения количества изображений. Я установил opencv2 с использованием Python 2.7, все необходимые пакеты Python работают локально (здесь не используются env / Anaconda / Docker).
Практически, яя пытаюсь запустить этот код из здесь :
import os
import imgaug as ia
from imgaug import augmenters as iaa
import scipy
import cv2
import numpy as np
# optional check my hint import scipy.misc import imwrite
# optional check my hint import scipy.misc import imsave
ia.seed(1)
# Example batch of images.
# The array has shape (32, 64, 64, 3) and dtype uint8.
images = np.array(
[ia.quokka(size=(64, 64)) for _ in range(32)],
dtype=np.uint8
)
seq = iaa.Sequential([
iaa.Fliplr(0.5), # horizontal flips
iaa.Crop(percent=(0, 0.1)), # random crops
# Small gaussian blur with random sigma between 0 and 0.5.
# But we only blur about 50% of all images.
iaa.Sometimes(0.5,
iaa.GaussianBlur(sigma=(0, 0.5))
),
# Strengthen or weaken the contrast in each image.
iaa.ContrastNormalization((0.75, 1.5)),
# Add gaussian noise.
# For 50% of all images, we sample the noise once per pixel.
# For the other 50% of all images, we sample the noise per pixel AND
# channel. This can change the color (not only brightness) of the
# pixels.
iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.05*255), per_channel=0.5),
# Make some images brighter and some darker.
# In 20% of all cases, we sample the multiplier once per channel,
# which can end up changing the color of the images.
iaa.Multiply((0.8, 1.2), per_channel=0.2),
# Apply affine transformations to each image.
# Scale/zoom them, translate/move them, rotate them and shear them.
iaa.Affine(
scale={"x": (0.8, 1.2), "y": (0.8, 1.2)},
translate_percent={"x": (-0.2, 0.2), "y": (-0.2, 0.2)},
rotate=(-25, 25),
shear=(-8, 8)
)
], random_order=True) # apply augmenters in random order
images_aug = seq.augment_images(images)
После создания файла .py с этим кодом я скопировал этот файл в папку из 50 изображений (.jpg)Сам код работает отлично (без ошибок), но кажется, что файл .jpg не загружается в файл .py, даже если я задаю путь к папке, он не будет загружать изображения. Кроме того, никаких новых файлов не было.Написано.
Вопрос 1: Думаю, я должен загрузить изображения в виде массива в .py или в cv2, но я не могу найти ни одного примера, как загрузить и записать их, как я никогда не делалsчто-то вроде этого.Любая помощь?
Вопрос 2: Какой интерфейс лучше всего использовать в этом контексте?Все изображения хранятся в папках или файлах .xlsx.
(Подсказка: может, к сожалению, этот вариант основан на Keras ( Link )? Или я нашел эти 2 варианта, но я не могу их использовать scipy.ndimage.imread и scipy.misc.imsave )