Skip to content

Latest commit

 

History

History

docs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

vuejs badge spring boot badge mysql badge flask badge build passing badge


Translation: US KR


🛩️ CatchCam (Catch me if you Cam)

CatchCam is an autonomous shooting drone service using object tracking.

  • When I want to record a video of myself playing
  • When you need to analyze the game
  • When there is not enough manpower to record the game
  • When the judge's decision is ambiguous during a game

CatchCam is designed to satisfy the above requirements.

Existing drones for shooting require direct manipulation and shooting, and are difficult to operate, requiring skilled personnel.

Therefore, CatchCam provides a service for autonomous driving and shooting through object tracking using OpenCV. When shooting a game with a drone, unlike shooting from the ground, you are shooting from the air, so you can check the position of the players from various angles and create a different film.



📌 Table of Contents



🔨 Tech Stacks



🧱 Project Structure

.
├─ README.md
│
├─backend # Backend Spring boot Framework
│  ├─ .gitignore # List of files to exclude from Git versioning
│  ├─ build.gradle # Dependency injection
│  ├─ gradlew
│  ├─ gradlew.bat
│  ├─ settings.gradle
│  │
│  ├─gradle
│  │  └─wrapper # gradle-wrapper
│  │
│  └─src
│      ├─main
│      │  ├─java
│      │  │  └─com
│      │  │      └─ssafy
│      │  │          └─catchcam
│      │  │              ├─CatchcamApplication.java # SpringBoot Executable file
│      │  │              │
│      │  │              ├─config # SpringBoot configuration file
│      │  │              │  │
│      │  │              │  └─security # SpringBoot Security file
│      │  │              │
│      │  │              ├─controller # SpringBoot Controller file
│      │  │              │
│      │  │              ├─model # Spring Boot DTO file
│      │  │              │
│      │  │              ├─repository #Spring Boot DAO file
│      │  │              │
│      │  │              └─service #Spring Boot service file
│      │  │
│      │  └─resources
│      │      └─mappers # SQL query folder to be associated with each DAO
│      │
│      └─test # Test related files
│
├─drone
│  │  config.py  # Flask server configuration file
│  │  main.py  # Drone controller drive file
│  │  README.md
│  │  requirements.txt  # List of required packages
│  │
│  └─droneapp
│      │
│      ├─controllers
│      │      server.py  # Webpage API
│      │
│      ├─models
│      │      drone_manager.py  # Drone operation API
│      │
│      ├─static
│      │  ├─css # css file collection
│      │  │
│      │  ├─img  # Image to use in web page
│      │  │
│      │  └─js # jquery library
│      │
│      └─templates 
│
│
└─frontend # Frontend Vue.js framework
    ├─ ... # Build-related folder
    ├─package.json # dependency management file
    │
    ├─public # Externally accessible folder
    │
    └─src
        ├─App.vue
        ├─main.js
        │
        ├─api
        │
        ├─assets # Folder for collection of used images
        │
        ├─components 
        │  │
        │  ├─droneintro # Components related to the drone rental page
        │  │
        │  └─rentallist # Components related to rental history
        │
        ├─plugins # Vuetify's library related directory
        │
        ├─router # Routing settings file
        │
        ├─store # Shared data management used by Vuex
        │
        └─views # Routing component collection
            │
            └─member # Member registration and login component


📃 ERD



🔍 Project Process

  • Web

  • Drone



✅ Main Function

  • Drone rental

    • Check the location of the branch through the map
    • Apply for rental after entering the rental date

  • Drone rental history
    • View rental list and details
    • Reservation cancellation function

  • Drone operation using a controller

    • Simple operation such as up, down, left, right and rotation is possible
    • On the left side of the screen, the scene captured by the drone's camera is transmitted in real time

  • Object tracking autonomous driving shooting
  1. Recognize the ball as an object

  1. Recognize the person as an object

  • Screen recording function

    • Save the video captured by the drone as a file



🎥 Demonstration

Click the image below to watch the demo video.

Children-ZIP Demo video



🌏 Browsers Supported

latest latest latest latest


👩‍💻 Developers