2022-03-25 23:28:16 +08:00
# Build for Android
- [Build for Android ](#build-for-android )
- [Build From Source ](#build-from-source )
- [Install Toolchains ](#install-toolchains )
- [Install Dependencies ](#install-dependencies )
- [Install Dependencies for SDK ](#install-dependencies-for-sdk )
- [Build MMDeploy ](#build-mmdeploy )
- [Build Options Spec ](#build-options-spec )
- [Build SDK ](#build-sdk )
- [Build Demo ](#build-demo )
2022-06-17 09:19:10 +08:00
______________________________________________________________________
2022-03-25 23:28:16 +08:00
MMDeploy provides cross compile for android platform.
Model converter is executed on linux platform, and SDK is executed on android platform.
Here are two steps for android build.
2022-06-07 18:05:51 +08:00
1. Build model converter on linux, please refer to [How to build linux ](./linux-x86_64.md )
2022-03-25 23:28:16 +08:00
2. Build SDK using android toolchain on linux.
This doc is only for how to build SDK using android toolchain on linux.
## Build From Source
### Install Toolchains
- cmake
2022-06-17 09:19:10 +08:00
**Make sure cmake version >= 3.14.0** . If not, you can follow instructions below to install cmake 3.20.0. For more versions of cmake, please refer to [cmake website ](https://cmake.org/install ).
2022-03-25 23:28:16 +08:00
2022-06-17 09:19:10 +08:00
```bash
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz
tar -xzvf cmake-3.20.0-linux-x86_64.tar.gz
sudo ln -sf $(pwd)/cmake-3.20.0-linux-x86_64/bin/* /usr/bin/
```
2022-03-25 23:28:16 +08:00
- ANDROID NDK 19+
2022-06-17 09:19:10 +08:00
**Make sure android ndk version >= 19.0** . If not, you can follow instructions below to install android ndk r23b. For more versions of android ndk, please refer to [android ndk website ](https://developer.android.com/ndk/downloads ).
2022-03-25 23:28:16 +08:00
2022-06-17 09:19:10 +08:00
```bash
wget https://dl.google.com/android/repository/android-ndk-r23b-linux.zip
unzip android-ndk-r23b-linux.zip
cd android-ndk-r23b
export NDK_PATH=${PWD}
```
2022-03-25 23:28:16 +08:00
### Install Dependencies
#### Install Dependencies for SDK
You can skip this chapter if only interested in model converter.
2022-06-17 09:19:10 +08:00
2022-03-25 23:28:16 +08:00
< table >
< thead >
< tr >
< th > NAME < / th >
< th > INSTALLATION < / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > OpenCV< br > (>=3.0) < / td >
< td >
< pre > < code >
export OPENCV_VERSION=4.5.4
wget https://github.com/opencv/opencv/releases/download/${OPENCV_VERSION}/opencv-${OPENCV_VERSION}-android-sdk.zip
unzip opencv-${OPENCV_VERSION}-android-sdk.zip
export OPENCV_ANDROID_SDK_DIR=${PWD}/OpenCV-android-sdk
< / code > < / pre >
< / td >
2022-06-17 09:19:10 +08:00
< / tr >
2022-03-25 23:28:16 +08:00
< tr >
< td > ncnn < / td >
< td > A high-performance neural network inference computing framework supporting for android.< / br >
2022-04-24 11:18:33 +08:00
< b > Now, MMDeploy supports v20220216 and has to use < code > git clone< / code > to download it.< / b > < br >
2022-03-25 23:28:16 +08:00
< pre > < code >
2022-04-24 11:18:33 +08:00
git clone -b 20220216 https://github.com/Tencent/ncnn.git
2022-03-25 23:28:16 +08:00
cd ncnn
git submodule update --init
export NCNN_DIR=${PWD}
mkdir -p build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-30 -DNCNN_VULKAN=ON -DNCNN_DISABLE_EXCEPTION=OFF -DNCNN_DISABLE_RTTI=OFF ..
make install
< / code > < / pre >
< / td >
< / tr >
2022-07-07 14:29:45 +08:00
< tr >
< td > OpenJDK < / td >
< td > It is necessary for building Java API.< / br >
See < a href = 'https://github.com/open-mmlab/mmdeploy/blob/master/csrc/mmdeploy/apis/java/README.md' > Java API build < / a > for building tutorials.
< / td >
< / tr >
2022-03-25 23:28:16 +08:00
< / tbody >
< / table >
### Build MMDeploy
2022-06-17 09:19:10 +08:00
2022-03-25 23:28:16 +08:00
#### Build Options Spec
2022-06-17 09:19:10 +08:00
2022-03-25 23:28:16 +08:00
< table >
< thead >
< tr >
< th > NAME< / th >
< th > VALUE< / th >
< th > DEFAULT< / th >
< th > REMARK< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > MMDEPLOY_BUILD_SDK< / td >
< td > {ON, OFF}< / td >
< td > OFF< / td >
< td > Switch to build MMDeploy SDK< / td >
< / tr >
< tr >
< td > MMDEPLOY_BUILD_SDK_PYTHON_API< / td >
< td > {ON, OFF}< / td >
< td > OFF< / td >
< td > switch to build MMDeploy SDK python package< / td >
< / tr >
2022-06-29 11:02:08 +08:00
< tr >
< td > MMDEPLOY_BUILD_SDK_JAVA_API< / td >
< td > {ON, OFF}< / td >
< td > OFF< / td >
< td > switch to build MMDeploy SDK Java API< / td >
< / tr >
2022-03-25 23:28:16 +08:00
< tr >
< td > MMDEPLOY_BUILD_TEST< / td >
< td > {ON, OFF}< / td >
< td > OFF< / td >
< td > Switch to build MMDeploy SDK unittest cases< / td >
< / tr >
< tr >
< td > MMDEPLOY_TARGET_DEVICES< / td >
< td > {"cpu"}< / td >
< td > cpu< / td >
< td > Enable target device. < br > If you want use ncnn vulkan accelerate, you still fill < code > {"cpu"}< / code > here. Because, vulkan accelerate is only for ncnn net. The other part of inference is still using cpu.< / td >
< / tr >
< tr >
< td > MMDEPLOY_TARGET_BACKENDS< / td >
< td > {"ncnn"}< / td >
< td > N/A< / td >
< td > Enabling inference engine. < br > < b > By default, no target inference engine is set, since it highly depends on the use case.< / b > < br > Only ncnn backend is supported for android platform now.< br >
After specifying the inference engine, it's package path has to be passed to cmake as follows, < br >
1. < b > ncnn</ b > : ncnn. < code > ncnn_DIR</ code > is needed.
< pre > < code > -Dncnn_DIR=${NCNN_DIR}/build/install/lib/cmake/ncnn< / code > < / pre >
< / td >
< / tr >
< tr >
< td > MMDEPLOY_CODEBASES< / td >
< td > {"mmcls", "mmdet", "mmseg", "mmedit", "mmocr", "all"}< / td >
< td > N/A< / td >
< td > Enable codebase's postprocess modules. It MUST be set by a semicolon separated list of codebase names. The currently supported codebases are 'mmcls', 'mmdet', 'mmedit', 'mmseg', 'mmocr'. Instead of listing them one by one, you can also pass < code > all< / code > to enable them all, i.e., < code > -DMMDEPLOY_CODEBASES=all< / code > < / td >
< / tr >
< tr >
2022-06-06 11:19:34 +08:00
< td > MMDEPLOY_SHARED_LIBS< / td >
2022-03-25 23:28:16 +08:00
< td > {ON, OFF}< / td >
< td > ON< / td >
< td > Switch to build shared library or static library of MMDeploy SDK. Now you should build static library for android. Bug will be fixed soon.< / td >
< / tr >
< / tbody >
< / table >
#### Build SDK
2022-06-17 09:19:10 +08:00
2022-03-25 23:28:16 +08:00
MMDeploy provides a recipe as shown below for building SDK with ncnn as inference engine for android.
- cpu + ncnn
```Bash
cd ${MMDEPLOY_DIR}
mkdir -p build & & cd build
cmake .. \
-DMMDEPLOY_BUILD_SDK=ON \
2022-06-29 11:02:08 +08:00
-DMMDEPLOY_BUILD_SDK_JAVA_API=ON \
2022-03-25 23:28:16 +08:00
-DOpenCV_DIR=${OPENCV_ANDROID_SDK_DIR}/sdk/native/jni/abi-arm64-v8a \
-Dncnn_DIR=${NCNN_DIR}/build/install/lib/cmake/ncnn \
-DMMDEPLOY_TARGET_BACKENDS=ncnn \
-DMMDEPLOY_CODEBASES=all \
2022-06-06 11:19:34 +08:00
-DMMDEPLOY_SHARED_LIBS=OFF \
2022-03-25 23:28:16 +08:00
-DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-30 \
-DANDROID_CPP_FEATURES="rtti exceptions"
make -j$(nproc) & & make install
```
#### Build Demo
```Bash
cd ${MMDEPLOY_DIR}/build/install/example
mkdir -p build & & cd build
cmake .. \
-DOpenCV_DIR=${OPENCV_ANDROID_SDK_DIR}/sdk/native/jni/abi-arm64-v8a \
Dev v0.4.0 (#301)
* bump version to v0.4.0
* [Enhancement] Make rewriter more powerful (#150)
* Finish function tests
* lint
* resolve comments
* Fix tests
* docstring & fix
* Complement informations
* lint
* Add example
* Fix version
* Remove todo
Co-authored-by: RunningLeon <mnsheng@yeah.net>
* Torchscript support (#159)
* support torchscript
* add nms
* add torchscript configs and update deploy process and dump-info
* typescript -> torchscript
* add torchscript custom extension support
* add ts custom ops again
* support mmseg unet
* [WIP] add optimizer for torchscript (#119)
* add passes
* add python api
* Torchscript optimizer python api (#121)
* add passes
* add python api
* use python api instead of executable
* Merge Master, update optimizer (#151)
* [Feature] add yolox ncnn (#29)
* add yolox ncnn
* add ncnn android performance of yolox
* add ut
* fix lint
* fix None bugs for ncnn
* test codecov
* test codecov
* add device
* fix yapf
* remove if-else for img shape
* use channelshuffle optimize
* change benchmark after channelshuffle
* fix yapf
* fix yapf
* fuse continuous reshape
* fix static shape deploy
* fix code
* drop pad
* only static shape
* fix static
* fix docstring
* Added mask overlay to output image, changed fprintf info messages to … (#55)
* Added mask overlay to output image, changed fprintf info messages to stdout
* Improved box filtering (filter area/score), make sure roi coordinates stay within bounds
* clang-format
* Support UNet in mmseg (#77)
* Repeatdataset in train has no CLASSES & PALETTE
* update result for unet
* update docstring for mmdet
* remove ppl for unet in docs
* fix ort wrap about input type (#81)
* Fix memleak (#86)
* delete []
* fix build error when enble MMDEPLOY_ACTIVE_LEVEL
* fix lint
* [Doc] Nano benchmark and tutorial (#71)
* add cls benchmark
* add nano zh-cn benchmark and en tutorial
* add device row
* add doc path to index.rst
* fix typo
* [Fix] fix missing deploy_core (#80)
* fix missing deploy_core
* mv flag to demo
* target link
* [Docs] Fix links in Chinese doc (#84)
* Fix docs in Chinese link
* Fix links
* Delete symbolic link and add links to html
* delete files
* Fix link
* [Feature] Add docker files (#67)
* add gpu and cpu dockerfile
* fix lint
* fix cpu docker and remove redundant
* use pip instead
* add build arg and readme
* fix grammar
* update readme
* add chinese doc for dockerfile and add docker build to build.md
* grammar
* refine dockerfiles
* add FAQs
* update Dpplcv_DIR for SDK building
* remove mmcls
* add sdk demos
* fix typo and lint
* update FAQs
* [Fix]fix check_env (#101)
* fix check_env
* update
* Replace convert_syncbatchnorm in mmseg (#93)
* replace convert_syncbatchnorm with revert_sync_batchnorm from mmcv
* change logger
* [Doc] Update FAQ for TensorRT (#96)
* update FAQ
* comment
* [Docs]: Update doc for openvino installation (#102)
* fix docs
* fix docs
* fix docs
* fix mmcv version
* fix docs
* rm blank line
* simplify non batch nms (#99)
* [Enhacement] Allow test.py to save evaluation results (#108)
* Add log file
* Delete debug code
* Rename logger
* resolve comments
* [Enhancement] Support mmocr v0.4+ (#115)
* support mmocr v0.4+
* 0.4.0 -> 0.4.1
* fix onnxruntime wrapper for gpu inference (#123)
* fix ncnn wrapper for ort-gpu
* resolve comment
* fix lint
* Fix typo (#132)
* lock mmcls version (#131)
* [Enhancement] upgrade isort in pre-commit config (#141)
* [Enhancement] upgrade isort in pre-commit config by refering to mmflow pr #87
* fix lint
* remove .isort.cfg and put its known_third_party to setup.cfg
* Fix ci for mmocr (#144)
* fix mmocr unittests
* remove useless
* lock mmdet maximum version to 2.20
* pip install -U numpy
* Fix capture_output (#125)
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: AllentDan <41138331+AllentDan@users.noreply.github.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
* configs for all tasks
* use torchvision roi align
* remote unnecessary code
* fix ut
* fix ut
* export
* det dynamic
* det dynamic
* add ut
* fix ut
* add ut and docs
* fix ut
* skip torchscript ut if no ops available
* add torchscript option to build.md
* update benchmark and resolve comments
* resolve conflicts
* rename configs
* fix mrcnn cuda test
* remove useless
* add version requirements to docs and comments to codes
* enable empty image exporting for torchscript and accelerate ORT inference for MRCNN
* rebase
* update example for torchscript.md
* update FAQs for torchscript.md
* resolve comments
* only use torchvision roi_align for torchscript
* fix ut
* use torchvision roi align when pool model is avg
* resolve comments
Co-authored-by: grimoire <streetyao@live.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
* Update supported mmseg models (#181)
* fix ocrnet cascade decoder
* update mmseg support models
* update mmseg configs
* support emanet and icnet
* set max K of TopK for tensorrt
* update supported models for mmseg in docs
* add test for emamodule
* add configs and update docs
* Update docs
* update benchmark
* [Features]Support mmdet3d (#103)
* add mmdet3d code
* add code
* update code
* [log]This commit finish pointpillar export and evaluate on onnxruntime.The model is sample with nvidia repo model
* add tensorrt config
* fix config
* update
* support for tensorrt
* add config
* fix config`
* fix apis about torch2onnx
* update
* mmdet3d deploy version1.0
* map is ok
* fix code
* version1.0
* fix code
* fix visual
* fix bug
* tensorrt support success
* add docstring
* add docs
* fix docs
* fix comments
* fix comment
* fix comment
* fix openvino wrapper
* add unit test
* fix device about cpu
* fix comment
* fix show_result
* fix lint
* fix requirments
* remove ci about det3d
* fix ut
* add ut data
* support for new version pointpillars
* fix comment
* fix support_list
* fix comments
* fix config name
* [Enhancement] Update pad logic in detection heads (#168)
* pad with register
* fix lint
Co-authored-by: AllentDan <dongchunyu@sensetime.com>
* [Enhancement] Additional arguments support for OpenVINO Model Optimizer (#178)
* Add mo args.
* [Docs]: update docs and argument descriptions (#196)
* bump version to v0.4.0
* update docs and argument descriptions
* revert version change
* fix unnecessary change of config for dynamic exportation (#199)
* fix mmcls get classes (#215)
* fix mmcls get classes
* resolve comment
* resolve comment
* Add ModelOptimizerOptions.
* Fix merge bugs.
* Update mmpose.md (#224)
* [Dostring]add example in apis docstring (#214)
* add example in apis docstring
* add backend example in docstring
* rm blank line
* Fixed get_mo_options_from_cfg args
* fix l2norm test
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: Haofan Wang <frankmiracle@outlook.com>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
* [Enhancement] Switch to statically typed Value::Any (#209)
* replace std::any with StaticAny
* fix __compare_typeid
* remove fallback id support
* constraint on traits::TypeId<T>::value
* fix includes
* [Enhancement] TensorRT DCN support (#205)
* add tensorrt dcn support
* fix lint
* remove roi_align plugin for ORT (#258)
* remove roi_align plugin
* remove ut
* skip single_roi_extractor UT for ORT in CI
* move align to symbolic and update docs
* recover UT
* resolve comments
* [Enhancement]: Support fcn_unet deployment with dynamic shape (#251)
* support mmseg fcn+unet dynamic shape
* add test
* fix ci
* fix units
* resolve comments
* [Enhancement] fix-cmake-relocatable (#223)
* require user to specify xxx_dir
* fix line ending
* fix end-of-file-fixer
* try to fix ld cudart cublas
* add ENV var search
* fix CMAKE_CUDA_COMPILER
* cpu, cuda should all work well
* remove commented code
* fix ncnn example find ncnn package (#282)
* table format is wrong (#283)
* update pre-commit (#284)
* update pre-commit
* fix clang-format
* fix mmseg config (#281)
* fix mmseg config
* fix mmpose evaluate outputs
* fix lint
* update pre-commit config
* fix lint
* Revert "update pre-commit config"
This reverts commit c3fd71611f0b79dfa9ad73fc0f4555c1b3563665.
* miss code symbol (#296)
* refactor cmake build (#295)
* add-mmpose-sdk (#259)
* Torchscript support (#159)
* support torchscript
* add nms
* add torchscript configs and update deploy process and dump-info
* typescript -> torchscript
* add torchscript custom extension support
* add ts custom ops again
* support mmseg unet
* [WIP] add optimizer for torchscript (#119)
* add passes
* add python api
* Torchscript optimizer python api (#121)
* add passes
* add python api
* use python api instead of executable
* Merge Master, update optimizer (#151)
* [Feature] add yolox ncnn (#29)
* add yolox ncnn
* add ncnn android performance of yolox
* add ut
* fix lint
* fix None bugs for ncnn
* test codecov
* test codecov
* add device
* fix yapf
* remove if-else for img shape
* use channelshuffle optimize
* change benchmark after channelshuffle
* fix yapf
* fix yapf
* fuse continuous reshape
* fix static shape deploy
* fix code
* drop pad
* only static shape
* fix static
* fix docstring
* Added mask overlay to output image, changed fprintf info messages to … (#55)
* Added mask overlay to output image, changed fprintf info messages to stdout
* Improved box filtering (filter area/score), make sure roi coordinates stay within bounds
* clang-format
* Support UNet in mmseg (#77)
* Repeatdataset in train has no CLASSES & PALETTE
* update result for unet
* update docstring for mmdet
* remove ppl for unet in docs
* fix ort wrap about input type (#81)
* Fix memleak (#86)
* delete []
* fix build error when enble MMDEPLOY_ACTIVE_LEVEL
* fix lint
* [Doc] Nano benchmark and tutorial (#71)
* add cls benchmark
* add nano zh-cn benchmark and en tutorial
* add device row
* add doc path to index.rst
* fix typo
* [Fix] fix missing deploy_core (#80)
* fix missing deploy_core
* mv flag to demo
* target link
* [Docs] Fix links in Chinese doc (#84)
* Fix docs in Chinese link
* Fix links
* Delete symbolic link and add links to html
* delete files
* Fix link
* [Feature] Add docker files (#67)
* add gpu and cpu dockerfile
* fix lint
* fix cpu docker and remove redundant
* use pip instead
* add build arg and readme
* fix grammar
* update readme
* add chinese doc for dockerfile and add docker build to build.md
* grammar
* refine dockerfiles
* add FAQs
* update Dpplcv_DIR for SDK building
* remove mmcls
* add sdk demos
* fix typo and lint
* update FAQs
* [Fix]fix check_env (#101)
* fix check_env
* update
* Replace convert_syncbatchnorm in mmseg (#93)
* replace convert_syncbatchnorm with revert_sync_batchnorm from mmcv
* change logger
* [Doc] Update FAQ for TensorRT (#96)
* update FAQ
* comment
* [Docs]: Update doc for openvino installation (#102)
* fix docs
* fix docs
* fix docs
* fix mmcv version
* fix docs
* rm blank line
* simplify non batch nms (#99)
* [Enhacement] Allow test.py to save evaluation results (#108)
* Add log file
* Delete debug code
* Rename logger
* resolve comments
* [Enhancement] Support mmocr v0.4+ (#115)
* support mmocr v0.4+
* 0.4.0 -> 0.4.1
* fix onnxruntime wrapper for gpu inference (#123)
* fix ncnn wrapper for ort-gpu
* resolve comment
* fix lint
* Fix typo (#132)
* lock mmcls version (#131)
* [Enhancement] upgrade isort in pre-commit config (#141)
* [Enhancement] upgrade isort in pre-commit config by refering to mmflow pr #87
* fix lint
* remove .isort.cfg and put its known_third_party to setup.cfg
* Fix ci for mmocr (#144)
* fix mmocr unittests
* remove useless
* lock mmdet maximum version to 2.20
* pip install -U numpy
* Fix capture_output (#125)
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: AllentDan <41138331+AllentDan@users.noreply.github.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
* configs for all tasks
* use torchvision roi align
* remote unnecessary code
* fix ut
* fix ut
* export
* det dynamic
* det dynamic
* add ut
* fix ut
* add ut and docs
* fix ut
* skip torchscript ut if no ops available
* add torchscript option to build.md
* update benchmark and resolve comments
* resolve conflicts
* rename configs
* fix mrcnn cuda test
* remove useless
* add version requirements to docs and comments to codes
* enable empty image exporting for torchscript and accelerate ORT inference for MRCNN
* rebase
* update example for torchscript.md
* update FAQs for torchscript.md
* resolve comments
* only use torchvision roi_align for torchscript
* fix ut
* use torchvision roi align when pool model is avg
* resolve comments
Co-authored-by: grimoire <streetyao@live.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
* Update supported mmseg models (#181)
* fix ocrnet cascade decoder
* update mmseg support models
* update mmseg configs
* support emanet and icnet
* set max K of TopK for tensorrt
* update supported models for mmseg in docs
* add test for emamodule
* add configs and update docs
* Update docs
* update benchmark
* [Features]Support mmdet3d (#103)
* add mmdet3d code
* add code
* update code
* [log]This commit finish pointpillar export and evaluate on onnxruntime.The model is sample with nvidia repo model
* add tensorrt config
* fix config
* update
* support for tensorrt
* add config
* fix config`
* fix apis about torch2onnx
* update
* mmdet3d deploy version1.0
* map is ok
* fix code
* version1.0
* fix code
* fix visual
* fix bug
* tensorrt support success
* add docstring
* add docs
* fix docs
* fix comments
* fix comment
* fix comment
* fix openvino wrapper
* add unit test
* fix device about cpu
* fix comment
* fix show_result
* fix lint
* fix requirments
* remove ci about det3d
* fix ut
* add ut data
* support for new version pointpillars
* fix comment
* fix support_list
* fix comments
* fix config name
* [Enhancement] Additional arguments support for OpenVINO Model Optimizer (#178)
* Add mo args.
* [Docs]: update docs and argument descriptions (#196)
* bump version to v0.4.0
* update docs and argument descriptions
* revert version change
* fix unnecessary change of config for dynamic exportation (#199)
* fix mmcls get classes (#215)
* fix mmcls get classes
* resolve comment
* resolve comment
* Add ModelOptimizerOptions.
* Fix merge bugs.
* Update mmpose.md (#224)
* [Dostring]add example in apis docstring (#214)
* add example in apis docstring
* add backend example in docstring
* rm blank line
* Fixed get_mo_options_from_cfg args
* fix l2norm test
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: Haofan Wang <frankmiracle@outlook.com>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
* add-mmpose-codebase
* fix ci
* fix img_shape after TopDownAffine
* rename TopDown module -> XheadDecode & implement regression decode
* align keypoints_from_heatmap
* remove hardcode keypoint_head, need refactor, current only support topdown config
* add mmpose python api
* update mmpose-python code
* can't clip fake box
* fix rebase error
* fix rebase error
* link mspn decoder to base decoder
* fix ci
* compile with gcc7.5
* remove no use code
* fix
* fix prompt
* remove unnecessary cv::parallel_for_
* rewrite TopdownHeatmapMultiStageHead.inference_model
* add comment
* add more detail docstring why use _cs2xyxy in sdk backend
* fix Registry name
* remove no use param & add comment of output result
Co-authored-by: AllentDan <41138331+AllentDan@users.noreply.github.com>
Co-authored-by: grimoire <streetyao@live.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
Co-authored-by: Haofan Wang <frankmiracle@outlook.com>
* update faq about WinError 1455 (#297)
* update faq about WinError 1455
* Update faq.md
* Update faq.md
* fix ci
Co-authored-by: chenxin2 <chenxin2@sensetime.com>
* [Feature]Support centerpoint (#252)
* bump version to v0.4.0
* [Enhancement] Make rewriter more powerful (#150)
* Finish function tests
* lint
* resolve comments
* Fix tests
* docstring & fix
* Complement informations
* lint
* Add example
* Fix version
* Remove todo
Co-authored-by: RunningLeon <mnsheng@yeah.net>
* Torchscript support (#159)
* support torchscript
* add nms
* add torchscript configs and update deploy process and dump-info
* typescript -> torchscript
* add torchscript custom extension support
* add ts custom ops again
* support mmseg unet
* [WIP] add optimizer for torchscript (#119)
* add passes
* add python api
* Torchscript optimizer python api (#121)
* add passes
* add python api
* use python api instead of executable
* Merge Master, update optimizer (#151)
* [Feature] add yolox ncnn (#29)
* add yolox ncnn
* add ncnn android performance of yolox
* add ut
* fix lint
* fix None bugs for ncnn
* test codecov
* test codecov
* add device
* fix yapf
* remove if-else for img shape
* use channelshuffle optimize
* change benchmark after channelshuffle
* fix yapf
* fix yapf
* fuse continuous reshape
* fix static shape deploy
* fix code
* drop pad
* only static shape
* fix static
* fix docstring
* Added mask overlay to output image, changed fprintf info messages to … (#55)
* Added mask overlay to output image, changed fprintf info messages to stdout
* Improved box filtering (filter area/score), make sure roi coordinates stay within bounds
* clang-format
* Support UNet in mmseg (#77)
* Repeatdataset in train has no CLASSES & PALETTE
* update result for unet
* update docstring for mmdet
* remove ppl for unet in docs
* fix ort wrap about input type (#81)
* Fix memleak (#86)
* delete []
* fix build error when enble MMDEPLOY_ACTIVE_LEVEL
* fix lint
* [Doc] Nano benchmark and tutorial (#71)
* add cls benchmark
* add nano zh-cn benchmark and en tutorial
* add device row
* add doc path to index.rst
* fix typo
* [Fix] fix missing deploy_core (#80)
* fix missing deploy_core
* mv flag to demo
* target link
* [Docs] Fix links in Chinese doc (#84)
* Fix docs in Chinese link
* Fix links
* Delete symbolic link and add links to html
* delete files
* Fix link
* [Feature] Add docker files (#67)
* add gpu and cpu dockerfile
* fix lint
* fix cpu docker and remove redundant
* use pip instead
* add build arg and readme
* fix grammar
* update readme
* add chinese doc for dockerfile and add docker build to build.md
* grammar
* refine dockerfiles
* add FAQs
* update Dpplcv_DIR for SDK building
* remove mmcls
* add sdk demos
* fix typo and lint
* update FAQs
* [Fix]fix check_env (#101)
* fix check_env
* update
* Replace convert_syncbatchnorm in mmseg (#93)
* replace convert_syncbatchnorm with revert_sync_batchnorm from mmcv
* change logger
* [Doc] Update FAQ for TensorRT (#96)
* update FAQ
* comment
* [Docs]: Update doc for openvino installation (#102)
* fix docs
* fix docs
* fix docs
* fix mmcv version
* fix docs
* rm blank line
* simplify non batch nms (#99)
* [Enhacement] Allow test.py to save evaluation results (#108)
* Add log file
* Delete debug code
* Rename logger
* resolve comments
* [Enhancement] Support mmocr v0.4+ (#115)
* support mmocr v0.4+
* 0.4.0 -> 0.4.1
* fix onnxruntime wrapper for gpu inference (#123)
* fix ncnn wrapper for ort-gpu
* resolve comment
* fix lint
* Fix typo (#132)
* lock mmcls version (#131)
* [Enhancement] upgrade isort in pre-commit config (#141)
* [Enhancement] upgrade isort in pre-commit config by refering to mmflow pr #87
* fix lint
* remove .isort.cfg and put its known_third_party to setup.cfg
* Fix ci for mmocr (#144)
* fix mmocr unittests
* remove useless
* lock mmdet maximum version to 2.20
* pip install -U numpy
* Fix capture_output (#125)
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: AllentDan <41138331+AllentDan@users.noreply.github.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
* configs for all tasks
* use torchvision roi align
* remote unnecessary code
* fix ut
* fix ut
* export
* det dynamic
* det dynamic
* add ut
* fix ut
* add ut and docs
* fix ut
* skip torchscript ut if no ops available
* add torchscript option to build.md
* update benchmark and resolve comments
* resolve conflicts
* rename configs
* fix mrcnn cuda test
* remove useless
* add version requirements to docs and comments to codes
* enable empty image exporting for torchscript and accelerate ORT inference for MRCNN
* rebase
* update example for torchscript.md
* update FAQs for torchscript.md
* resolve comments
* only use torchvision roi_align for torchscript
* fix ut
* use torchvision roi align when pool model is avg
* resolve comments
Co-authored-by: grimoire <streetyao@live.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
* Update supported mmseg models (#181)
* fix ocrnet cascade decoder
* update mmseg support models
* update mmseg configs
* support emanet and icnet
* set max K of TopK for tensorrt
* update supported models for mmseg in docs
* add test for emamodule
* add configs and update docs
* Update docs
* update benchmark
* [Features]Support mmdet3d (#103)
* add mmdet3d code
* add code
* update code
* [log]This commit finish pointpillar export and evaluate on onnxruntime.The model is sample with nvidia repo model
* add tensorrt config
* fix config
* update
* support for tensorrt
* add config
* fix config`
* fix apis about torch2onnx
* update
* mmdet3d deploy version1.0
* map is ok
* fix code
* version1.0
* fix code
* fix visual
* fix bug
* tensorrt support success
* add docstring
* add docs
* fix docs
* fix comments
* fix comment
* fix comment
* fix openvino wrapper
* add unit test
* fix device about cpu
* fix comment
* fix show_result
* fix lint
* fix requirments
* remove ci about det3d
* fix ut
* add ut data
* support for new version pointpillars
* fix comment
* fix support_list
* fix comments
* fix config name
* [Enhancement] Update pad logic in detection heads (#168)
* pad with register
* fix lint
Co-authored-by: AllentDan <dongchunyu@sensetime.com>
* [Enhancement] Additional arguments support for OpenVINO Model Optimizer (#178)
* Add mo args.
* [Docs]: update docs and argument descriptions (#196)
* bump version to v0.4.0
* update docs and argument descriptions
* revert version change
* fix unnecessary change of config for dynamic exportation (#199)
* fix mmcls get classes (#215)
* fix mmcls get classes
* resolve comment
* resolve comment
* Add ModelOptimizerOptions.
* Fix merge bugs.
* Update mmpose.md (#224)
* [Dostring]add example in apis docstring (#214)
* add example in apis docstring
* add backend example in docstring
* rm blank line
* Fixed get_mo_options_from_cfg args
* fix l2norm test
Co-authored-by: RunningLeon <mnsheng@yeah.net>
Co-authored-by: Haofan Wang <frankmiracle@outlook.com>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
* [Enhancement] Switch to statically typed Value::Any (#209)
* replace std::any with StaticAny
* fix __compare_typeid
* remove fallback id support
* constraint on traits::TypeId<T>::value
* fix includes
* support for centerpoint
* [Enhancement] TensorRT DCN support (#205)
* add tensorrt dcn support
* fix lint
* add docstring and dcn model support
* add centerpoint ut and docs
* add config and fix input rank
* fix merge error
* fix a bug
* fix comment
* [Doc] update benchmark add supported-model-list (#286)
* update benchmark add supported-model-list
* fix lint
* fix lint
* loc mmocr maximum version
* fix ut
Co-authored-by: maningsheng <mnsheng@yeah.net>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: AllentDan <41138331+AllentDan@users.noreply.github.com>
Co-authored-by: grimoire <streetyao@live.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
Co-authored-by: AllentDan <dongchunyu@sensetime.com>
Co-authored-by: Haofan Wang <frankmiracle@outlook.com>
Co-authored-by: lzhangzz <lzhang329@gmail.com>
Co-authored-by: maningsheng <mnsheng@yeah.net>
Co-authored-by: Yifan Zhou <singlezombie@163.com>
Co-authored-by: AllentDan <41138331+AllentDan@users.noreply.github.com>
Co-authored-by: grimoire <streetyao@live.com>
Co-authored-by: grimoire <yaoqian@sensetime.com>
Co-authored-by: hanrui1sensetime <83800577+hanrui1sensetime@users.noreply.github.com>
Co-authored-by: Johannes L <tehkillerbee@users.noreply.github.com>
Co-authored-by: VVsssssk <88368822+VVsssssk@users.noreply.github.com>
Co-authored-by: 杨培文 (Yang Peiwen) <915505626@qq.com>
Co-authored-by: Semyon Bevzyuk <semen.bevzuk@gmail.com>
Co-authored-by: AllentDan <dongchunyu@sensetime.com>
Co-authored-by: Haofan Wang <frankmiracle@outlook.com>
Co-authored-by: lzhangzz <lzhang329@gmail.com>
Co-authored-by: Chen Xin <xinchen.tju@gmail.com>
Co-authored-by: chenxin2 <chenxin2@sensetime.com>
2022-04-01 18:14:23 +08:00
-Dncnn_DIR=${NCNN_DIR}/build/install/lib/cmake/ncnn \
2022-03-25 23:28:16 +08:00
-DMMDeploy_DIR=${MMDEPLOY_DIR}/build/install/lib/cmake/MMDeploy \
-DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-30
2022-03-28 13:45:08 +08:00
make -j$(nproc)
2022-03-25 23:28:16 +08:00
```