Skip to content

SomebodyAcc/Catedium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catedium App

Catedium is a mobile app that helps users distinguish between 10 types of big cats, like lions, tigers, and jaguars, which are often hard to tell apart. The app educates and aids in recognizing and understanding these cats' differences.

This app will classify 10 types of big cats with the following labels:

  • African Leopard
  • Caracal
  • Cheetah
  • Clouded Leopard
  • Jaguar
  • Lion
  • Ocelot
  • Puma
  • Snow Leopard
  • Tiger

Machine Learning Path

We at Machine Learning Path have built a model for catedium with the following steps:

Alt Text

Part 1: Data Preprocessing

  • Imported necessary libraries such as TensorFlow and os.
  • Accessed Google Drive to retrieve the dataset and extracted the dataset into the working directory.
  • Performed data augmentation and image normalization using ImageDataGenerator.
  • Created generators for the training, validation, and test sets.

Part 2: Model Building

  • Created a Convolutional Neural Network (CNN) model using TensorFlow's Sequential API.
  • Added several Conv2D, MaxPooling2D, Flatten, Dense, and Dropout layers.
  • Compiled the model with the 'adam' optimizer, 'categorical_crossentropy' loss function, and 'accuracy' metric.

Part 3: Model Training

  • Trained the model using data generators for the training and validation sets.
  • Set the number of epochs for training and monitored the model's performance on the validation set.

Part 4: Model Evaluation and Prediction

  • Evaluated the model's performance on the test set and displayed accuracy.
  • Saved the trained model in .h5 and SavedModel formats.
  • Loaded the saved model for reuse.
  • Created a function to display sample images along with predictions and true labels.

Part 5: Testing to Unknown Data

  • Prepared test data from a zip file and created a generator for the test data.
  • Uploaded new images, processed them, and made predictions using the trained model.
  • Displayed the images along with the predicted class provided by the model.

Part 6: API

  • Implemented a REST API using Flask.
  • Loaded the trained CNN model and created a function to preprocess images.
  • Created an endpoint /predict that accepts image files, processes them, and provides predictions in JSON format.
  • Used Postman to test this endpoint.
  • Handed over the model and REST API to the Path Cloud team for deployment.

Cloud Computing Path

As a cloud computing path, we design backend services to bridge machine learning models and mobile applications. Starting from designing the response structure on the API, then deploying the backend application to Google Cloud Run and we also create a website version of the application.

Alt Text

Mobile Developer Path

As a mobile developer path, we created a mobile application using Kotlin language with Android Studio. In this manufacture, it uses images as a benchmark to check which class the cat is in. When the image has been obtained from the camera or uploaded, the image will be sent to the fire that has been created. When the image is processed by the fire and returns the name of the cat class, the application will display information that matches the cat class.

Alt Text

About

Cat Identification using CNN Tensorflow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages