Skip to content

CamScan is an Android application designed to scan images from the user's photo gallery, detect faces in each image using MediaPipe, and allow users to tag each detected face with names

Notifications You must be signed in to change notification settings

Yashgugaliya/CamScan

Repository files navigation

CamScan

Overview

CamScan is an Android application designed to scan images from the user's photo gallery, detect faces in each image using MediaPipe, and allow users to tag each detected face with names. The app ensures a smooth user experience with loading indicators and saves images with detected faces in a local database.

Features

  • Gallery Access: Easily access and scan images from the device's gallery.
  • Face Detection: Leverage MediaPipe's powerful face detection capabilities to identify faces in images.
  • Tagging: Tag detected faces with names for better organization and retrieval.
  • Local Storage: Save images with detected faces and tags in a Room database.
  • User Interface: Intuitive UI that provides loading indicators during processing.

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • MediaPipe - Library for face detection.
  • Hilt - Hilt provides a standard way to incorporate Dagger dependency injection into an Android application.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • Room - SQLite object mapping library.

Package Structure

com.example.screenshot  # Root Package

├── data                # For data handling.
│   ├── local           # Local Persistence Database. Room (SQLite) database   
|   ├── repository      # Single source of data.
│   └── model           # Model classes
|
├── di                  # Dependency Injection         
├── util                # Utility Classes / Kotlin extensions  
├── presentation        # Presentation layer
│   ├── ui              # Activity layer
│   ├── util            # Utility Classes / Kotlin extensions  
│   └── viewmodel       # ViewHolder for RecyclerView
└── app                 # Application Class

Architecture

This app uses MVVM (Model View View-Model) architecture.

Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository:
    git clone https://github.com/Yashgugaliya/CamScan.git
    

About

CamScan is an Android application designed to scan images from the user's photo gallery, detect faces in each image using MediaPipe, and allow users to tag each detected face with names

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages