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 공간)
  • 微信 (WeChat)
  • 天天P图 (TianTianPitu)
  • 기타 텐센트 애플리케이션

개발 생태계

예제 프로젝트

  • 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 (Allwinner D1)
  • 龙芯2K1000 (Loongson 2K1000)

빠른 시작

ncnn을 사용하여 AlexNet 실행하기 튜토리얼부터 시작하는 것을 추천합니다. 이 튜토리얼은 자세한 단계별 설명을 제공하며, 특히 초보자에게 적합합니다.

프로젝트 장점

  1. 뛰어난 성능: 모바일 CPU에서의 실행 속도가 알려진 모든 오픈소스 프레임워크를 능가함
  2. 리소스 친화적: 메모리 점유율이 매우 낮아 리소스가 제한된 환경에 적합
  3. 쉬운 통합: 타사 종속성이 없어 통합이 간단함
  4. 생산 검증: 텐센트의 여러 억 단위 사용자 애플리케이션에서 검증됨
  5. 지속적인 유지 관리: 활발한 오픈소스 커뮤니티 및 지속적인 버전 업데이트
  6. 광범위한 호환성: 주요 딥러닝 프레임워크의 모델 가져오기 지원

ncnn은 모바일 AI 애플리케이션 개발에 이상적인 선택이며, 특히 모바일 장치에 딥러닝 모델을 배포해야 하는 개발자 및 기업에 적합합니다.

Star History Chart