169 Commits

Author SHA1 Message Date
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
RunningLeon
843d3c9519
Rewrite mmcls gap (#478)
* rewrite mmcls gap to replace view with flatten

* add test

* update
2022-05-17 19:57:38 +08:00
RunningLeon
6eb83a9daa
fix import mmrazor error in mmcls test (#467) 2022-05-13 14:15:39 +08:00
q.yao
3e4547d17b
fix-windows-ci (#462) 2022-05-11 20:39:31 +08:00
Yue Zhou
42dc5bc316
Support single stage rotated detector in MMRotate (#428)
* fix lint

* fix lint

* add mmrotate part

* update

* update

* fix

* remove init_detector

* success run with bs=1

* nms_rotated support batch

* support [batch_id, class_id, box_id]

* fix

* fix

* Create test_mmrotate_core.py

* add ut

* add ut

* Update nms_rotated.py

* fix

* Revert "fix"

This reverts commit f792387fb449ba091c1d932f29d28214805fb6e3.

* add mmrotate into requirements

* add ut

* update doc

* update

* skip test because mmcv version < 1.4.6

* update

* Update rotated-detection_static.py

* Update rotated-detection_static.py

* Update rotated-detection_static.py

* fix bug of memory leak.

* Update rotated_detection_model.py
2022-05-07 16:11:43 +08:00
hanrui1sensetime
aa85760531
[Enhancement] Support litehrnet for ncnn (#316)
* support for litehrnet

* support ncnn vulkan

* update supported models

* add docstring

* add one ut and fix wrapper

* add test_shuffleunit

* add test_stem_forward

* add last ut

* fix flake8

* fix yapf

* fix lint

* fix yapf

* fix comments

* unified chunk

* mv adaptive_avg_pool

* fix lint

* move adaptive_avg_pool_ncnn

* fix lint

* symbolic rewriter of adaptive_avg_pool2d

* fix lint

* fix yapf

* fix ci
2022-04-29 16:46:19 +08:00
tpoisonooo
2c2d1e5ad9
feat(codebase/cls): support vision_transformer (#403)
* feat(codebase/cls): support vision_transformer

* style(onnx2ncnn): format cpp code, upgrade mmcls version

* fix(CI): upgrade mmcv to 1.4.2

* fix(onnx2ncnn): offset out of range during fuse conv reshape

* docs(vision_transformer.py): update VisionTransformer desc

* docs(onnx2ncnn.cpp): add more comment

* feat(onnx2ncnn.cpp): revert fuse weight

* docs(onnx2ncnn.cpp): add more comment

* test(vision_transformer): add test case

* refactor(vision_transformer.py): use symbol rewrite layer_norm

* refactor(vision_transformer): fix review

* fix(attention): add missing files
2022-04-26 18:00:38 +08:00
Yue Zhou
01a44c00c9
Add roi_align_rotated op for onnxruntime (#277)
* init

* add doc

* add

* Update test_ops.py

* fix bug

* fix pose demo and windows build (#307)

* add postprocessing_masks gpu version (#276)

* add postprocessing_masks gpu version

* default device cpu

* pre-commit fix

Co-authored-by: hadoop-basecv <hadoop-basecv@set-gh-basecv-serving-classify11.mt>

* fixed a bug causes text-recognizer to fail when (non-NULL) empty bboxes list is passed (#310)

* [Fix] include missing <type_traits> for formatter.h (#313)

* fix formatter

* relax GCC version requirement

* fix lint

* Update onnxruntime.md

* fix lint

Co-authored-by: Chen Xin <xinchen.tju@gmail.com>
Co-authored-by: Shengxi Li <982783556@qq.com>
Co-authored-by: hadoop-basecv <hadoop-basecv@set-gh-basecv-serving-classify11.mt>
Co-authored-by: lzhangzz <lzhang329@gmail.com>
2022-04-26 17:46:28 +08:00