腾讯开源的一个专为手机端设计的高性能神经网络前向计算框架,具有无第三方依赖、跨平台、速度快等特点。ncnn 是一个针对移动平台优化的性能神经网络推理计算框架。ncnn 从设计之初就深思熟虑在手机上的部署和使用。ncnn 没有第三方依赖项。它是跨平台的,并且比所有已知的手机 CPU 上的开源框架运行得更快。开发者可以通过高效的 ncnn 实现,轻松嵌入深度学习算法模型部署到移动平台,创建智能 APP,让人工智能触手可及。
特征
-
支持结构神经网络,支持多输入和多分支结构,可以计算部分分支 -
无第三方库依赖,不依赖 BLAS/NNPACK 或任何其他计算框架 -
纯 C++实现,跨平台,支持 Android、iOS 等 -
ARM NEON 提出了级优化,计算速度极高 -
精密的内存管理和数据结构设计,内存占用极低 -
支持多核计算加速、ARM big.LITTLE CPU 调度优化 -
通过下一代低头部 Vulkan API 支持 GPU 加速 -
可扩展的模型设计,支持 8 位量化和半精度浮点存储,可导入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir)模型 -
支持直接内存零拷贝引用加载网络模型 -
可以注册自定义层实现并扩展
支持的平台矩阵
项目实例
挤压网络图像分类
如何构建和运行
步骤 1:
https://github.com/Tencent/ncnn/releases
-
下载 ncnn-YYYYMMDD-android-vulkan.zip 或自己为 Android 构建 ncnn -
将 ncnn-YYYYMMDD-android-vulkan.zip 解压到 app/src/main/jni 中,并将 app/src/main/jni/CMakeLists.txt 中的 ncnn_DIR 路径更改为自己的路径
步骤 2: 使用 Android Studio 打开该项目,构建即可
SCRFD 人脸检测
这是一个示例 ncnn android 项目,它依赖于 ncnn 库和 opencv
如何构建和运行
步骤 1:
https://github.com/Tencent/ncnn/releases
-
下载 ncnn-YYYYMMDD-android-vulkan.zip 或自己为 Android 构建 ncnn -
将 ncnn-YYYYMMDD-android-vulkan.zip 解压到 app/src/main/jni 中,并将 app/src/main/jni/CMakeLists.txt 中的 ncnn_DIR 路径更改为自己的路径
步骤 2:
https://github.com/nihui/opencv-mobile
-
下载 opencv-mobile-XYZ-android.zip -
将 opencv-mobile-XYZ-android.zip 解压到 app/src/main/jni 中,并在 app/src/main/jni/CMakeLists.txt 中将 OpenCV_DIR 路径更改为您的路径 步骤 3: 使用 Android Studio 打开该项目,构建即可
传送门
GitHub:https://github.com/Tencent/ncnn
-END-
原文始发于微信公众号(开源技术专栏):高性能的手机端神经网络计算框架
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/170937.html