The purpose of this project is to apply mediapipe to more AI chips.

1.About This Project

Our Official Website: www.houmo.ai
Who We Are: We are Houmo - A Great AI Company.
We wish to change the world with unlimited computing power,
We will subvert the AI chip with in memory computing.

This Project we created is the first one that migrate tensorrt inference engine into Google Mediapipe.
The purpose of this project is to apply mediapipe to more AI chips.

2.Our Build Environment

2.1Hardware: AGX Xavier System Information

  • NVIDIA Jetson AGX Xavier [16GB]
    • Jetpack 4.6 [L4T 32.6.1]
    • NV Power Mode: MAXN - Type: 0
    • jetson_stats.service: active
  • Board info:
    • Type: AGX Xavier [16GB]
    • SOC Family: tegra194 - ID:25
    • Module: P28xx-00xx - Board: P28xx-00xx
    • Code Name: galen
    • CUDA GPU architecture (ARCH_BIN): 7.2
    • Serial Number: *****
  • Libraries:
    • CUDA: 10.2.300
    • cuDNN: 8.2.1.32
    • TensorRT: 8.0.1.6
    • Visionworks: 1.6.0.501
    • OpenCV: 3.4.15-dev compiled CUDA: NO
    • VPI: ii libnvvpi1 1.1.12 arm64 NVIDIA Vision Programming Interface library
    • Vulkan: 1.2.70
  • jetson-stats:
    • Version 3.1.1
    • Works on Python 2.7.17

2.2Build-Essential

a)gcc and g++ version 8.4.0 (Ubuntu/Linaro 8.4.0-1ubuntu1~18.04)
install command:

$sudo apt install gcc-8 g++-8
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8

check gcc g++ version

$gcc -v
$g++ -v

b)Mediapipe Dependencies
Please refer to Mediapipe Installation and install all required software packages and runtime libraries.

c)Cuda Related
We created two soft links pointing to cuda headers. Change to your own paths if needed.

**/mediapipe_plus/third_party/cuda_trt$ tree
.
├── BUILD
├── usr_local_cuda
│   └── include -> /usr/local/cuda/include
└── usr_local_cuda-10.2
    └── include -> /usr/local/cuda-10.2/targets/aarch64-linux/include/

3. Build and Run This Project On Nvidia AGX Xavier

Please follow the instructions below to compile and run our demo.

3.1 Upgrade Your AGX Xavier IF Jetpack Version Smaller than 4.6 or TensorRT Version Smaller Than 8.0

Warning:Before Upgrading, Please BackUp Your AGX Xavier To Prevent Data Loss
Refer to xavier official website:Over-the-Air Update:
Section: Updating a Jetson Device -> To update to a new minor release

3.2 Clone and Build The Project

Clone

$git clone ***
$cd **

Build the Demo

$bazel build //calculators/tensorrt:trt_inference_calculator_test

Run

GLOG_logtostderr=1   ./bazel-bin/calculators/tensorrt/trt_inference_calculator_test   --input_video_path=./test1.mp4   --remote_run=true

Expected Output
Under current folder, there will be a video file named "trt_infer.mp4" be generated.
Each frame has detected facial boxes and facial points.Like This:
face_detection_trt

3.3 About The Demo

We created several calculators under directory "./calculators/" to build a TensorRT Engine from onnx .
And the target:trt_inference_calculator_test is a face detection demo to show how to use these calculators.
Face Detection Demo is an ultrafast face detection solution that comes with 6 landmarks and multi-face support.
It is based on BlazeFace, a lightweight and well-performing face detector.
image

TODO

We left several TODOs which will be done in next version .

  • Use vpi interfaces to accelerate pre and post process such as color space convertion、 resize 、 saving images etc.
  • Reuse mediapipe official released post process calculators.
Similar Resources

Tiny library for C++ enum introspection and more!

#smart_enum Tiny library for C++ enum introspection... and more! (Sorry for this readme being incomplete, I'm working on updating it. For now, please

Jan 19, 2022

heuristically and dynamically sample (more) uniformly from large decision trees of unknown shape

PROBLEM STATEMENT When writing a randomized generator for some file format in a general-purpose programming language, we can view the resulting progra

Feb 15, 2022

kaldi-asr/kaldi is the official location of the Kaldi project.

Kaldi Speech Recognition Toolkit To build the toolkit: see ./INSTALL. These instructions are valid for UNIX systems including various flavors of Linux

Dec 28, 2022

This fork adds enhancements to the Loz project (Legend of Zelda remake).

LOZ This project is a remake of the game Legend of Zelda. Summary The repository is split into a game project and two tools. The tools extract resourc

Nov 29, 2022

this is a repo of where you will get to see tic tac toe AI intregrated project

this is a repo of where you will get to see tic tac toe AI intregrated project

😲 Tic-Tac-Toe-AI-Intregrated 😲 What is the meaning of AI Intregrated 🙋‍♀️ 🙋‍♂️ ❓ ❓ You all have Played Tic Tac Toe in your life if you don't know

Dec 5, 2022

Super Mario Remake using C++, SFML, and Image Processing which was a project for Structure Programming Course, 1st Year

Super Mario Remake using C++, SFML, and Image Processing which was a project for Structure Programming Course, 1st Year

Super Mario Remake We use : C++ in OOP concepts SFML for game animations and sound effects. Image processing (Tensorflow and openCV) to add additional

Dec 11, 2022

This is a small example project, that showcases the possibility of using a surrogate model to estimate the drag coefficient of arbitrary triangles.

This is a small example project, that showcases the possibility of using a surrogate model to estimate the drag coefficient of arbitrary triangles.

flowAroundTriangles This is a small example project, that showcases the possibility of using a surrogate model to estimate the drag coefficient of arb

Sep 16, 2022

A project to control Petoi Bittle using human pose

A project to control Petoi Bittle using human pose

Petoi Bittle Controlled by Pose A project to control Petoi Bittle by human pose Human pose is estimated using MoveNet and TensorFlow Lite YouTube Syst

Dec 26, 2021

This is a sample ncnn android project, it depends on ncnn library and opencv

This is a sample ncnn android project, it depends on ncnn library and opencv

This is a sample ncnn android project, it depends on ncnn library and opencv

Jan 6, 2023
Comments
  • Add the tensorrt inference to the original mediapipe project

    Add the tensorrt inference to the original mediapipe project

    Is it possible to add the tensorrt inference to the original mediapipe project for different demos, e.g., hand tracking, without changing the original pipeline for Ubuntu desktop and Jetson

UE4 MediaPipe plugin

UE4 MediaPipe plugin Platforms: Win64 2D features: Face, Iris, Hands, Pose, Holistic 3D features: Face Mesh, World Pose Demo video: https://www.youtub

Dec 29, 2022
Example Qt application that demonstrates how to integrate Mediapipe
Example Qt application that demonstrates how to integrate Mediapipe

Mediapipe integration to Qt application example Example on how to integrate mediapipe as a dynamic library into Qt applicaton on Linux. Resulting appl

Nov 26, 2022
A mediapipe-hand demo infer by ncnn
A mediapipe-hand demo infer by ncnn

The Android demo of Mediapipe Hand infer by ncnn Please enjoy the mediapipe hand demo on ncnn You can try this APK demo https://pan.baidu.com/s/1ArAMH

Dec 22, 2022
Native runtime package for MediaPipe.NET.

MediaPipe.NET.Runtime Native library package for MediaPipe.NET. This is the first half of the port of MediaPipeUnityPlugin, in order to use MediaPipe

Oct 12, 2022
Mirror of compiler project code. Not for SVC purpose.

Compiler-proj Project progress is updated here. Progress 2021/11/28: Started! Set up Makefile and finished basic scanner. 2021/10/24: Repo created. Ac

Dec 23, 2021
GPTPU: General-Purpose Computing on (Edge) Tensor Processing Units

GPTPU: General-Purpose Computing on (Edge) Tensor Processing Units Welcome to the repository of ESCAL @ UCR's GPTPU project! We aim at demonstrating t

Dec 23, 2022
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more

Apache MXNet (incubating) for Deep Learning Apache MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to m

Dec 31, 2022
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library,  for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

eXtreme Gradient Boosting Community | Documentation | Resources | Contributors | Release Notes XGBoost is an optimized distributed gradient boosting l

Jan 3, 2023