Project Name: YOLO-Drone
Full Name: Object Detection and Visualization System Based on YOLO Series
Description: A personal full-stack development project β independently designed, developed, and maintained. Currently used for the final presentation of the course "New Technologies Topics (2)" instructed by teacher Jin Xin.
Why we made it: Just for fun. π
License: This project is released under the GPL-3.0 license π. It is intended to be used for design learning and educational purposes only. You are welcome to study and learn from this codebase, but please refrain from copying or plagiarizing the work. Respect the spirit of open-source! β¨
GitHub Repository: Echo-Nie/Drone-inspection-platform: Just for fun
ππ» Since I've already forgotten how to write Vue, I'm currently sticking to the basic front-end trio (HTML, CSS, JS). I plan to refactor and maintain the code using Vue after October!
This project is a lightweight object detection platform built upon YOLO Series, supporting image upload, model inference, result visualization, and historical record querying. The frontend is implemented using HTML + CSS + JavaScript for interactive user experience, while the backend is powered by Flask to provide robust web services. The overall architecture is simple and efficient, suitable for real-world applications such as drone aerial image analysis and intelligent surveillance.
We base our implementation on the Ultralytics YOLO open-source framework, utilizing the pre-trained yolo_x.pt
model. The complete detection pipeline is integrated into the Flask platform, enabling an end-to-end workflow from image upload to result display.
Category | Technology / Tool |
---|---|
Deep Learning Framework | PyTorch, Ultralytics YOLO |
Model Version | YOLOv_x |
Backend Service | Flask |
Frontend | HTML5 + CSS3 + JavaScript |
Image Processing | OpenCV |
Data Storage | JSON Files (for storing detection history) |
Deployment Dependencies | Werkzeug (file upload), Jinja2 (template rendering) |
YOLO-Drone/
βββ assets/ # Contains static resources used in the README (e.g., images, icons)
βββ models/ # Stores trained machine learning model files (e.g., uav.pt, yolov9c.pt)
βββ routes/ # Contains routing logic for defining API or page access paths
βββ services/ # Business logic modules: detection, history, data statistics, etc.
βββ static/ # Static resource directory (directly accessible by the frontend)
β βββ css/
β βββ js/
β βββ results/ # Stores output images from object detection
β βββ detect/ # Subdirectory for detection results; stores images generated during detection
βββ templates/ # Frontend HTML templates used to render web content
βββ uploads/ # Directory for storing user-uploaded files
βββ app.py # Starts the web server
βββ config.py # Configuration file
βββ requirements.txt # List of Python dependencies required for the project
βββ detection_history.json # File that records detection history (e.g., timestamps, results)
Install Dependencies
pip install -r requirements.txt
Launch the Server
python app.py
Visit http://localhost:5000
to access the object detection platform.
- β Image Upload and Real-Time Detection
- β Detection Result Visualization (bounding boxes, class labels, confidence scores)
- β Detection Statistics Display (total objects, average confidence, per-class counts)
- β Detection History Management (automatically saves timestamp, image link, and detected objects)
- β Multi-Page Navigation (Home / History / About Us)
Special thanks to the following open-source projects:
- Ultralytics YOLO β Efficient YOLO model implementation
- Flask β Lightweight web framework
- OpenCV β Core image processing library
- Werkzeug β Flask dependency for file upload management
- Support for real-time video stream detection (e.g., RTSP, webcam input)
- Use SQLite or MongoDB for persistent detection history storage
- β (In Test) Expose model as an API for integration with other systems
- β Deploy to cloud or server for public access(Temporarily offline )
- β (In Test) Support for real-time video stream detection (e.g., RTSP, webcam input)
- β Complete the mobile device adaptation.
We welcome all forms of contributions to make YOLO-Drone even better! Here are some ways you can contribute:
- π Report Issues: If you encounter any bugs or have suggestions for new features, please open an issue on our Issue Page. Your feedback helps us improve the project!
- π Submit Pull Requests: If you'd like to contribute code, please fork the repository and submit a pull request. We appreciate your efforts in making the codebase better!
- π Document Enhancement: You can help us improve the documentation by correcting typos, adding more details, or making it more readable. Every small improvement counts! π
- π§ Contact Us: If you have any questions, feel free to contact us via
- π If you find this project helpful, please give it a star!β
Your support and contributions are greatly appreciated! π