腾讯优图NCNN详细分析及实践操作(含Yolov5实践)

计算机视觉研究院

计算机视觉研究院专栏

11 月 19 日,历经数月打磨,由InfoQ发起并组织,共有300+参评项目,100+入围项目,10000+开发者公开票选,20+顶尖专家评审,10+主编团打分的【 2020 中国技术力量年度榜单评选】结果终见分晓。

腾讯优图「ncnn」荣获2020年度十大开源新锐项目!

关于ncnn

「ncnn」是一个针对移动平台优化的高性能神经 络推理框架,并在2017年7月正式开源。ncnn是腾讯优图最“火”的开源项目之一,作为一个为手机端极致优化的高性能神经 络前向计算框架,在设计之初便将手机端的特殊场景融入核心理念,是业界首个为移动端优化的开源神经 络推断库。能实现无第三方依赖,跨平台操作,在手机端cpu运算速度在开源框架中处于领先水平。基于该平台,开发者能够轻松将深度学习算法移植到手机端,输出高效的执行,进而产出人工智能APP,将AI技术带到用户指尖。

它支持大部分常用的 CNN 络,包括Classical CNN、Practical CNN、Light-weight CNN、Face Detection等,并拥有十分强大的功能??

1

支持卷积神经 络,支持多输入和多分支结构

2

无任何第三方库依赖

3

纯 C++ 实现,跨平台,支持 android、ios 等

4

内存占用极低,计算速度极快

5

支持多核并行计算加速

6

可扩展的模型设计,支持 8bit 量化和半精度浮点存储

目前应用在许多图像分类、风格迁移、目标检测、人脸检测案例中,并已被多款APP使用。欢迎大家前来评测使用??

https://github.com/Tencent/ncnn

我们将NCNN与其他框架对比下:

ncnn 是一个为手机端极致优化的高性能神经 络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。

支持大部分常用的 CNN 络

  • Classical CNN: VGG AlexNet GoogleNet Inception …

  • Practical CNN: ResNet DenseNet SENet FPN …

  • Light-weight CNN: SqueezeNet MobileNetV1/V2/V3 ShuffleNetV1/V2 MNasNet …

  • Face Detection: MTCNN RetinaFace …

  • Detection: VGG-SSD MobileNet-SSD SqueezeNet-SSD MobileNetV2-SSDLite MobileNetV3-SSDLite …

  • Detection: Faster-RCNN R-FCN …

  • Detection: YOLOV2 YOLOV3 MobileNet-YOLOV3 YOLOV4 YOLOV5 …

  • Segmentation: FCN PSPNet UNet YOLACT …

  • Pose Estimation: SimplePose …

  • 功能概述

  • 支持卷积神经 络,支持多输入和多分支结构,可计算部分分支

  • 无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架

  • 纯 C++ 实现,跨平台,支持 android ios 等

  • ARM NEON 汇编级良心优化,计算速度极快

  • 精细的内存管理和数据结构设计,内存占用极低

  • 支持多核并行计算加速,ARM big.LITTLE cpu 调度优化

  • 支持基于全新低消耗的 vulkan api GPU 加速

  • 整体库体积小于 700K,并可轻松精简到小于 300K

  • 可扩展的模型设计,支持 8bit 量化和半精度浮点存储,可导入
    caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir) 模型

  • 支持直接内存零拷贝引用加载 络模型

  • 可注册自定义层实现并扩展

  • 恩,很强就是了,不怕被塞卷 QvQ

  • supported platform matrix

    ncnn-android-yolov5案例

    how to build and run

    step1

    https://github.com/Tencent/ncnn/releases

    download ncnn-android-vulkan-lib.zip or build ncnn for android yourself

    step2

    extract ncnn-android-vulkan-lib.zip into app/src/main/jni or change the ncnn path to yours in app/src/main/jni/CMakeLists.txt

    step3

    open this project with Android Studio, build it and enjoy!

    caffe-android-lib, mini-caffe, and ncnn对比

    squeezenet_v1.1

    mobilenet_v1

    vgg16

    /End.

    如果想加入我们“计算机视觉研究院”,请扫二维码加入我们。我们会按照你的需求将你拉入对应的学习群!

    计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

    后台回复“NCNN”

    计算机视觉研究院

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年5月16日
    下一篇 2022年5月16日

    相关推荐