#ObjectDetection
This repository contains a Python script that utilizes the Olympe library and OpenCV to detect objects in a video stream and control a drone based on the detected objects.
Before running the code, make sure you have the following dependencies installed:
- Python 3.x
- OpenCV (cv2)
- Olympe
- NumPy
You can install the required Python packages using pip:
pip install opencv-python olympe numpy
-
Connect to the drone's Wi-Fi network.
-
Update the
DRONE_IP
variable in the code to match the IP address of your drone. By default, it is set to192.168.42.1
. -
Download the
best.onnx
file andcoco.txt
file and place them in the same directory as the script. You can find thebest.onnx
file here and thecoco.txt
file here.
- Run the script by executing the following command:
python script.py
-
The script will establish a connection with the drone and wait for it to take off and reach a stable hover state.
-
It will then start capturing video from the drone's camera or a specified video file.
-
The script uses the YOLOv3 object detection model to detect objects in each frame of the video. Detected objects are displayed on the screen with bounding boxes and labels.
-
The drone's movement is controlled based on the detected objects. It calculates the desired velocity for the drone based on the position of the detected objects in the frame and adjusts the drone's movements accordingly.
-
Press 'q' to stop the script and exit.
Note: Make sure to fly the drone in a safe environment and comply with all local regulations and laws regarding drone usage.
This code is licensed under the MIT License. Feel free to modify and distribute it as needed.
- The Olympe library: https://developer.parrot.com/docs/olympe/
- YOLOv3 object detection model: https://github.com/onnx/models/blob/master/vision/object_detection_segmentation/yolov3