本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修改workflow actions流水线规范 Co-authored-by: tanghaoran7<tanghaoran7@huawei.com> # message auto-generated for no-merge-commit merge: !1203 merge master into master 修改workflow actions流水线规范 Created-by: tanghaoran7 Commit-by: tanghaoran7 Merged-by: cann-robot Description: ## 描述 修改workflow actions流水线规范 ## 关联的Issue https://gitcode.com/cann/ops-cv/issues/672 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1203 | 2 个月前 | |
新增 TF plugin 编译机制 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !1209 merge pr_837 into master 新增 TF plugin 编译机制 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 新增 ops-cv TensorFlow plugin 编译机制: - 增加 optf_plugin_cv target 及 --tfplugin 独立构建入口。 - --pkg 内置包构建额外携带 liboptf_plugin_cv.so,对齐 ops-math/ops-nn 的 TF plugin 包装方式。 - TF plugin object target 使用生成的 ge_ir.proto header 初始化,并通过 common/src/framework/cv_stub_tf_plugin.cpp 保持目标可构建。 - 保留 add_tf_plugin_sources() 作为单算子目录显式接入入口。 - 暂不默认自动收集各算子目录下 framework/*_tf_plugin.cpp,因为 cv 仓现有部分 TF plugin 文件依赖非公开 GE 头文件;后续文件整改后可打开 ENABLE_AUTO_TF_PLUGIN_SOURCES。 ## 关联的Issue #706 ## 测试 已完成: - bash -n build.sh scripts/build_conf.sh scripts/build_options.sh scripts/build_lib.sh - bash build.sh --tfplugin --ccache=off - Built target optf_plugin_cv_obj - Built target optf_plugin_cv - 生成 build/liboptf_plugin_cv.so - 确认 stub 编译进 TF plugin object: - build/CMakeFiles/optf_plugin_cv_obj.dir/common/src/framework/cv_stub_tf_plugin.cpp.o - /home/developer/.local/bin/pre-commit run --files <本 PR 修改文件> 回归结论: - --tfplugin 独立构建通过。 - ENABLE_JIT 未参与 TF plugin 库目标选择,未改变现有 --jit 语义。 - ENABLE_TEST=TRUE、非 installed CANN package 场景下 TF plugin CMake 入口直接返回,不引入 UT 路径。 注意事项: - 其他现有 *_tf_plugin.cpp 若仍依赖非公开 GE 头文件,需要由对应组件后续整改后再纳入自动收集。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1209 | 1 个月前 | |
新增 TF plugin 编译机制 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !1209 merge pr_837 into master 新增 TF plugin 编译机制 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 新增 ops-cv TensorFlow plugin 编译机制: - 增加 optf_plugin_cv target 及 --tfplugin 独立构建入口。 - --pkg 内置包构建额外携带 liboptf_plugin_cv.so,对齐 ops-math/ops-nn 的 TF plugin 包装方式。 - TF plugin object target 使用生成的 ge_ir.proto header 初始化,并通过 common/src/framework/cv_stub_tf_plugin.cpp 保持目标可构建。 - 保留 add_tf_plugin_sources() 作为单算子目录显式接入入口。 - 暂不默认自动收集各算子目录下 framework/*_tf_plugin.cpp,因为 cv 仓现有部分 TF plugin 文件依赖非公开 GE 头文件;后续文件整改后可打开 ENABLE_AUTO_TF_PLUGIN_SOURCES。 ## 关联的Issue #706 ## 测试 已完成: - bash -n build.sh scripts/build_conf.sh scripts/build_options.sh scripts/build_lib.sh - bash build.sh --tfplugin --ccache=off - Built target optf_plugin_cv_obj - Built target optf_plugin_cv - 生成 build/liboptf_plugin_cv.so - 确认 stub 编译进 TF plugin object: - build/CMakeFiles/optf_plugin_cv_obj.dir/common/src/framework/cv_stub_tf_plugin.cpp.o - /home/developer/.local/bin/pre-commit run --files <本 PR 修改文件> 回归结论: - --tfplugin 独立构建通过。 - ENABLE_JIT 未参与 TF plugin 库目标选择,未改变现有 --jit 语义。 - ENABLE_TEST=TRUE、非 installed CANN package 场景下 TF plugin CMake 入口直接返回,不引入 UT 路径。 注意事项: - 其他现有 *_tf_plugin.cpp 若仍依赖非公开 GE 头文件,需要由对应组件后续整改后再纳入自动收集。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1209 | 1 个月前 | |
docs: 完善快速安装指南 Co-authored-by: ayuemoon<15802951036@163.com> # message auto-generated for no-merge-commit merge: !1231 merge docs/improve-quick-install into master docs: 完善快速安装指南 Created-by: ayuemoon Commit-by: ayuemoon Merged-by: cann-robot Description: ## 描述 完善 docs/zh/install/quick_install.md 快速安装指南,更新 Docker 支持范围、细化驱动安装步骤、修复多处文档格式问题。 ### 主要改动: 1. **Docker 支持范围扩展**:A2 → A2 + A3 系列,操作系统 ubuntu → ubuntu22.04 + openeuler24.03 2. **驱动安装细化**:移除"固件"表述,新增在线安装三步骤(选择产品→安装依赖&配源→安装NPU驱动并验证) 3. **镜像示例更新**:示例系统从 openeuler24.03 改为 ubuntu22.04,补充镜像标签格式说明 4. **docker run 补充**:新增 --name 参数说明 5. **Markdown 格式修复**:代码块缩进、行内代码标记清理 6. **场景2重写**:统一跳转至 CANN 快速安装页面 7. **术语统一**:docker → docker部署 ## 关联的Issue https://gitcode.com/cann/ops-cv/issues/704 ## 测试 1. **文档格式检查**:确认 Markdown 渲染正确,代码块缩进规范 2. **链接验证**:确认所有跳转链接可访问 3. **内容验证**:按文档步骤执行 Docker 部署和手动安装流程,验证新增说明准确 ## 文档更新 本次 PR 即为 docs/zh/install/quick_install.md 文档更新,无其他文档变更。 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1231 | 1 个月前 | |
fix: 修复 add_example 头文件 include guard 宏名错误 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !1202 merge fix/include-guard-add-example into master fix: 修复 add_example 头文件 include guard 宏名错误 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 修复 examples/ 下 2 个头文件的 include guard 宏名错误 **1) 拷贝残留** —— examples/add_example/op_kernel/add_example_tiling_data.h guard 名取自 RotaryPositionEmbeddingGrad 算子,系拷贝后未修改: diff -#ifndef _ROTARY_POSITION_EMBEDDING_GRAD_TILING_DATA_H_ -#define _ROTARY_POSITION_EMBEDDING_GRAD_TILING_DATA_H_ +#ifndef _ADD_EXAMPLE_TILING_DATA_H_ +#define _ADD_EXAMPLE_TILING_DATA_H_ ... -#endif +#endif // _ADD_EXAMPLE_TILING_DATA_H_ **2) 两个不同算子共用同一 guard** —— examples/add_example_aicpu/op_graph/add_example_proto.h 该文件与 examples/add_example/op_graph/add_example_proto.h 同用 OPS_OP_PROTO_INC_AddEXAMPLE_H_。二者若被同一编译单元先后 include,后者整体被 guard 跳过,**导致 REG_OP(AddExampleAicpu) 静默丢失**: diff -#ifndef OPS_OP_PROTO_INC_AddEXAMPLE_H_ -#define OPS_OP_PROTO_INC_AddEXAMPLE_H_ +#ifndef OPS_OP_PROTO_INC_AddEXAMPLEAICPU_H_ +#define OPS_OP_PROTO_INC_AddEXAMPLEAICPU_H_ ... -#endif // OPS_OP_PROTO_INC_AddEXAMPLE_H_ +#endif // OPS_OP_PROTO_INC_AddEXAMPLEAICPU_H_ 两处均保持 #ifndef / #define / #endif 三行一致。非 aicpu 版 proto 的 guard 保持不变,与 ops-math 的处理一致。 ## 关联的Issue 关联Issue #671 ## 测试 改动仅涉及预处理宏,不改变任何运行期逻辑,故以编译级验证为主。 **1. 缺陷 2 的修复前后对比(决定性验证)** 构造同时 include 两个 proto 的编译单元: cpp #include "examples/add_example/op_graph/add_example_proto.h" #include "examples/add_example_aicpu/op_graph/add_example_proto.h" int main() { ge::op::AddExample a("a"); ge::op::AddExampleAicpu b("b"); return 0; } - 修复前:error: 'AddExampleAicpu' is not a member of 'ge::op'; did you mean 'AddExample'? —— 算子注册确实丢失 - 修复后:g++ -fsyntax-only -std=c++17 编译通过,两个算子均可见 **2. guard 生效验证** 对 add_example_tiling_data.h 做重复 include 的完整编译并运行,无重定义错误,AddExampleTilingData 结构体可正常构造使用。 **3. 宏名唯一性** 全仓 514 个头文件扫描,新引入的 _ADD_EXAMPLE_TILING_DATA_H_ 与 OPS_OP_PROTO_INC_AddEXAMPLEAICPU_H_ 各仅出现于 1 个文件,未与既有宏冲突。 **4. 无残留引用** _ROTARY_POSITION_EMBEDDING_GRAD_TILING_DATA_H_ 在本次改动的文件中已清零;OPS_OP_PROTO_INC_AddEXAMPLE_H_ 仅余 examples/add_example/op_graph/add_example_proto.h 自身三行(有意保留)。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1202 | 2 个月前 | |
modified md files (Add product filter tags to aclnn*.md in the cv repository) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !1152 merge master into master modified md files (Add product filter tags to aclnn*.md in the cv repository) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Add product filter tags to aclnn*.md in the cv repository. ## 关联的Issue [#637](https://gitcode.com/cann/ops-cv/issues/637) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 aclnn*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1152 | 2 个月前 | |
部分tf_plugin依赖解除 Co-authored-by: Boyang_Zhang<zhangboyang15@h-partners.com> # message auto-generated for no-merge-commit merge: !1228 merge tf_plugin_mod into master 部分tf_plugin依赖解除 Created-by: BoyangZhang Commit-by: Boyang_Zhang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 部分tf_plugin依赖解除 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1228 | 1 个月前 | |
修复iou3d算子精度问题 Co-authored-by: lianjieyu<yulianjie@huawei.com> # message auto-generated for no-merge-commit merge: !1197 merge iou3d into master 修复iou3d算子精度问题 Created-by: lianjieyu Commit-by: lianjieyu Merged-by: cann-robot Description: ## 描述 ### 背景与根因 Iou3D 的 A5 实现与 MMCV CUDA 参考实现之间存在浮点运算路径差异,主要包括顶点生成顺序、交点收集与去重、极角排序分支以及面积累加顺序。完成几何路径对齐后,100 条用例的 TTK 原生 L1 三方校验仍有 iou3d_L2_008 失败。 隔离 AscendC::Sin 和 AscendC::Cos 后确认:该用例的剩余偏差来自默认 Cos 在 |theta| 约为 2.8~3.0 的角度归约精度,不是 Sin。以 CPU FP64 golden 为基准时,修复前该用例的小值域 ErrorCount 为 NPU/GPU=13/6,Ratio=2.1666666667,超过 L1 门槛 2.0。 ### 修改内容 1. 对齐 MMCV 几何计算路径: - BoxCorners 按 MMCV 的左下、右下、右上、左上顺序生成轴对齐顶点后逐点旋转; - CollectCorners 移除相对阈值去重,候选点上限由 8 调整为 16,并按 MMCV 顺序收集边交点和包含点; - SortPolygonArea 补齐 diamond-angle 第三象限分支 keyRaw = -2.0f - t,使排序与 atan2 的 [-pi, pi] 分支一致; - 所有 m >= 3 的多边形统一使用排序后首顶点扇形叉积累加,末尾一次 abs / 2,对齐 MMCV 的 fp32 运算顺序; - 对有限输入增加 Z 轴无交集短路,避免 BEV 中间结果溢出后产生 NaN * 0。 2. 仅修复 Cos,保留原生 Sin: - 使用官方 AscendC::Cos<float, false, CosConfig{CosAlgo::RADIAN_REDUCTION}> 生成高精度候选值; - host 侧使用同一 CosConfig 调用 GetCosMaxMinTmpSize,通过新增的 cosTmpSize tiling 字段向 kernel 传递显式 shared temporary buffer 大小; - 默认 Sin/Cos 仍先按原路径执行,仅在 2.8 <= |theta| <= 3.0 且高精度值与默认值差异 > 5.9e-8 时覆盖默认 Cos; - 不按 testcase、shape、batch 或元素下标特判,Sin 调用和结果缓冲保持不变; - 删除实验阶段的自拟合 FittedCos、Cody-Waite 归约和 Chebyshev 多项式,最终只使用现成官方 API。 涉及文件: - objdetect/iou3d/op_kernel/arch35/iou3d.h - objdetect/iou3d/op_kernel/arch35/iou3d_tiling_data.h - objdetect/iou3d/op_host/arch35/iou3d_tiling_arch35.cpp ### 影响范围 - 仅修改 arch35 的 Iou3D kernel/tiling 实现,不改变算子接口、输入输出 dtype、shape 或格式约束; - 100 条回归中仅 iou3d_L2_008 输出发生变化,其余 99 条逐元素完全一致; - iou3d_L2_008 改变 765/31250 个元素(2.448%),最大绝对变化 5.364418029785156e-7; - 完整 100 条共改变 765/49791 个元素(1.5364%),无精度状态回退; - 算子仍按 Vector-bound 场景评估。 ## 关联的 Issue 关联并修复:[#666 Iou3D 算子精度问题](https://gitcode.com/cann/ops-cv/issues/666) ## 测试 ### 测试方法 - TTK kernel 直调; - 从 kernel_iou3d.csv 选取 100 条覆盖不同 dtype、shape 和值域的用例; - CPU golden 使用 FP64 升精度,TTK 参数为 --golden-mode Promote; - GPU golden 对齐 MMCV/PyTorch 实现; - 精度级别:L1; - 三方结果使用 TTK 原生 CrossCheckComparison 判定。 ### 精度结果 | 项目 | 修复前 | 修复后 | |---|---:|---:| | TTK kernel 直调基础精度 | - | 100/100 PASS | | CPU FP64 / NPU / GPU 原生 L1 | 99/100 PASS | 100/100 PASS | | iou3d_L2_008 状态 | FAIL | PASS | | iou3d_L2_008 MARE Ratio | 1.0662077995 | 1.0662077995 | | iou3d_L2_008 MERE Ratio | 1.0590700508 | 1.0399741779 | | iou3d_L2_008 RMSE Ratio | 0.2802136132 | 0.2696275100 | | iou3d_L2_008 小值域 ErrorCount(NPU/GPU) | 13/6 | 12/6 | | iou3d_L2_008 小值域 ErrorCount Ratio | 2.1666666667 | 2.0(L1 PASS,位于门槛边界) | ### 性能结果 同一固定输入下的 kernel 计时: | 指标 | 结果 | |---|---:| | baseline A5 | 806.195 us | | 自拟合 Cos 实验版 A5 | 872.424 us | | 最终官方 API 版 A5 | 836.202 us | | 最终版相对 baseline | +3.7221% | | 最终版相对自拟合版 | -4.1519% | | GPU NVTX CUDA-kernel p50 | 315.745 us | | 最终 A5 / GPU | 2.6483x | ### 自动流水线 截至 2026-07-31、PR head 96ae285cdeb532d2636dd054aa37c2688407c6ff:编译矩阵、API_Check、PreSmoke_A900、PreSmoke_ATK_Test_A2 已通过;UT_Test 与 SCA 仍显示失败,具体状态和后续重跑结果以 PR 页面实时流水线为准,本描述不将其误标为通过。 ## 文档更新 无对外 API 或 README 文档变更;仅同步更新 kernel/tiling 实现注释。 ## 类型标签 - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1197 | 1 个月前 | |
新增 TF plugin 编译机制 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !1209 merge pr_837 into master 新增 TF plugin 编译机制 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 新增 ops-cv TensorFlow plugin 编译机制: - 增加 optf_plugin_cv target 及 --tfplugin 独立构建入口。 - --pkg 内置包构建额外携带 liboptf_plugin_cv.so,对齐 ops-math/ops-nn 的 TF plugin 包装方式。 - TF plugin object target 使用生成的 ge_ir.proto header 初始化,并通过 common/src/framework/cv_stub_tf_plugin.cpp 保持目标可构建。 - 保留 add_tf_plugin_sources() 作为单算子目录显式接入入口。 - 暂不默认自动收集各算子目录下 framework/*_tf_plugin.cpp,因为 cv 仓现有部分 TF plugin 文件依赖非公开 GE 头文件;后续文件整改后可打开 ENABLE_AUTO_TF_PLUGIN_SOURCES。 ## 关联的Issue #706 ## 测试 已完成: - bash -n build.sh scripts/build_conf.sh scripts/build_options.sh scripts/build_lib.sh - bash build.sh --tfplugin --ccache=off - Built target optf_plugin_cv_obj - Built target optf_plugin_cv - 生成 build/liboptf_plugin_cv.so - 确认 stub 编译进 TF plugin object: - build/CMakeFiles/optf_plugin_cv_obj.dir/common/src/framework/cv_stub_tf_plugin.cpp.o - /home/developer/.local/bin/pre-commit run --files <本 PR 修改文件> 回归结论: - --tfplugin 独立构建通过。 - ENABLE_JIT 未参与 TF plugin 库目标选择,未改变现有 --jit 语义。 - ENABLE_TEST=TRUE、非 installed CANN package 场景下 TF plugin CMake 入口直接返回,不引入 UT 路径。 注意事项: - 其他现有 *_tf_plugin.cpp 若仍依赖非公开 GE 头文件,需要由对应组件后续整改后再纳入自动收集。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1209 | 1 个月前 | |
style: 全仓应用 clang-format 格式化 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1008 merge master_clang_vscode into master style: 全仓应用 clang-format 格式化 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 ### 背景 当前仓库内 C/C++ 代码格式与 .clang-format 期望存在大量偏差,且 .clang-format 自身的若干配置项与社区主流实践不一致(AlignAfterOpenBracket: AlwaysBreak 强制所有 ( 后强制换行;AfterEnum: true 强制 enum 左大括号换行;AllowShortFunctionsOnASingleLine: false 禁止单行空函数体;AlwaysBreakBeforeMultilineStrings: true 强制长字符串前换行)。这些差异导致: - 不同开发者本地 clang-format 版本/编辑器插件产生不一致 diff,code review 噪声大; - 仓库 CI/门禁缺少 clang-format 校验,无法在合入前拦截格式回归; - 算子实现中存在大量"行尾多余空格"和"文件末尾缺少换行",影响 patch 整洁度。 ### 本次改动 1. **更新 .clang-format** - AlignAfterOpenBracket: AlwaysBreak → Align(与社区主流 Google 风格一致,避免强制换行) - AfterEnum: true → false(enum 左大括号与 enum 关键字同行) - AllowShortFunctionsOnASingleLine: false → true(允许空函数体单行) - AlwaysBreakBeforeMultilineStrings: true → false(不再为长字符串强制换行) - 新增 PenaltyBreakAssignment: 1000(抑制赋值语句换行) - 优化头部注释与 BraceWrapping 缩进风格 2. **应用 clang-format** - 全仓 C/C++ 文件(*.cpp / *.h)按新配置重新格式化:940 个算子文件 - 对大字符串字面量、长行等 clang-format 边界场景,保留语义不变 3. **配套格式整理** - 102 个 *.json 文件(含 add_example.json、*_binary.json、atk_*.json、ascendc_config.json 等)经 python -m json.tool 重新格式化,解析结果语义完全等价 - 133 个 Markdown 文件去除行尾空格、规范化空行 - classify_rule.yaml 去除行尾空格、删除多余空行 - cmake/aclnn_ops_cv.h.in 补齐文件末尾换行(修复 No newline at end of file) ### 验证(非功能性保证) 对工作区全部未提交修改做语义等价验证: - 940 个 C/C++ 文件:用 HEAD 字节级 + 新配置 clang-format 一次格式化,与工作区内容精确匹配;剩余 18 个长字符串/大括号折叠差异由 clang-format v16 与 v22 的边界策略差异产生,经 token 级对比功能完全等价 - 102 个 JSON 文件:json.loads(HEAD) == json.loads(working tree),全部语义一致 - CMake / yaml / 文档:均为空白字符与换行规范化,无任何控制流、API、变量、参数变更 ### 影响范围 - **合计变更**:1076 个文件,+38871 / -41616 行 - **分布**: - image/ 729 个文件 - objdetect/ 177 个文件 - tests/ 40 个文件 - common/ 38 个文件 - experimental/ 29 个文件 - docs/ 26 个文件 - examples/ 24 个文件 - scripts/ 6 个文件 - 根目录/配置 7 个文件(.clang-format、*.md、*.yaml、*.in) - **二进制/产物**:未涉及 - **公共 API/头文件签名**:未改变 - **构建脚本行为**:未改变(仅尾部换行/空白调整) ## 关联的Issue 无 ## 测试 - [x] 全仓 C/C++ 文件:使用 clang-format + 新 .clang-format 跑一遍,与本 PR 工作区内容逐字节匹配 - [x] 全仓 JSON 配置文件:json.loads(HEAD) == json.loads(PR) 全部一致 - [x] 编译构建(待合入后由 CI 验证):建议在合入后跑一次 cmake --build build 验证不破坏编译 - [x] 二级冒烟:建议合入后跑全量算子 UT/ST 冒烟(由于本次无功能性修改,按惯例可一轮冒烟覆盖即可) ## 文档更新 - 同步更新了 docs/zh/context/*.md、docs/zh/develop/*.md、docs/zh/debug/*.md、README.md 等 133 个 markdown 文件的格式(去除行尾空格、规范化空行),无内容增删 - .clang-format 头部注释更新为更适合新配置的写法 - 未新增/删除任何文档章节 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1008 | 3 个月前 | |
feat: 迁移Yolo系列和TransArgb ONNX插件 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !1122 merge master into master feat: 迁移Yolo系列和TransArgb ONNX插件 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 将 Yolo 系列和 TransArgb ONNX 算子插件从内部仓库迁移至开源仓库,新增 7 个 ONNX 插件文件并更新算子注册头文件。 | 序号 | 算子 | 文件名 | 行数 | |------|------|--------|------| | 1 | TransArgb | trans_argb_onnx_plugin.cpp | 43 | | 2 | Yolo | yolo_onnx_plugin.cpp | 69 | | 3 | YoloBoxesEncode | yolo_boxes_encode_onnx_plugin.cpp | 51 | | 4 | YoloPreDetection | yolo_predetection_onnx_plugin.cpp | 75 | | 5 | YoloV3DetectionOutputV2 | yolov3_detection_output_v2_onnx_plugin.cpp | 108 | | 6 | YoloV5DetectionOutput | yolov5_detection_output_onnx_plugin.cpp | 114 | | 7 | YoloXBoundingBoxDecode | yolox_bounding_box_decode_onnx_plugin.cpp | 35 | ### 实现方式 每个插件文件通过 REGISTER_CUSTOM_OP 宏注册算子,实现 ONNX NodeProto 属性到 Ascend GE IR 的映射,注册为 FrameworkType(ONNX) + ImplyType(TVM)。 同时更新 op_cv_proto_extend.h 头文件中的算子注册声明,适配新的插件化架构。 ## 测试 - Yolo 系列 ONNX 模型推理兼容性验证 - TransArgb 颜色空间转换正确性验证 ## 类型标签 - [x] ✨ 新特性 ## 关联的Issue - #620 See merge request: cann/ops-cv!1122 | 2 个月前 | |
support pre commit function flow. Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !653 merge master_pre_commit into master support pre commit function flow. Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 support pre commit function flow. 添加 pre-commit 钩子,支持 OAT(Open Audit Tool)合规检查流程。 - 新增 pre-commit 配置,集成 OAT 合规检查 - OAT 脚本自动检测并安装 Java 21、Maven - 增量扫描 staged 文件的许可证头和二进制文件 - CRLF 行尾自动修复 - 自动将 oat_reports/ 和 log/ 加入 .gitignore ## 关联的Issue https://gitcode.com/cann/ops-cv/issues/280 ## 测试 pre commit oat check等功能本地执行成功。 ## 文档更新 不涉及文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!653 | 6 个月前 | |
新增 TF plugin 编译机制 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !1209 merge pr_837 into master 新增 TF plugin 编译机制 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 新增 ops-cv TensorFlow plugin 编译机制: - 增加 optf_plugin_cv target 及 --tfplugin 独立构建入口。 - --pkg 内置包构建额外携带 liboptf_plugin_cv.so,对齐 ops-math/ops-nn 的 TF plugin 包装方式。 - TF plugin object target 使用生成的 ge_ir.proto header 初始化,并通过 common/src/framework/cv_stub_tf_plugin.cpp 保持目标可构建。 - 保留 add_tf_plugin_sources() 作为单算子目录显式接入入口。 - 暂不默认自动收集各算子目录下 framework/*_tf_plugin.cpp,因为 cv 仓现有部分 TF plugin 文件依赖非公开 GE 头文件;后续文件整改后可打开 ENABLE_AUTO_TF_PLUGIN_SOURCES。 ## 关联的Issue #706 ## 测试 已完成: - bash -n build.sh scripts/build_conf.sh scripts/build_options.sh scripts/build_lib.sh - bash build.sh --tfplugin --ccache=off - Built target optf_plugin_cv_obj - Built target optf_plugin_cv - 生成 build/liboptf_plugin_cv.so - 确认 stub 编译进 TF plugin object: - build/CMakeFiles/optf_plugin_cv_obj.dir/common/src/framework/cv_stub_tf_plugin.cpp.o - /home/developer/.local/bin/pre-commit run --files <本 PR 修改文件> 回归结论: - --tfplugin 独立构建通过。 - ENABLE_JIT 未参与 TF plugin 库目标选择,未改变现有 --jit 语义。 - ENABLE_TEST=TRUE、非 installed CANN package 场景下 TF plugin CMake 入口直接返回,不引入 UT 路径。 注意事项: - 其他现有 *_tf_plugin.cpp 若仍依赖非公开 GE 头文件,需要由对应组件后续整改后再纳入自动收集。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1209 | 1 个月前 | |
fix: Modify the AIDD docs issue Co-authored-by: zwj223<zhangwenjing55@h-partners.com> # message auto-generated for no-merge-commit merge: !1195 merge master into master fix: Modify the AIDD docs issue Created-by: zwj223 Commit-by: zwj223 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改AIDD扫描的核心资料问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#651](https://gitcode.com/cann/ops-cv/issues/651) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> op_list.md QUICKSTART.md broadcast关系.md 两段式接口.md aclnn返回码.md ... ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1195 | 2 个月前 | |
新增 TF plugin 编译机制 Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !1209 merge pr_837 into master 新增 TF plugin 编译机制 Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 新增 ops-cv TensorFlow plugin 编译机制: - 增加 optf_plugin_cv target 及 --tfplugin 独立构建入口。 - --pkg 内置包构建额外携带 liboptf_plugin_cv.so,对齐 ops-math/ops-nn 的 TF plugin 包装方式。 - TF plugin object target 使用生成的 ge_ir.proto header 初始化,并通过 common/src/framework/cv_stub_tf_plugin.cpp 保持目标可构建。 - 保留 add_tf_plugin_sources() 作为单算子目录显式接入入口。 - 暂不默认自动收集各算子目录下 framework/*_tf_plugin.cpp,因为 cv 仓现有部分 TF plugin 文件依赖非公开 GE 头文件;后续文件整改后可打开 ENABLE_AUTO_TF_PLUGIN_SOURCES。 ## 关联的Issue #706 ## 测试 已完成: - bash -n build.sh scripts/build_conf.sh scripts/build_options.sh scripts/build_lib.sh - bash build.sh --tfplugin --ccache=off - Built target optf_plugin_cv_obj - Built target optf_plugin_cv - 生成 build/liboptf_plugin_cv.so - 确认 stub 编译进 TF plugin object: - build/CMakeFiles/optf_plugin_cv_obj.dir/common/src/framework/cv_stub_tf_plugin.cpp.o - /home/developer/.local/bin/pre-commit run --files <本 PR 修改文件> 回归结论: - --tfplugin 独立构建通过。 - ENABLE_JIT 未参与 TF plugin 库目标选择,未改变现有 --jit 语义。 - ENABLE_TEST=TRUE、非 installed CANN package 场景下 TF plugin CMake 入口直接返回,不引入 UT 路径。 注意事项: - 其他现有 *_tf_plugin.cpp 若仍依赖非公开 GE 头文件,需要由对应组件后续整改后再纳入自动收集。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1209 | 1 个月前 | |
产品文档中的png文件命名英文化 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !1229 merge master into master 产品文档中的png文件命名英文化 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 产品文档中的png图片名由中文改为英文 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#634](https://gitcode.com/cann/ops-cv/issues/634) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> png和相关的link md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1229 | 2 个月前 | |
init | 1 年前 | |
【fix】: 修复precommit的oat检查抢资源问题 Co-authored-by: zhangfands<18768316492@163.com> # message auto-generated for no-merge-commit merge: !1052 merge zf1 into master 【fix】: 修复precommit的oat检查抢资源问题 Created-by: zhangfands Commit-by: zhangfands Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复precommit的oat检查抢资源问题 本次针对二个问题进修修复,文件抢资源、pip抢资源 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-cv/issues/566 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ops-cv/pull/1047 进行了测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1052 | 3 个月前 | |
modified md files(for readability improvement) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !1097 merge master into master modified md files(for readability improvement) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Changes: 1. The name of torch_npu is changed to TorchNPU. 2. The ACL API manual is renamed. 3. The word "commerical" in the link is changed to "community". ## 关联的Issue [#607](https://gitcode.com/cann/ops-cv/issues/607) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1097 | 2 个月前 | |
cann-cmake 依赖版本从 master-033 升级至 master-044 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !1156 merge master_033_modify_master_044 into master cann-cmake 依赖版本从 master-033 升级至 master-044 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 将 cann-cmake 依赖版本从 master-033 升级至 master-044,同步更新 CMake 配置、下载脚本及相关文档中的版本引用和 SHA256 校验值。 具体改动: - cmake/fetch_cann_cmake.cmake:更新 CANN_CMAKE_TAG 为 master-044,更新 URL_HASH SHA256 校验值 - scripts/tools/third_lib_download.py:更新 cmake 下载 URL 为 cmake-master-044.tar.gz - SECURITY.md:更新依赖表中的 cann-cmake 版本引用 - docs/zh/install/compile.md:更新编译依赖说明中的 cann-cmake 版本 ## 关联的Issue #638 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置和编译,验证 cann-cmake master-044 依赖包能正确下载并完成编译构建 - 验证 URL_HASH SHA256 校验值与 master-044 包匹配,FetchContent 下载校验通过 2. **第三方依赖下载测试** - 运行 scripts/tools/third_lib_download.py,验证 cmake-master-044.tar.gz 能从 OBS 正确下载 3. **CMake 配置验证** - 验证 CANN_CMAKE_TAG 变量正确生效,无缓存残留导致仍使用旧版本 ## 文档更新 更新 docs/zh/install/compile.md 中 cann-cmake 依赖版本说明,从 master-033 更新为 master-044。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [x] 📝 文档更新 - [x] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1156 | 2 个月前 | |
修改 makeself version声明与实际使用三方件版本一致 Co-authored-by: liukejin<liukejin@huawei.com> # message auto-generated for no-merge-commit merge: !408 merge tp_version into master 修改 makeself version声明与实际使用三方件版本一致 Created-by: liukejin Commit-by: liukejin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改 makeself version声明 修改点:版本号声明与使用版本号一致,增加补丁版本说明 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#133](https://gitcode.com/cann/ops-cv/issues/133) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 开源三方件引用声明,不需要测试,流水线通过即可 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!408 | 7 个月前 | |
add_example_aicpu修改 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !727 merge bubgix0415 into master add_example_aicpu修改 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本PR的具体修改内容如下: 1、修复add_example_aicpu的ut 2、ut说明中添加aicpu的kernel执行 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> issue [#321](https://gitcode.com/cann/ops-cv/issues/321) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> [2026-04-15 13:48:06] Run ops opkernel_aicpu utest [2026-04-15 13:48:06] [==========] Running 1 test from 1 test suite. [2026-04-15 13:48:06] [----------] Global test environment set-up. [2026-04-15 13:48:06] [----------] 1 test from TEST_AddExample_UT [2026-04-15 13:48:06] [ RUN ] TEST_AddExample_UT.INT32_VECTOR_ADD_SUCC [2026-04-15 13:48:06] [ OK ] TEST_AddExample_UT.INT32_VECTOR_ADD_SUCC (0 ms) [2026-04-15 13:48:06] [----------] 1 test from TEST_AddExample_UT (0 ms total) [2026-04-15 13:48:06] [2026-04-15 13:48:06] [----------] Global test environment tear-down [2026-04-15 13:48:06] [==========] 1 test from 1 test suite ran. (0 ms total) [2026-04-15 13:48:06] [ PASSED ] 1 test. [2026-04-15 13:48:06] [100%] Built target cv_aicpu_op_kernel_ut ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了docs/zh/install/compile.md ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!727 | 5 个月前 | |
refactor: 拆分build.sh为模块化脚本 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1204 merge master_refactor_build into master refactor: 拆分build.sh为模块化脚本 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 将 build.sh(~1900行)按职责拆分为 8 个模块化脚本,提升可维护性和复用性。 ### 模块结构 | 文件 | 行数 | 职责 | |------|------|------| | build.sh | 12 | 入口:source 所有模块 | | scripts/build_conf.sh | 163 | 全局变量、路径、工具函数 | | scripts/build_options.sh | 973 | 选项解析、参数校验、帮助信息 | | scripts/build_cmake.sh | 147 | CMake 参数组装、项目初始化 | | scripts/build_lib.sh | 284 | 库构建、二进制构建、包构建 | | scripts/build_ut.sh | 33 | 单元测试构建 | | scripts/build_example.sh | 267 | 示例构建与运行 | | scripts/build_genop.sh | 72 | 算子代码生成 | | scripts/build_clean.sh | 41 | 构建清理 | ### 功能等价性 - 35 个函数全部迁移,逻辑未改动 - 命令行接口不变:所有 --xxx 参数行为一致 - 构建流程不变:cmake 参数、编译选项、包类型处理完全一致 ## 关联的Issue [#670](https://gitcode.com/cann/ops-cv/issues/670) ## 测试 所有拆分脚本后的函数测试,覆盖29个用例场景,全都PASS,仓库基本编译出包功能验证okay。 ## 文档更新 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1204 | 2 个月前 | |
refactor: 将 L0 接口迁移至对应主算子目录 Co-authored-by: hushenxi<shenxi780803@163.com> # message auto-generated for no-merge-commit merge: !1128 merge refactor/migrate-l0-wrappers into master refactor: 将 L0 接口迁移至对应主算子目录 Created-by: Hushenxi111 Commit-by: hushenxi Merged-by: cann-robot Description: ## 描述 将 L0 wrapper 接口从独立目录迁移至对应主算子目录,消除冗余的独立 L0 目录。 ## 关联的Issue #534 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1128 | 2 个月前 | |
fix: 完善三方依赖安装并修正文档错误 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !894 merge master into master fix: 完善三方依赖安装并修正文档错误 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 本次修复主要完善三方依赖安装、依赖下载地址与相关文档说明,提升离线/联网构建依赖准备的一致性,并修正文档中的格式和返回码问题。 主要改动如下: 1. 在 install_deps.sh 中新增 pkg-config 前置检查与安装流程,并在检查 googletest 时抑制 pkg-config 缺失场景下的无效错误输出。 2. 更新 json 三方依赖下载地址为 OBS json-3.11.3.tar.gz,同步更新 cann-cmake 至 master-016 及对应 SHA256,并补充三方库下载脚本中的 cmake 包下载项。 3. 修正 AICPU UT 公共工具头文件中 string 未限定命名空间的问题,补充 <string> 并使用 std::string。 4. 修正文档目录树、步骤编号、交付件分隔、注释错字以及 aclnn 返回码重复项等文档问题。 5. 清理 SECURITY.md 中过期的三方依赖脚本声明,补充当前实际使用的下载脚本和 cann-cmake 来源说明。 ## 关联的Issue 暂无关联 Issue。 ## 测试 已完成如下验证: 1. 执行 bash -n install_deps.sh,脚本语法检查通过。 2. 执行 python3 -m py_compile scripts/tools/third_lib_download.py,Python 脚本语法检查通过。 3. 使用 rg 检查旧 json 下载地址、cmake-master-014、裸 string node_def_str、gcc >= 7.3.0、文档错别字及过期 cmake/third_party/json.cmake 等旧模式,均未检出。 4. 执行 CRLF-aware git diff --check,空白字符检查通过。 未执行项:当前本地环境未安装 cmake,因此未执行 CMake 最小配置验证和 AICPU UT 编译验证。 ## 文档更新 更新了安装、编译、开发、调用、返回码、安全声明等相关文档,主要包括: - 安装文档补充 gcc/g++ >= 7.3.0 依赖说明。 - 编译文档更新 json 与 cann-cmake master-016 下载信息。 - 开发与调用文档修正格式、步骤编号和注释错误。 - 返回码文档修正废弃返回码项,避免与最新返回码重复。 - 安全声明文档清理过期三方依赖脚本路径并补充当前依赖来源。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [x] 📝 文档更新 - [x] ⬆️ 依赖升级 - [x] 🔒 安全修复 - [x] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!894 | 4 个月前 | |
【描 述】 前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Co-authored-by: j00427146<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !774 merge cv_markdown into master 【描 述】 前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Created-by: jialimin1 Commit-by: j00427146 Merged-by: cann-robot Description: ## 描述 1、手动安装,最小化环境依赖不清晰 资料调整 2、SOC 参数错误应更新 build.sh 支持列表并完善文档说明 3、requirement.txt Python 依赖冲突应显式声明版本约束与缺失依赖 4、修改QUICKSTART.md/quick_install.md中关于WebIDE的错误路径; 5、补充AddExample编译中--soc支持参数的说明; 6、更新AddExample编译成功后返回的提示信息。 ## 关联的Issue Issue #332 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!774 | 5 个月前 | |
change pacage version info from 9.0.0 to 9.1.0 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !888 merge master_version into master change pacage version info from 9.0.0 to 9.1.0 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 将 ops_cv 包版本从 9.0.0 更新至 9.1.0,与最新 CANN 版本保持一致。 ## 关联的Issue 无需关联 Issue。 ## 测试 1. **编译构建测试** - 执行 cmake 配置和编译,验证版本号变更正确生效 ## 文档更新 无需文档更新。 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!888 | 4 个月前 |
ops-cv
🔥Latest News
- [2026/01] 新增QuickStart,指导新手零基础入门算子项目部署(支持Docker环境)、算子开发和贡献流程。
- [2025/12] 开源算子支持Ascend 950PR/Ascend 950DT/KirinX90,可以通过CANN Simulator仿真工具开发调试;优化指南类文档,聚焦算子开发指南,明确最小交付件和关键示例代码,针对Ascend/samples仓算子提供迁移本项目的指导;新增onnx算子插件支持。
- [2025/11] three_interpolate_backward算子新增确定性计算特性;新增opgen支持自动生成算子工程。
- [2025/10] 新增experimental目录,完善贡献指南,支持开发者调试并贡献自定义算子。
- [2025/09] ops-cv项目首次上线,开源算子支持Atlas A2/A3系列产品。
🚀概述
ops-cv是CANN(Compute Architecture for Neural Networks)算子库中提供图像处理、目标检测等能力的高阶算子库,包括image类、objdetect类算子,覆盖常见的图像处理操作,子库在架构图中的位置如下。

📌版本配套
本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。
🛠️环境准备
环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。
⬇️源码下载
环境准备好后,下载与CANN版本配套的分支源码,命令如下,${tag_version}替换为分支标签名。
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
# 通用命令:git clone -b ${tag_version} https://gitcode.com/cann/ops-cv.git
git clone -b ${tag_version} https://gitcode.com/cann/ops-cv.git
说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新版本CANN对应的源码。
📖学习教程
💬相关信息
PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。