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 RUclips 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.
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 ]
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?
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.
@@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?
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?
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
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?
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
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()
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!!
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 😅
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!!
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
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
best yolo NAS custom dataset tutorial , ever !
Haha thanks a lot 🙏🏻! Part 2 coming soon!
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
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 RUclips guides which are easy and fast to understand. It's that price point to image ratio that is truly killing me here.
please make a video on model selection, its a great idea!
That’s what I wanted to hear 🙏🏻
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.
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
Thanks Peter. I just start to try it on my dataset.
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.
Amazing channel. I am enjoying your work a lot. Keep it up
Thanks a loooot!
super good video! very interested in the model selections
Awesome! Thanks a lot!
As usual 🎉🎉 Hero
Thanks a lot! 🙏
Is there any activation function used in YOLO NAS. If yes, which one and where can I find that information?
Also, my dataset images are of size not equal to 640x640 , where can I apply this in the coding?
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!
How to train this on 8 GPUs on DGX A100?
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
Great! How to resume to training process if it pauses.
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.
is there any need to define TensorBoard ? or it's automatically connected when model is finished ?
You should make a video on training the model. The entire process till it achieves good result
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?
can you explain how to train on my dataset , how to organize images and ground truth. also how i add different augmentations.
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 !
hey bro can we do semantic segmentation using the new YOLO NAS model
Nope. It only gives you object detection. At least for now.
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?
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.
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?
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 RUclips videos
Is it possible to connect archives in my local Notebook to googoe colab? Or you just have all in Google drive?
What extension can my custom dataset have? I saw you using yolov5 as extension, is yolov8 also valid??
Does this work in detecting real time with camera? And If i can ask, how to?
may i know how to prepare the data before do training with my own images?
Now the model can't train the model, is the recent update problems?
Please post the second part❤❤
Hi, it is Peter from the video! 👋 I hope I will be able to give you this video.
can you cover Llava on video streaming
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
cant open the link anymore
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.
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?
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()
pls make video on model selection
Looks like we will make one within the next 2 weeks. Stay tuned!
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!
where is pt file downoad
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?
pt file ?
Could you be a bit more specific?
part 2
Soon!
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!!
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(