Metadata-Version: 2.1
Name: visionlib
Version: 1.3.0
Summary: A simple, easy to use and customizeble cv library 
Home-page: https://github.com/ashwinvin/Visionlib
Author: Ashwin Vinod
Author-email: ashwinvinodsa@gmail.com
License: UNKNOWN
Download-URL: https://github.com/ashwinvin/Visionlib/archive/v1.3.0.tar.gz
Keywords: Deep learning,Vision,cv
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: mtcnn
Requires-Dist: opencv-python
Requires-Dist: dlib
Requires-Dist: wget
Requires-Dist: numpy

# Visionlib

A simple high level api made for assisting in cv-related projects.

## Features

- Track faces using
  - MTCNN module
  - Dlib hog Based detector
  - Opencv Haar casscades
  - Dnn based model
- Predict Gender
- Detect Objects
  - Yolo v3
  - tiny-yolo

### Installation

**Note:** Windows compatibility is not tested

#### Dependencies

`sudo apt-get install build-essential cmake pkg-config`

`sudo apt-get install libx11-dev libatlas-base-dev`

`sudo apt-get install libgtk-3-dev libboost-python-dev`

This should install Dependencies required by dlib.

`pip install visionlib`

This will install visionlib.

##### Optional

If You want to install from source
`git clone https://github.com/ashwinvin/Visionlib.git`

`cd visionlib`

`pip install .`

### Face Detection

Detecting face in an image is easy . This will return the image with bounding box and box coordinates.

`from visionlib.face.detection import FDetector`

`detector = FDetector()`

`detector.detect_face(img, show=True)`

This would detect face and display it automatically.

`detector.set_detector("mtcnn")`
Dont like the default detector?, change it like this.

#### Examples

![Detection](docs/images/face_detected.jpg)

![Detection](docs/images/face_detected_group.jpg)

### 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.Like this

`from visionlib.gender.detection import GDetector`

`detector = GDetector()`

`pred, confidence = detector.detect_gender(img)`

##### Example

![Gender Detection](docs/images/gender_detected_single.jpg)

### Object Detection

Detecting common objects in the scene is enabled through a single function call detect_objects(). It will return the labeled image for the detected objects in the image. By default it uses yolov3-tiny model.
`from visionlib.object.detection import Detection`

`import cv2`

`detector = Detection()`

`d_img = detector.detect_objects(img)`

#### GPU support

You can leverage your gpu's power by enabling it like this.

**Face Detection**
`detector.detect_face(img, show=True, enable_gpu=True)`

**Object Detection**
`detector.detect_objects(img, enable_gpu=True)`

**Gender Detection**
`detector.detect_gender(img, enable_gpu=True)`

**Note:** GPU is support in face detection is only compatible with DNN detector and you should cuda installed.

#### Example

![object Detection](docs/images/object_detected_objects.jpg)

#### Documentation

Complete Documenation can be found on 
https://ashwinvin.github.io/Visionlib/

For example check the examples directory


