knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%",
  fig.align="center"
)

augmentatoR

The goal of augmentatoR package is to provide image augmentations for deep learning tasks: classification/regression, segmentation and object detection. augmentatoR is built on top of magick package as more powerfull alternative for keras::image_data_generator.

Installation

You can install dev version of augmentatoR from GitHub with:

devtools::install_github("statist-bhfz/augmentatoR")

Example

Test image:

library(augmentatoR)
img <- image_read("man/figures/README-test_image.jpg")
img

All transformations are controlled by single parameter params. Just modify default value to specify desired transformations and its settings (probability or intensity):

img_1 <- aug_img(img,  out_width = 256, out_height = 256, 
                 list(modulate = list(brightness  = c(50, 70), 
                                      saturation = c(100, 100), 
                                      hue = c(100, 100))))  
img_2 <- aug_img(img, out_width = 256, out_height = 256, 
                 list(flop = list(prob = 1)))
img_3 <- aug_img(img, out_width = 256, out_height = 256, 
                 list(crop = list(width = 180, 
                                  height = 180, 
                                  x_off = c(0, 30), 
                                  y_off = c(0, 30)), 
                      rotate = list(angle = c(25, 45))))
img_4 <- aug_img(img, out_width = 256, out_height = 256, 
                 list(rotate = list(angle = c(25, 45)),
                      crop = list(width = 180, 
                                  height = 180, 
                                  x_off = c(0, 30), 
                                  y_off = c(0, 30))))

img_1_2 <- c(
    image_annotate(img_1, "Brightness", gravity = "south", 
                   size = 32, color = "white"),
    image_annotate(img_2, "Flop", gravity = "south", 
                   size = 32, color = "white")
)

img_3_4 <- c(
    image_annotate(img_3, "Crop & rotate", gravity = "south", 
                   size = 32, color = "white"),
    image_annotate(img_4, "Rotate & crop", gravity = "south", 
                   size = 32, color = "white")
)

image_append(c(image_append(img_1_2), image_append(img_3_4)), 
             stack = TRUE)

You can also use augmentation not listed in ?aug_img description:

aug_img(img, out_width = 256, out_height = 256, 
        list("noise" = list("gaussian")))
aug_img(img, out_width = 256, out_height = 256, 
        list("chop" = list(geometry_area(width = 30, 
                                         height = 0, 
                                         x_off = round(runif(1, 1, 256)), 
                                         y_off = 0))))

The last example follows the same pattern as provided in default params. The only difference is explicit using of random number generation.



statist-bhfz/augmentatoR documentation built on May 24, 2019, 9:55 a.m.