Awesome-NCNN
ncnn is a high-performance neural network inference framework optimized for the mobile platform. This repo lists some awesome ncnn-based projects. Welcome Star & Fork & Pull Requests!
ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。本仓库 收集了基于ncnn的很棒的项目。欢迎 Star & Fork & Pull Request 一键三连!
Contents
Application projects
Fancy Applications
- ClothingTransfer-NCNN ClothingTransfer/Virtual-Try-On with ncnn. 基于ncnn的服装迁移/虚拟试穿
Detection
General object detection, face detection (and landmark) projects on Android platform.
-
ncnn-android-yolox YOLOX detection android demo based on NCNN.
-
ncnn-android-nanodet NanoDet object detection android project with Android ndk camera for best efficiency. Tutorial: android camera nanodet 实时物体检测的高效实现总结
-
thundernet_ncnn The C++ version of thundernet with ncnn.
-
ncnn_nanodet_hand Hand detection on android platform with ncnn (安卓平台人手检测)
-
RobotVision2 Real-time fatigue driving detection on the mobile platform (移动端实时疲劳驾驶检测)
-
hayoou_safe_driving_android Lane detection (with FCW and LDW) android demo based on Yolov4 and Ultra fast lane detection, runs at 8 fps on HONOR 20PRO Kirin 980 phone.
-
nanodet NanoDet, a Super fast and lightweight anchor-free object detection model.
🔥 Only 1.8mb and run 97FPS on cellphone, with training and NCNN based inference inside. -
YOLOv5_NCNN by WZTENG Android/iOS camera preview with YOLOv5 (移动端目标检测,当前项目使用的是YOLOv5的5s模型,摄像头实时捕获视频流进行检测)
-
Face-Mask-Detection-Raspberry-Pi-64-bits Face mask detection on Rasberry Pi (树莓派上的口罩检测)
-
YOLOV5_NCNN_Android by sunnyden YOLOv5 NCNN implementation on Android platform.
-
PFLD-pytorch Practical Facial Landmark Detector with PyTorch and NCNN implementation. (PFLD pytorch Implementation ,自带 ncnn 推理实现)
-
LFFD-with-ncnn LFFD ( A Light and Fast Face Detector for Edge Devices )'s implementation in NCNN.
-
Iris_Landmarks_PyTorch Iris landmarks localization 瞳孔定位,有转ncnn模型脚本
-
ncnn-android-ultraface ultraface android project
-
DBface_ncnn_demo dbface ncnn 人脸检测
-
darknet_face_with_landmark 借鉴AlexeyAB大神的 darknet 做适量修改,用于人脸检测以及关键点检测,支持ncnn推理
-
ncnn_android_face_vehicle ncnn在Android的一个测试,包含了人脸检测(face detection),人脸属性(face attributes),人脸识别(face recognition);车辆检测(Vehicle detection),车牌检测(plate detection),车牌识别(plate recognition);人头检测(head detection)的流程
-
centernet_ncnn Objects as Points, ncnn implementation
-
centerface-ncnn centerface android project
-
PCN-ncnn Progressive Calibration Networks (PCN) is an accurate rotation-invariant face detector running at real-time speed on CPU (CVPR 2018), with ncnn based inference.
-
Ultra-Light-Fast-Generic-Face-Detector-1MB 1MB lightweight face detection model (1MB轻量级人脸检测模型)
Super Resolution
- realsr-ncnn-vulkan ncnn implementation of Real-World Super-Resolution via Kernel Estimation and Noise Injection super resolution.
- srmd-ncnn-vulkan ncnn implementation of SRMD super resolution.
- waifu2x-ncnn-vulkan waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan
- vapoursynth-waifu2x-ncnn-vulkan Waifu2x filter for VapourSynth
- VapourSynth-SRMD-ncnn-Vulkan SRMD super resolution for VapourSynth
- Waifu2x-Extension-GUI Photo/Video/GIF enlargement and Video frame interpolation using machine learning (使用NCNN的图像超分辨率及视频插帧软件)
- waifu2x-ncnn-vulkan-python Exporting pyd for python based on waifu2x-ncnn-vulkan (修改waifu2x-ncnn-vulkan项目,导出pyd给python使用)
- media2x/waifu2x-ncnn-vulkan-python A Python FFI of nihui/waifu2x-ncnn-vulkan achieved with SWIG. This project only wraps the original Waifu2x class and is now used by video2x and anime2x-multibackend.
- Real-CUGAN-ncnn-vulkan A two dimensions anime super resolution project. (二次元动漫超分项目) ncnn implementation of Real-CUGAN converter. Runs fast on Intel / AMD / Nvidia with Vulkan API.
Video Frame Interpolation
-
flowframes Flowframes Windows GUI for video interpolation - Supports DAIN NCNN as well as RIFE Pytorch and NCNN implementations.
-
rife-ncnn-vulkan ncnn implementation of RIFE, Real-Time Intermediate Flow Estimation for Video Frame Interpolation.
-
cain-ncnn-vulkan ncnn implementation of CAIN, Channel Attention Is All You Need for Video Frame Interpolation.
-
dain-ncnn-vulkan ncnn implementation of DAIN, Depth-Aware Video Frame Interpolation.
-
rife-ncnn-vulkan-python A Python FFI of nihui/rife-ncnn-vulkan achieved with SWIG.
Pose Estimation
-
NCNN_Android_SinglePoseEstimation 单人人体姿态定位 android 工程
-
NCNN-PoseEstimation Realtime Pose Estimation NCNN ONNX
-
ncnn_Android_MoveNet Android MoveNet pose estimation by ncnn
-
deep-head-pose-ncnn Simple inference deep head pose ncnn version.
Segmentation
-
RobustVideoMatting Android human segmentation by ncnn.
-
ncnn_Android_hair Android hair segmentation demo by ncnn (基于 ncnn 的头发分割 android demo app)
-
ncnn-portrait-segmentation Real-time human segmentation on CPU
-
ncnn-android-deeplabv3plus The deeplabv3+ person segmentation android example.
-
SOLOV2_ncnn The C++ version of solov2 with ncnn
-
Sky-Segmentation-and-Post-processing C++ implementation for Sky segmentation and post-processing for the paper https://arxiv.org/abs/2006.10172 with ncnn.
Wasm
-
ncnn-webassembly-scrfd Deploy SCRFD, an efficient high accuracy face detection approach, in your web browser with ncnn and webassembly
-
ncnn-webassembly-ocrlite Deploy OcrLite in your web browser with ncnn and webassembly
-
ncnn-webassembly-portrait-segmentation Portrait segmentation in your browser with ncnn and webassembly
-
ncnn-webassembly-nanodet Deploy nanodet, the super fast and lightweight object detection, in your web browser with ncnn and webassembly
-
ncnnRay++ A CMake / WASM integration of rayib UI and the Tencent ncnn C++ AI platform
- Original repo(now broken): https://github.com/QuantScientist/ncnnRay
- An fork of the original: https://github.com/stjordanis/ncnnRay
-
ncnn-webassembly-yolov5 Run NCNN based YoloV5 detector in your browser!
-
ncnn-webassembly-blazeface Run blazeface detector in browser.
Other
-
YOLOP-NCNN You Only Look Once for Panopitic Driving Perception, Android app by ncnn (车辆检测+路面分割+车道线分割 三合一的网络, Android Demo).
-
SID-NCNN Learning to See in the Dark running in Android by ncnn with Raw Camera (CVPR2018'Learning to See in the Dark, 暗光成像,用ncnn在安卓上进行简单的部署实现)
-
monodepth-NCNN Deploy wavelet-monodepth (CVPR 2021 Monocular depth estimation using wavelets for efficiency ) model on Android with ncnn (将wavelet-monodepth的模型搬运到NCNN上,工程里面给了安卓的工程以及以及生成好的app安装包).
-
PiDiNet-NCNN Deploy PiDINet(Pixel Difference Networks for Efficient Edge Detection) on Android with ncnn (使用NCNN在安卓上实现PiDiNet这个边缘检测网络)
-
OpenSitUp OpenSitUp是一个基于姿态估计的开源项目,基于 ncnn 搭建了一个在android手机上运行的仰卧起坐计数APP
-
SeqSeq ncnn The C++ version of SeqSeq with ncnn
-
ncnn_paddleocr convert paddleocr light model to ncnn,you can use it by ncnn.
-
ncnn-swift A project of using ncnn in Swift for modern iOS development, with image classification & object detection (yolov5) examples.
-
ncnn-picture-enhancement A simple demo to run dehaze / underwater model in Android (照片去雾和水下增强).
-
enet-as-linux 基于ncnn的android端的enet分割
-
mobile-lpr 一个面向移动端的准商业级车牌识别库
-
demo_deepsort deepsort tracking demo
-
chineseocr_lite Super lightweight OCR for Chinese characters, supporting horizontal recognition, support ncnn inference (超轻量级中文ocr,支持竖排文字识别, 支持ncnn推理)
-
ncnn-android-styletransfer ncnn style transfer android example
-
ncnn_example by MirrorYuChen A collection of ncnn examples: face/mask detection, tracking, recognition...
Tools
Model convert tools and wrapper/bindings of ncnn (模型转换工具、对ncnn封装等相关项目)
-
keras2ncnn: A keras h5df to ncnn model converter
-
darknet-ncnn-android darknet ncnn android project
-
caffe-int8-convert-tools Caffe INT8 Quantization convert tool
Wrappers
-
ros_ncnn ROS wrapper for NCNN neural inference framework
-
pyncnn python wrapper of ncnn with pybind11 (Note: now updated in ncnn official repo's python directory)
-
ncnn-lite NCNN lite without C++ support (Note: There is ncnn C API now)
-
NcnnDotNet ncnn .NET wrapper written in C++ and C# for Windows, MacOS and Linux
-
ncnn-fortran Call ncnn from Fortran via mix compiling
Optimization
- ncnn-with-cuda Tencent NCNN with added CUDA support
Training
- ncnnqat quantize aware training package for NCNN on pytorch.
Source Analysis
-
ncnn_breakdown - by All Star A breakdown of NCNN (学习ncnn的过程的一个记录)
-
ncnn初探 - by OFShare ncnn源码解析, 带你进入底层实现的点点滴滴.
-
如何阅读一个前向推理框架?以NCNN为例 - by BBuf 如何阅读NCNN框架