Home
Login

ncnn é uma estrutura de inferência de rede neural de alto desempenho otimizada para plataformas móveis.

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

ncnn - Framework de Inferência de Rede Neural para Dispositivos Móveis de Código Aberto da Tencent

Visão Geral do Projeto

ncnn é um framework de computação forward de rede neural de alto desempenho, otimizado para dispositivos móveis. Desde o início do projeto, o ncnn considera profundamente a implantação e o uso em dispositivos móveis. Sem dependências de terceiros, multiplataforma, a velocidade da CPU em dispositivos móveis é mais rápida do que todos os frameworks de código aberto conhecidos atualmente.

Endereço do Projeto: https://github.com/Tencent/ncnn

Equipe de Desenvolvimento: Projeto de código aberto da Tencent

Principais Características

1. Otimização Extrema para Dispositivos Móveis

  • Feito para Plataformas Móveis: Otimizado especificamente para dispositivos móveis desde o início do projeto
  • Sem Dependências de Terceiros: Não depende de BLAS, NNPACK ou qualquer outro framework de computação
  • Implementação em C++ Puro: Garante compatibilidade multiplataforma e alto desempenho

2. Desempenho Excepcional

  • Otimização em Nível de Assembly ARM NEON: Utiliza otimização cuidadosa em nível de assembly, resultando em velocidade de computação extremamente rápida
  • Gerenciamento de Memória Preciso: Ocupação de memória extremamente baixa, adequado para dispositivos móveis com recursos limitados
  • Computação Paralela Multi-Core: Suporta otimização de agendamento de CPU ARM big.LITTLE

3. Ampla Compatibilidade de Plataformas

  • Multiplataforma: Suporta Android, iOS, Linux, Windows, macOS e outras plataformas
  • Suporte a Múltiplas Arquiteturas: Suporta diferentes arquiteturas de CPU, como ARM e x86
  • Aceleração por GPU: Suporta aceleração por GPU baseada na API Vulkan

4. Suporte a Modelos Abrangente

  • Importação de Modelos de Múltiplos Frameworks: Pode importar modelos de frameworks populares como Caffe, PyTorch, MXNet, ONNX, Darknet, Keras, TensorFlow
  • Suporte à Quantização: Suporta quantização de 8 bits e armazenamento de ponto flutuante de meia precisão
  • Carregamento Direto na Memória: Suporta carregamento de modelo de rede com referência de cópia zero

Arquitetura Técnica

Tipos de Rede Suportados

  • Redes CNN Clássicas: VGG, AlexNet, GoogleNet, Inception, etc.
  • Redes CNN Práticas: ResNet, DenseNet, SENet, FPN, etc.
  • CNNs Leves: SqueezeNet, MobileNet series, ShuffleNet series, MNasNet, etc.
  • Detecção de Rosto: MTCNN, RetinaFace, SCRFD, etc.
  • Detecção de Objetos: YOLO series, SSD series, Faster-RCNN, etc.
  • Segmentação de Imagem: FCN, PSPNet, UNet, YOLACT, etc.
  • Estimativa de Pose: SimplePose, etc.

Matriz de Compatibilidade de Plataformas

Plataforma/Hardware Windows Linux Android macOS iOS
Intel CPU ✔️ ✔️ ✔️ /
Intel GPU ✔️ ✔️ /
AMD CPU ✔️ ✔️ ✔️ /
AMD GPU ✔️ ✔️ /
NVIDIA GPU ✔️ ✔️ /
Qualcomm ✔️ / /
ARM CPU / /
Apple CPU / / / ✔️

✅ = Conhecido por funcionar e ter excelente desempenho; ✔️ = Conhecido por funcionar; ❔ = Teoricamente viável, mas não confirmado; / = Não aplicável

Aplicações Práticas

O ncnn já está em uso em vários aplicativos principais da Tencent, incluindo:

  • QQ
  • QZone (QQ空间)
  • WeChat
  • 天天P图
  • Outros aplicativos da Tencent

Ecossistema de Desenvolvimento

Projetos de Exemplo

  • Exemplos de Aplicativos Android:
    • Classificação de Imagem SqueezeNet
    • Aplicativo de Transferência de Estilo
    • Detecção de Objetos MobileNet-SSD
    • Detecção de Rosto MTCNN
    • Detecção de Objetos YOLOv5/YOLOv7
    • Detecção de Rosto SCRFD

Suporte a Ferramentas

  • Visualização de Modelo: Suporta o uso do Netron para visualização de modelo
  • Camadas Personalizadas: Suporta o registro e a implementação de camadas personalizadas
  • Ferramentas de Quantização: Fornece ferramentas de quantização de modelo

Suporte da Comunidade

  • Grupos de Discussão Técnica QQ: 637093648, 677104663, 818998520
  • Grupo Telegram e Canal Discord
  • Documentação Detalhada: Documentação wiki completa e referência de API

Começando

Suporte à Construção

O ncnn suporta a construção nas seguintes plataformas:

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

Início Rápido

Recomenda-se começar com o tutorial Usando ncnn com AlexNet, que fornece instruções passo a passo detalhadas, especialmente adequadas para iniciantes.

Vantagens do Projeto

  1. Desempenho Excepcional: A velocidade de execução na CPU de dispositivos móveis supera todos os frameworks de código aberto conhecidos
  2. Amigável aos Recursos: Ocupação de memória extremamente baixa, adequado para ambientes com recursos limitados
  3. Fácil de Integrar: Sem dependências de terceiros, integração simples
  4. Validação em Produção: Validado em vários aplicativos da Tencent com centenas de milhões de usuários
  5. Manutenção Contínua: Comunidade de código aberto ativa e atualizações de versão contínuas
  6. Ampla Compatibilidade: Suporta a importação de modelos dos principais frameworks de aprendizado profundo

ncnn é a escolha ideal para o desenvolvimento de aplicativos de IA para dispositivos móveis, especialmente adequado para desenvolvedores e empresas que precisam implantar modelos de aprendizado profundo em dispositivos móveis.

Star History Chart