https://github.com/alhadikhan/waiter-calling---hand-raise-detection-challenge
This repository contains a Python script to process a provided video to detect hand raises at specific desks using the YOLOv8 object detection model. The project includes steps for extracting video frames, preparing a labeled dataset, training the YOLOv8 model, and performing inference to identify and locate hand raises in the video.
https://github.com/alhadikhan/waiter-calling---hand-raise-detection-challenge
computer-vision data-annotation dataset-preparation deep-learning machine-learning model-training-and-evaluation object-detection opencv python-programming video-processing yolov8
Last synced: 3 months ago
JSON representation
This repository contains a Python script to process a provided video to detect hand raises at specific desks using the YOLOv8 object detection model. The project includes steps for extracting video frames, preparing a labeled dataset, training the YOLOv8 model, and performing inference to identify and locate hand raises in the video.
- Host: GitHub
- URL: https://github.com/alhadikhan/waiter-calling---hand-raise-detection-challenge
- Owner: alhadikhan
- Created: 2025-01-17T09:22:06.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-01-17T10:10:42.000Z (5 months ago)
- Last Synced: 2025-01-17T10:29:27.123Z (5 months ago)
- Topics: computer-vision, data-annotation, dataset-preparation, deep-learning, machine-learning, model-training-and-evaluation, object-detection, opencv, python-programming, video-processing, yolov8
- Language: Python
- Homepage: https://woolen-snapper-914.notion.site/Waiter-Calling-15a1e8a12af181b29736ecb644fdb4e6
- Size: 39.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Waiter Calling - Hand Raise Detection Challenge
This repository contains a Python script to process a provided video and detect at which person is raising their hand using YOLOv8. The project involves extracting frames from the video, creating a dataset, training a YOLOv8 model, and performing inference to identify hand raises in the video.
## Challenge Description
Write a Python script to process the provided video in such a way that:
- **Detect hand raised:** Process the provided video using Python to detect which person is raising their hand
### Details1. Watch the [video](https://woolen-snapper-914.notion.site/Waiter-Calling-15a1e8a12af181b29736ecb644fdb4e6) for more information.
2. Solve the challenge in a single Python script.
3. Provide a `requirements.txt` if any libraries are required.### Resources
1. [Video](https://ml-hiring.fringecore.sh/waiter_calling/desk_video.mp4)
2. [Person_name image](https://ml-hiring.fringecore.sh/waiter_calling/IMG.png)### Partial Evaluation Criteria
- You are able to detect all hands raised.
- You are able to find which person is raising their hand.## Installation
1. Clone the repository:
```bash
git clone
cd2. Install the required libraries:
```bash
pip install -r requirements.txt
```### Usage
1. Place your input video in the same directory as `main.py` and name it `video.mp4` (or update the script with your video path).
2. Run the script:
```bash
python main.py
```
### Solution Steps1. Extract Frames from Video: The script extracts frames from the provided video and saves them
in the extracted_frames directory.2. Prepare YOLOv8 Dataset:
Define class names for different people raising their hands.
Specify frame ranges and bounding boxes for each person.
Generate YOLO labels for each frame based on the specified annotations.
Copy images to training and validation directories.
3. Create YAML Configuration: The script creates a YAML file for the YOLOv8 dataset
configuration, specifying paths for training and validation images, the number of classes,
and class names.4. Train YOLOv8 Model: The script trains a YOLOv8 model using the prepared dataset, saving the
best model weights.5. Run Inference on Video: The script loads the trained YOLOv8 model and performs inference on
the video, saving the output video with detected hand raises.### Project Stucture
|-- main.py
|-- requirements.txt
|-- README.md
|-- desk_video.mp4
|-- extracted_frames/
|-- dataset/