You are browsing as a guest. Sign up (or log in) to start making projects!

Data Labeller

  • 6 Devlogs
  • 12 Total hours

A media annotation pipeline for images, videos, and audio datasets, with automated quality control using AI. Built for teams consisting of admins, labellers, and QC.

Ship #1 Changes requested

Introduction

I made a media annotation pipeline for images, videos, and audio datasets, with automated quality control using AI.

Instructions on how to run the app locally are in the source files! :)

How It Works

There are four stages:

  1. Admin: Create jobs by uploading media URLs and defining category lists.

  2. Labeller: Annotate media tasks with category labels and free-text descriptions.

  3. AI QC: Automated quality control using Gemini to sample and verify labels. Gemini reviews a sample of labels per job:

    • Small jobs (<10 tasks): one random task per labeller.
    • Large jobs: roughly 10% of tasks are randomly sampled.
    • If a sampled task fails, the entire labeller’s work for that job is flagged for human review.
  4. Human QC: Review flagged labels, approve correct ones, or send them back for relabelling by setting the task status back to open.


Hope this is useful!

  • 5 devlogs
  • 11h
Try project → See source code →
Open comments for this post

1h 45m 14s logged

  • Finally fixed AI QC not running (model incompatibility): Human QC page now can receive tasks that failed the AI QC!
  • I also wrote end to end tests that start up a uvicorn server and mocks Gemini + uses playwright to drive HTML pages for happy, sad and edge cases to make sure it really works.

Going to ship now :) I hope someone can find this helpful!

0
0
2
Open comments for this post

2h 30m 21s logged

Finished up unit tests for labeller, ai qc and human qc. Also finished the ai qc and human qc endpoints + added human qc html page :)


The image attached here is also a recent addition, the main index.html page showcasing a brief intro of this project, the pipeline, and links to the three html pages.


Also major development: added a way for others to test my project with/without API keys for Gemini or Turso (database), and updated README with implementation steps; will ship soon yayy

0
0
13
Open comments for this post

2h 9m 8s logged

Added a text area for labellers to input their names, and updated the “submit labels” button so that it now collects labels from ticked checkboxes and other descriptive labels, and sends them to the database.

So now the labeller’s name and the labels can be recorded in the database! Next step is to integrate AI for checking.

0
0
14
Open comments for this post

2h 0m 55s logged

Admin page (and connected to backend) done, where “admins” insert urls to be labelled as requested by clients and identify possible categories all urls might fall under, and submit urls and categories to the database. Labeller page partially done, where labellers “get a new task” that renders a url and lists categories as checkboxes to be ticked off and an additional textbox for any additional identifiable labels. To-do next: connect label submission buttons to endpoint in backend.

0
0
18

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…