Skip to main content

Face recognize, Object tracking, OCR

Project description

Hawk-eyes

A library for Computer Vision, flexible and easy to use. The library uses a lot of models like ArcFace, RetinaFace, FaceLandmark, OCRModels .... These models will be downloaded automatically when used for the first time, please make sure your network connection is not blocked to google drive.

Install

Hawk-eyes is available on pypi.org, if you just want to use it for your project, install it using pip. Requires:

  • python>=3.8
  • torch==1.8
  • onnxruntime==1.7 (or onnxruntime-gpu)
pip install hawk-eyes

Methods

Supported methods:

1. Face Recognition

1.1 Face detection

Retina Face: Single-stage Dense Face Localisation in the Wild

import cv2
from hawk_eyes.face import RetinaFace

retina = RetinaFace(model_name='retina_s')

img = cv2.imread('path/to/image.png')
bboxes, kpss = retina.detect(img)
for box in bboxes:
    box = box[:4].astype(int)
    cv2.rectangle(img, (box[0],box[1]), (box[2],box[3]), (0,255,0),thickness=2)
cv2.imshow('image', img)
cv2.waitKey(0)

1.2 Face extract feature use ArcFace

ArcFace: Additive Angular Margin Loss for Deep Face Recognition

import cv2
from hawk_eyes.face import RetinaFace
from hawk_eyes.face import ArcFace

arc = ArcFace(model_name='arcface_s')
retina = RetinaFace(model_name='retina_s')

img = cv2.imread('path/to/image.png')
bboxes, kpss = retina.detect(img)
for box,kps in zip(bboxes, kpss):
    emb = arc.get(img, kps)
    print(emb)

1.3 Get similar

Coming soon

1.4 Get face landmarks, face angles

import cv2
from hawk_eyes.face import RetinaFace, Landmark

retina = RetinaFace(model_name='retina_s')
landmark = Landmark()

img = cv2.imread('path/to/image.png')
bboxes, kpss = retina.detect(img)
for box,kps in zip(bboxes, kpss):
    land = landmark.get(img, box)
    angle = landmark.get_face_angle(img, land)
    print(angle)

2. Tracking

import cv2
from hawk_eyes.face import RetinaFace
from hawk_eyes.tracking import BYTETracker

bt = BYTETracker()
retina = RetinaFace(model_name='retina_s')

cap = cv2.videoCapture(0)
ret, _ = cap.read()
while ret:
    ret, frame = cap.read()
    boxes,_ = retina.detect(frame)
    boxes, ids = bt.predict(frame, boxes)
    print(ids)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hawk_eyes-2.1.2.tar.gz (103.8 kB view hashes)

Uploaded Source

Built Distribution

hawk_eyes-2.1.2-py3-none-any.whl (119.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page