Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Deepin Integration]~[V23-Beta3] feat: Sync to Upstream 20240820 by Zeno-sole@deepin-community/ncnn by deepin-community-ci-bot[bot] #11043

Closed
deepin-bot bot opened this issue Dec 11, 2024 · 5 comments
Assignees
Labels
Project:integrated 集成管理相关 吴波 吴波
Milestone

Comments

@deepin-bot
Copy link

deepin-bot bot commented Dec 11, 2024

Package information | 软件包信息

包名 版本
ncnn 1.0.20240820-0deepin2

Package repository address | 软件包仓库地址

deb [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/CI:/TestingIntegration:/test-integration-pr-2351/testing/ ./

Changelog | 更新信息

ncnn (1.0.20240820-0deepin2) unstable; urgency=medium

  • Sync to Upstream.
@deepin-bot deepin-bot bot added the Project:integrated 集成管理相关 label Dec 11, 2024
@deepin-bot deepin-bot bot added this to the V23-Beta3 milestone Dec 11, 2024
@deepin-bot deepin-bot bot moved this to In progress in v23-集成管理 Dec 11, 2024
@deepin-bot
Copy link
Author

deepin-bot bot commented Dec 11, 2024

Integration Test Info

Test suggestion | 测试建议

目前依赖的应用 deepin-ocr 搜狗输入法

NCNN 是一个由腾讯优图团队开源的高性能神经网络推理框架,专注于移动端和嵌入式设备上的高效部署。它以 C++ 编写,支持多种平台(如 Android、iOS、Linux 和 Windows),特别适合部署在资源受限的设备上。


NCNN 的特点

  1. 高效轻量

    • 无第三方依赖,仅需标准 C++。
    • 对移动设备进行了高度优化,支持 ARM NEON、FP16 等特性。
  2. 跨平台支持

    • 支持多种平台,包括 Android、iOS、Linux、Windows 和 macOS。
    • 支持嵌入式平台,如树莓派和其他基于 ARM 的设备。
  3. 多框架模型支持

    • 支持从常见深度学习框架(如 PyTorch、TensorFlow、ONNX)的模型导出。
    • 提供便捷的模型转换工具。
  4. 高性能优化

    • 针对 CPU(ARM 和 x86)进行了深度优化。
    • 支持 Vulkan 后端加速(适用于 GPU 推理)。
  5. 开源且活跃


NCNN 的主要用途

  1. 移动端 AI 应用开发

    • 像人脸识别、图像分类、目标检测等任务。
    • 已被用于腾讯的 QQ 等移动应用中。
  2. 嵌入式设备 AI 推理

    • 在 IoT 设备或边缘设备上运行 AI 模型。
  3. 模型快速部署

    • 提供简单的 API 和工具链,方便开发者快速部署训练好的模型。

基本工作流程

  1. 准备模型

    • 在主流框架(如 PyTorch 或 TensorFlow)中训练模型。
    • 导出为 ONNX 格式,或通过 NCNN 的工具转换为 NCNN 模型。
  2. 模型转换

    • 使用 NCNN 提供的工具(如 onnx2ncnn)将 ONNX 模型转换为 NCNN 格式:
      onnx2ncnn input.onnx output.param output.bin
  3. 加载和推理

    • 在代码中加载模型并运行推理:
      ncnn::Net net;
      net.load_param("model.param");
      net.load_model("model.bin");
      
      ncnn::Mat input = ncnn::Mat::from_pixels(image_data, ncnn::Mat::PIXEL_RGB, width, height);
      ncnn::Mat output;
      ncnn::Extractor ex = net.create_extractor();
      ex.input("input_name", input);
      ex.extract("output_name", output);
  4. 优化

    • 使用 NCNN 的工具优化模型大小或性能(如量化)。

Vulkan 支持

NCNN 支持 Vulkan,用于 GPU 加速推理:

  • 提高推理速度,特别是对于较大的模型。
  • 使用时需确保设备支持 Vulkan,代码中启用 Vulkan:
    ncnn::Net net;
    net.opt.use_vulkan_compute = true;

安装和使用

  1. 通过源码编译
    使用 CMake 编译 NCNN:

    git clone https://github.com/Tencent/ncnn.git
    cd ncnn
    mkdir build && cd build
    cmake ..
    make -j$(nproc)
    sudo make install
  2. 模型转换工具

    • onnx2ncnn: 将 ONNX 转换为 NCNN 格式。
    • ncnnoptimize: 优化 NCNN 模型。
  3. Python Bindings
    虽然 NCNN 主要是 C++ 项目,但也有非官方的 Python 绑定可用。


常见问题

  1. 模型不兼容

    • 确保模型是通过支持的工具导出,并严格遵循 NCNN 的输入格式要求。
    • 使用 onnx-simplifier 简化复杂的 ONNX 模型。
  2. 性能优化

    • 使用量化技术减少模型大小。
    • 启用 Vulkan 支持以加速推理。
  3. 平台适配

    • 对于嵌入式设备,需要交叉编译 NCNN。

如果有具体的需求或问题,例如模型转换、推理代码实现等,可以详细说明,我可以提供更进一步的帮助!

Influence | 影响范围

ADDITIONAL INFORMATION | 额外补充

@deepin-bot
Copy link
Author

deepin-bot bot commented Dec 11, 2024

IntegrationProjector Notify the author
@zeno: Integrated issue updated

@deepin-bot
Copy link
Author

deepin-bot bot commented Dec 11, 2024

IntegrationProjector Bot
Deepin Testing Integration Project Manager Info
Link to deepin-community/Repository-Integration#2351

@Zeno-sole Zeno-sole assigned babyfengfjx and unassigned Zeno-sole and hudeng-go Dec 11, 2024
@babyfengfjx babyfengfjx assigned kobe337 and unassigned babyfengfjx Dec 12, 2024
@babyfengfjx babyfengfjx added the 吴波 吴波 label Dec 12, 2024
@babyfengfjx babyfengfjx moved this from In progress to 测试中 in v23-集成管理 Dec 12, 2024
@babyfengfjx
Copy link

@kobe337 请开展集成验证。

@kobe337
Copy link

kobe337 commented Dec 13, 2024

【环境】:
镜像:Deepin OS-25-20241107064136-1_x86_64
内核:Linux deepin-PC 6.12.1-amd64-desktop-rolling #23.01.01.13 SMP PREEMPT_DYNAMIC Tue Nov 26 15:29:22 CST 2024 x86_64 GNU/Linux

【结论】:
测试通过,暂无严重问题及影响, 安装校验、版本核对,相关应用包安装验证:imageclassify、libdeepin-ocr-plugin-manager、ncnn-tools,验证通过,请研发同事确认,是否合入仓库
Image

@kobe337 kobe337 assigned Zeno-sole and unassigned kobe337 Dec 13, 2024
@kobe337 kobe337 moved this from 测试中 to 测试通过 in v23-集成管理 Dec 13, 2024
@Zeno-sole Zeno-sole moved this from 测试通过 to 已集成 in v23-集成管理 Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Project:integrated 集成管理相关 吴波 吴波
Projects
Archived in project
Development

No branches or pull requests

4 participants