Skip to main content

No project description provided

Project description

ASOne

croped

Table of Contents

Introduction

Asone is a python wrapper for multiple detection and tracking algorithms all at one place. Different trackers such as ByteTrack, DeepSort or NorFair can be integrated with different versions of YOLO with minimum lines of code. This python wrapper provides yolo models in both ONNX and PyTorch versions.

Prerequisite

Installation

For linux

python3 -m venv .env
source .env/bin/activate

pip install numpy Cython
pip install cython-bbox

pip install asone


# for cpu
pip install torch torchvision

# for gpu
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113

For windows

python -m venv .env
.env\Scripts\activate
pip install numpy Cython
pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox

pip install asone

# for cpu
pip install torch torchvision

# for gpu
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113

Usage

Detector

Use detector on a img using gpu

import asone
from asone import utils
from asone.detectors import Detector
import cv2

img = cv2.imread('data/sample_imgs/test2.jpg')
detector = Detector(asone.YOLOV7_E6_ONNX, use_cuda=True).get_detector() # Set use_cuda to False for cpu

dets, img_info = detector.detect(img)

bbox_xyxy = dets[:, :4]
scores = dets[:, 4]
class_ids = dets[:, 5]

img = utils.draw_boxes(img, bbox_xyxy, class_ids=class_ids)
cv2.imwrite('result.png', img)

Change detector by simply changing detector flag. flags are provided in benchmark tables.

# Change detector
detector = Detector(asone.YOLOX_S_PYTORCH, use_cuda=True).get_detector()

Run the asone/demo_detector.py to test detector.

# run on gpu
python -m asone.demo_detector data/sample_imgs/test2.jpg

# run on cpu
python -m asone.demo_detector data/sample_imgs/test2.jpg --cpu

Tracker

Use tracker on sample video using gpu.

import asone
from asone import ASOne

dt_obj = ASOne(tracker=asone.BYTETRACK, detector=asone.YOLOX_DARKNET_PYTORCH, use_cuda=True) # Set use_cuda to False for cpu

for bbox_details, frame_details in dt_obj.track_video(
                                                        args.video_path,
                                                        output_dir=args.output_dir,
                                                        save_result=args.save_result,
                                                        display=args.display
                                                        ):
        # bbox_details = bbox_xyxy, ids, scores, class_ids
        # frame_details = frame, frame_no, fps
        
        # Do anything with bboxes here
        pass

# To track using webcam
# for bbox_details, frame_details in dt_obj.track_video(
#                                                        args.video_path,
#                                                        output_dir=args.output_dir,
#                                                        save_result=args.save_result,
#                                                        display=args.display
#                                                        ):
#        # bbox_details = bbox_xyxy, ids, scores, class_ids
#        # frame_details = frame, frame_no, fps
        
#        # Do anything with bboxes here
#        pass

Change Tracker by simply changing the tracker flag.

flags are provided in benchmark tables.

dt_obj = ASOne(tracker=asone.BYTETRACK, detector=asone.YOLOX_DARKNET_PYTORCH, use_cuda=True)
// Change tracker
dt_obj = ASOne(tracker=asone.DEEPSORT, detector=asone.YOLOX_DARKNET_PYTORCH, use_cuda=True)
dt_obj = ASOne(tracker=asone.DEEPSORT, detector=asone.YOLOX_S_PYTORCH, use_cuda=True)

Run main.py to test tracker on data/sample_videos/test.mp4 video

# run on gpu
python main.py data/sample_videos/test.mp4

# run on cpu
python main.py data/sample_videos/test.mp4 --cpu

Results on provided sample video

https://user-images.githubusercontent.com/107035454/195079926-aee47eac-0430-4ada-8cc7-cc9d1d13c889.mp4

To setup ASOne using Docker follow instructions given in docker setup

Offered By: Maintained By:
AugmentedStarups AxcelerateAI

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

asone-0.1.2.dev10-py3-none-any.whl (289.1 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