Home
Login

ncnn 是针对移动平台优化的高性能神经网络推理框架

NOASSERTIONC++ 21.7kTencentncnn Last Updated: 2025-06-27

ncnn - 腾讯开源移动端神经网络推理框架

项目概述

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。

项目地址: https://github.com/Tencent/ncnn

开发团队: 腾讯公司开源项目

核心特性

1. 极致的移动端优化

  • 为移动平台而生:从设计之初就专门针对移动设备进行优化
  • 无第三方依赖:不依赖BLAS、NNPACK等任何其他计算框架
  • 纯C++实现:确保跨平台兼容性和高性能

2. 卓越的性能表现

  • ARM NEON汇编级优化:采用汇编级别的精心优化,计算速度极快
  • 精细的内存管理:内存占用极低,适合资源受限的移动设备
  • 多核并行计算:支持ARM big.LITTLE CPU调度优化

3. 广泛的平台支持

  • 跨平台:支持Android、iOS、Linux、Windows、macOS等多个平台
  • 多架构支持:支持ARM、x86等不同CPU架构
  • GPU加速:支持基于Vulkan API的GPU加速

4. 丰富的模型支持

  • 多框架模型导入:可导入Caffe、PyTorch、MXNet、ONNX、Darknet、Keras、TensorFlow等主流框架的模型
  • 量化支持:支持8bit量化和半精度浮点存储
  • 直接内存加载:支持零拷贝引用加载网络模型

技术架构

支持的网络类型

  • 经典CNN网络:VGG、AlexNet、GoogleNet、Inception等
  • 实用CNN网络:ResNet、DenseNet、SENet、FPN等
  • 轻量级CNN:SqueezeNet、MobileNet系列、ShuffleNet系列、MNasNet等
  • 人脸检测:MTCNN、RetinaFace、SCRFD等
  • 目标检测:YOLO系列、SSD系列、Faster-RCNN等
  • 图像分割:FCN、PSPNet、UNet、YOLACT等
  • 姿态估计:SimplePose等

平台兼容性矩阵

平台/硬件 Windows Linux Android macOS iOS
Intel CPU ✔️ ✔️ ✔️ /
Intel GPU ✔️ ✔️ /
AMD CPU ✔️ ✔️ ✔️ /
AMD GPU ✔️ ✔️ /
NVIDIA GPU ✔️ ✔️ /
Qualcomm ✔️ / /
ARM CPU / /
Apple CPU / / / ✔️

✅ = 已知可运行且性能优秀;✔️ = 已知可运行;❔ = 理论可行但未确认;/ = 不适用

实际应用

ncnn目前已在腾讯多款核心应用中使用,包括:

  • QQ
  • QZone(QQ空间)
  • 微信
  • 天天P图
  • 其他腾讯应用

开发生态

示例项目

  • Android应用示例
    • SqueezeNet图像分类
    • 风格迁移应用
    • MobileNet-SSD目标检测
    • MTCNN人脸检测
    • YOLOv5/YOLOv7目标检测
    • SCRFD人脸检测

工具支持

  • 模型可视化:支持使用Netron进行模型可视化
  • 自定义层:支持注册和实现自定义层
  • 量化工具:提供模型量化工具

社区支持

  • 技术交流QQ群:637093648、677104663、818998520
  • Telegram群组Discord频道
  • 详细文档:完整的wiki文档和API参考

开始使用

构建支持

ncnn支持在以下平台上构建:

  • Linux / Windows / macOS
  • Raspberry Pi 3/4
  • Android
  • iOS
  • WebAssembly
  • NVIDIA Jetson
  • 全志D1
  • 龙芯2K1000

快速入门

推荐从使用ncnn运行AlexNet教程开始,该教程提供了详细的步骤说明,特别适合初学者。

项目优势

  1. 性能卓越:在移动端CPU上的运行速度超越所有已知开源框架
  2. 资源友好:内存占用极低,适合资源受限环境
  3. 易于集成:无第三方依赖,集成简单
  4. 生产验证:在腾讯多个亿级用户应用中得到验证
  5. 持续维护:活跃的开源社区和持续的版本更新
  6. 广泛兼容:支持主流深度学习框架的模型导入

ncnn是移动端AI应用开发的理想选择,特别适合需要在移动设备上部署深度学习模型的开发者和企业。

Star History Chart