This repository includes voxel data generator for data augmentation. The style of the generator is like Keras's ImageDataGenerator class. Input data cab be augmented:
- Flip
- Shift
- Zoom
- Rotate
scipy, numpy
prepare your data in array form.
data = np.load(path_to_data)
import the following module in this repository.
from voxel_data_generator import VoxelDataGenerator
create an instance with arguments to specify which type you want to augment by.
# Some examples
# flip along y axis
c = VoxelDataGenerator(flip_axis=2)
# shift by 0.3 rate along x axis positive direction
c = VoxelDataGenerator(shift_axis=1, shift_range=0.3)
# zoom by 1.5 magnification along x axis
c = VoxelDataGenerator(zoom_axis=1, zoom_range=1.5)
# rotate by 45 degree around x axis
c = VoxelDataGenerator(rotate_axis=1, rotate_angle=45)
build a generator by specifying data to be augmented and the number of data to generate.
# you can generate 3 data until StopIteration Exception is returned.
g = c.build(data=data, batch_size=32)
# you can also take labels as the second argument and pass the generator to Keras's fit_generator
g = c.build(data=data, label=label, batch_size=32)
model.fit_generator(g, steps_per_epoch=50, epochs=30)
# Note: as written in VoxelDataGenerator class, it is able to take only one type of augmentations limited by the current specification.
You can get MODELNET10 in the following website.
PRINCETON MODELNET (http://modelnet.cs.princeton.edu/)