Skip to content

manishakaler/Image-Annotator-UI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

CROWDANN UI Editor

A React-based image annotation editor for a crowdsourcing platform that allows users to retrieve images, annotate objects, and save labels and coordinates through JWT-authenticated REST APIs.

Overview

CROWDANN is an online crowdsourcing platform for image annotation. This repository contains the UI Editor component, which allows authenticated users to retrieve images from a dataset, annotate them using drawing tools, and submit labels and coordinates to the backend database.

The project was built as part of a B.Tech. project at IIT Jodhpur. The editor is designed for computer vision data collection workflows where human-generated annotations are required for downstream tasks such as face recognition, robotics, text recognition, autonomous vehicles, and surveillance analysis.

Features

  • User login and registration flow integrated with an identity provider
  • JWT-based authentication for secure API communication
  • Image retrieval from the application server
  • Freehand annotation tool
  • Rectangle / bounding box annotation tool
  • Undo functionality
  • Zoom in and zoom out support
  • Submit annotations with labels
  • Save annotated image locally
  • Next image preloading to reduce latency

Tech Stack

  • ReactJS
  • JavaScript
  • HTML5 Canvas
  • CSS
  • Fetch API
  • REST APIs
  • JWT authentication

Architecture

The project is part of a larger crowdsourcing platform with three main components:

  1. Accounts / Identity Provider
    Handles user registration, login, token generation, and token verification.

  2. UI Editor
    Displays images, provides annotation tools, collects labels and coordinates, and sends annotation data to the backend.

  3. REST API / Application Server
    Serves images to the editor, verifies tokens through the identity server, and stores annotations in the database.

The system runs across three servers:

  • Editor server
  • Identity server
  • Application server

Workflow

  1. The user logs in through the editor.
  2. The identity server verifies credentials and returns a JWT token.
  3. The editor sends the token to the application server to request an image.
  4. The image is displayed on the canvas for annotation.
  5. The user marks objects using freehand or rectangle tools.
  6. The annotation label and coordinates are submitted to the application server.
  7. The next image is fetched for annotation.

Annotation Tools

Freehand

Stores the path points drawn by the user. To reduce storage, the implementation records the next point only when the coordinate difference exceeds one pixel.

Rectangle

Stores two diagonal points corresponding to the bounding box.

Undo

Uses a stack-based approach to revert the latest annotation changes.

Zoom In / Zoom Out

Resizes the canvas while adjusting coordinates so saved annotations remain aligned with the original image dimensions.

Save

Allows the user to download a copy of the annotated image.

API Integration

The editor integrates with backend services using Fetch API and async/await.

User Verification API

  • Sends login credentials to the identity server
  • Receives a JWT token on successful authentication

Get Image API

  • Sends a GET request with the JWT token
  • Receives image ID and image source from the application server

Save Annotation API

  • Sends token, coordinates, polygon/shape type, label, and image ID
  • Stores the annotation in the backend database

Results

The editor successfully supports annotation and stores coordinates relative to image size along with user-provided labels. The system also implements integrated editor features such as zoom, undo, next image loading, save, and backend-connected submission.

Challenges

  • Integrating the UI editor with the identity server and application server
  • Handling zoom while preserving correct annotation coordinates
  • Reducing image load latency during annotation workflows

Future Work

  • Add movable points for freehand annotations
  • Deploy the editor for public access
  • Add tagging support
  • Add color selection options
  • Improve live collaboration and usability features

Credits

Developed as part of the CROWDANN project at IIT Jodhpur.

Contributors:

  • Manish Kumar (B17CS032)
  • Manisha (B17CS033)

Faculty Advisors:

  • Dr. Deepak Mishra
  • Dr. Suman Kundu

About

React-based UI editor for crowdsourced image annotation with freehand, bounding box, zoom, undo, and JWT-authenticated API integration

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 79.1%
  • CSS 12.1%
  • HTML 8.6%
  • Makefile 0.2%