This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Backyard Sweep is an AI-powered mosquito breeding site detection application that helps uncover potential breeding spots hiding in ordinary household surroundings.
For this week's Ghost in the Machine theme, I wanted to explore a slightly different kind of invisible presence.
Not every threat announces itself. Sometimes, it hides in an old tire, a forgotten bottle, a flower vase, a coconut shell, or a blocked drain. Containers that seem harmless can quietly collect standing water and become potential mosquito breeding sites.
We often stop noticing these things because they're part of our everyday surroundings.
That's where Backyard Sweep comes in.
It turns a routine household inspection into a simple, AI-assisted walk. Users photograph areas around their homes, and an open-weight YOLOv8 detector identifies potential breeding containers, highlights them with bounding boxes, and provides straightforward action tips:
- Tip it out.
- Scrub it.
- Bin it.
- Cover it.
Instead of manually examining every object and trying to remember what needs attention, users can photograph their surroundings and let computer vision help identify potential problem areas.
The application also includes:
- Direct Camera Access: Take photographs directly from a mobile device.
- Confidence Slider: Filter detection results without running the model again.
- Copyable To-Do List: Convert detected objects into actionable household tasks.
- Walk Tracker: Five photographs count as a completed inspection walk.
- Optional Weather Card: Check live weather information through Open-Meteo before heading outside.
- Light and Night Forest Modes: Choose between a clean light interface and a custom dark theme.
Backyard Sweep is designed for households, community volunteers, and people living in areas where dengue and mosquito-borne diseases are recurring concerns.
It is free to use and is not a medical tool or disease prediction system. Its purpose is to make identifying and removing potential mosquito breeding containers easier.
The inspiration behind the project is simple: sometimes the things we need to notice most are the things we have learned to overlook.
Demo
Live Application: https://mosquito-breeding-detector.onrender.com
Note: The application runs on Render's free server, so the first load after a period of inactivity may take up to a minute.
The demonstration image uses a photograph from the VisText-Mosquito test split. My own photographs were used separately for real-world field testing.
Code
GitHub Repository: https://github.com/KK-Dev0/Mosquito-Breeding-Detector
KK-Dev0
/
Mosquito-Breeding-Detector
Backyard Sweep: YOLOv8 detector for mosquito breeding sites (tires, vases, bottles, coconut shells, drain inlets), trained on VisText-Mosquito.
Backyard Sweep
Turn the weekly "check for standing water" chore into a short, guided walk.
Live demo: https://mosquito-breeding-detector.onrender.com (Free server: the first load after a quiet spell can take up to a minute.)
Photograph anything around your home that could hold water. A YOLOv8 detector flags the containers that commonly breed mosquitoes, and each one comes with a plain-language tip for what to do about it.
Built for the Hacktoberfest 2026 Open-Source AI Challenge, Week 1: Touch Grass.
Example result on a photo from the VisText-Mosquito test split (not one of my own photos). Photo: Faiyaz and Jisan, CC BY 4.0.
Contents
- Why this exists
- Features
- How it works
- Model and results
- API
- Why open source mattered
- Run it locally
- Deploy on Render
- Project structure
- Limits and responsible use
- Ideas for next steps
- Credits and licence
Why this exists
Dengue is spread by Aedes mosquitoes, which breed in small…
How I Built It
Backyard Sweep combines open-source computer vision with a lightweight web application.
1. AI Model — YOLOv8n
I used Ultralytics YOLOv8n, an open-weight object detection model, fine-tuned for 30 epochs at 640 px using a free Google Colab T4 GPU.
The model was trained to recognize five types of potential mosquito breeding containers:
- Bottles
- Coconut shells
- Drain inlets
- Tires
- Vases
2. Dataset
I used the Breeding Place Detection subset of VisText-Mosquito.
- 3,862 training images
- 371 validation images
- 183 test images
- Five object classes
- CC BY 4.0 license
Dataset citation: Faiyaz, Md Faiyaz Abdullah Sayeedi; Jisan, Md Adnanul (2025), VisText-Mosquito: A Multimodal Dataset for Mosquito Breeding Site Detection, Surface Segmentation, and Reasoning, Mendeley Data, V3, DOI: 10.17632/rtsfh7jh7p.3.
3. Application Architecture
- Backend: FastAPI serves the trained detection model.
- Frontend: HTML, CSS, and JavaScript, without a build step.
- Hosting: Render free web service.
- Weather Integration: Open-Meteo API, requested only when the user opens the optional weather card.
- Image Processing: Photographs are processed in memory and are not saved.
4. Model Evaluation
On the held-out dataset test split (183 images, 424 objects), the 30-epoch model achieved:
| Metric | Result |
|---|---|
| mAP50 | 0.926 |
| Precision | 0.906 |
| Recall | 0.844 |
Class-wise AP50:
| Class | Test Instances | AP50 |
|---|---|---|
| Bottle | 50 | 0.884 |
| Coconut shell | 101 | 0.973 |
| Drain inlet | 54 | 0.956 |
| Tire | 115 | 0.893 |
| Vase | 104 | 0.923 |
I also experimented with a longer 80-epoch training run, which stopped early at epoch 78. It did not outperform the original model: mAP50 decreased from 0.926 to 0.914, while recall decreased from 0.844 to 0.832.
I retained the original 30-epoch model.
5. Taking the Model Outside the Dataset
A model performing well on a dataset does not automatically mean it will perform equally well in unfamiliar environments.
I tested Backyard Sweep using five photographs taken around my own home. This was a small exploratory test, not a formal benchmark.
The results revealed several limitations:
- A pile containing two clear tires and one partially hidden tire produced only one correct tire detection at 41%. A parked car was incorrectly classified as a vase at 87%, while a dark corner was classified as a coconut shell at 70%.
- A blue dustbin was classified as a vase at 83%.
- Among approximately five paint buckets and tins, only one was detected at 25%, with three additional detections at 10%.
- A rooftop containing two clay water pots, a plastic bucket, and a water tank produced no detections, even at 10%.
- An open drain channel was also missed.
This was an important discovery. Many everyday objects capable of holding water were outside the model's original five classes. Confidence scores from unfamiliar real-world photographs also could not always be trusted.
The experiment reminded me that AI can reveal things hidden from ordinary observation, but it can also overlook what is right in front of it.
6. Experimenting with YOLO-World
I wanted to explore whether another open model could identify objects that my fine-tuned YOLOv8n detector missed.
I experimented with YOLO-World, an open-vocabulary object detector, without additional training.
I supplied custom descriptions such as clay water pot, bucket, and water tank. These descriptions were selected after examining my photographs, so this was an exploratory demonstration rather than a fair independent comparison.
| Metric | Fine-tuned YOLOv8n | YOLO-World |
|---|---|---|
| Dataset mAP50 | 0.926 | 0.297 |
| Tire recall | 0.80 | 0.017 |
| Drain-inlet AP50 | 0.956 | 0.000 |
| Loaded parameters | ~3 million | ~164 million |
| Model file size | ~6 MB | 329 MB |
YOLO-World successfully identified objects my original model missed in the rooftop photograph, including a clay pot (89%), a bucket (77%), and a water tank.
However, it also produced false detections, identifying a parked car and a bathroom basin as water tanks, and confusing a real tire with a clay water pot.
I ultimately retained YOLOv8n because it performed considerably better on the dataset's trained classes and was much smaller.
I also investigated deploying YOLO-World. Its 329 MB model file and approximately 1.7 GB RAM requirement during my Colab test exceeded Render's free server memory limit of 512 MB.
My next step: Use YOLO-World to generate preliminary labels for additional household containers, manually correct the bounding boxes, and fine-tune the smaller YOLOv8n model using more diverse real-world photographs.
Development Process
I built this project with assistance from Claude through a chat-based workflow. Claude helped develop the FastAPI application and frontend, and drafted the README and this submission.
I handled model training in Colab, tested the application using my own photographs, investigated its failures, compared alternative models, evaluated the results, and made the final decisions about which model and architecture to retain.
Why Does Open Innovation Matter?
For Backyard Sweep, open innovation made experimentation, customization, and accessibility possible.
I never benchmarked a closed AI API against this application, so I cannot claim that open-source models outperform proprietary alternatives.
However, using open-weight models gave me several important advantages.
1. Freedom to Fine-Tune
I could fine-tune a relatively small, approximately 3-million-parameter detector for a specific household inspection task without paying per-image inference fees.
2. Freedom to Experiment
I could switch between YOLOv8n and YOLO-World, evaluate both on the same dataset, investigate their limitations, and choose the architecture that best suited my deployment requirements.
3. Greater Control Over Data
Photographs are processed on a server I control rather than being sent to a third-party AI inference service. They are processed in memory without being saved.
4. Transparency and Reproducibility
The source code, model weights, dataset reference, and licensing information are publicly accessible. Other developers can inspect the implementation, reproduce the experiments, and adapt the project.
5. Accessibility
A lightweight model can run on relatively inexpensive infrastructure, making the application accessible without expensive hardware or individual API subscriptions.
There are trade-offs, too. Ultralytics YOLO uses the AGPL-3.0 license, so the project is also licensed under AGPL-3.0. The free Render server also sleeps when idle.
For me, open innovation is about having the freedom to experiment, question results, understand limitations, and build something that can evolve beyond its original dataset.
It also means that the technology behind the project isn't an unexplained black box. The model, its weights, and the code can be examined and improved by others.
The Spirit of It
Halloween and the idea of ghosts often bring to mind things that exist just outside our ordinary perception.
Backyard Sweep approaches that idea from a different direction.
There are no supernatural entities hiding in the corners of a backyard, but there can be overlooked objects quietly collecting standing water. A discarded tire, a forgotten bucket, or an unnoticed container can become a potential breeding site.
The interesting part of building this project was discovering how much a machine could identify in an ordinary photograph, and equally, how much it could still miss.
When I took the application outside and tested it around my own home, the model's limitations became just as interesting as its successful detections. It reminded me that making something visible is only the beginning; understanding what the machine cannot see matters just as much.
I wanted to build something that encourages people to look a little closer at the spaces they inhabit.
Perhaps the most important things hiding in plain sight aren't ghosts at all.
They're the things we simply stopped noticing.
Prize Categories
- Best Use of Render: The FastAPI backend serving the AI detection model is deployed using Render's free web service.
Credits: Open-Meteo for providing the optional live weather information.


Top comments (0)