本项目是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 | 1 个月前 | |
适配ops-cv静态包构建 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1174 merge adapt-static-build-pr7677 into master 适配ops-cv静态包构建 Created-by: jialimin1 Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 适配 ops-cv 静态包(static library package)构建流程,增强 target 存在性检查和多包合并能力。 ### 变更文件 | 文件 | 变更 | 说明 | |------|------|------| | build.sh | +7 -5 | 静态库构建前检查 target 是否存在;static_library_files 目录缺失时优雅跳过 | | cmake/static.cmake | +33 -31 | OPSTATIC_NAME target 创建跟随 OPHOST_NAME_static / OPAPI_NAME_static 存在性 | | scripts/ci/merge_static_packages.sh | +204 | 新增:解压多个 cann-ops-cv-static tar.gz 包并合并静态库 | ### 关键改动 1. **build.sh**:opapi_cv_static 和 cann_cv_static cmake target 在仅有 AICPU 算子时不存在,原代码无条件构建会报错。改为先 grep -wq 检查 target 存在再构建。 2. **build.sh**:package_static() 中 static_library_files 目录不存在时改为 return 0(非错误退出),适配无需打包静态库的场景。 3. **static.cmake**:原 add_custom_target(${OPSTATIC_NAME}) 无条件创建,导致空 target 构建失败。改为仅在关联的 host/api 静态库 target 存在时才创建。 4. **merge_static_packages.sh**:支持指定 SoC 版本,解压多个 tar.gz 包,合并 include 和 lib64 目录,处理同名 .o 文件冲突。 ## 关联的Issue [#676](https://gitcode.com/cann/ops-cv/issues/676) ## 测试 静态库相关编译安装打包测试 ## 文档更新 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1174 | 1 个月前 | |
feat(image): 新增grid_sampler2_d算子(2D网格采样) Co-authored-by: yourealize<chenzhanxi1@huawei.com> # message auto-generated for no-merge-commit merge: !1132 merge feat/grid_sampler2_d_operator into master feat(image): 新增grid_sampler2_d算子(2D网格采样) Created-by: yourealize Commit-by: yourealize Merged-by: cann-robot Description: ## 描述 新增GridSampler2D算子,实现2D网格采样(Grid Sample),用于空间变换网络(STN)和图像几何变换。 支持的数据类型: | 输入/输出 | dtype | format | |---|---|---| | x | float16, float32 | NCHW | | grid | float16, float32 | NHWC | | y | float16, float32 | NCHW | 支持的属性: - interpolation_mode: bilinear(默认) - padding_mode: zeros(默认) - align_corners: false(默认) 支持平台:Ascend 950PR/950DT 包含文件: - op_graph: proto定义 - op_host: def/infershape/tiling/binary.json - op_kernel: apt入口/SIMT kernel/tiling_data/tiling_key ## 关联的Issue 无 ## 测试 编译通过,无error/warning。 ## 文档更新 无 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1132 | 1 个月前 | |
feat: support /blend_face_bg_part_two(Ascend950/arch35) Co-authored-by: ugzhangyiyi<zhangyiyi4@huawei.com> # message auto-generated for no-merge-commit merge: !1167 merge blend_face_bg_part_two into master feat: support /blend_face_bg_part_two(Ascend950/arch35) Created-by: ugzhangyiyi Commit-by: ugzhangyiyi Merged-by: cann-robot Description: ## 描述 新增 **BlendFaceBgPartTwo** 图像算子,支持 Ascend950(arch35 / RegBase / DAV_3510),完成人脸融合背景第二阶段的归一化 + Alpha 合成计算。 计算逻辑(逐元素,无广播): fusion_face = acc_face / (acc_mask + epsilon) bg_weight = 1 - max_mask fused_img = fusion_face * max_mask + bg_img * bg_weight 算子规格: - **输入**(4 个,rank=3,H×W×C):acc_face / acc_mask / max_mask(均 DT_FLOAT),bg_img(DT_FLOAT 或 DT_UINT8) - **输出**:fused_img(DT_FLOAT,固定) - **属性**:epsilon(Float,默认 1e-12,归一化防除零) 实现要点: - **双 TilingKey 分支**,按 bg_img dtype 选择资源参数: - KEY_FP32(bg=float32):bufferDivisor=40、minDtypeBits=32,DIST_NORM 直接载入直算 - KEY_UINT8(bg=uint8):bufferDivisor=34、minDtypeBits=8,DIST_UNPACK4_B8 载入 + uint8→half→float 两级无损 Cast - **EleWise 单维线性切分**:展平 dim0 = H*W*C,多核按 512 元素对齐切分(每核 ≥ 4KB),UB 按 256B 对齐分块,首/尾 block 尾块独立处理;核数取 VectorCore、UB 取运行时 GetCoreMemSize,无硬编码。 - **三级双缓冲流水**:CopyIn(DataCopyPad) → asc_vf_call → CopyOut(DataCopyPad)。 - **InferShape / InferDataType 拆分**:形状推导(含 unknown-rank 透传、图模式 shape 一致性校验)落在 op_host,数据类型推导落在 op_graph,符合 to_absolute_b_box 参考架构。 ## 关联的 Issue https://gitcode.com/cann/ops-cv/issues/642 ## 测试 - **UT**:kernel/host 单元测试通过。 - **ST**:L0/L1 功能用例、L2 异常用例在真实 NPU 上通过。 - **白盒**:溢出等白盒场景用例通过。 - **图模式(GE IR)验证**:examples/arch35/test_geir_blend_face_bg_part_two.cpp 静态 shape [4,4,3] 验证通过;动态用例覆盖 [-1,-1,-1](DynamicShapeSupportFlag)与 [-2](DynamicRankSupportFlag,unknown rank 透传)两条路径,在 Ascend950PR 上 5+5=**10/10 PASS**。 - 精度标准满足双千双万,未降标。 ## 文档更新 - 新增算子 README.md:产品支持矩阵(Ascend 950PR/950DT、Atlas A3、Atlas A2、Atlas 推理系列、Atlas 训练系列共 5 个平台 √)与调用说明。 - docs/aclnnBlendFaceBgPartTwo.md:aclnn 两段式接口文档与调用示例。 - 新增示例代码:examples/arch35/ 下 GE IR 静态/动态调用示例。 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1167 | 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 | 1 个月前 | |
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 | 1 个月前 | |
feat: support /blend_face_bg_part_two(Ascend950/arch35) Co-authored-by: ugzhangyiyi<zhangyiyi4@huawei.com> # message auto-generated for no-merge-commit merge: !1167 merge blend_face_bg_part_two into master feat: support /blend_face_bg_part_two(Ascend950/arch35) Created-by: ugzhangyiyi Commit-by: ugzhangyiyi Merged-by: cann-robot Description: ## 描述 新增 **BlendFaceBgPartTwo** 图像算子,支持 Ascend950(arch35 / RegBase / DAV_3510),完成人脸融合背景第二阶段的归一化 + Alpha 合成计算。 计算逻辑(逐元素,无广播): fusion_face = acc_face / (acc_mask + epsilon) bg_weight = 1 - max_mask fused_img = fusion_face * max_mask + bg_img * bg_weight 算子规格: - **输入**(4 个,rank=3,H×W×C):acc_face / acc_mask / max_mask(均 DT_FLOAT),bg_img(DT_FLOAT 或 DT_UINT8) - **输出**:fused_img(DT_FLOAT,固定) - **属性**:epsilon(Float,默认 1e-12,归一化防除零) 实现要点: - **双 TilingKey 分支**,按 bg_img dtype 选择资源参数: - KEY_FP32(bg=float32):bufferDivisor=40、minDtypeBits=32,DIST_NORM 直接载入直算 - KEY_UINT8(bg=uint8):bufferDivisor=34、minDtypeBits=8,DIST_UNPACK4_B8 载入 + uint8→half→float 两级无损 Cast - **EleWise 单维线性切分**:展平 dim0 = H*W*C,多核按 512 元素对齐切分(每核 ≥ 4KB),UB 按 256B 对齐分块,首/尾 block 尾块独立处理;核数取 VectorCore、UB 取运行时 GetCoreMemSize,无硬编码。 - **三级双缓冲流水**:CopyIn(DataCopyPad) → asc_vf_call → CopyOut(DataCopyPad)。 - **InferShape / InferDataType 拆分**:形状推导(含 unknown-rank 透传、图模式 shape 一致性校验)落在 op_host,数据类型推导落在 op_graph,符合 to_absolute_b_box 参考架构。 ## 关联的 Issue https://gitcode.com/cann/ops-cv/issues/642 ## 测试 - **UT**:kernel/host 单元测试通过。 - **ST**:L0/L1 功能用例、L2 异常用例在真实 NPU 上通过。 - **白盒**:溢出等白盒场景用例通过。 - **图模式(GE IR)验证**:examples/arch35/test_geir_blend_face_bg_part_two.cpp 静态 shape [4,4,3] 验证通过;动态用例覆盖 [-1,-1,-1](DynamicShapeSupportFlag)与 [-2](DynamicRankSupportFlag,unknown rank 透传)两条路径,在 Ascend950PR 上 5+5=**10/10 PASS**。 - 精度标准满足双千双万,未降标。 ## 文档更新 - 新增算子 README.md:产品支持矩阵(Ascend 950PR/950DT、Atlas A3、Atlas A2、Atlas 推理系列、Atlas 训练系列共 5 个平台 √)与调用说明。 - docs/aclnnBlendFaceBgPartTwo.md:aclnn 两段式接口文档与调用示例。 - 新增示例代码:examples/arch35/ 下 GE IR 静态/动态调用示例。 ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1167 | 1 个月前 | |
修复AnchorReseponseFlags infershape Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> # message auto-generated for no-merge-commit merge: !1192 merge fix_AnchorResponseFlags_doc into master 修复AnchorReseponseFlags infershape Created-by: yu_qinfei Commit-by: yu_qinfei Merged-by: cann-robot Description: ## 描述 修复AnchorReseponseFlags infershape ## 关联的Issue https://gitcode.com/cann/ops-cv/issues/674 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1192 | 1 个月前 | |
适配ops-cv静态包构建 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1174 merge adapt-static-build-pr7677 into master 适配ops-cv静态包构建 Created-by: jialimin1 Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 适配 ops-cv 静态包(static library package)构建流程,增强 target 存在性检查和多包合并能力。 ### 变更文件 | 文件 | 变更 | 说明 | |------|------|------| | build.sh | +7 -5 | 静态库构建前检查 target 是否存在;static_library_files 目录缺失时优雅跳过 | | cmake/static.cmake | +33 -31 | OPSTATIC_NAME target 创建跟随 OPHOST_NAME_static / OPAPI_NAME_static 存在性 | | scripts/ci/merge_static_packages.sh | +204 | 新增:解压多个 cann-ops-cv-static tar.gz 包并合并静态库 | ### 关键改动 1. **build.sh**:opapi_cv_static 和 cann_cv_static cmake target 在仅有 AICPU 算子时不存在,原代码无条件构建会报错。改为先 grep -wq 检查 target 存在再构建。 2. **build.sh**:package_static() 中 static_library_files 目录不存在时改为 return 0(非错误退出),适配无需打包静态库的场景。 3. **static.cmake**:原 add_custom_target(${OPSTATIC_NAME}) 无条件创建,导致空 target 构建失败。改为仅在关联的 host/api 静态库 target 存在时才创建。 4. **merge_static_packages.sh**:支持指定 SoC 版本,解压多个 tar.gz 包,合并 include 和 lib64 目录,处理同名 .o 文件冲突。 ## 关联的Issue [#676](https://gitcode.com/cann/ops-cv/issues/676) ## 测试 静态库相关编译安装打包测试 ## 文档更新 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1174 | 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 | 2 个月前 | |
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 | 1 个月前 | |
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 | 5 个月前 | |
chore: sync pre-commit config with ops-nn Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !1153 merge pr_837 into master chore: sync pre-commit config with ops-nn Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 将 ops-cv 的 .pre-commit-config.yaml 按 ops-nn 对齐,补齐基础 pre-commit hooks、ruff、codespell 和 OAT。 ## 关联 PR - ops-math 对齐变更:md 文件跳过拼写检查 https://gitcode.com/cann/ops-cv/issues/635 ## 验证 - pre-commit validate-config - pre-commit run --files .pre-commit-config.yaml - basic hooks: passed - codespell: passed - OAT: passed ## 备注 codespell 保留对齐 ops-math 的 *.md skip。 See merge request: cann/ops-cv!1153 | 1 个月前 | |
modified md files(for readability improvement) Co-authored-by: duhuiping<duhuiping@h-partners.com> # message auto-generated for no-merge-commit merge: !977 merge master into master modified md files(for readability improvement) Created-by: gitee-duhuiping Commit-by: duhuiping Merged-by: cann-robot Description: ## 描述 Mofify redundant spaces, such as those between Chinese and English characters. ## 关联的Issue [#525](https://gitcode.com/cann/ops-cv/issues/525) ## 测试 Only involves updating the MD document description, does not involve testing. ## 文档更新 md files ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!977 | 2 个月前 | |
fix: 修复--ops指定add_example(add_aicpu)时因ASCEND_OP_NAME被依赖算子追加导致精确匹配失效的问题 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1165 merge master into master fix: 修复--ops指定add_example(add_aicpu)时因ASCEND_OP_NAME被依赖算子追加导致精确匹配失效的问题 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 问题描述 当前仓库当通过 --ops 指定 add_example(add_example_aicpu) 时,CMake 会将依赖算子追加到 ASCEND_OP_NAME,使其值变为 add_example_aicpu;add_example。原有的 STREQUAL 精确匹配无法覆盖这种被追加后的分号分隔列表形式,导致: 1. CMakeLists.txt 中 add_subdirectory(examples) 条件匹配失败 2. cmake/func.cmake 中 add_example 目录的 AICPU 编译条件匹配失败 ### 根因 ASCEND_OP_NAME 是 CMake 列表(分号分隔),使用 STREQUAL 做精确字符串比较时无法匹配多元素列表场景。 ## 修复方案 将 STREQUAL 精确字符串比较改为 IN_LIST 列表成员检查。 ### 变更文件 | 文件 | 变更 | 说明 | |------|------|------| | CMakeLists.txt | +1 -4 | examples 条件:4 个 STREQUAL 合并为 2 个 IN_LIST 检查 | | cmake/func.cmake | +1 -1 | AICPU 依赖匹配:STREQUAL 改为 IN_LIST | ### 修复前后对比 cmake # CMakeLists.txt (before) if("${ASCEND_OP_NAME}" STREQUAL "add_example" OR "${ASCEND_OP_NAME}" STREQUAL "add_example_aicpu" OR "${ASCEND_OP_NAME}" STREQUAL "add_example;add_example_aicpu" OR "${ASCEND_OP_NAME}" STREQUAL "add_example_aicpu;add_example") # CMakeLists.txt (after) if("add_example" IN_LIST ASCEND_OP_NAME OR "add_example_aicpu" IN_LIST ASCEND_OP_NAME) ### 影响范围 - 仅影响 add_example / add_example_aicpu 的构建条件判断 - IN_LIST 语义更清晰,自动覆盖所有列表组合情况 - 不改变其他算子的构建逻辑 ### 测试情况 - [ ] --ops=add_example 构建正常 - [ ] --ops=add_example(add_aicpu) 构建正常 - [ ] --ops=add_example_aicpu 构建正常 ### 类型标签 - [x] Bug修复 See merge request: cann/ops-cv!1165 | 1 个月前 | |
更新社区贡献指南文档 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1026 merge master_contributing into master 更新社区贡献指南文档 Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 更新社区贡献指南文档 CONTRIBUTING.md,完善贡献流程、代码规范、PR 提交规范等内容,降低社区参与门槛。 **改动点:** - 新增贡献流程说明(fork → branch → PR → review → merge) - 补充代码规范要求(编码风格、提交信息格式) - 完善 PR 模板说明和 CLA 签署指引 - 清理过时表述,修正格式问题 ## 测试 - [ ] 文档格式验证:本地预览 Markdown 渲染正常 - [ ] 链接校验:确认文档内引用链接有效 ## 文档更新 - [x] 更新 CONTRIBUTING.md 社区贡献指南 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 重构 - [ ] 测试 - [ ] 构建/CI - [ ] 配置变更 - [x] 文档更新 See merge request: cann/ops-cv!1026 | 2 个月前 | |
init | 11 个月前 | |
【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 | 1 个月前 | |
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 | 1 个月前 | |
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 | 1 个月前 | |
修改 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 | 5 个月前 | |
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 | 4 个月前 | |
适配ops-cv静态包构建 Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !1174 merge adapt-static-build-pr7677 into master 适配ops-cv静态包构建 Created-by: jialimin1 Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 适配 ops-cv 静态包(static library package)构建流程,增强 target 存在性检查和多包合并能力。 ### 变更文件 | 文件 | 变更 | 说明 | |------|------|------| | build.sh | +7 -5 | 静态库构建前检查 target 是否存在;static_library_files 目录缺失时优雅跳过 | | cmake/static.cmake | +33 -31 | OPSTATIC_NAME target 创建跟随 OPHOST_NAME_static / OPAPI_NAME_static 存在性 | | scripts/ci/merge_static_packages.sh | +204 | 新增:解压多个 cann-ops-cv-static tar.gz 包并合并静态库 | ### 关键改动 1. **build.sh**:opapi_cv_static 和 cann_cv_static cmake target 在仅有 AICPU 算子时不存在,原代码无条件构建会报错。改为先 grep -wq 检查 target 存在再构建。 2. **build.sh**:package_static() 中 static_library_files 目录不存在时改为 return 0(非错误退出),适配无需打包静态库的场景。 3. **static.cmake**:原 add_custom_target(${OPSTATIC_NAME}) 无条件创建,导致空 target 构建失败。改为仅在关联的 host/api 静态库 target 存在时才创建。 4. **merge_static_packages.sh**:支持指定 SoC 版本,解压多个 tar.gz 包,合并 include 和 lib64 目录,处理同名 .o 文件冲突。 ## 关联的Issue [#676](https://gitcode.com/cann/ops-cv/issues/676) ## 测试 静态库相关编译安装打包测试 ## 文档更新 ## 类型标签 - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-cv!1174 | 1 个月前 | |
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 | 1 个月前 | |
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 | 3 个月前 | |
【描 述】 前置依赖资料修改&&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 | 4 个月前 | |
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 | 3 个月前 |
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:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。