Lynx is this collection of image processing tools I built for Hackberry YSWS. It's a website where you can play around with different computer vision stuff - from detecting faces to scanning documents and a bunch of other cool things. Building this was honestly a whole journey. Learned a lot about OpenCV and Flask, especially how tricky real-time processing can get.
The showcase video where i try all the features while running Lynx locally
Here's everything I've added into Lynx. It's organized the same way as the navbar on the website:
- Face Detection: Just counts how many faces are in your picture using Haar Cascades. Pretty basic but it works
- Face Recognition: This one's cooler - it tries to guess people's age and gender using some pre-trained models
- Webcam Live: Puts filters on your webcam in real-time (had to move this to client-side because the OpenCV version was super laggy)
- Emoji Reactor: Looks at your expression and shows a matching emoji. It's pretty fun to mess around with
- Image Filters: A bunch of preset filters you can slap onto your images. All the heavy lifting happens on the server
- Special Effects: The fancy stuff - green screen, color pop, duotone, and isolating specific colors
- Pixelation: Make your images look pixelated or add that retro game vibe with stripes
- Background Remover: I've added like 5 different ways to remove backgrounds using OpenCV - from GrabCut to simple color stuff
- ASCII Art Generator: Turns your images into text art. There are different styles you can try
- Object Detection: Tries to figure out what objects are in your image using MobileNet SSD
- Scene Understanding: Guesses where the photo was taken - like is it a beach, forest, or city
- QR Code Detection: Scans and reads QR codes from images
- Number Plate Detection: Finds car number plates and reads them using EasyOCR
- Location Analyzer (Geo Guesser): My attempt at making a GeoGuessr type thing. It looks for clues in images to guess the location
- Color Analysis: Shows you the top 10 colors in an image using K-Means clustering
- Color Manipulation: Change specific colors, play with saturation, shift hues and stuff
- Document Scanner: Upload a pic of a document and this will straighten it out to look like a proper scan
- Text Detection: Just draws boxes around any text it finds
- Text Extractor (OCR): Actually reads the text from images using EasyOCR. Works with a few different languages
- Captcha Solver: Solves those simple text captchas. Nothing too fancy
Lynx/
βββ devlogs/ # Development logs, images, and videos
βββ models/ # Python scripts for all computer vision tasks
βββ static/ # Static assets (CSS, JavaScript, images)
βββ templates/ # HTML templates for the web interface
βββ uploads/ # Default directory for user-uploaded images
βββ .gitignore # Git ignore file
βββ app.py # Main Flask application script
βββ LICENSE # MIT License
βββ README.md # You are here!
βββ requirements.txt # Python dependencies
- Python 3.12+ (I used 3.12.10, so anything 3.12+ should be fine)
- pip for installing stuff
-
Clone the repo:
git clone https://github.com/Rexaintreal/lynx.git cd lynx -
Create a virtual environment (recommended):
I didn't use one while coding this (my bad), but you probably should so you don't mess up your other Python projects.
Windows:
python -m venv venv .\venv\Scripts\activate
macOS / Linux:
python3 -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
Main ones are
flask,opencv-python,numpy,pillow,scikit-learn, andeasyocr. -
First-time OCR setup:
The first time you use any OCR tools (Text Extractor or Captcha Solver), EasyOCR will start downloading language models. Takes about 5-10 minutes and it might look frozen but it's working. Just keep an eye on the terminal - it'll show the progress. (or any errors)
GPU Acceleration: If you have a decent GPU, change
gpu=Falsetogpu=Truefor better performance. I tested it with my laptop's RTX 4050 (6GB VRAM) and it took around 7 minutes on the first run. After that everything works smoothly. -
Run it:
python app.py
-
Open it up:
Go to
http://127.0.0.1:5000in your browser
Pretty straightforward:
- Check out the homepage to see all the tools
- Pick whatever you want to try from the navbar or the grid
- Upload an image (there's an
examplesfolder with test images) - Play around with the sliders if there are any
- See the result and download it if you want
MIT LICENSE.
THE INTERNET - followed many tutorials, articles and webpages while building this.
Some other projects I've built:
- Libro Voice - A PDF to Audio Converter
- Snippet Vision - A YouTube Video Summarizer
- Weather App - A Python Weather Forecast App
- Python Screenrecorder - A Python Screen Recorder
- Typing Speed Tester - A Python Typing Speed Tester
- Movie Recommender - A Python Movie Recommender
- Password Generator - A Python Password Generator
- Object Tales - A Python Image to Story Generator
- Finance Manager - A Flask WebApp to Monitor Savings
- Codegram - A Social Media Web App for Coders
- Simple Flask Notes - A Flask Notes App
- Key5 - Python Keylogger
- Codegram2024 - A Modern Version of Codegram (Update)
- Cupid - A Dating Web App for Teenagers
- Gym Vogue - Ecommerce Site for Gym Freaks
- Confessions - Anonymous confession platform
- Syna - A social music web application where users can log in using their Spotify accounts and find their best matches based on shared music preferences
- Apollo - A Minimal Music Player with a Cat Dancing/Bopping to the beats
- Eros - A face symmetry analyzer built using Python and OpenCV
- Notez - A clean and minimal Android notes application built with Flutter
Built by Saurabh Tiwari
- Email: saurabhtiwari7986@gmail.com
- Twitter: @Saurabhcodes01
- Instagram: @saurabhcodesawfully