UltimateLabeling: A Comprehensive Video Labeling Tool
UltimateLabeling is an advanced, user-friendly video labeling application developed in Python utilizing the PyQt5 framework. Sponsored by LingoSub and ThumbnailsPro, it offers a blend of innovative features for both educational purposes and video content enhancement by providing AI-powered tools for language learning and thumbnail creation.
Key Features
UltimateLabeling distinguishes itself with several robust features designed to enhance video labeling efficiency:
-
Remote GPU Server Connectivity: It allows SSH connections to remote GPU servers, providing the necessary computational power for intensive tasks.
-
Integrated Detection Systems: The application features integration with advanced object and pose detectors such as YOLO for object detection and OpenPifPaf for human pose estimation.
-
Object Tracking: Employing the Hungarian algorithm, the software efficiently assigns track IDs to objects. When existing boxes are missing or mislabeled, SiamMask tracking is used to correct them.
-
User-Friendly Interface: Users can enjoy a dynamic interface with features like zooming on videos, resizable bounding boxes, skeletal labeling, and a visually appealing dark mode.
Built-in Algorithms and Tools
The project incorporates several state-of-the-art codes:
- OpenPifPaf: This tool is used for accurate human pose estimation.
- YOLO Darknet: A renowned object detection system that operates in various environments.
- SiamMask: Used for visual object tracking, ensuring the precise movement following of detected items.
- Hungarian Algorithm: Employed for optimal assignment of instance IDs, ensuring each object maintains an accurate identity across frames.
Installation Process
Getting started with UltimateLabeling involves a few straightforward steps:
-
Clone the repository to your computer:
git clone https://github.com/alexandre01/UltimateLabeling.git cd UltimateLabeling
-
Set up a virtual environment and install the required packages to manage dependencies:
virtualenv --no-site-packages venv source venv/bin/activate pip install -r requirements.txt
-
Alternatively, install the requirements directly in your Python environment:
pip install -r requirements
-
Launch the application using the command:
python -m ultimatelabeling.main
Remote Server Configuration
To leverage remote processing power, configure the remote server as follows:
-
Clone the server repository:
git clone https://github.com/alexandre01/UltimateLabeling_server.git cd UltimateLabeling_server
-
Install necessary packs and setup detection scripts:
pip install -r requirements.txt bash siamMask/setup.sh bash detection/setup.sh
Input and Output Management
Videos and images are processed by placing them in the data
folder, supporting automatic frame extraction. Import existing labels using the Cmd+I
(or Ctrl+I
) shortcut, and export annotations to a .CSV
file with Cmd+E
(or Ctrl+E
).
User Interactions
UltimateLabeling provides a seamless interaction experience with intuitive keyboard shortcuts and mouse controls:
- Keyboard Operations: Navigate frames with A/D keys, modify classes, and manage tracking with easy commands.
- Mouse Functions: Create, move, and delete bounding boxes effortlessly with click-and-drag maneuvers.
Community and Support
UltimateLabeling welcomes community contributions. Issues and suggestions for improvements can be communicated via GitHub issues. Contributors are encouraged to submit pull requests to enhance the tool's functionality.
Licensing
UltimateLabeling is released under the MIT License, promoting open-source collaboration and innovation.
This comprehensive tool serves as a powerful asset for video labeling tasks, combining advanced detection and tracking with an intuitive user interface to streamline the labeling process.