Commit Graph

176 Commits (2c18fbd2c8e069a032a44b3926366a6067c79758)

Author SHA1 Message Date
Chen Xin b6b22a1b6f
[Feature] support build single sdk library (#806)
* build single lib for c api

* update csharp doc & project

* update test build

* fix test build

* fix
2022-07-28 14:07:48 +08:00
Li Zhang bfd46c1c68
[Fix] Support macOS build (#762)
* fix macOS build

* fix missing
2022-07-26 21:54:49 +08:00
q.yao 0e1a3aa8c7
[Feature] support MMRotate model with le135 (#788)
* support MMRotate model with le135

* cse before fuse select assign

* remove unused import
2022-07-25 16:01:05 +08:00
q.yao 5b31d7a60d
[Enhancement] Install Optimizer by setuptools (#690)
* Add fuse select assign pass

* move code to csrc

* add config flag

* Add fuse select assign pass

* Add CSE for ONNX

* remove useless code

* Install optimizer by setup tools

* fix comment
2022-07-25 13:04:27 +08:00
AllentDan 36c35b6e88
[Fix] fix triu (#792)
* fix triu

* triu -> triu_default
2022-07-22 16:31:00 +08:00
Hakjin Lee 36b3ca4461
[Feature] Support RoITransRoIHead (#713)
* [Feature] Support RoITransRoIHead

* Add docs

* Add mmrotate models regression test

* Add a draft for test code

* change the argument name

* fix test code

* fix minor change for not class agnostic case

* fix sample for test code

* fix sample for test code

* Add mmrotate in requirements

* Revert "Add mmrotate in requirements"

This reverts commit 043490075e.
2022-07-22 15:19:37 +08:00
hanrui1sensetime 4b79124a97
[Fix] fix cascade mask rcnn (#787)
* fix cascade mask rcnn

* fix lint

* add regression
2022-07-22 12:09:12 +08:00
Hakjin Lee 58b256a13b
Upgrade Dockerfile to use TensorRT==8.2.4.2 (#706)
* Upgrade TensorRT to 8.2.4.2

* upgrade pytorch&mmcv in CPU Dockerfile

* Delete redundant port example in Docker

* change 160x160-608x608 to 64x64-608x608 for yolov3
2022-07-20 20:36:22 +08:00
q.yao 0310c168dc
[Enhancement] Better index put ONNX export. (#704)
* Add rewriter for tensor setitem

* add version check
2022-07-20 19:32:46 +08:00
AllentDan ebba5ff6c9
[Fix] fix yolox point_generator (#758)
* fix yolox point_generator

* add a UT

* resolve comments

* fix comment lines
2022-07-20 14:18:48 +08:00
q.yao 4842823fd0
[Enhancement] Add CSE ONNX pass (#647)
* Add fuse select assign pass

* move code to csrc

* add config flag

* Add fuse select assign pass

* Add CSE for ONNX

* remove useless code
2022-07-19 14:46:14 +08:00
RunningLeon 252cabbbc5
Add inference latency test tool (#665)
* add profile tool

* remove print envs in profile tool

* set cudnn_benchmark to True

* add doc

* update tests

* fix typo

* support test with images from a directory

* update doc

* resolve comments
2022-07-19 14:28:22 +08:00
AllentDan 394fb55809
fix satrn for ORT (#753)
* fix satrn for ORT

* move rewrite into pytorch
2022-07-19 09:47:42 +08:00
hanrui1sensetime d216af885d
[Fix] set default topk for dump info (#702)
* set default topk for dump info

* remove redundant docstrings

* add ci densenet

* fix classification warnings

* fix mmcls version

* fix logger.warnings
2022-07-14 17:32:22 +08:00
q.yao dace58e844
[Enhancement] Support Slide Vertex TRT (#650)
* reorgnize mmrotate

* fix

* add hbb2obb

* add ut

* fix rotated nms

* update docs

* update benchmark

* update test

* remove ort regression test, remove comment
2022-07-13 16:09:09 +08:00
Li Zhang 14b2bfd524
[Enhancement] Standardize C API (#634)
* unify C API naming

* fix demo and move apis/c/* -> apis/c/mmdeploy/*

* fix lint

* fix C# project

* fix Java API
2022-07-12 14:04:33 +08:00
hanrui1sensetime 112b11469c
[Fix] Fix mmdet ort static shape bug (#687)
* fix shape

* add device

* fix yapf

* fix rewriter for transforms

* reverse image shape

* fix ut of distance2bbox

* fix rewriter name
2022-07-09 07:20:15 +08:00
hanrui1sensetime affc5ae3ff
[Fix] fix ssd ncnn ut (#692)
* fix ssd ncnn ut

* fix yapf
2022-07-04 15:17:30 +08:00
RunningLeon 17a7d60c7d
pass img_metas while exporting to onnx (#681)
* pass img_metas while exporting to onnx

* remove try-catch in tools for beter debugging

* use get

* fix typo
2022-06-30 17:33:24 +08:00
AllentDan efd39953d7
Deploy the Swin Transformer on TensorRT. (#652)
* resolve conflicts

* update ut and docs

* fix ut

* refine docstring

* add comments and refine UT

* resolve comments

* resolve comments

* update doc

* add roll export

* check backend

* update regression test
2022-06-30 10:41:24 +08:00
Li Zhang 8f1508e098
[Fix] fix clang build (#677)
* fix clang build

* fix ndk build

* fix ndk build

* switch to `std::filesystem` for clang-7 and later
2022-06-29 22:01:51 +08:00
q.yao 58584888ee
[Enhancement] Add fuse select assign pass (#589)
* Add fuse select assign pass

* move code to csrc

* add config flag

* remove bool cast
2022-06-29 14:43:01 +08:00
lvhan028 30d62e97a1
update the circleci config file by adding workflows both for linux, windows and linux-gpu (#368)
* update circleci by adding more workflows

* fix test workflow failure on windows platform

* fix docker exec command for SDK unittests
2022-06-29 12:05:56 +08:00
RunningLeon 5fce1e8f8d
update docs (#624) 2022-06-29 10:15:48 +08:00
q.yao dc5f9c3746
[Enhancement] TensorRT Anchor generator plugin (#646)
* custom trt anchor generator

* add ut

* add docstring, update doc
2022-06-28 16:11:24 +08:00
q.yao 4d9e20960d
[Enhancement] Fix ncnn unittest (#626)
* optmize-csp-darknet

* replace floordiv to torch.div

* update csp_darknet default implement

* fix test
2022-06-28 09:41:44 +08:00
RunningLeon da8c02e2b4
Support deployment of Segmenter (#587)
* support segmentor with ncnn

* update regression yml

* replace chunk with split to support ts

* update regression yml

* update docs

* fix segmenter ncnn inference failure brought by #477

* add test

* fix test for ncnn and trt

* fix lint

* export nn.linear to Gemm op in onnx for ncnn

* fix ci
2022-06-27 17:52:05 +08:00
q.yao 0cac5154a6
[Enhancement] Support two-stage rotated detector TensorRT. (#530)
* upload

* add fake_multiclass_nms_rotated

* delete unused code

* align with pytorch

* Update delta_midpointoffset_rbbox_coder.py

* add trt rotated roi align

* add index feature in nms

* not good

* fix index

* add ut

* add benchmark

* move to csrc/mmdeploy

* update unit test

Co-authored-by: zytx121 <592267829@qq.com>
2022-06-23 10:35:10 +08:00
tpoisonooo a228f95335
Improve ncnn patch embed (#592)
* improvement(PatchEmbed): use reshape instead of flatten

* improvement(init_plugins.py): get onnx2ncnn path

* fix(CI): build error

* fix(CI): revert get onnx2ncnn path
2022-06-15 19:16:51 +08:00
Li Zhang 28beb9a481
[Enhancement] Adjust `csrc` structure (#594)
* adjust csrc structure

* adjust csrc includes

* fix lint

* fix lint

* fix MSVC build

* remove useless code
2022-06-14 13:46:01 +08:00
hanrui1sensetime c99379cc76
[Fix] Fix ncnn float bugs for segmentor sdk (#572)
* fix ncnn float bugs for segmentor sdk

* fix segment for all cases

* fix ut

Co-authored-by: RunningLeon <mnsheng@yeah.net>
2022-06-08 22:30:23 +08:00
Chen Xin 0cb2f67b32
Fix mmpose regression test failed on mmpose v0.26.0 (#576)
* fix mmpose regression test

* try to fix lint

* fix lint

* remove old config

Co-authored-by: chenxin2 <chenxin2@sensetime.com>
2022-06-08 20:16:23 +08:00
lvhan028 594c835b6b merge master and fix the conflicts 2022-06-07 19:04:29 +08:00
q.yao 74243dc98b
[Enhancement] Add ONNX passes support (#390)
* add merge_shape_concate

* add some peephole optimization

* bug fixing

* fix for torch1.9

* add flatten cls head

* add subgraph matcher with attribute

* add ut

* fix lint

* remove onnx2ncnn

* add opset version

* axis name

* fix peephole

* fix symbol compare

* add docs
2022-06-06 21:30:31 +08:00
lzhangzz 567ec62296
[Fix] Fix recent build problems (#544)
* simplify deps management

* skip visibility flags for MSVC

* simplify cuda deps

* naming

* workaround for cmake<3.17

* add spdlog dependency

* move the enablement of CUDA to top level CMakeLists.txt

* fix MSVC build

* fix lint

* fix build for backend ops only

* remove comment

* allow to use apis/python as a standalone project

* remove redundant cmake code

* control shared or static lib using `MMDEPLOY_SHARED_LIBS` instead of `BUILD_SHARED_LIBS`

* fix MSVC build

* update docs
2022-06-06 11:19:34 +08:00
RunningLeon 51f630b22c
Fix test ncnn failure in regression test (#551)
* fix ncnn test in regression test

* update doc

* fix docstring
2022-06-06 10:00:02 +08:00
tpoisonooo cd336eada1
improvement(ViT): use Crop to subtitude Gather (#477)
* improvement(ViT): use Crop to subtitude Gather

* fix(CI): code format

* fix(pytorch/ops/linear.py): bias maybe None

* fix(test/test_pytorch_ops.py): op_type error

* fix(test): pytest error

* fix(test): torch version 1.8
2022-06-02 19:39:15 +08:00
AllentDan ee878b539b
change resolution and fix regression test for mmocr (#534) 2022-06-02 18:29:41 +08:00
q.yao 07fe3e85e2
[RegressionTest] Add mmrotate regression test (#542)
* Add mmrotate regression test

* update regression test script
2022-06-02 14:28:33 +08:00
lzhangzz 46bfe0ac87
[Feature] New pipeline & executor for SDK (#497)
* executor prototype

* add split/when_all

* fix GCC build

* WIP let_value

* fix let_value

* WIP ensure_started

* ensure_started & start_detached

* fix let_value + when_all combo on MSVC 142

* fix static thread pool

* generic just, then, let_value, sync_wait

* minor

* generic split and when_all

* fully generic sender adapters

* when_all: workaround for GCC7

* support legacy spdlog

* fix memleak

* bulk

* static detector

* fix bulk & first pipeline

* bulk for static thread pools

* fix on MSVC

* WIP async batch submission

* WIP collation

* async batch

* fix detector

* fix async detector

* fix

* fix

* debug

* fix cuda allocator

* WIP type erased executor

* better type erasure

* simplify C API impl

* Expand & type erase TC

* deduction guide for type erased senders

* fix GCC build

* when_all for arrays of Value senders

* WIP pipeline v2

* WIP pipeline parser

* WIP timed batch operation

* add registry

* experiment

* fix pipeline

* naming

* fix mem-leak

* fix deferred batch operation

* WIP

* WIP configurable scheduler

* WIP configurable scheduler

* add comment

* parse scheduler config

* force link schedulers

* WIP pipeable sender

* WIP CPO

* ADL isolation and dismantle headers

* type erase single thread context

* fix MSVC build

* CPO

* replace decay_t with remove_cvref_t

* structure adjustment

* structure adjustment

* apply CPOs & C API rework

* refine C API

* detector async C API

* adjust detector async C API

* # Conflicts:
#	csrc/apis/c/detector.cpp

* fix when_all for type erased senders

* support void return for Then

* async detector

* fix some CPOs

* minor

* WIP rework capture mechanism for type erased types

* minor fix

* fix MSVC build

* move expand.h to execution

* make `Expand` pipeable

* fix type erased

* un-templatize `_TypeErasedOperation`

* re-work C API

* remove async_detector C API

* fix pipeline

* add flatten & unflatten

* fix flatten & unflatten

* add aync OCR demo

* config executor for nodes & better executor API

* working async OCR example

* minor

* dynamic batch via scheduler

* dynamic batch on `Value`

* fix MSVC build

* type erase dynamic batch scheduler

* sender as Python Awaitable

* naming

* naming

* add docs

* minor

* merge tmp branch

* unify C APIs

* fix ocr

* unify APIs

* fix typo

* update async OCR demo

* add v3 API text recognizer

* fix v3 API

* fix lint

* add license info & reformat

* add demo async_ocr_v2

* revert files

* revert files

* resolve link issues

* fix scheduler linkage for shared libs

* fix license header

* add docs for `mmdeploy_executor_split`

* add missing `mmdeploy_executor_transfer_just` and `mmdeploy_executor_execute`

* make `TimedSingleThreadContext` header only

* fix lint

* simplify type-erased sender
2022-06-01 14:10:43 +08:00
q.yao b32fc41bed
[Refactor][API2.0] Api refactor2.0 (#529)
* [refactor][API2.0]  Add onnx export and jit trace (#419)

* first commit

* add async call

* add new api onnx export and jit trace

* add decorator

* fix ci

* fix torchscript ci

* fix loader

* better pipemanager

* remove comment, better import

* add kwargs

* remove comment

* better pipeline manager

* remove print

* [Refactor][API2.0] Api partition calibration (#433)

* first commit

* add async call

* add new api onnx export and jit trace

* add decorator

* fix ci

* fix torchscript ci

* fix loader

* better pipemanager

* remove comment, better import

* add partition

* move calibration

* Better create_calib_table

* better deploy

* add kwargs

* remove comment

* better pipeline manager

* rename api, remove reduant variable, and misc

* [Refactor][API2.0] Api ncnn openvino (#435)

* first commit

* add async call

* add new api onnx export and jit trace

* add decorator

* fix ci

* fix torchscript ci

* fix loader

* better pipemanager

* remove comment, better import

* add ncnn api

* finish ncnn api

* add openvino support

* add kwargs

* remove comment

* better pipeline manager

* merge fix

* merge util and onnx2ncnn

* fix docstring

* [Refactor][API2.0] API for TensorRT (#519)

* first commit

* add async call

* add new api onnx export and jit trace

* add decorator

* fix ci

* fix torchscript ci

* fix loader

* better pipemanager

* remove comment, better import

* add partition

* move calibration

* Better create_calib_table

* better deploy

* add kwargs

* remove comment

* Add tensorrt API

* better pipeline manager

* add tensorrt new api

* remove print

* rename api, remove reduant variable, and misc

* add docstring

* [Refactor][API2.0] Api ppl other (#528)

* first commit

* add async call

* add new api onnx export and jit trace

* add decorator

* fix ci

* fix torchscript ci

* fix loader

* better pipemanager

* remove comment, better import

* add kwargs

* Add new APIS for pplnn sdk and misc

* remove comment

* better pipeline manager

* merge fix

* update tools/onnx2pplnn.py

* rename function
2022-05-31 09:18:18 +08:00
HinGwenWoong aabab46d8a
[Enhancement] Improve MMDeploy Regression test (#425)
* make regression test as a module under project

* using `--codebase` instead of  `--deploy-yml`

* Improve doc for `--codebase`

* Add shorter arg  `-p` for `--performance`

* make `checopoint-dir` as an arg for the script

* Gen error log when convert fail.

* Improve res code for testing

* Doc add sdk test detail

* Doc add env setup

* Fix lint

* Fix doc lint

* Improve model path in report

* Improve report title

* Improve report checkpoint path

* Fix lint

* move test yaml under `tests/regression`

* Improve the test yaml path

* Fix lint

* Improve doc

* make func `update_report` code better

* move doc to new location

* Fix arg

* Update arg details

* Use cpu when openvino and onnxruntime cpu package

* Fix word

* Fix func of openpyxl 3.0.9

* Add some info

* Fix lint

* Fix filename

* Fix doc link

* Fix dir name with space when is not sdk

* Add args `--models` for test specific model(s)

* not saving report when no model in codebase when using `--models`

* Fix doc

* Fix lint

* Add table for metric in doc

* Improve table for doc

* Using `None` install of `['all']`

* Improce doc

* set device type properly

* Increate popen bufsize

* Add `precision_type` in `work-dir`

* Fix popen stuck

* Fix lint

* Fix lint

* Fix popen stuck by using file handler

* Make metric dataset as a list

* Update mmseg.yml

* Remove 'FPS' in the report

* Update do_regression_test.md

* Improve log

* Fix codespell

* Fix doc

* ncnn only save `xxx.param` as checkpoint name in the report

Co-authored-by: maningsheng <mnsheng@yeah.net>
2022-05-27 17:08:32 +08:00
RunningLeon 32482e76fd
compat mmpose v0.26 (#518) 2022-05-27 10:58:26 +08:00
tpoisonooo ea0a9e5d43
feat(tools/deploy.py): support ncnn quantization (#476)
* feat(tools): add onnx2ncnn_quant_table

* feat(tools): add quantization image dataset

* feat(tools): add image dataset

* feat(tools/deploy.py): support quant

* fix(CI): lint

* fix(CI): format

* docs(zh_cn): add quantization usage

* docs(zh_cn): add benchmark

* feat(tools): add onnx2ncnn_quant_table

* docs(zh_cn): add more test result

* CI(github): add quant script

* CI(.github/scripts): add test quant

* fix(CI): remove pushd and popd

* feat(CI): debug

* fix(CI): path error

* fix(CI): fix path

* fix(CI): install wget

* fix(CI): review advices

* improvement(mmdeploy): review advice

* fix(tools): rename to onnx2ncnn_quant_table.py

* improvement(tools): rename file

* improvement(test): remove useless

* fix(tools/quant_image_dataset): remove loadFile in test.pipeline

* docs(quantization.md): update description

* fix(CI): protobuf version

* fix(CI): pip install

* docs(quantization): review advice

* fix(CI): revert mmcv version

* fix(CI): udpate pb version

* fix(CI): update
2022-05-26 19:53:56 +08:00
Yue Zhou 89204d16ce
[Feature] Support two stage rotated detector in MMRotate (#473)
* upload

* add fake_multiclass_nms_rotated

* delete unused code

* align with pytorch

* Update delta_midpointoffset_rbbox_coder.py

* rewrite atan2

* Update bbox_nms.py
2022-05-25 13:41:16 +08:00
RunningLeon 4f49763c28
fix mmseg twice resize (#480)
* fix mmseg twich resize

* remove comment
2022-05-25 09:52:42 +08:00
q.yao e3a8baac4c
[Enhancement] Support RotatedRetinaNet TensorRT (#422)
* add rotated nms trt plugin

* fix ops output shape

* rebase

* fix lint

* add fp16, benchmark

* format docs

* remove unused definition, add ut

* add docs

* update docs

* add doc
2022-05-24 10:34:22 +08:00
q.yao 4710ab910d
[Refactor][tools] Add prebuild tools. (#347)
* move to lib

* optional import pytorch rewriter

* reduce torch dependancy of tensorrt export

* remove more mmcv support

* fix pytest

* remove mmcv logge

* Add `mmdeploy.utils.logging`

* Improve the common of the `get_logger`

* Fix lint

* onnxruntim add try catch to  import wrapper if pytorch is available

* Using `mmcv.utils.logging` in all files under `mmdeploy/codebase`

* add __init__

* add prebuild tools

* support windows

* for comment

* exit if failed

* add exist

* decouple

* add tags

* remove .mmdeploy_python

* read python version from system

* update windows config

* update linux config

* remote many

* better build name

* rename python tag

* fix pyhon-tag

* update window config

* add env search

* update tag

* fix build without CUDA_TOOLKIT_ROOT_DIR

Co-authored-by: HinGwenWoong <peterhuang0323@outlook.com>
2022-05-23 17:15:09 +08:00
AllentDan 9eee75b98f
More ocr models (#446)
* rewrite sync batchnorm

* export panet and psenet

* resolution

* align fp16 for panet

* refine codes

* enable satrn for trt

* refine docs

* docstring

* docstring

* add ut and refine codes

* fix ut

* resolve comments and move panet-fp16 to doc

* remove ut

* refine ut

* resolve comments

* use size instead of img_scale

* use size of MultiScaleAug

Co-authored-by: dongchunyu.vendor <dongchunyu@pjlab.org.cn>
2022-05-20 21:52:36 +08:00
q.yao a4b7bced55
[Feature] Support reppoints TensorRT (#457)
* Support reppoints tensorrt

* add ut and docs

* update zh_cn documents

* update document
2022-05-18 11:54:45 +08:00