Deep Video
A curated collection of material and tutorials for video processing.
Installation
Pyenv
You need to install Pyenv, then run the code below:
# Install Python version 3.10.3 (This was the lattest Python version tested for the present repo):
pyenv install 3.10.3
# Create a new environment:
pyenv virtualenv 3.10.3 deep-video
# Activate the environment:
pyenv activate deep-video
#Finally, install the dependencies:
pip install -r requirements
ML dependencies
DLib
Dlib is a cutting-edge C++ toolkit that includes tools and pre-trained ML models. Numerous fields, including robotics, embedded devices, and mobile phones, employ it in both industry and academia. Dlib is freely applicable in any application due to its open source licencing. As for image processing, Dlib counts on the following tools:
- Image Processing
- Routines for reading and writing common image formats.
- Automatic color space conversion between various pixel types
- Common image operations such as edge finding and morphological operations
- Implementations of the SURF, HOG, and FHOG feature extraction algorithms.
- Tools for detecting objects in images including frontal face detection and object pose estimation.
- High quality face recognition
We will make use of DLib face landmark detection in the examples.
Yolo
Yolo is an algorithm that uses neural networks to provide real-time object detection. This algorithm is popular because of its speed and accuracy. Moreover, its 5th and 8th versions have good documentation for easy deployment on embedded devices.
Usage
All examples are implemented in folder examples
, and you can execute them as follows:
python examples/exampleX.py
where X is the number of the experiment.
Examples
- 1. Open a video and show its properties
- 2. Detect object with skimage.feature.match_template
- 3. Detect edges and overlap them on the base video
- 4. Capture and show the camera input
- 5. Show contours on the camera input
- 6. Detect and show face landmarks
- 7. Show a mostacho over a face captured by the camera
- 8. Implement Yolov5 object detector
- 9. Implement Yolov8 object detector