As someone that's just getting into this, I really like how user friendly Roboflow is. Only thing stopping me from continuing to use it unfortunately is the price point per month on top of only allowing 5,000 images per month with the paid plan. I really wish you all had 4 tiers. Free can stay the same, add the first paid plan for $100 that gives users 4K images, mid tier plan for $200 that gives users 8K images, and top tier plan for $250 that give 10K images + some extra bonuses. This is more competitive imo and would bring more people to the platform over finding cheaper alternatives that allow more freedom to try out multiple new things. I could see you guys being the top dog in this market with how easy setup is and with your TH-cam guides which are easy and fast to understand. It's that price point to image ratio that is truly killing me here.
This tutorial is awesome I was successfully able to train the model. Also I would like to see a video on model selection too. Thank you so much for such an amazing work. ❤
Hi, it is Peter from the video. We discussed this idea yesterday. I don't want to promise anything but it looks like we will release this video in the next 2 weeks.
Thanks a lot for the great work. May I ask for a video tutorial on how to port the YOLOv8 Python app to the Android platform, with people recognition through the phone's camera?
For some reason, this instruction does not work anymore: result = list(model.predict(image, conf=0.35))[0] ----> 4 result = list(model.predict(image, conf=0.35))[0] TypeError: 'ImageDetectionPrediction' object is not iterable I did this instead and it worked result = model.predict(image, conf=0.35) Perhaps the output format from the model has changed during these 11 months, idk. I'm just leaving this here in case others find the same problem
Apparently the sv.Detections class has also changed over these months so this instruction does not work anymore: labels = [ f"{result.class_names[class_id]} {confidence:0.2f}" for _, _, confidence, class_id, _ in detections ] ValueError: too many values to unpack (expected 5) Instead, you have to unpack six values 👍: labels = [ f"{result.class_names[class_id]} {confidence:0.2f}" for _, _, confidence, class_id, _, _ in detections ]
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. super-gradients 3.3.0+master requires pyparsing==2.4.5, but you have pyparsing 2.4.7 which is incompatible.
If you want to detect objects like small pieces of trash/garbage, wound out use a pre-trained model or start from scratch? What are some examples for starting from scratch and using pre-trained? - with your football players, if you don’t want to detect anything else like what’s in the coco set, why use pre-trained model? Maybe you can cover it in your upcoming model selection video 😅
@@Roboflow hey thanks for the reply, I am just confused about that, we are here annotating the test data labels too. Then feeding to the model, then where is the learning of the model? How will it make predictions like yolov8?
Hi Piotr, very good video. I like also your supervision package and all the notebooks you have been publishing in roboflow. Just one quick question: I have trained YOLO NAS (small version) with a custom dataset. I have seen that inference (CPU) is quite slow. I mean, compared to YOLO V5 or 8 it is much slower. Have you also noticed this? Many thanks!
I noticed that too. But I have not investigated that issue :/ I accidentally stumbled on that issue when I loaded the model on the CPU and not on GPU. Did you try the quantized version too?
Thank You for awesome video, can we use any other pretrained model instead of coco? If any documentation are there please provide me. Thank you so much
For those of you having issues with the Visualize Inference Result section of the Colab below I have an updated version that should extinguish any errors. import supervision as sv import numpy as np import cv2 import matplotlib.pyplot as plt # Assuming result.prediction contains the predictions and result.class_names contains the class names detections = sv.Detections( xyxy=result.prediction.bboxes_xyxy, confidence=result.prediction.confidence, class_id=result.prediction.labels.astype(int) ) # Create BoxAnnotator object box_annotator = sv.BoxAnnotator() # Annotate the image annotated_frame = box_annotator.annotate( scene=image.copy(), detections=detections ) # Generate labels labels = [ f"{result.class_names[class_id]} {confidence:0.2f}" for confidence, class_id in zip(result.prediction.confidence, result.prediction.labels.astype(int)) ] # Add labels to the annotated frame for (bbox, label) in zip(result.prediction.bboxes_xyxy, labels): x_min, y_min, x_max, y_max = bbox cv2.putText( annotated_frame, label, (int(x_min), int(y_min) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (255, 255, 255), 2 ) # Convert the image from BGR to RGB annotated_frame_rgb = cv2.cvtColor(annotated_frame, cv2.COLOR_BGR2RGB) # Display the annotated image %matplotlib inline plt.figure(figsize=(12, 12)) plt.imshow(annotated_frame_rgb) plt.axis('off') plt.show()
It's there a way we can create a real example from this? I have a football 360 video from my son playing 9v9. The idea would be to keep the focus on the ball/play using Yolo Nas. It's that even possible?
hello, really nice tutorial! I created a custom yolo detection with yolov8m as a base, but when I run it, as soon as the speed of the objects increases, the algorithm loses track of me and starts to "jerk" the video output. Does anyone have an idea how to fix this? (yolov8m algorithm trained on 300 custom images) Thanks so much to anyone who can help me!!
Im getting below error AttributeError: 'Trainer' object has no attribute 'train_loader' in below code trainer.train(model=model, training_params=train_params, train_loader=train_data, valid_loader=val_data) any reason
Getting below error at the time of installation. Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done error: subprocess-exited-with-error × Building wheel for pycocotools (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip. Building wheel for pycocotools (pyproject.toml) ... error ERROR: Failed building wheel for pycocotools ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects
ds = sv.Dataset.from_yolo( images_directory_path=f"{dataset.location}/test/images", annotations_directory_path=f"{dataset.location}/test/labels", data_yaml_path=f"{dataset.location}/data.yaml", force_masks=False ) This one is not working
Hey Piotr, could you please me? i want to try make object detection on pretrained YoloNasL model but i need to exclude some classes for example class person /// model = models.get(MODEL_ARCH, pretrained_weights="coco").to(DEVICE) image = cv2.imread(SOURCE_IMAGE_PATH) result = list(model.predict(image, conf=0.35))[0] /// how can i set some properties of model like class_names at give array with class names to that property? i checked all properties but didnt find out where or how i can exclude some yolo classes i would be extremely grateful if you try to help thanks in advance!!
error ImportError Traceback (most recent call last)
in ()
----> 1 from super_gradients.training import models
2
3 model = models.get(MODEL_ARCH, pretrained_weights="coco").to(DEVICE)
13 frames
/usr/local/lib/python3.10/dist-packages/PIL/ImageFont.py in
36 from . import Image
37 from ._deprecate import deprecate
---> 38 from ._util import is_directory, is_path
39
40
ImportError: cannot import name 'is_directory' from 'PIL._util' (/usr/local/lib/python3.10/dist-packages/PIL/_util.py)
solution install at first !pip install --upgrade pillow==6.2.2
@@elbaz_afandy ir just restart the environment :) Does that fix with pillow==6.2.2 work? I tried that and it didn't :/
@@Roboflow you maybe correct, just restating is the problem solution
@@elbaz_afandy I'll pin your comment. I expect others may face similar issues.
restart runtime
please make a video on model selection, its a great idea!
That’s what I wanted to hear 🙏🏻
As someone that's just getting into this, I really like how user friendly Roboflow is. Only thing stopping me from continuing to use it unfortunately is the price point per month on top of only allowing 5,000 images per month with the paid plan. I really wish you all had 4 tiers. Free can stay the same, add the first paid plan for $100 that gives users 4K images, mid tier plan for $200 that gives users 8K images, and top tier plan for $250 that give 10K images + some extra bonuses. This is more competitive imo and would bring more people to the platform over finding cheaper alternatives that allow more freedom to try out multiple new things. I could see you guys being the top dog in this market with how easy setup is and with your TH-cam guides which are easy and fast to understand. It's that price point to image ratio that is truly killing me here.
best yolo NAS custom dataset tutorial , ever !
Haha thanks a lot 🙏🏻! Part 2 coming soon!
This tutorial is awesome I was successfully able to train the model. Also I would like to see a video on model selection too. Thank you so much for such an amazing work. ❤
Hi Piotr!
Greetings from Middle Earth. Yes please, I would like to know more on different models selection depending on use case.
Looks like we will do video about it within the next 2 weeks.
Clear instructions and a very well-documented Google Colab notebook. Thank you!
Thanks for watching 🙏🏻
@@Roboflow heyy, so while i execute trainer, my session is getting crashed automatically... any solutions for that
Yes we want a video on model selection please make it
Hi, it is Peter from the video. We discussed this idea yesterday. I don't want to promise anything but it looks like we will release this video in the next 2 weeks.
Definitely need a video on model selection
hahaha working on it :D
You should make a video on training the model. The entire process till it achieves good result
Thanks Peter. I just start to try it on my dataset.
super good video! very interested in the model selections
Awesome! Thanks a lot!
Amazing channel. I am enjoying your work a lot. Keep it up
Thanks a loooot!
thank you for the video. Would be very interesting in model selection video. Thank you!
Awesome! I see a lot of positive feedback for that idea.
Thanks a lot for the great work. May I ask for a video tutorial on how to port the YOLOv8 Python app to the Android platform, with people recognition through the phone's camera?
If you can, please add this to the list of ideas submitted by the community: github.com/roboflow/notebooks/discussions/categories/video-ideas
As usual 🎉🎉 Hero
Thanks a lot! 🙏
Please post the second part❤❤
Hi, it is Peter from the video! 👋 I hope I will be able to give you this video.
For some reason, this instruction does not work anymore:
result = list(model.predict(image, conf=0.35))[0]
----> 4 result = list(model.predict(image, conf=0.35))[0]
TypeError: 'ImageDetectionPrediction' object is not iterable
I did this instead and it worked
result = model.predict(image, conf=0.35)
Perhaps the output format from the model has changed during these 11 months, idk. I'm just leaving this here in case others find the same problem
Apparently the sv.Detections class has also changed over these months so this instruction does not work anymore:
labels = [
f"{result.class_names[class_id]} {confidence:0.2f}"
for _, _, confidence, class_id, _
in detections
]
ValueError: too many values to unpack (expected 5)
Instead, you have to unpack six values 👍:
labels = [
f"{result.class_names[class_id]} {confidence:0.2f}"
for _, _, confidence, class_id, _, _
in detections
]
@@danielarmandovidalsoroa7787 thank you so much for providing that information!
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
super-gradients 3.3.0+master requires pyparsing==2.4.5, but you have pyparsing 2.4.7 which is incompatible.
And one video about comparison between yoloV8 and Yolo-NAS based on Accuracy
We were thinking about doing a video like that. I'm actually curious how many people would be interested.
If you want to detect objects like small pieces of trash/garbage, wound out use a pre-trained model or start from scratch? What are some examples for starting from scratch and using pre-trained? - with your football players, if you don’t want to detect anything else like what’s in the coco set, why use pre-trained model?
Maybe you can cover it in your upcoming model selection video 😅
do you know how to detect with pre-trained model but with excluded classes so not all classes will be detected?
Is there any activation function used in YOLO NAS. If yes, which one and where can I find that information?
Hey, great explanation. Is there we have to annotate the testing dada too?
Could you elaborate on the question?
@@Roboflow hey thanks for the reply,
I am just confused about that, we are here annotating the test data labels too.
Then feeding to the model, then where is the learning of the model?
How will it make predictions like yolov8?
Hi Piotr, very good video. I like also your supervision package and all the notebooks you have been publishing in roboflow.
Just one quick question: I have trained YOLO NAS (small version) with a custom dataset. I have seen that inference (CPU) is quite slow. I mean, compared to YOLO V5 or 8 it is much slower. Have you also noticed this? Many thanks!
I noticed that too. But I have not investigated that issue :/ I accidentally stumbled on that issue when I loaded the model on the CPU and not on GPU. Did you try the quantized version too?
Thank You for awesome video, can we use any other pretrained model instead of coco? If any documentation are there please provide me.
Thank you so much
To the best of my knowledge, no.
I would like you to compare it to yolov5/v8 (better to test it on small objects). ty
Hopefully, we will be able to do in one of the upcoming TH-cam videos
pls make video on model selection
Looks like we will make one within the next 2 weeks. Stay tuned!
Great! How to resume to training process if it pauses.
Also, my dataset images are of size not equal to 640x640 , where can I apply this in the coding?
can you cover Llava on video streaming
I don't know if u'll see the comment or not 😅, but can we use yolo nas on android for object detection. If yes, pls can you make a video on this?
hey bro can we do semantic segmentation using the new YOLO NAS model
Nope. It only gives you object detection. At least for now.
can you explain how to train on my dataset , how to organize images and ground truth. also how i add different augmentations.
is there any need to define TensorBoard ? or it's automatically connected when model is finished ?
Thanks for the tutorial! Is there a way to change the input dimensions? The default is (640,640) and I wanted to try out the larger size.
I think u can directly pass it directly and YoloNAS will update its parameter accordingly. I am using 480*640 image size and it working great !
may i know how to prepare the data before do training with my own images?
For those of you having issues with the Visualize Inference Result section of the Colab below I have an updated version that should extinguish any errors.
import supervision as sv
import numpy as np
import cv2
import matplotlib.pyplot as plt
# Assuming result.prediction contains the predictions and result.class_names contains the class names
detections = sv.Detections(
xyxy=result.prediction.bboxes_xyxy,
confidence=result.prediction.confidence,
class_id=result.prediction.labels.astype(int)
)
# Create BoxAnnotator object
box_annotator = sv.BoxAnnotator()
# Annotate the image
annotated_frame = box_annotator.annotate(
scene=image.copy(),
detections=detections
)
# Generate labels
labels = [
f"{result.class_names[class_id]} {confidence:0.2f}"
for confidence, class_id in zip(result.prediction.confidence, result.prediction.labels.astype(int))
]
# Add labels to the annotated frame
for (bbox, label) in zip(result.prediction.bboxes_xyxy, labels):
x_min, y_min, x_max, y_max = bbox
cv2.putText(
annotated_frame,
label,
(int(x_min), int(y_min) - 10),
cv2.FONT_HERSHEY_SIMPLEX,
0.9,
(255, 255, 255),
2
)
# Convert the image from BGR to RGB
annotated_frame_rgb = cv2.cvtColor(annotated_frame, cv2.COLOR_BGR2RGB)
# Display the annotated image
%matplotlib inline
plt.figure(figsize=(12, 12))
plt.imshow(annotated_frame_rgb)
plt.axis('off')
plt.show()
How to train this on 8 GPUs on DGX A100?
Does this work in detecting real time with camera? And If i can ask, how to?
Now the model can't train the model, is the recent update problems?
What extension can my custom dataset have? I saw you using yolov5 as extension, is yolov8 also valid??
Is it possible to connect archives in my local Notebook to googoe colab? Or you just have all in Google drive?
It's there a way we can create a real example from this? I have a football 360 video from my son playing 9v9. The idea would be to keep the focus on the ball/play using Yolo Nas. It's that even
possible?
cant open the link anymore
hello, really nice tutorial!
I created a custom yolo detection with yolov8m as a base, but when I run it, as soon as the speed of the objects increases, the algorithm loses track of me and starts to "jerk" the video output. Does anyone have an idea how to fix this?
(yolov8m algorithm trained on 300 custom images)
Thanks so much to anyone who can help me!!
Someone today reported a similar problem in the discussions tab on GitHub. Was it you?
@@Roboflow yes, sorry
@@NeuralNetwork-go5zn I'll make sure to respond on GH as soon as possible.
@@Roboflow thank yuo!
part 2
Soon!
where is pt file downoad
Im getting below error
AttributeError: 'Trainer' object has no attribute 'train_loader'
in below code
trainer.train(model=model,
training_params=train_params,
train_loader=train_data,
valid_loader=val_data)
any reason
there is a line code in the middel of the notebook import trainer I think that u miss tht
pt file ?
Could you be a bit more specific?
Getting below error at the time of installation.
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
error: subprocess-exited-with-error
× Building wheel for pycocotools (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Building wheel for pycocotools (pyproject.toml) ... error
ERROR: Failed building wheel for pycocotools
ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects
Any solution for this?
install using below command, in same order
!pip install -q roboflow
!pip install -q supervision
!pip install -q super-gradients@@jeanpierre4847
ds = sv.Dataset.from_yolo(
images_directory_path=f"{dataset.location}/test/images",
annotations_directory_path=f"{dataset.location}/test/labels",
data_yaml_path=f"{dataset.location}/data.yaml",
force_masks=False
) This one is not working
ds =sv.DetectionsDataset.from_yolo(
Hey Piotr, could you please me?
i want to try make object detection on pretrained YoloNasL model but i need to exclude some classes for example class person
///
model = models.get(MODEL_ARCH, pretrained_weights="coco").to(DEVICE)
image = cv2.imread(SOURCE_IMAGE_PATH)
result = list(model.predict(image, conf=0.35))[0]
///
how can i set some properties of model like class_names at give array with class names to that property?
i checked all properties but didnt find out where or how i can exclude some yolo classes
i would be extremely grateful if you try to help
thanks in advance!!