As a mathematician, your analytical geometry skills are admirable. I've been following your work on image processing applications closely and find it crazy. Keep it up Piotr.
I plan to include more of those whiteboard explanations in future videos. I’m just a bit scared that some people will get board of me talking and drawing and just skip to the next section.
@@Roboflow It is very important to know the theoretical part of the project, especially the theoretical part of coding, those who skip to the next part can only advance one step at most, even if they move to the second step, they will not be successful. My personal opinion is to continue in the direction you have planned, congratulations again.
@@Roboflow We need more of the whiteboard explanations more man and possibly detailed explanation or you can suggest some of the pre requisites to understand the concept. The ones who want to be successful would love to watch those.
Great tutorial. Do you think you could make a video that covers implementing re-identification for multi cameras? There is a real lack of tutorials on this topic now that you have covered tracking so well
@@RoboflowShould the camera be looking at the exact same area from different angles? Or we could have one camera watching one street corner and the other looking at the next intersection? I too would be interested in such a tutorial.
Absolutely crazy idea here… could you simulate reidentification with multi camera looking at a hot wheels or slotcar track? Like a scaled down simulation?
Another great video Piotr! I am currently working on a project using Supervision to track the speed of hand movements as part of a hand gesture recognition system, and your tutorials are really timely. I'm detecting the hands, performing some minor perspective transformation as you do here, tracking their movements within certain zones, and calculating their speed over several frames to determine the specific gesture. One issue I'm noticing is that Byte track has a tendency to lose detections even within a small area, and I was wondering if you have any tips for improving tracking performance other than playing with the byte track parameters?
While using the tracker, I noticed that the tracker IDs are not assigned sequentially. Specifically, after tracker ID #6, the next assigned tracker ID was #8. Tracker ID #7 was skipped. This issue can be observed starting at timestamp 22:45 in the video.
Thanks for the video. It is not clear to me how did you calculate the points C and D outside the image boundaries. I understand the y axis value, but how about the x value, how is it calculated?
He doesn't explain it at all but I'm pretty sure he's using the fact that from our view it's a trapezoid but since we know 3 sides we can calculate the 4th which gives the 2 x coordinates
SOURCE = np.array([[1252, 787], [2298, 803], [5039, 2159], [-550, 2159]]) What I'm curious about here is, are the y-coordinates of 787 and 803 different? Shouldn't it be aligned? And I don't know how -550 was derived.
As for C and D. I made assumption that y coordinate is aligned with bottom edge. Than I used A and B points and info about y to figure out x coordinates.
I liked your tutorial on this topic. Its very informative and helpful. Could you tell me your computer specification when you ran this code on your machine ? I noticed it was very smooth.
@@Roboflow for the reference point, Will that possible using 2 cameras (which has a known distance between those two cameras) and creating a fused map from the two cameras and get the distance and speed?
Amazing work! Does anyone know how to estimate/predict distance in a 2d image? I assume the 250m length and 25m width of the road was discovered by doing an online research, I wonder if there is an algorithm or method that would allow one to estimate distance in a 2d image.
Where do I add the configurations for both "vehicles.mp4" and "vehicles-result.mp4" in the ultralytics script? I see that the ultralytics example lists "--source_video_path" and "--target_video-path", but does not specifically include "vehicles.mp4" or "vehicles-result.mp4"?
This video is without a doubt one of the best I've seen, thank you very much. I would like to know if it is possible to calculate the distance of an object from the camera?
Great! Thanks for your clear explanations, showing what is possible. Very inspiring. Subscribed so I hope to see more creative tracking concepts explained.
Hi sir, You are an wonderful instructor I almost watched all of your videos.....can you please show us a way to train a car number detection model.... please that would be a great help...also I would like to know if I finetune yolo model will it forget all its previous training?
License plate OCR is on my TODO list. As for fine tuning. If you start from COCO dataset and that’s fine tune it on dataset with custom classes it will detect custom classes. If you wan to preserve that previous knowledge you would need to train model on dataset that is a combination of your classes and COCO classes.
Your explanations have been incredibly helpful. Thank you sir! I'm currently working on a project where I apply similar tools to estimate the velocity of tennis players. However, I've encountered a challenge: the players often have part of their bodies outside the designated court polygon, which complicates the tracking. Is it possible to define multiple polygons to capture the full range of their movements, or do you have any recommendations for this scenario? Thank you once again for your valuable contribution to the community!
Thank you very much for sharing, it’s really interesting. I would like support for my subject on the analysis of congestion up to measuring the distance of traffic jams
There needs to be correction factor along the path…it’s like drawing the globe on a flat piece of paper. If you watch cars driving away on the right side, their speed is 140 kph and “reduces” to 133 kph: which is very unlikely. I know the trapezoid can be limited to those vehicles closest to the camera but I thought you might like to tweak your algorithm. 👍
Sure 👍🏻 the whole algo is a bit of simplification as we only have 4 points. If road is not perfectly flat and straight some divisions may occur. Still I think it’s one of the complexity/accuracy tradeoff is okey.
Świetna robota Piotr! :) How can I change the annotator color strategy? I know I need to use custom_color_lookup, but I'm stuck. Could you provide me with a simple example? I want to change the annotator's color based on the car's speed. Thanks a lot!
Hey, I am facing error at the part "calculate_dynamic_line_thickness" . I read in the documentation that it has been changed to "calculate_optimal_line_thickness" but even after doing so i am getting the same error. What should i do now? thickness = calculate_dynamic_line_thickness( resolution_wh=video_info.resolution_wh )
Great job as usualy @Piotr. Is there a way to automate the generation of points A,B,C,D because I believe the current implementation requires one to use a mouse to hover around the the 4 points to get their cordinates, that won't be feasible in production.
We created a different tutorial where we show how to count objects crossing the line: ruclips.net/video/OS5qI9YBkfk/видео.htmlsi=O4f26Cs3KnGGFBMC. Here is the code: colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/how-to-track-and-count-vehicles-with-yolov8.ipynb.
Greetings. First of all this is an excellent video, and I learned a lot from it. I just have one question, I'm confused regarding what deque is and why did we use it in our defaultdict?
Cool video! In the Netherlands speedcams measure you average speed for first and last seen for the area. That should provide a much more accurate value. That should be a very small adjustment on what you already made. Would be fun to have running in urban areas. Maybe add another video that shown to capture the license plate or even can detect the car model/type or just car color and log these to plot statistics and what colors/types are speeding or speeding excessively 😅😅😅
HI @, i used my video to run Speed Estimation Open-Source Code,but my video had a little bit proble.could you help me ? issue >> AttributeError: 'NoneType' object has no attribute 'reshape'
Can you explain how you got x values, what formula or the exact method? Other comments mention its not clear and none of your replies have provided a detailed explanation.
When running the code, the video with the annotated frame is very slow. I tried this in my 2 computers one with amd and one with nvidia and both are reproducing the video extremely slowly. Any suggestions?
@Roboflow I am running inference_example.py and ultralytics_example.py from the spped_estimation repo. I realized the video may be too slow due to it being run on the CPU instead of GPU. Is this correct? I am now on my way on downloading CUDA and it's version of pytorch.
Hi i had a question! Firstly, Amazing tutorial! It was a simple explanation of a really useful tool! I want to use this tool for myself, so my question was, will i be able to run this on a windows OS? Or is this specific to linux OS. Thanks to anyone for the help!
Thanks a lot for the awesome video Piotr! One thing I always wonder about applying yolov8 object detection to video is: it seems kind of naive to handle every successive frame as a separate image. What I mean by that is, can't we be more smart about taking information from the previous frame(s) into the inference of the current frame? For example: if there was a car detected somewhere in the camera image, it must be somewhere near that position in the next. What are your thoughts about that?
Hi! Depends what you do. There are some systems. Like parking occupancy, where you can easily get away with running inference every 1 second or even less frequently, and just assume all cars are parked in the same places. Here the cars are moving, and that movement is particularly interesting for us. We are using ByteTrack. This tracker use only box position and overlap to match objects. If you will not run inference sufficiently often, there will be no overlap between the frames, and you loose track.
@ 11:41 for the target you say 0-24 and 0-249 your target is now 24m width and 249m long are you sure you need to subtract 1 ? Not 0-25 width and 0-250 long
i keep vscode on half screen and other half is for youtube, but your code is not properly visible, it's too small to copy from video, also I don't want github links to supervision and inference but direct link to the script file that you have used in this video.
Hello, Piotr Skalski! Hello everyone... I am diving a little into the code here... 😁 Quick question - how do I add an image into a detection-box from Supervision? Thanks
It would be of great help if you could publish a requirements.txt file with the versions of the libraries that you use to make the examples, since newbies like me have a hard time finding the correct versions to everything works correctly, starting from the Python version and then all the others libraries. thank you.
@@Roboflow yes, it should always include versions, to be sure to be still be able to execute the code later (when new version will be out, and maybe not compatible)
i have question will it work in low end device or PC in real time because it will take more time to process and time will increase which means the calculated speed will be less than the actual speed?? and how we tackle it ,if you know please share the solution..By The way nice calculation of prepective calculation
I tried this on my finetuned model. It works for some few seconds and then just stopped. It resumed around 2 mins later and it was detecting even vehicles not within the designated zones. The speed doesn't seem real to me even I had calibrated. Help out.
I am new to this, however, I am thinking of trailing the public, then purchasing the starter subscription to start a side project. For this specific project, how much would it cost to keep it running for 24 hours a day? Also, can you provide me with an estimate cost if this were to be scaled up to 1000 cameras? I am only looking for an idea on the cost to run such a programme on your typical camera over a motorway (like the one in this example). I am assuming it would go through roboflow, but I could be wrong. I am looking for the easiest option. Many thanks.
Easy is a bit relative depending on your skillset and hardware. Here are a few ways to think about it: You can deploy with the hosted API. This requires devices with internet connection. You'd then be able to choose at what rate you hit the API for predictions and that would impact pricing. 24/7 with 1 prediction per second is 86,400 API calls per day or ~32 million per year for each location. 1,000 cameras means ~32 billion per year. You could reduce the rate of predictions to bring down API calls but then you won't have a real-time system if that is what you need. Alternatively, you can deploy your models onto the edge devices using Roboflow Inference and do the same operation but use your own compute. In either scenario, this level of usage requires a conversation with our Sales team to offer you Enterprise pricing roboflow.com/sales
I am facing an issue when I try this notebook AttributeError Traceback (most recent call last) in () 10 11 # annotators configuration ---> 12 thickness = sv.calculate_dynamic_line_thickness( 13 resolution_wh=video_info.resolution_wh 14 ) AttributeError: module 'supervision' has no attribute 'calculate_dynamic_line_thickness'
Hello, I am facing some issues when I used my own video. When no vehicle shown in the video, the trace_annotator and label_annotator are facing error. For trace_annotator it said "IndexError: index 0 is out of bounds for axis 0 with size 0", and for label_annotator it said "ValueError: The number of labels provided (1) does not match the number of detections (3). Each detection should have a corresponding label. This discrepancy can occur if the labels and detections are not aligned or if an incorrect number of labels has been provided. Please ensure that the labels array has the same length as the Detections object." I hope you can help to solve this error, thank you.
@@Roboflow the main issue is my box is not correctly generated i am facing issue with these values [1252, 787], [2298, 803], [5039, 2159], [-550, 2159].
Roboflow has an issue at the time of augmentation the annotation doesn't go according to the augmentation its an big issue. in case of instance segmentation i hope it will be resolved soon!!
I've used Yolov8n model on RPi4. It can only process 1 frame in close to 2 seconds using one core. RPi5 is faster. It depends what is your target fps/precision requiremenst.
"SupervisionWarnings: BoxAnnotator is deprecated: `BoxAnnotator` is deprecated and will be removed in `supervision-0.22.0`. Use `BoundingBoxAnnotator` and `LabelAnnotator` instead" I have install cuda and cudnn but why this happend, can you help me pls!!
Nice video, will there be an update for python 3.11.9? 'Cause when i installed requirements it showed that it only accepted versions from 3.7 to 3.11 , (3.11.9) it is what I use in visual code, thanks regards
I followed this tutorial beginning to end on my laptop (Intel i9 Macbook Pro). It worked great, but was slow because it's not running on GPU. Instead of 'yolov8x-640' I used 'yolov8n-640' which ran faster, since the model is smaller. Is there any way to make these models run more efficiently on CPU?
@@Roboflow I see. So on an Intel Mac, is there any option to speed up inference with OpenVINO? I imagine so, but would be good to see how to do it within a tutorial like this one.
@@Roboflow I just got an M3 MacBook pro. Seeing the same performance as I saw on the Intel Mac. I'm wondering if we only see good performance with these Roboflow tools (models, Inference pkg, Supervision pkg) when using GPUs?
As a mathematician, your analytical geometry skills are admirable. I've been following your work on image processing applications closely and find it crazy. Keep it up Piotr.
I plan to include more of those whiteboard explanations in future videos. I’m just a bit scared that some people will get board of me talking and drawing and just skip to the next section.
@@Roboflow It is very important to know the theoretical part of the project, especially the theoretical part of coding, those who skip to the next part can only advance one step at most, even if they move to the second step, they will not be successful. My personal opinion is to continue in the direction you have planned, congratulations again.
@@Roboflow We need more of the whiteboard explanations more man and possibly detailed explanation or you can suggest some of the pre requisites to understand the concept. The ones who want to be successful would love to watch those.
@@Roboflow Hi, any ideas on how the coordinates of the region of interest were computed?
Great tutorial. Do you think you could make a video that covers implementing re-identification for multi cameras? There is a real lack of tutorials on this topic now that you have covered tracking so well
Hi! It's Piotr from the video here. I'd love to make it. I just don't have data that I could use to make it :/
@@SkalskiP what kind of data do you need? I might be able to help.
Two or more videos looking at area from different perspectives at the same time so we could use it as example in video.
@@RoboflowShould the camera be looking at the exact same area from different angles? Or we could have one camera watching one street corner and the other looking at the next intersection? I too would be interested in such a tutorial.
Absolutely crazy idea here… could you simulate reidentification with multi camera looking at a hot wheels or slotcar track? Like a scaled down simulation?
Another great video Piotr! I am currently working on a project using Supervision to track the speed of hand movements as part of a hand gesture recognition system, and your tutorials are really timely. I'm detecting the hands, performing some minor perspective transformation as you do here, tracking their movements within certain zones, and calculating their speed over several frames to determine the specific gesture. One issue I'm noticing is that Byte track has a tendency to lose detections even within a small area, and I was wondering if you have any tips for improving tracking performance other than playing with the byte track parameters?
ByteTrack is using IoU to match boxes between frames. So if your hand is moving fast you can loose tracking.
While using the tracker, I noticed that the tracker IDs are not assigned sequentially. Specifically, after tracker ID #6, the next assigned tracker ID was #8. Tracker ID #7 was skipped. This issue can be observed starting at timestamp 22:45 in the video.
Thanks for the video. It is not clear to me how did you calculate the points C and D outside the image boundaries. I understand the y axis value, but how about the x value, how is it calculated?
He doesn't explain it at all but I'm pretty sure he's using the fact that from our view it's a trapezoid but since we know 3 sides we can calculate the 4th which gives the 2 x coordinates
Thank you so much for this tutorial. Your instruction is very great
Thanks a loooot!
This is super helpful and awesome. Thank you so much for taking the time!
Thank you for such free education! Please where did you learn supervision?
Edit: I learnt that you're the creator of supervision
He created it
Oooooohhh! No wonder@@mileseverett
haha yup! I created it. Or I still create it every day. I hope you find it useful ;)
I am really grateful for your creation and videos. I use it where I work, makes life so much easier@@SkalskiP
10:17 Here you find the coordinates for A. Is this making an assumption? Or did you find out about it through mouse events?
SOURCE = np.array([[1252, 787], [2298, 803], [5039, 2159], [-550, 2159]]) What I'm curious about here is, are the y-coordinates of 787 and 803 different? Shouldn't it be aligned?
And I don't know how -550 was derived.
A and B is easy. You can do it through mouse event for example. You can also do it with this tool: roboflow.github.io/polygonzone
As for C and D. I made assumption that y coordinate is aligned with bottom edge. Than I used A and B points and info about y to figure out x coordinates.
I liked your tutorial on this topic. Its very informative and helpful. Could you tell me your computer specification when you ran this code on your machine ? I noticed it was very smooth.
Awesome presentation! Thanks for sharing. One question, since speed is detected, Is there a way to get the distance to the camera instead of speed?
Well we ould need to know the distance from camera to some reference point.
@@Roboflow for the reference point, Will that possible using 2 cameras (which has a known distance between those two cameras) and creating a fused map from the two cameras and get the distance and speed?
@@Roboflow Can you provide relevant examples
Piotr, great video, can you provide instructions on how to make it realtime ?
Any specific problems you face when you try to run in real-time?
These application videos are amazing!!
Thanks a lot!
Amazing work! Does anyone know how to estimate/predict distance in a 2d image? I assume the 250m length and 25m width of the road was discovered by doing an online research, I wonder if there is an algorithm or method that would allow one to estimate distance in a 2d image.
Do you mean without passing any information? Fully automatically?
@@Roboflow Fully automatic. That's what I thought. If that's the case, it's perfect
Where do I add the configurations for both "vehicles.mp4" and "vehicles-result.mp4" in the ultralytics script? I see that the ultralytics example lists "--source_video_path" and "--target_video-path", but does not specifically include "vehicles.mp4" or "vehicles-result.mp4"?
Take a look here: github.com/roboflow/supervision/tree/develop/examples/speed_estimation
Example commands are in the README.
This video is without a doubt one of the best I've seen, thank you very much.
I would like to know if it is possible to calculate the distance of an object from the camera?
Thanks a lot! Such a big complement. Unfortunately not. We like need some reference distance from camera to some point.
Thanks a lot! Such a big complement. Unfortunately not. We like need some reference distance from camera to some point.
That's great! Thank you, bro!
My pleasure!
Thanks Peter, That is great tutorial. :)
Thanks a lot!
Congratulations by this video, greatings from Santiago!
Thanks a lot! Greetings from Poland!
Great! Thanks for your clear explanations, showing what is possible. Very inspiring. Subscribed so I hope to see more creative tracking concepts explained.
We will probably release video on time in zone next :) You can keep track of what I’m doing here: twitter.com/skalskip92
I keep thinking about tracking ants, we might discover a lot of interesting things. @@Roboflow
One of the best channels... I love u piotr
Thanks a lot! Stay tuned for next video. Time in zone is coming soon.
Hi sir, You are an wonderful instructor I almost watched all of your videos.....can you please show us a way to train a car number detection model.... please that would be a great help...also I would like to know if I finetune yolo model will it forget all its previous training?
License plate OCR is on my TODO list. As for fine tuning. If you start from COCO dataset and that’s fine tune it on dataset with custom classes it will detect custom classes. If you wan to preserve that previous knowledge you would need to train model on dataset that is a combination of your classes and COCO classes.
@Roboflow thanks for your reply
... looking forward to it...hope you will make it soon
@@Roboflow ... looking forward to it...hope you will make it soon
Your explanations have been incredibly helpful. Thank you sir!
I'm currently working on a project where I apply similar tools to estimate the velocity of tennis players. However, I've encountered a challenge: the players often have part of their bodies outside the designated court polygon, which complicates the tracking. Is it possible to define multiple polygons to capture the full range of their movements, or do you have any recommendations for this scenario?
Thank you once again for your valuable contribution to the community!
What would your advice be if my video source is coming from a moving vehicle (dashcam) thus there is also a relative velocity
may i know which version of supervision that i need to install into my pycharm
0.19.0 would be the best
Thank you very much for sharing, it’s really interesting. I would like support for my subject on the analysis of congestion up to measuring the distance of traffic jams
Very cool video! Btw which drawing app do you use?
I'd like to know too!
There needs to be correction factor along the path…it’s like drawing the globe on a flat piece of paper.
If you watch cars driving away on the right side, their speed is 140 kph and “reduces” to 133 kph: which is very unlikely.
I know the trapezoid can be limited to those vehicles closest to the camera but I thought you might like to tweak your algorithm.
👍
Sure 👍🏻 the whole algo is a bit of simplification as we only have 4 points. If road is not perfectly flat and straight some divisions may occur. Still I think it’s one of the complexity/accuracy tradeoff is okey.
@@Roboflow Can I add related functions
For getting higher accuracy speed, can we take distance with camera calibration parameters ?
Hey,is it possible to intergrate these models to a database,ie detected vehicle speed
Świetna robota Piotr! :) How can I change the annotator color strategy? I know I need to use custom_color_lookup, but I'm stuck. Could you provide me with a simple example? I want to change the annotator's color based on the car's speed. Thanks a lot!
Is rtsp source also supported through supervision? Or do you have a plan?
Not your but we have a plan to do it. But you can combo supervision with OpenCV to do it even now.
Hey, I am facing error at the part "calculate_dynamic_line_thickness" . I read in the documentation that it has been changed to "calculate_optimal_line_thickness" but even after doing so i am getting the same error. What should i do now?
thickness = calculate_dynamic_line_thickness(
resolution_wh=video_info.resolution_wh
)
use calculate_optimal_line_thickness and also calculate_optimal_text_scale
Great job as usualy @Piotr. Is there a way to automate the generation of points A,B,C,D because I believe the current implementation requires one to use a mouse to hover around the the 4 points to get their cordinates, that won't be feasible in production.
There is no way to reliably automate this. But you only need to do it once for each camera. So you can save the configuration in JSON and load it.
is there a way to detect the objects speed while the camera thats capturing the vedio is in motion?
I’m afraid not.
Is there a way to store the velocities of each car in a file?
There's some cool stuff I reckon you can do with the Deepsense 6G dataset.
Crazy how object detection is just getting better and better!
That’s right. I’m waiting for zero-shot detectors to be so good we will not need to train models anymore.
very well done!
Hello, I have run tracking and counting vehicles in addition to speed estimation and it's true , but I want a code that combines both. Do you have it?
We created a different tutorial where we show how to count objects crossing the line: ruclips.net/video/OS5qI9YBkfk/видео.htmlsi=O4f26Cs3KnGGFBMC. Here is the code: colab.research.google.com/github/roboflow-ai/notebooks/blob/main/notebooks/how-to-track-and-count-vehicles-with-yolov8.ipynb.
I understand but i mean the combination of count objects crossing the line and speed estimation in one output ?
Best regards 😄
How ViewTransformer for image with 1920x1080 resolution?
'NoneType' object has no attribute 'reshape' with 1920x1080 resolution.
Could you create the issue and describe your problem here: github.com/roboflow/supervision/issues?
Can this be a camera in motion, I guess not without stereo?
Nope. This approach applies only to static cameras
Greetings.
First of all this is an excellent video, and I learned a lot from it.
I just have one question, I'm confused regarding what deque is and why did we use it in our defaultdict?
Nice .Could you please share youtube video link on how to run this notebook on AWS Sagemaker Studio.
Did you faced any issues trying to run it on AWS?
Cool video! In the Netherlands speedcams measure you average speed for first and last seen for the area. That should provide a much more accurate value. That should be a very small adjustment on what you already made. Would be fun to have running in urban areas.
Maybe add another video that shown to capture the license plate or even can detect the car model/type or just car color and log these to plot statistics and what colors/types are speeding or speeding excessively 😅😅😅
Good work from India
HI @, i used my video to run Speed Estimation Open-Source Code,but my video had a little bit proble.could you help me ?
issue >>
AttributeError: 'NoneType' object has no attribute 'reshape'
Could you create issue here: github.com/roboflow/supervision/issues and give us a bit more details?
@@Roboflow OK ,thank you. I created issue
Can you explain how you got x values, what formula or the exact method? Other comments mention its not clear and none of your replies have provided a detailed explanation.
When running the code, the video with the annotated frame is very slow. I tried this in my 2 computers one with amd and one with nvidia and both are reproducing the video extremely slowly. Any suggestions?
which script from repo are you running?
@Roboflow I am running inference_example.py and ultralytics_example.py from the spped_estimation repo. I realized the video may be too slow due to it being run on the CPU instead of GPU. Is this correct?
I am now on my way on downloading CUDA and it's version of pytorch.
Hi i had a question! Firstly, Amazing tutorial! It was a simple explanation of a really useful tool! I want to use this tool for myself, so my question was, will i be able to run this on a windows OS? Or is this specific to linux OS. Thanks to anyone for the help!
I think we will release a Colab notebook, to help users like you.
@@Roboflow That would be great! Thanks!
i need to get the class id for every object +its tracking id ? need code please
Thanks a lot for the awesome video Piotr! One thing I always wonder about applying yolov8 object detection to video is: it seems kind of naive to handle every successive frame as a separate image. What I mean by that is, can't we be more smart about taking information from the previous frame(s) into the inference of the current frame? For example: if there was a car detected somewhere in the camera image, it must be somewhere near that position in the next. What are your thoughts about that?
Hi! Depends what you do. There are some systems. Like parking occupancy, where you can easily get away with running inference every 1 second or even less frequently, and just assume all cars are parked in the same places. Here the cars are moving, and that movement is particularly interesting for us. We are using ByteTrack. This tracker use only box position and overlap to match objects. If you will not run inference sufficiently often, there will be no overlap between the frames, and you loose track.
how do i run the whole code
in vscode
@ 11:41 for the target you say 0-24 and 0-249 your target is now 24m width and 249m long are you sure you need to subtract 1 ? Not 0-25 width and 0-250 long
No :) Let me explain. Target will end up as image 25 x 250 pixels. And pixels are numbered from 0 to 24. So I still have 25 pixels.
Supervision is super useful. I have been using it in my computer vision workflow. I now prefer it over opencv. Keep up with the good work Piotr.
This is probably the biggest complement I could get!
i keep vscode on half screen and other half is for youtube, but your code is not properly visible, it's too small to copy from video, also I don't want github links to supervision and inference but direct link to the script file that you have used in this video.
github.com/roboflow/supervision/tree/develop/examples/speed_estimation
Is there a way to count the time of object that in the zone?
Hello, Piotr Skalski! Hello everyone...
I am diving a little into the code here... 😁
Quick question - how do I add an image into a detection-box from Supervision? Thanks
It would be of great help if you could publish a requirements.txt file with the versions of the libraries that you use to make the examples, since newbies like me have a hard time finding the correct versions to everything works correctly, starting from the Python version and then all the others libraries. thank you.
So you would like me to update this requirements.txt and include versions? github.com/roboflow/supervision/tree/develop/examples/speed_estimation
@@Roboflow yes, it should always include versions, to be sure to be still be able to execute the code later (when new version will be out, and maybe not compatible)
May I ask if my area is an irregular graph, is it also supported? Thank you 请问一下,如果我的区域是一个不规则的图形,是否也支持,谢谢
Could you explain what do you mean by irregular?
@@Roboflow It resembles an irregular pattern composed of multiple points and is not a rectangle
i have question will it work in low end device or PC in real time because it will take more time to process and time will increase which means the calculated speed will be less than the actual speed?? and how we tackle it ,if you know please share the solution..By The way nice calculation of prepective calculation
This is such a good question. I’m working on new video covering calculating time. I will answer this question soon!
Great video .....just a tiny issue , when i ran the code the line annotator was not taking trucks into account....can u help me with that
Do you mean that truck was not detected or not counted in?
Not counted
cool, can you make with plate detection?
I tried this on my finetuned model. It works for some few seconds and then just stopped. It resumed around 2 mins later and it was detecting even vehicles not within the designated zones. The speed doesn't seem real to me even I had calibrated. Help out.
That is unique type of tutorial I have seen so far and thanks for such a good content.
We plan to make more of those longer videos this year. :)
does he provided complete project with code? please tell i wanna use it in my college project
I am new to this, however, I am thinking of trailing the public, then purchasing the starter subscription to start a side project. For this specific project, how much would it cost to keep it running for 24 hours a day? Also, can you provide me with an estimate cost if this were to be scaled up to 1000 cameras?
I am only looking for an idea on the cost to run such a programme on your typical camera over a motorway (like the one in this example). I am assuming it would go through roboflow, but I could be wrong. I am looking for the easiest option.
Many thanks.
Easy is a bit relative depending on your skillset and hardware. Here are a few ways to think about it:
You can deploy with the hosted API. This requires devices with internet connection. You'd then be able to choose at what rate you hit the API for predictions and that would impact pricing. 24/7 with 1 prediction per second is 86,400 API calls per day or ~32 million per year for each location. 1,000 cameras means ~32 billion per year. You could reduce the rate of predictions to bring down API calls but then you won't have a real-time system if that is what you need. Alternatively, you can deploy your models onto the edge devices using Roboflow Inference and do the same operation but use your own compute. In either scenario, this level of usage requires a conversation with our Sales team to offer you Enterprise pricing roboflow.com/sales
@@Roboflow Thank you for your prompt reply. I will get in touch shortly.
Simply excellent
Thanks a lot!
Can you please explain how you determined the coordinates of ABCD ([1252, 787],
[2298, 803],
[5039, 2159],
[-550, 2159])
I wonder, too. Maybe it was manually marked
you are making videos on latest technology in the fields cv , is interesting knowledgeable be continue like that. thankyou!
terimakasih bang bule, thankyou sm brok buleee
I am facing an issue when I try this notebook
AttributeError Traceback (most recent call last)
in ()
10
11 # annotators configuration
---> 12 thickness = sv.calculate_dynamic_line_thickness(
13 resolution_wh=video_info.resolution_wh
14 )
AttributeError: module 'supervision' has no attribute 'calculate_dynamic_line_thickness'
Hello, I am facing some issues when I used my own video. When no vehicle shown in the video, the trace_annotator and label_annotator are facing error. For trace_annotator it said "IndexError: index 0 is out of bounds for axis 0 with size 0", and for label_annotator it said "ValueError: The number of labels provided (1) does not match the number of detections (3). Each detection should have a corresponding label. This discrepancy can occur if the labels and detections are not aligned or if an incorrect number of labels has been provided. Please ensure that the labels array has the same length as the Detections object." I hope you can help to solve this error, thank you.
Thank yo so much for this video. It greatly simplified the entire speed estimation process
Thank you!
gys any ideas on what new features we can add to this?
I am facing issue with Perspective Transformation for my video. can you help me with that?
What’s the problem?
@@Roboflow the main issue is my box is not correctly generated i am facing issue with these values [1252, 787],
[2298, 803],
[5039, 2159],
[-550, 2159].
@@hammadyounas2688 please, ask your question here: github.com/roboflow/supervision/discussions. We will try to help you.
@@Roboflow Okay.
what if in a curve road?
Very nice
Thank you so much!
Roboflow has an issue at the time of augmentation the annotation doesn't go according to the augmentation its an big issue. in case of instance segmentation i hope it will be resolved soon!!
Sir please make a tutorial on how to deploy any kind of Computer Vision project in free
Where would you like to deploy it?
@@Roboflow Sir Anywhere except paid cloud platform like AWS, Heroku,etc.
Interesting 👍🏿
Good work! Keep it poppin' :)
I am planning to take a workshop on supervision in my college
Is there a workshop on supervision in your college?
Would this work on Raspberry Pi 5 taking in a live camera feed do you think?
I've used Yolov8n model on RPi4. It can only process 1 frame in close to 2 seconds using one core. RPi5 is faster. It depends what is your target fps/precision requiremenst.
How can I watch this in real time, that is, how can I translate the image from a camera into this at the same time? PLEAS help meee
Thank you for your efforts. The video is perfect and very well explained. Great work !
Thank you! Awesome to hear people notice the effort.
Can we do this in real time ?
We can!
"SupervisionWarnings: BoxAnnotator is deprecated: `BoxAnnotator` is deprecated and will be removed in `supervision-0.22.0`. Use `BoundingBoxAnnotator` and `LabelAnnotator` instead" I have install cuda and cudnn but why this happend, can you help me pls!!
Nice video, will there be an update for python 3.11.9? 'Cause when i installed requirements it showed that it only accepted versions from 3.7 to 3.11 , (3.11.9) it is what I use in visual code, thanks regards
Can you publish the source code to implement this project in real time?
The course code is published on GitHub. The link is in the description of the video.
I followed this tutorial beginning to end on my laptop (Intel i9 Macbook Pro). It worked great, but was slow because it's not running on GPU. Instead of 'yolov8x-640' I used 'yolov8n-640' which ran faster, since the model is smaller. Is there any way to make these models run more efficiently on CPU?
It is possible to run faster on MacBooks but with M1
@@Roboflow I see. So on an Intel Mac, is there any option to speed up inference with OpenVINO? I imagine so, but would be good to see how to do it within a tutorial like this one.
@@Roboflow I just got an M3 MacBook pro. Seeing the same performance as I saw on the Intel Mac. I'm wondering if we only see good performance with these Roboflow tools (models, Inference pkg, Supervision pkg) when using GPUs?
Thank you too much. Can you do the same application with yolo v9 for me ?
Amazing tutorial. Learnt something new today. Thanks a lot.
I absolutely love to hear that!
where is the whole code, like in the video ?
everything is on github
This is amazing! Thank you! Been wanting to do this for years. Now I’m going to do it!
Glad you like it! Let me know how it goes!
hey my brother is it a way to set up your python app with raspberry pi
Yup. But it will be slow… probable 1-5 fps.
@@Roboflow do you think it should be good to identify something from a good distance
This is great; I've wanted to do this for a long time.
Now we can donut together haha
i trie to train custom model object detection with transformer in google coolab , but i used your tipp it does not work
Hi. I’m not really sure what you are talking about? Could you be more specific?
Cooles Video
Thanks a lot! I spend a lot of time making it.
Can anyone help me run this code :((( I don't know how to use pycharm.