# ev_deploy **Repository Path**: cvmart/ev_deploy ## Basic Information - **Project Name**: ev_deploy - **Description**: 极市部署套件evdeploy代码仓库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-28 - **Last Updated**: 2025-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 极市部署套件 EVDeploy,让算法落地更简单 EVDeploy(极市部署套件)是面向开发者的产业级AI推理部署工具,具备快速集成、跨硬件适配、支持海量模型结构等特点。EVDeploy 支持主流 SOTA 及海量自定义网络结构,支持检测、分割、分类、OCR等多种视觉任务场景。开发者可通过 EVDeploy 提供的通用接口,快速完成AI能力集成,专注AI算法逻辑及工程化业务开发,极大提升AI算法开发效率。 ## 功能特性 - **快速集成** EVDeploy支持主流热门SOTA及海量自定义网络结构,支持检测、分割、分类、OCR等多种视觉任务场景。 - **跨硬件适配** 支持Nvidia GPU、Ascend、x86/ARM CPU、算能、曙光DCU、寒武纪等硬件。 - **多模型支持** 覆盖CV各领域主流SOTA网络结构,支持自定义网络结构插件编写。 - **高性能组件库** 基于异构推理硬件加速特性,提供通用高性能组件库,方便用户快速提升算法性能。 ## 硬件支持 | **System** | **x86 Linux** | **ARM Linux** | | ---------- | :---------------------------: | ------------------------------------------ | | Nvidia GPU |        |        | | 华为Ascend NPU | |        | | 算能 | | 即将上线 | | 寒武纪 | 即将上线 | | | 曙光DCU | 即将上线 | | ## 近期更新 - **2024.4.30** 发布EVDeploy v1.1.0, 该版本在对外接口上保持v1.0.0版不变,基本兼容上一版;v1.1.0版相比v1.0.0在实现上重大变化,主要的改变包括:1)简化了工程目录,重构了授权模块,重点只保护模型,除模型保护模块外,整个EVDeploy的代码开源;2)支持多种EVDeploy使用方式,包括直接安装使用(类似v1.0.0,无须修改EVDeploy),自定义修改EVDeploy(重新编译),只使用EVDeploy部分功能(比如模型加载函数,其他部分完全由开发者实现,以提供最大自由度). **热烈欢迎开发者提PR,共同为开源贡献,促进EVDeploy越来越好用!!!** - **2023.6.30** 发布EVDeploy正式版,优化多线程运行机制及资源消耗,修复部分多线程串流问题 - **2023.5.16** 发布EVDeploy内测版,实现NV GPU、Ascend NPU后端集成,并预置车牌检测、识别,行人检测基础算法 ## 文档教程 - **使用文档** - [EVDeploy使用说明](doc/user_guide_evdeploy.md) - [EVSDK集成EVDeploy](doc/user_guide_with_evsdk.md) - [内置基础算法使用说明](doc/user_guide_algo.md) - [自定义EVDeploy功能](doc/user_guide_develop_evdeploy.md) - [部分使用EVDeploy功能](doc/user_guide_with_part.md) - [EVDeploy model_zoo模型获取](doc/user_guide_model_zoo.md) - **DEMO示例** - [ev_sdk使用EVDeploy的标准demo](https://gitee.com/cvmart/ev_sdk_demo4.0_evdeploy.git) - **常见问题** - [部署套件在线QA](https://docs.qq.com/sheet/DTWpKREtyc3loc2JO?tab=BB08J2)
## 快速开始 ### 1. 编译安装 下载最新版EVDeploy, **git clone https://gitee.com/cvmart/ev_deploy.git** 到某个路径,比如/root, (建议不要选择/usr/local等路径),然后执行如下命令操作: ``` cd /root/ev_deploy mkdir build cd build ######################## ##打开修改ev_deploy/CMakeLists.txt文件,根据runtime类型,打开关闭编译选项; ##比如打算采用Tensorrt,则打开option(WITH_TENSORRT_RUNTIME "whether to build with tensorrt" ON),置为ON,否则置为OFF ##其他的runtime类型,依此类推; ##也可以不修改CMakeLists.txt,而采用cmake来控制,比如:cmake -DWITH_TENSORRT_RUNTIME=ON -DWITH_ASCENDCL_RUNTIME=OFF .. && make install ######################## cmake .. && make install ``` **注意事项:** 1. 编译后会将EVDeploy安装到指定固定系统路径/usr/local/evdeploy,即可直接使用EVDeploy; 2. evdeploy/CMakeLists.txt除了修改runtime的编译选项,其他地方通常无须修改,除非自定义修改EVDeploy的已有功能,自定义修改EVDeploy参见文档[自定义EVDeploy功能](doc/user_guide_develop_evdeploy.md)。 ### 2. 使用用法 - 基本用法(大多数情况):**ev_deploy/doc**中包含相关文档,可重点参考阅读;对于不熟悉EVDeploy的开发者请务必**首先阅读其中的文档**,便于快速掌握和达到事半功倍的效果。如果已经基本熟悉EVDeploy,想要在EVSDK中使用EVDeploy则可重点参考[EVSDK集成EVDeploy](doc/user_guide_with_evsdk.md) - 自定义修改EVDeploy:如果发现EVDeploy已有的功能或者默认的实现无法完全满足算法开发的需求,比如想要改变某个runtime的推理实现,想要增加某些模型结构的前后处理方法等等,可参考文档[自定义EVDeploy功能](doc/user_guide_develop_evdeploy.md),修改EVDeploy源码,重新编译。 - 部分使用EVDeploy:如果发现EVDeploy的整体框架和实现不符合开发习惯或者有更好的实现方法,或者就是想要复用自己已有的代码,那么也可以仅仅使用部分的EVDeploy功能,比如仅使用模型加载部分处理加密模型,而不使用EVDeploy其他功能,可参考文档[部分使用EVDeploy功能](doc/user_guide_with_part.md)。 ### 3. 功能目录 - **evdeploy/core**:核心接口模块; - **evdeploy/algo**:内置算法模块,比如基础模型(车牌识别,车牌检测,行人检测等),会持续增加; - **evdeploy/cv**:内置cv模块,比如检测类的前后处理,常用cv函数,会持续增加; - **evdeploy/runtime**:内置推理引擎后端,比如tensorrt, Ascend等, 会持续增加; - **evdeploy/utils**:内置辅助模块, 比如json模块,会持续增加; - **evdeploy/deploy.h**: EVDeploy的主要头文件; - **evdeploy/tests**:EVDeploy的测试文件夹。 ### 4.注意事项 - 在极市平台上进行开发和使用EVDeploy时,注意选择正确的算法基础镜像,目前验证过的基础镜像,如下列表所示,请注意核对相关版本信息: | **runtime** | **base image** | | ---------- | :---------------------------: | | Nvidia Tensorrt | ubuntu18.04-cuda11.3-cudnn8-tensorrt8.2-miniconda-jupyterlab3.3-ffmpeg4.2-opencv4.5-vas6.5 | | Nvidia Tensorrt | ubuntu20.04-cuda11.7-cudnn8-tensorrt8.4-miniconda-jupyterlab3.5-ffmpeg4.2-opencv4.5-vas6.5 | | HUAWEI Ascend CANN | atlas200-cann8.0-ffmpeg4.2-opencv4.5.1-atc-ubuntu22.04-arm64-runtime-evdeploy | | 算能 | 即将上线 | | 寒武纪 | 即将上线 | | 曙光DCU | 即将上线 | - 在极市平台上进行开发使用EVDeploy后,可以直接处理加密后的模型,可以在保护模型的条件下,自由进行算法开发的调试和验证。 - **evdeploy/tests**目录是可直接测试EVDeploy的用例,其涉及的model可通过 [EVDeploy model_zoo文档说明](doc/user_guide_model_zoo.md)