arunponnusamy/cvlib has 670 GitHub stars and 126 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-14 01:21 UTC. Last push 2023-10-06.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
A simple, high level, easy to use, open source Computer Vision library for Python.
Machine LearningREADME.md
Originalcvlib
A simple, high level, easy-to-use open source Computer Vision library for Python.
Installation
Installing dependencies
Provided the below python packages are installed, cvlib is completely pip installable.
- OpenCV
- TensorFlow
If you don't have them already installed, you can install through pip
pip install opencv-python tensorflow
Optional
or you can compile them from source if you want to enable optimizations for your specific hardware for better performance.
If you are working with GPU, you can install tensorflow-gpu package through pip. Make sure you have the necessary Nvidia drivers installed preoperly (CUDA ToolKit, CuDNN etc).
If you are not sure, just go with the cpu-only tensorflow package.
You can also compile OpenCV from source to enable CUDA optimizations for Nvidia GPU.
Installing cvlib
pip install cvlib
To upgrade to the newest version
pip install --upgrade cvlib
Optional
If you want to build cvlib from source, clone this repository and run the below commands.
git clone https://github.com/arunponnusamy/cvlib.git
cd cvlib
pip install .
Note: Compatability with Python 2.x is not officially tested.
Face detection
Detecting faces in an image is as simple as just calling the function detect_face(). It will return the bounding box corners and corresponding confidence for all the faces detected.
Example :
import cvlib as cv
faces, confidences = cv.detect_face(image)
Seriously, that's all it takes to do face detection with cvlib. Underneath it is using OpenCV's dnn module with a pre-trained caffemodel to detect faces.
To enable GPU
faces, confidences = cv.detect_face(image, enable_gpu=True)
Checkout face_detection.py in examples directory for the complete code.
Sample output :

Gender detection
Once face is detected, it can be passed on to detect_gender() function to recognize gender. It will return the labels (man, woman) and associated probabilities.
Example
label, confidence = cv.detect_gender(face)
Underneath cvlib is using an AlexNet-like model trained on Adience dataset by Gil Levi and Tal Hassner for their CVPR 2015 paper.
To enable GPU
label, confidence = cv.detect_gender(face, enable_gpu=True)
Checkout gender_detection.py in examples directory for the complete code.
Sample output :

Object detection
Detecting common objects in the scene is enabled through a single function call detect_common_objects(). It will return the bounding box co-ordinates, corrensponding labels and confidence scores for the detected objects in the image.
Example :
import cvlib as cv
from cvlib.object_detection import draw_bbox
bbox, label, conf = cv.detect_common_objects(img)
output_image = draw_bbox(img, bbox, label, conf)
Underneath it uses YOLOv4 model trained on COCO dataset capable of detecting 80 common objects in context.
To enable GPU
bbox, label, conf = cv.detect_common_objects(img, enable_gpu=True)
Checkout object_detection.py in examples directory for the complete code.
Real time object detection
YOLOv4 is actually a heavy model to run on CPU. If you are working with real time webcam / video feed and doesn't have GPU, try using tiny yolo which is a smaller version of the original YOLO model. It's significantly fast but less accurate.
bbox, label, conf = cv.detect_common_objects(img, confidence=0.25, model='yolov4-tiny')
Check out the example to learn more.
Other supported models: YOLOv3, YOLOv3-tiny.
Custom trained YOLO weights
To run inference with custom trained YOLOv3/v4 weights try the following
from cvlib.object_detection import YOLO
yolo = YOLO(weights, config, labels)
bbox, label, conf = yolo.detect_objects(img)
yolo.draw_bbox(img, bbox, label, conf)
To enable GPU
bbox, label, conf = yolo.detect_objects(img, enable_gpu=True)
Checkout the example to learn more.
Sample output :

Utils
Video to frames
get_frames( ) method can be helpful when you want to grab all the frames from a video. Just pass the path to the video, it will return all the frames in a list. Each frame in the list is a numpy array.
import cvlib as cv
frames = cv.get_frames('~/Downloads/demo.mp4')
Optionally you can pass in a directory path to save all the frames to disk.
frames = cv.get_frames('~/Downloads/demo.mp4', '~/Downloads/demo_frames/')
Creating gif
animate( ) method lets you create gif from a list of images. Just pass a list of images or path to a directory containing images and output gif name as arguments to the method, it will create a gif out of the images and save it to disk for you.
cv.animate(frames, '~/Documents/frames.gif')
Sponsor
Developing and maintaining open source projects takes a lot of time and effort. If you are getting value out of this project, consider supporting my work by simply buying me a coffee (one time or every month).
License
cvlib is released under MIT license.
Help
For bugs and feature requests, feel free to file a GitHub issue. (Make sure to check whether the issue has been filed already)
For usage related how-to questions, please create a new question on StackOverflow with the tag cvlib.
Community
Join the official Discord Server or GitHub Discussions to talk about all things cvlib.
Citation
If you find cvlib helpful in your work, please cite the following
@misc{ar2018cvlib,
author = {Arun Ponnusamy},
title = {cvlib - high level Computer Vision library for Python},
howpublished = {\url{https://github.com/arunponnusamy/cvlib}},
year = {2018}
}
Explore related projects
tensorflow/tensorflow
An Open Source Machine Learning Framework for Everyone
201,592 starshuggingface/transformers
🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.
168,951 starsAUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI
165,308 starsComfy-Org/ComfyUI
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.
146,696 stars