Git Product home page Git Product logo

vitis_ai_library_apps's Introduction

Vitis AI Library Applications

Vitis AI Libraryを使用したアプリケーションを作成、動作確認する。
ハードウェア環境の構築などは以下を参照。

Usage

Xilinxが用意しているデモ

video_demo_app <model_name> <video_num> [-t <thread_num>]

シングルスレッド

video_single_th_app <model_name> <video_num>
  • model_name : 使用できるモデルは、/usr/share/vitis_ai_library/modelsにあるものだけと思われる。現状、以下に対応。
    • Yolo v2: yolov2_voc yolov2_voc_pruned_0_66 yolov2_voc_pruned_0_71 yolov2_voc_pruned_0_77
    • Yolo v3: yolov3_adas_pruned_0_9 yolov3_bdd yolov3_voc yolov3_voc_tf
    • SSD Caffe:ssd_adas_pruned_0_95 ssd_mobilenet_v2 ssd_pedestrain_pruned_0_97 ssd_traffic_pruned_0_9
    • SSD Tensorflow:ssd_mobilenet_v1_coco_tf ssd_mobilenet_v2_coco_tf ssd_resnet_50_fpn_coco_tf
  • video_num : Integer (X of /dev/videoX)
  • thread_num : Xilinxが用意しているデモライブラリでのスレッド指定。DPUとのデータのやり取りが高速になる。

動作イメージ

yolov2_pruned_0_77.gif

Performance (fps) on ultra96v2 @ 640*360

Using USB Web Camera C615 (X forwarding). fpsは小数点以下切り捨てで測定した。同一条件でもけっこうばらつきがあると思われる。

video_demo_app using vitis::ai::main_for_video_demo()

ultra96v2ではDPUが一つしか実装できないのでDPUで律速になるような、重いモデルではマルチスレッドがほとんど効果がない。 スレッド構成は以下のようになっていて、DPUスレッドの数を引数で変更できるようになっている。

capture thread ---> DPU Threads(-t N) ---> imshow thread
model -t 1 -t 2 -t 4
yolov2_voc 8 9 9
yolov2_voc_pruned_0_66 21 23 24
yolov2_voc_pruned_0_71 24 26 28
yolov2_voc_pruned_0_77 27 28 29
yolov3_adas_pruned_0_9 11 11 12
yolov3_bdd 4 5 5
yolov3_voc 5 5 5
yolov3_voc_tf 5 5 5
ssd_adas_pruned_0_95 29 29 30
ssd_mobilenet_v2 10 10 10
ssd_pedestrain_pruned_0_97 30 30 30
ssd_traffic_pruned_0_9 20 27 27
ssd_mobilenet_v1_coco_tf 21 21 22
ssd_mobilenet_v2_coco_tf 20 21 22
ssd_resnet_50_fpn_coco_tf 0 0 1

video_single_th_app / video_multi_th_app

single_thはシリアル処理。

capture, DPU, imshow (serial processing)

multi_thは下記のようなマルチスレッド処理。

capture thread ---> DPU Thread ---> imshow thread
model single thread multi threads
yolov2_voc 5 8
yolov2_voc_pruned_0_66 9 19
yolov2_voc_pruned_0_71 9 23
yolov2_voc_pruned_0_77 9 26
yolov3_adas_pruned_0_9 10 11
yolov3_bdd 3 4
yolov3_voc 3 5
yolov3_voc_tf 3 5
ssd_adas_pruned_0_95 12 27
ssd_mobilenet_v2 7 10
ssd_pedestrain_pruned_0_97 13 29
ssd_traffic_pruned_0_9 10 20
ssd_mobilenet_v1_coco_tf 12 19
ssd_mobilenet_v2_coco_tf 11 20
ssd_resnet_50_fpn_coco_tf 0 0

Demo pictures

yolov3_voc yolov3_voc.png

yolov2_voc yolov2_voc.png

ssd_mobilenet_v2 ssd_mobilenet_v2.png

ssd_mobilenet_v2_coco_tf ssd_mobilenet_v2_coco_tf.png

vitis_ai_library_apps's People

Contributors

nv-h avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.