Inspiration

In today’s world, we share screenshots, IDs, bills, and forms online all the time. But most people don’t have an easy way to automatically hide sensitive information before sending these images. We wanted to build a tool that feels effortless: snap a photo, and let the AI handle detection + redaction.

What it does

CensorIt uses OCR (optical character recognition) and a lightweight NER (named entity recognition) model to:

  1. Extract text from images
  2. Identify sensitive fields such as emails, phone numbers, account IDs, credit card numbers, etc.
  3. Blur those regions directly on the image so users can share safely
  4. Provide an option to save/export the redacted version

How we built it

Frontend: React Native, Expo OCR: Tesseract.js NER: DistilBERT

Challenges we ran into

  1. Getting consistent entity predictions from DistilBERT when OCR output was noisy or misspelled.
  2. Aligning the OCR's bounding boxes with the resized image in the app to blur sensitive info.

Accomplishments that we're proud of

  1. Integrating DistilBERT NER with OCR for accurate, category-aware detection.
  2. End-to-end flow (image → OCR → NER → redaction) working smoothly inside an Expo Go app.
  3. Achieved high recall on common sensitive entities like emails, phone numbers, and account IDs.
  4. Designed a simple user experience where redaction feels instant and intuitive.

What we learned

  1. Combining classical OCR with modern transformer-based NER gives powerful context-aware redaction.
  2. DistilBERT is lightweight enough to serve quickly without needing GPUs, making it effective even on mobile.
  3. Privacy-first design means doing as much as possible on-device, and minimising external data transfer.

What's next for CensorIt

  1. Expanded model: Train DistilBERT on more nuanced categories like medical terms, addresses, or financial jargon.
  2. User overrides: Let users manually drag over areas to censor or un-censor text.
  3. Batch processing: Redact multiple images or whole PDFs in one go.
+ 1 more
Share this project:

Updates