开源项目介绍 | ncnn-神经网络推理框架

2021腾讯犀牛鸟开源人才培养计划

开源项目介绍

滑至文末报名&提交项目Proposal

开源项目介绍 | ncnn-神经网络推理框架_第1张图片

ncnn项目介绍

开源项目介绍 | ncnn-神经网络推理框架_第2张图片

ncnn是一个为手机端极致优化的高性能神经网络前向计算框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。

ncnn项目导师介绍

倪辉

ncnn作者

导师寄语:

ncnn是业界知名的AI推理框架,社区支持很好,参与研发是能学到知识和技术的,导师会很耐心帮助你的,对吧对吧!

ncnn相关资料

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


????ncnn开发的超赞项目集:

 https://github.com/zchrissirhcz/awesome-ncnn


????如何贡献代码:https://gist.github.com/nihui/17c06998c59cb7d84bb327e70bd187f3

????学习文档

https://github.com/Tencent/ncnn/wiki/faq

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


????ncnn模型部署、使用教学、源码解读:

 https://www.zhihu.com/search?q=ncnn&type=content

Welcome to advocate your proposal !

欢迎发出您的提案!

ncnn项目实战任务

(具体任务以实战阶段导师布置为准)

编程任务

项目(一):

ncnn MacOS 和 iOS 平台的 Mat 转换

Brief Explanation: 

android Bitmap 对象的转换函数已经有了,但对应的 MacOS 和 iOS 的转换函数还没有。我们提议本项目,为 MacOS 和 iOS 平台添加的图像对象与ncnn::Mat互转的方便函数。此外,必须有测试和文档确保可维护性。

期望结果:

  • ncnn::from_apple_cgimage 和 ncnn::to_apple_cgimage

  • ncnn::from_macos_nsimage 和 ncnn::to_macos_nsimage

  • ncnn::from_ios_uiimage 和 ncnn::to_ios_uiimage

  • 测试和文档

预备知识:

C++ / Objective-C

图像处理

难度:简单/中等

导师:nihui

项目(二):

ncnn Mat pixel 类型 RGB565 和 convert_color 函数

Brief Explanation: 

在移动设备上,RGB565 是很常见用于原生窗口缓冲区的格式。RGB565 相较于 RGBA8888 节省了内存使用。我们提议本项目,增加 RGB565 pixel 格式的转换,并提供加速的 pixel 处理函数。此外,必须有测试和文档确保可维护性。

期望结果:

  • ncnn::from_pixels 和 ncnn::to_pixels 获得 RGB565 支持

  • ncnn::convert_color 支持各种 pixel 格式转换

  • 测试和文档

预备知识:

C++

图像处理

难度:简单/中等

导师:nihui

项目(三):ncnn 支持 AVX only CPU

Brief Explanation: 

有些 CPU 不具备 AVX2 和 FMA 指令集。这种情况下,ncnn 会回退到 SSE2 的优化代码。我们提议本项目,ncnn 添加 AVX-only 的 kernel 实现,以便在这些芯片上享受到 AVX 的加速效果。此外,必须有测试和文档确保可维护性。

期望结果:

  • 在 AVX-only CPU 上自动使用 AVX-only 优化的层

  • 可观的速度提升

  • 测试和文档

预备知识:C++

难度:中等

导师:nihui

项目(四):

ncnn 改善 simpleomp (openmp 运行时)

Brief Explanation: 

simpleomp 是最小化的 openmp 运行时实现,主要用于 WebAssembly。它可以在没有 openmp 运行时库的平台中带来多线程加速。我们提议本项目,改善 simpleomp 线程池实现,如利用 spinlock 和 futex 扩展。此外,必须有测试和文档确保可维护性。

期望结果:

  • set_kmp_blocktime 接口

  • 在小型模型上有可观的速度提升

  • 测试和文档

预备知识:C++、Linux

难度:简单/中等

导师:nihui

项目(五):

ncnn 更好的 android vulkan 相机帧导入和渲染

Brief Explanation: 

GPU 是个适合用作图像处理和机器学习的运算设备。对于实时处理,我们应当尽可能减少影响效率的 CPU-GPU 数据拷贝。VK_ANDROID_external_memory_android_hardware_buffer是新的 vulkan 扩展,在 android 平台上可以用该扩展访问相机捕获到的帧像素。然而,编写原生的 vulkan 代码相当困难。我们提议本项目,实现一套简单易用的高层 API 用作 Android vulkan 与 ncnn 交互。此外,必须有测试和文档确保可维护性。

期望结果:

  • 好用的高层 API,用导入 AHardwareBuffer 到 VkMat 或 VkImageMat 

  • 好用的高层 API,用于渲染 VkMat 或 VkImageMat 到 ANativeWindow

  • 端到端 vulkan GPU 处理的 android 示例应用程序

  • 测试和文档

预备知识:C++、Android、Vulkan

难度:中等/高级

导师:nihui

项目(六):

ncnn RISC-V V-extension 优化

Brief Explanation: 

RISC-V Vector 扩展是 RISC-V SIMD 指令集。ncnn 已经实现了 RISC-V 代码优化的基础架构,但缺少 RISC-V 相关优化。我们提议本项目,为 ncnn 添加 RISC-V kernel 实现,让这些芯片可以享受到 RISC-V Vector 扩展带来的浮点计算加速。此外,必须有测试和文档确保可维护性。

期望结果:

  • 为 RISC-V 架构实现一些优化的 kernel

  • 测试和文档

预备知识:C++、RISC-V 汇编

难度:高级

导师:nihui

项目(七):

ncnn 3D 卷积神经网络

Brief Explanation: 

3D CNN 算子常用在视频处理模型中。当前 ncnn 不支持 3D 算子。我们提议本项目,做出必要的数据结构更改和算子实现,实现基本的 3D CNN 模型的部署。此外,必须有测试和文档确保可维护性。

相关 issue:

Tencent/ncnn#637

➡️https://github.com/Tencent/ncnn/issues/637

Tencent/ncnn#889

https://github.com/Tencent/ncnn/issues/889

Tencent/ncnn#1358

https://github.com/Tencent/ncnn/issues/1358

Tencent/ncnn#1726

https://github.com/Tencent/ncnn/issues/1726

期望结果:

  • 扩展 ncnn::Mat d(depth) 成员

  • 实现最简单的 Convolution3D Pooling3D BatchNorm3D 和一些 3D 激活算子

  • 为 caffe/onnx/MLIR等转换器添加 3D 算子转换支持

  • 使用 ncnn 部署简单的 3D CNN pytorch 模型

  • 测试和文档

预备知识:C++、PyTorch

难度:简单/中等

导师:nihui

扫码填写问卷报名,提交项目proposal

加入项目开发实战

与导师一起成长这一夏

开源项目介绍 | ncnn-神经网络推理框架_第3张图片

NCNN开源项目交流群

欢迎对本项目感兴趣的同学加入一起交流

开源项目介绍 | ncnn-神经网络推理框架_第4张图片

更多项目信息,尽在“腾讯犀牛鸟开源人才社区”

扫码加入,解锁所有学习资料

开源项目介绍 | ncnn-神经网络推理框架_第5张图片

关于腾讯犀牛鸟开源人才培养计划:为响应国家十四五规划的开源战略,腾讯于2021年5月发布“首届腾讯犀牛鸟开源人才培养计划”,希望企业界和教育界形成合力,打造面向高校学生的开源课程和开源实践培养方案,培育开源人才,普及开源文化,助力开源人才生态的发展。

首届项目由教育部计算机教学指导委员会、教育部软件工程教学指导委员会、中国信息通信研究院作为联合指导单位,包括开源基础培训、开源进阶研学、开源项目实战三个环节,项目涉及云原生、微服务、容器、AI、大数据、前端、物联网/边缘计算等多项技术热点。

各位同学报名即可参加线上开源系列课程,学习开源知识,对话学界及产业界大咖。其中入选开源项目实战的学生将在导师的一对一指导下,利用暑假开展编程实战,并有机会获得腾讯开源贡献者证书(目前全球只发出了10+张)。

????学生指南Q&A:https://github.com/Tencent/OpenSourceTalent/issues/14

????官方QQ群:859260607 (加群请备注学校+专业)

【其他项目介绍】

开源项目介绍 |TNN-跨平台AI推理框架

开源项目介绍 |Apache Ozone-分布式大数据通用存储

开源项目介绍 |TKEStack-开源容器服务平台

开源项目介绍 |TencentOS Tiny-腾讯物联网操作系统

开源项目介绍 |OMI-前端【跨框架】框架

开源项目介绍 |APIJSON- 后端零代码接口和文档ORM 库

开源项目介绍 |TARS-高性能微服务治理框架

开源项目介绍|Apache InLong-分布式消息中间件系统

开源项目介绍|Tencent KonaJDK

开源项目介绍 |SuperEdge-云原生边缘计算平台

开源项目介绍 |Hippy-跨平台动态化框架

开源项目介绍 | Angel-高性能分布式机器学习平台

腾讯犀牛鸟开源人才培养计划官网

https://opensource.tencent.com/summer-of-code

(点击文末阅读原文直接访问)

合作或疑问欢迎联系

[email protected]

开源项目介绍 | ncnn-神经网络推理框架_第6张图片

你可能感兴趣的:(神经网络,人工智能,html,css,xhtml)