Sunday, June 25, 2023

x̄ - > Image classification in R programming

 Image classification in R programming can be accomplished using various packages and techniques. One popular approach is to use convolutional neural networks (CNNs), which are deep learning models specifically designed for image analysis tasks. Here's an example of image classification in R using the `keras` package, which provides an interface to the Keras deep learning library:


1. Install the necessary packages:

```R

install.packages("keras")

library(keras)

```


2. Load and preprocess the image data:

```R

# Specify the path to your image dataset

train_dir <- "path_to_train_images_directory"

test_dir <- "path_to_test_images_directory"


# Set image dimensions and batch size

img_width <- 150

img_height <- 150

batch_size <- 32


# Prepare the image data generator

train_datagen <- image_data_generator(

  rescale = 1/255,  # Normalize pixel values

  shear_range = 0.2,

  zoom_range = 0.2,

  horizontal_flip = TRUE

)


test_datagen <- image_data_generator(rescale = 1/255)


# Generate training and testing data batches

train_data <- flow_from_directory(

  train_dir,

  target_size = c(img_width, img_height),

  batch_size = batch_size,

  class_mode = "categorical"

)


test_data <- flow_from_directory(

  test_dir,

  target_size = c(img_width, img_height),

  batch_size = batch_size,

  class_mode = "categorical"

)

```


3. Build the CNN model:

```R

# Create a sequential model

model <- keras_model_sequential()


# Add convolutional layers

model %>%

  layer_conv_2d(filters = 32, kernel_size = c(3, 3), activation = "relu",

                input_shape = c(img_width, img_height, 3)) %>%

  layer_max_pooling_2d(pool_size = c(2, 2))


model %>%

  layer_conv_2d(filters = 64, kernel_size = c(3, 3), activation = "relu") %>%

  layer_max_pooling_2d(pool_size = c(2, 2))


model %>%

  layer_conv_2d(filters = 128, kernel_size = c(3, 3), activation = "relu") %>%

  layer_max_pooling_2d(pool_size = c(2, 2))


# Flatten the 3D output to 1D

model %>% layer_flatten()


# Add dense layers for classification

model %>% layer_dense(units = 64, activation = "relu")

model %>% layer_dropout(rate = 0.5)

model %>% layer_dense(units = 2, activation = "softmax")


# Compile the model

model %>% compile(

  loss = "categorical_crossentropy",

  optimizer = optimizer_rmsprop(lr = 0.001),

  metrics = c("accuracy")

)

```


4. Train the model:

```R

# Set the number of training and validation steps per epoch

train_steps <- floor(train_data$n / batch_size)

valid_steps <- floor(test_data$n / batch_size)


# Train the model

history <- model %>% fit_generator(

  train_data,

  steps_per_epoch = train_steps,

  epochs = 10,

  validation_data = test_data,

  validation_steps = valid_steps

)

```


5. Evaluate the model and make predictions:

```R

# Evaluate the model on the test data

loss_and_metrics <- model %>% evaluate_generator(

  test_data,

  steps = valid_steps

)


# Print the accuracy

accuracy <- loss_and_metrics[[2]]

print(paste("Accuracy:",

No comments:

Meet the Authors
Zacharia Maganga’s blog features multiple contributors with clear activity status.
Active ✔
πŸ§‘‍πŸ’»
Zacharia Maganga
Lead Author
Active ✔
πŸ‘©‍πŸ’»
Linda Bahati
Co‑Author
Active ✔
πŸ‘¨‍πŸ’»
Jefferson Mwangolo
Co‑Author
Inactive ✖
πŸ‘©‍πŸŽ“
Florence Wavinya
Guest Author
Inactive ✖
πŸ‘©‍πŸŽ“
Esther Njeri
Guest Author
Inactive ✖
πŸ‘©‍πŸŽ“
Clemence Mwangolo
Guest Author

Followers

Support This Blog
Tap Donate now here to donate or go to donate on top menu to scan QR and support this site.
Donate Now