ncnn icon indicating copy to clipboard operation
ncnn copied to clipboard

Official Support βœ… for Ultralytics YOLOv8 NCNN export

Open glenn-jocher opened this issue 2 years ago β€’ 8 comments

I have great news πŸ˜ƒ! I've recently added official support for Ultralytics YOLOv8 NCNN export βœ… in PR https://github.com/ultralytics/ultralytics/pull/3529 with the help of @nihui which is part of ultralytics==8.0.129. NCNN works for all tasks including Detect, Segment, Pose and Classify.

You can now export with CLI:

yolo export model=yolov8n.pt format=ncnn

or Python:

from ultralytics import YOLO

# Create a model
model = YOLO('yolov8n.pt')

# Export the model to NCNN with arguments
model.export(format='ncnn', half=True, imgsz=640)

Output is a yolov8n_ncnn_model/ directory containing model.bin, model.param and metadata.yaml, along with extra PNNX files. For details see https://github.com/pnnx/pnnx README.

To get this update:

  • Git – Run git pull from within your ultralytics/ directory or run git clone https://github.com/ultralytics/ultralytics again
  • Pip – Update with pip install -U ultralytics
  • Notebooks – Check out the updated notebooks Run on Gradient Open In Colab Open In Kaggle
  • Docker – Run sudo docker pull ultralytics/ultralytics:latest to update your image Docker Pulls

Please let us know if NCNN export is working correctly for you, and don't hesitate to report any other issues you find or feature requests you may have. Happy training with YOLOv8 πŸš€!

glenn-jocher avatar Jul 07 '23 13:07 glenn-jocher

@nihui @triple-Mu How to use the officially exported yolov8-model file to complete inference tasks, using ncnn in c++? the tasks including Detect, Segment, Pose and Classify. could you provide code examples?

superbayes avatar Jul 10 '23 06:07 superbayes

i have seen this link,but not try code demo

superbayes avatar Jul 10 '23 06:07 superbayes

could you provide an example for yolov8-pose inference on ncnn in python?

13185742215 avatar Jul 18 '23 07:07 13185742215

@13185742215 yes you can simply do this:

pip install ultralytics

yolo export format=ncnn model=yolov8n-pose.pt
yolo predict model=yolov8n-pose_ncnn_model source=path/to/image.jpg

The NCNN exported YOLOv8 models can be used just like a PyTorch model with the ultralytics package. See https://docs.ultralytics.com/modes/predict/ for other ways to run inference.

glenn-jocher avatar Jul 19 '23 16:07 glenn-jocher

Hope there are examples of ncnn in c++.

trlsmax avatar Jul 26 '23 09:07 trlsmax

I see there is no yolov8.cpp in the examples folder, it would be nice an example that uses utralitics export tool models. I have found some examples in the internet, but none of them are working with ultralitics export models!

palevi67 avatar Sep 07 '23 09:09 palevi67

@palevi67 @trlsmax try https://github.com/wkt/YoloMobile

wkt avatar Sep 16 '23 08:09 wkt

yolov8 example https://github.com/Tencent/ncnn/pull/5506

nihui avatar Aug 19 '24 03:08 nihui

hi, yolov8 examples are updated with full support for detection, segmentation, classification, pose estimation and obb https://github.com/Tencent/ncnn/tree/master/examples

android demo https://github.com/nihui/ncnn-android-yolov8

detailed instruction (zh) https://zhuanlan.zhihu.com/p/16030630352

nihui avatar Jan 08 '25 07:01 nihui

Hi...I am still not available to get my custom model to work with ncnn...there are working examples but not for custom models...pt to onnx to ncnn...pt works, onnx works...but I can't get ncnn to work...I use label-studio and yolov8 for model...

carldiashacker2023 avatar Jul 10 '25 16:07 carldiashacker2023