About the Project

Inspiration

Have you ever come back from a long trip, transferred hundreds or even thousands of photos and videos to your laptop, and realized everything is a complete mess?

Files named IMG_1023.JPG, random videos, downloaded images, and duplicates all mixed together in one giant folder. Sorting them manually takes forever, and most people never get around to doing it.

That frustration inspired us to build Smart Photo Organizer — a tool that automatically turns chaotic photo dumps into beautifully organized memories.


What It Does

Smart Photo Organizer analyzes your photos and videos locally on your machine and intelligently groups them into meaningful events based on:

  • Time they were taken
  • GPS location metadata
  • Distance between locations
  • Timestamp similarity for files missing metadata

Instead of this:

IMG_1023.JPG
IMG_1024.JPG
VID_2012.MP4
IMG_1099.JPG

You get this:

organized_events/
├── 27 Feb/
│   └── Baga Beach/
│       ├── IMG_1023.JPG
│       ├── VID_2012.MP4
│       └── IMG_1024.JPG

How We Built It

We built the project using Python and machine learning techniques to intelligently detect real-world "events" from unstructured media files.

Core Components

  • EXIF Metadata Extraction Used to read timestamps and GPS coordinates from images.

  • DBSCAN Clustering Algorithm We chose DBSCAN because the number of events is unknown beforehand, and it naturally handles noise and outliers.

The clustering logic considers both time and geographic proximity:

$$ \text{Event Similarity} = f(\Delta t, \Delta d) $$

Where:

  • (\Delta t) = time difference between media files

  • (\Delta d) = physical distance between capture locations

  • Reverse Geocoding GPS coordinates are converted into human-readable place names using OpenStreetMap APIs.

  • Rescue Bot Logic Videos and downloaded images often lose GPS metadata. We built a fallback mechanism that intelligently matches such files to nearby event clusters using timestamps.

  • ZIP Processing Support The application can directly process compressed backups without requiring manual extraction.

  • Desktop Packaging Packaged into a standalone .exe so users do not need Python installed.


Challenges We Faced

Missing Metadata

Not all files contain GPS or EXIF data, especially videos and forwarded/downloaded media.

This made naive location-based sorting unreliable.

Solution: We built the Rescue Bot, which intelligently infers the correct event using timestamps.

Clustering Accuracy

Defining what counts as an "event" was tricky.

If clustering was too strict:

  • One trip became many tiny folders.

If clustering was too loose:

  • Unrelated photos got grouped together.

Solution: We experimented with DBSCAN parameters until the grouping felt natural and intuitive.

Reverse Geocoding Reliability

Location naming depends on internet access and API responses.

Sometimes firewall restrictions blocked requests, resulting in folders named unknown_location.

Solution: We added troubleshooting guidance and graceful fallbacks.


What We Learned

Through this project, we learned:

  • Practical machine learning with clustering algorithms
  • Working with EXIF image metadata
  • GPS coordinate processing
  • Reverse geocoding APIs
  • Handling messy real-world data
  • Building resilient fallback logic
  • Packaging Python apps for non-technical users
  • Designing software around real user frustrations

Why This Project Matters

Photos are memories, but messy storage makes them hard to revisit.

Smart Photo Organizer helps people spend less time organizing files and more time reliving their experiences.

Built With

Share this project:

Updates

Submission history