YOLOv8 Vehicle Tracking and Counting.

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone and welcome to the free  vehicle detection and Counting course so   very good detention accounting is a fundamental  tax in computer vision and plays a crucial role   in various applications such as traffic analysis  surveillance and intelligent transportation system   in this course you will learn about the  fundamental techniques and algorithms   used for the dating accounting vehicles from  a video footage we'll cover a topic such as   object detection and tracking by the end of this  course you have a solid understanding of how to   implement these techniques and to be able to  apply them to real world scenarios so if you   are glad about this let's go through this course  together and trust me everything is free at the   end you'll get a video file the code and all  other related resources to play with foreign friends so welcome to the ultimate  vehicle detection and Counting costs   so before you get started our first leg is to  go through the file systems a file should be   using this particular tutorial so you can see  we have cars.mp4 which is the video file will   be detecting these cars in and also count  them as well we also have classes dot TST   so this contains all the various objects you  can rotate in the Google data set okay so we   have sub dot pi and this is the library that we  have base to do counting after detecting discuss   and then this is the Euro file which I'll show  you how to get it and just run a script and it   will be downloaded if that's your first time  you are running your location is okay so with   this out of the way in order not to waste  your time or stress you I'll guess generate   libraries I'll be using in this tutorial  so it would act right righty pip freeze then greater sign then let's put the requirement s.txt so this will contain all the libraries  we'll be using this particular tutorial so you   can see here and we have almost many libraries so  you can just do people install requirement.tst in   order to get this exact library to be using in  the tutorial so I'll put everything including   the code and the video files on my GitHub repo  so the link to all those resources will be in   the video description okay so we'll now go  ahead and create a new file we'll go to file   go to new or we just click on the virtual  environment then we go to new then select   new python file so let's name this vehicle  detection all right verb called detection   and also let's add accounting to read so that  counting the lab correct okay so that's out of the   way we'll now go ahead and import the libraries  we'll be using in this particular tutorial   so for sure we'll be using opcly to write an  important PCV and this is very small so I'll   increase the font for you what we can do  is to hide the other part so that you not   see everything for that so I think it's big  enough now you can increase into once again   so import CV2 WhatsApp or we can breathe easily  from Salt we are importing everything so from   short provide an import power and to import or  yes bring a stairish in front of the Imports   who also import math the math module for some  termination six so let's just import the marks and the next library is numpy  so important note by two okay we have forgetting my life which is  the Euro we'll be using to receive from   ultralytics we are importing yellow so euro  is all caps here don't forget to put that   right so these are the libraries  we'll be using before I forget   see result let's also import CV  zone so simply import zip Zoom okay so we are coming the libraries now The Next  Step here is to read our video file so that we   know the video will be working with so let's go  ahead and do that for that we create a captcha   on here to receive cap and this is about to see  me soon Doc and video card jump so video capture and eat here that you have to specify the  path to our video so I'll bring this back   if I see the name of our video is scarce  dot MP4 so I will quickly type it in here and scarce but MP4 new Skies two instead of cars  we have class 2 so I'll quickly bring that through   here drop it so now we have to take this frame  by frame I have to do something repeatedly we   either use for Loops or why do so we use while  loop here so we say while true with the same   as wire one so let's make this short we want to  get our video feed so we say Reds and our video   frame which we want is a virtual dogs read so  we are reading whatever is in our video capture   and now is that so after this while I show this  video file so to show it we use the series too   but I should function and in here we provide a buffet don't want  to show on and whatever I want to show here   now is the video three right and after  assuming we have to wait it frame with   some seconds we have another function for  that see result as I said so cv2.whitkey that's key I'll give it a weight key of one  so that we can Loop it over and over and over   so I'll go ahead and run this now and you can see boom and I see here's our video file so you can  see the tasks moving so these are the cards will   be detecting my father let's do one thing quick  you can see when I run it the video is not that   long so for some time it will just stop  so let's make this repeat for some number   of times like let's keep it to repeating and  for now you can just come here we'll see if it is red what the hell please to what  load our capture object engine so let's copy this crack here we do without video capture then  after that in the 14 here the video was ready   so with that we'll get a repeated  free so let's let's test this out okay so this is not coming I don't know  let's question okay if Reds honestly if   not Reds so it's not straight  or right first try this out when passing our video file here so it's working  this time now it's repeating over and over and   over it's just repeating the same video frame over  and over but it will never end so that's a simple   hack you can use to repeat a short video free  over and over and over so say if not read what   this rate returns to us is the presence of video  or not so we are saying if we have no video then   we want to re read our video file in and we'll  continue today to repeat over and over okay so now   we are done with that part we have to now focus  on how we can dictate the cars in a video file   so to detect these cars we are going to use the  euro model so we have to first of all load in this   model so go ahead and do the models at the top  here so let's see our model is important foreign provide the name of the model so that we have the  large model the Nando model and the medium model   we have so many of them right here we'll be using  candle because we are running on a CPU if you have   GD you can try the large which gives you much  higher accuracy but slow speed so it's between   speed and accuracy you double speed or accuracy  and it depends the type of problem you really   want to solve so here we are going with the  Nando version so we'll see YOLO clean it and Dot PC which is another first so you might  have an active internet connection to run this   script now because for the first I need to go  and download this particular model for you so   you have to get an active internet connection for  each week but of once you have run it and it has   downloaded the next time you want to use it you  don't need active internet connection because you   have the model so when we check here you can see  I've done this before so I have the model here so   I'm just loading this model here inside the python  script okay so now we've loaded this model here   all we have to do is come in our code and  just try to detect some objects so we just   came inside our code and you can see our results  now please report to this model we have loaded   and what we'll do is I will give our feed to this  model to our frame whatever we are getting from   this video we are giving it to this model so that  it will detect whatever is in our feed so this   case our first we are laying emphasis on the cars  can another argument you can put your strength   now we have our results study this result final  and what I mean by result is our bounding box   our class need and the convenience so assume  it as detected what is the percentage or what's   your confidence value that shows okay  it's a car so all those Styles will be   stored in this variable result so we have to look  through this result some couple of times to get   our information so to look through this we can  say for this for Loop for our info okay results   so whatever information is in which is in this  result I'm gonna put it into our boxes so let's   put it in a variable called boxes which is  important I'm gonna info about the boxes and the next thing you have to do now is  also look through these boxes we have here   then we'll get our founding boss our meditation  confidence in our class name we just see for box in our properties for box in our  boxes we want to get our bounding   box so let's face with the volume of  certain boundary box will get X1 y1 X2 and Y2 so this is equal to our  box dots X Y Nas dot X Y X Y   at in the zero so we have other styles in there  so we are picking whatever is in the index zero   so that we can get our burning boss coordinate so  with this coordinate now we can draw rectangles on   the curls we've detected right but continue to get  other stuff before we do draw the rectangle so we   can get our confidence to engage when we store  in a variable conf so this is equal to our box okay .com right so that will prevents our intentional  questions and we are also taking it at the   first in this we'll do same for our  class name so I'll call this class or class in this link called this class index is  equal to our box dot CLS which means the class the   tabular class detected we also begin these are the  first index option so now before we can draw the   red angle we have to do some calculations or we  have to do some conversions so these points we are   getting here will be floating Point number so we  have to first convert them to integers the same T   applies to the confidence and the class in the zoo  but this comes one step down and convert them to   integers so for the X1 y1 what we can do  is that we can Define them again to H1   y1 X2 and Y2 is equal to integer of whatever  X1 is we do the same for the rest of them okay so now we are done with it conversion for  the bounding box and we'll do the same for it   confidence so for the confidence to use the math  module with imported so we still store it in cons   and we say this it works on our month dot seal so  you don't need that use math.co Mark dot floor two   make it an integer so we have sealing  what to be acid in our confidence here   and what I'll do is multiplied by 100 so that we  get it in actual percentage so if you get like   10 that means it's 10 percent if we get like  20 is 20 percent so we are not using floaty   points here if you want to use quality points  you can just divide all of this by 100 again   and now we signed uh for now we  just use the actual percentage   let's do the same thing for our class  name so we can see our connection needs I'm addressing this is free of work soon  integer of whatever addressing this is   Okay so is to decide so for now I think we can draw a  rectangle for our detected object   using the points we've converted  so we'll use CV2 to a thread angle and in here we are putting  the rectangle one number three   so another office point to the X1 and y1 have a second point to the X to Y2 then now we have to provide a color on  the rectangles will give this zero two   five five and zero so this is green so  we are leaving it in green color and the   thickness of this rectangle want it to be two  so let's run this and check what you'll get boom like I see everything is working so you  can see the first car coming is well detected   wow so this is working fantastic it's working  everything ways you can see so the car is being   detected in Cassie another car passing at the  other side which is also detected so this is   working fine now so let's go ahead and put  the class in these and all those stuffs on   it and also the detection confidence I'll close  this up okay so to do that to get that to our   class name first let me print this out for  you guys to see let's print the classiness so let's do them around this amazing too too soon here so let me  close this up do I see the class in   there so you are getting here is two two  and this is because we are detecting a cup   so if we should open the glasses.tst you can  see car here is at two it's three here but we   know we start from zero so the first one here is  specimity zero bicycle is one and Kai here is two   right so you know it would only  give you the index so we have to use   our classes dot TST to match our index to the  actual object detected so for now if you have   to first read in these classes into our python  file and this is very easy to do so cover the   dog here the my zone is too big we'll come  at the top here and we'll come and load is it   so let's construct an empty list so we say  class names and support to an empty list and we will now read in these  classes in the list so we select open there was the name of the file the name of our  file is glasses.tst and we are opening this in   a ring mode so put R here I are reading it as  s now our class means is equal to F dot read   so we'll read everything into this classes and  want to split each line so when we split lines   right everything will be stored in the classes  what list and to check this we got just come   down here print at first I dance in your  glasses so glass limbs at the face in this   zero and if this work we should get testing in  this case so let's run this we just run it and   Okay so and go to the top you guys see where is  passing realizing what person here and release the   second passive without pressing here exactly that  means we are accurately reading all the classes   into our file we can also get rid of at least 9  here so now let's match everything it's classy so   if you are detecting a car let's make this display  on the at the top of the bounding box that okay we   are detecting the card and to do that we can just  put it we usually soon to do that so we can say see if installed dot put text rate so citizen will  just give us a fancy nice rectangle   will look very attractive and opinion you see that  in a second so we just provide your frame on which   you want to put the rectangle and on the test on  which the test I want to put on this rectangle   so what is the text place instead of string here  and the first you want to put is the name of the   object detected so the name will be our class  names whatever we have read in our class news   and the index of our aggressiveness I said  at the end days of in the interest of our   class Index right and we also want to quote the  detection confidence representing at which our   model believes this is a car or not so also  products are not installed in our variable   and in order to make it look good  we can put a percentage sign to read okay the next thing is the position at where  we want to put it so when you put it right   at the top of the bounding box so now being  a leaks so we want to put in at X1 and what   y now in order for it to appear at the top of  the bonding box we have to add 8 here to X1 if the position is not good we can change it  also we have the thickness of the text so the   thickness will set it to two and if I also  use the skilled value let's do the scale 1.5   and let's run these knobs of check okay so our script is running so you guys see it  looks nice now car is being detected with done   confidence of 80 something this is 70  something so guys this sums up with   our detection we are getting good be testing  now so you can see the model is just accrete right okay so one thing we can also do now is  that we have to focus on whatever I want to   detect because wealth order objects in a real  world scenario order objects passing by so we   have to be specific level whatever I want to  detect so for now we can just close this up   and put up some if statement at the top that  okay if this is this that we are detecting this   so we now put it here before our conversion right  now we can bring it down here so that ain't and   that means we are going to check this based on  the confidence so we can send the confidence up I will print it's somewhere here there will  count down as you can see is our class name   so for that we have to also bring this at the  top this is the class in this so that when we   looked at a particular class we get the bounding  box info and put it on it and this class will   focus on the cars bars and tracks we go on the  road those are the Styles you want to dictate   and if you want to do that then we should last  name in the index of class can also come here you   can put it in object detect objected nurses right  like this it's equal to our application games in the index of Crossing this footage so what we can do is to kind here and change  all these stuff with single camera object is I'll be showing down now continue by writing our  statement here that okay if the object detected   this card track and so on go ahead do whatever  is necessary so I say if our object detects   is equal to cut then you might see all these  files in the TST file here so yeah for blessing on tracks pads and  also cars so we focus on these three   so so far out here the deadly scarf or  an object detected it's a bus and the   final one of our objects we take the it's  a track then we go ahead and do something   right but we have to also do that  based on the confidence so if I add and   but the coincidence is also greater  than let's put this 60 percent we will write and do something so in order  for you to see we got break this down here   oh you are getting an error so let me put it  on the similar I can close this one up here   so what we are going to do is that if our  object detected is a car bus or a drag and   the confidence at least we are detecting it is  above 60 then we avoid go ahead and extract the   bounding box and draw whatever you want to do  and Gradle a straight bonding boys and drawings   on the particular object detected so we can  tap this one in got out of all of these in   and get rid of this piece okay so let's  test this by running it trolley continue okay so now we are only detecting car straps  of bars based on their confidence okay   so uh for now we are done with it object  detection file so we'll move to the tracking   pattern let's assign ID to each object detected  and then we'll focus on maybe how to count them   based on the direction they are going  so I told you earlier on that we'll be   using the search Library which we've  imported here for counting the cast   so first easy to access it ID for each car  they are easy to count the cars and to do   that we have to first create a dictator object  so for this tracker and this is equal to the sort   and each side here we have some parameters  we have to change let's see Max each we can   send it to 20 and that's you know if you have an  apparent test but you can leave them as defaults   all you have to do is to increase the max each  okay so this is how we initialize the tracker   and this tracker accepts some information they  need to give us an extra information so what are   the informations we need to provide for this  tracker and this is what we'll be doing next so what this tracker wants from you is the  bounding boss coordinate you have to give it all   your bounding box coordinate and your confidence  so you can see we have all those things here we   have our confidence we have a bounding box called  needs the X1 X2 wire one and white so we have to   push this to our tracker then our tracker will  do this our new bounding both coordinate and also   provide us with an ID for each dictated object  so for that we can count down here and say okay let's do it right here so let's  tabby and cancel our dictation our adaptations is equal to NP dots empty  so in here we give a link from 0 to 5. right   so now that we have our detection variable we  also go ahead and put the detected coordinates   in this detection so for now we have to come down  after getting the particular object detected so   we can come down here and say Okay so let's  first do it for a new detection because after   the if statement we are going to get new  detergent tool that's it our new detection our new detections is equal to NP dot array and in this area we are going to Pivot  our information so give it X1 y1 then X2   and lastly why should I told you the last thing  it has said this is your confidence so you have   to provide in the application confidence as well  so these are the parameters you have to give to   the source tracker in order to give you the ID  which will be Associated to each and every vehicle is to send this new detection to our   detections array here so for that we'll say  what is it for that we will say our detections is equal to MP dot v stack  will start this vertically then we'll give this our detections and also give it our new detections so we are  first giving it our detection range we've defined   here and then we will add reputations here which  are the coordinates and the confidence we are   getting here okay so this is fine analysis will  be getting it we don't need to draw or all of   these steps and games so we can connect it but we  need this code when we are putting the IDS on them so all we'll do now is count down here and  Sheet our tracker so to initiate our tracker   we can see tracker dot update and we put in our  application Services tracker dot updates then   whatever I want to delete here is I want to test  casual and this will retain you with the results   so save this in tracker results honestly drop result so keep it simple   but so track result is equal to Dragon dot update  stations and this result will contain our ID   and our good news so let's Loop over  the tracker result to get our ID   and our code needs so for that  let's just see for results in track results we'll get  our X1 wire one X2 and why to   then the last thing to give us  is the ID is equal to our results so these are simple you can get all of your  bounding box again and since we have each   bonding box to go ahead and do our conversions  that we did here we have to convert it to integer once again so that we can use it to draw a  new rectangles around the object detected   and now what we'll do is I will add the ID too  so because thank you and add okay so this is cool   and to prove this is working we can draw our  rectangle and also put the ID on the rectangle   instead of so we've done this before and just  come and copy this whole code here and instead   of class names and styles we'll just put ID on  it so let's paste this video and uncomment eight then here instead of putting the  object that stops go clean all of these actually print this up and put our ie so this is cool so let's run this and check  whether we have in the ID at top of every   detected bounding box because we are drawing the  bounding box as well so let's let's try this out you guys see we are getting it one two  so it's this is assigned for five at   the back so we are getting some IDs on them  right so that was fantastic that's working   so now we are getting the ID so how do  we count now that's the next question   so work on the accounting path  which is also very simple to do obviously in order to count  we have to get the line   so that when the vehicle crosses this line we know  okay we can count it so let's say we have a line   somewhere at where the mask is when it crosses  this line then we say okay we can count but how   do we know the vehicle has also crossed that line  that means you have to get a point on the vehicle   so that when that point intersects with the line  on the lock if the vehicle has crossed the line   so for that we'll just divide this bonding balls  into two and they will get the center points   then when you get a center point when  this Center Point crosses the line on   the road where we know okay the vehicle  has crossed the line then we count it   to our to the number of vehicles that have crossed  that particular so let's go ahead and do that so to do that first we need the width and the  height so we'll come somewhere at the top here   right after here and get our Weekender hike so you  see our weeds in our height and to get the width   we said as X2 minus X1  subtract x 1 from X to the same   for the height y two times y one so that  we can get the weights and the Heights so now that I've gotten the width  and the height from this width and   height and gets the center point  of the founding of surrounding   the particular object detected so let's  go on this one c x and see what foreign and this is it works on our X1 so for CS is X1   then we add this to our width and divide it by  two so bring double efficiency signed version   wanted as an integer I will do the same  thing for the height y1 plus the height   where we divide it by two also so with this  information now we can get the middle of the   bounding both surrounding the cars detected and  with this information we can draw a circle that   when it crosses a line below the car has passed  a particular point so we should count it so to   draw this circle we just count down here and draw  it so I'll bring it down it has a CV 2 dot Circle and we'll put this circle on our three and  the points for this circle is c x and c y okay now we specify the radius of  this circle so let's make it five   okay let's make the corner red or let's make  it here let's make the corner here foreign or you type CV two dot field or in caps   the field are in cars so we decided  our Circle let's run this and check out so you guys see we have a yellow circle on the car   particular vehicle detected you  can see the yellow circle on it   you guys see we also have here so it's hard to see  so let's make it red so that we can visualize this okay and we can also increase the radius of  it so that it will be big enough for us to see okay so you now you guys see the red color  detected in the middle of the founding boss of   the vehicle detected okay so now the next thing  is to draw this line so now when this circle   intercept with this line we know the vehicle  is crossing that line so we have to count   right so that's what we'll do because in a  normal road you can see another car passing   somewhere else and it's also having a particular  ID but we don't want to count that car we want   to count cars that passes through a particular  point of the root okay so let's close this up   and draw the line so we just can't hear  then draw our line but before that let's   put the coordinates for the line  so I'll come down here on C line   and then I will give the coordinates of  this line in the list so line support to   list of the first point will start from  320 then I'll go to x y1 which is 350 I'll put this one to add C20 is to remain the C so now your account down here and put the  Knight put it right after our tracker audience   so when you see it's in the line and inside this line water 30.3 when the first  position you want to put it is our line at in days   zero right I want to put the data in the zero  and the same thing you want to do for in this one   so right at index one times one okay so the next   line at in days and the last one line that add in  this screen so we are just getting the index of   the numbers put in here so we started from  zero this system at least zero one two and   three so that's what we are against in Europe  just put it loose coordinates into our line okay let's see okay we didn't create  this and absolute get rid of one here   then we'll close this one up so that's fine and after putting the line you have to select  the color of the line so let's make this color   now here loose we will make it yeah two five  five two five five unless we can begin Also   let's make the thickness with six in this  case so let's run this up and see our line okay since we are adding some arrows  so we see me two dot line layout in   the zero okay so we had an arrow here line  at any zero this is a list so it should be   nowadays for and you see no  simulator so let's run this okay guys see we have our yellow line here  Crossing this road so this is fantastic now   you can count when this circle repeats  where the line is and bypass will count so that's what we are going to use to count  based on the circle intersecting this line   then we can say okay the cars passed down  actually should count it and add it to that   number of cars we've gotten so to do that we'll come down here and jump  without the car is crossing the line Jonas   so that's here so we'll say if our line up in the  zoo right if the light at in a zero is amazed and it's less than our CX so CSS  c y uh the coordinates of our   Circle and also less than our line at in this two so for the sizes we have in  this now that will be in this one   or yeah it is index two so s as is X1 and X   X1 and X2 so X2 if this one is zero this would  be one and this will be two so the X will be   index 2. so if our c x axis of our circle is in  between the lines in the zero and there's two   you have to also check for the y axis too so  we say and our line out in this one so for the   why is this really check for  one because we jump from the   face the first line so from the wires this  is just for the first line so at line one hour line one is also less than our Cy  which is also less than the same line one   flying out in this one so if this is the case then  we'll go ahead and count so to count we have to   initiate the counter here so  we'll cut here and say okay our counter our counter here is equal to zero then what would be is to come down here  and Implement our counter whenever is   Hot Wheels so to increase  our counter yes do count that plus equals to y so now is any time is happens  anytime the circle intersects with the line   you want to increase our counter by one right  so another time we do that we want to change   the line product to see whether we are doing is  correct so anytime The Intercept we want to see   whether truly they have intercepted so for that  regard draw a new line collateral let's meet   let's make it red heavy buses doing something like  being done because Joe and also let's increase the   thickness to 10 so when the car bypasses where the  line is we change the line color and we increment   our account so let's just run it and see where  the line corner is changing at the moment before   increment our counter the car  is coming so nothing change packing chain so what's wrong with  the name if nothing is changing the problem is that whatever the line the  line is just a straight line so we have to   give maybe some box there so that when the car  enters into that region we know it has bypass   well then I will be very thin and sometimes you  do not intercept with our circle on the vehicle so   for that we can say okay we'll add some value to  the Y axis so that when it enters into Gathering   so we'll subtract 20 from the first one and also  at 20. to the second one so last weeks so you   want me to do that so then because I say okay  now it has ended we have to change everything okay so let's test this out let's see  where that it tweaks the stem around let's see what I tweets and clean you guys see  that 10 red because we are giving it some Zoo   without staying red so this is working but  the thing is you have to give it some range   of values it has to be a box like reaching so  that when it enters into that region it will be   detected so this is working line study so let's  go ahead and put our account now on the screen   so we will close this up and now we have to  focus on how to put our count value on a screen so for that we also use CV Zone I've been  to put our account so as I see the result   no clue decks right and in here we  want to put the case rectangle and R3   but then we want to put our contact  so we use a string last usual and   we'll call it our counter in here  then let's put it at the position as with the dead center position  now we can change later so let's give this 600 position 600 by 14  so 6740 on the one as is right at the top and we can bring in this the skill and the  thickness value we can borrow it right from here   and also put it there so I'll put this here so I think let's run this out okay so this is zero at the moment our  counter is zero and the moon so let's see one two three and four so you can see that   it's not counting well you can see probably  and I know why because this bounding box are   being detected on and off on and off so what is  passing through that region it will be counting   in that region till East leaves the region so we  have to come up with an algorithm or a code that   can be able to detect that okay this particular  bounding box this particular idea has already   been counted so we should have counted again and  for that we'll use a simple trick to overcome this   okay so what we'll do is that we'll  count here so here we can write two tacos let's just put two type is it what's  with pepper then whatever the counter is   so what you gotta do is to change  this counter here as a list so we'll turn it to the list and then we'll  check in this list whether whatever the ID is   is being put in that list already so what was it  counter dot count we are going to count whatever we are going to count the ID so we'll count a  particular ID given so if that is one we'll see   how many times one has appeared with the  guys in that Zoo now we've given it and   it's counting one one checking out anytime  one is what there so or equate it to zero   so this is a condition so let's put it  in a condition so we said if our counter if our counter is equal to   of that particular ID is equal to zero then wide  and obtain this so we say our counter built append   they will append that particular I so this is  just a list that will be appending the values   in that particular list so we'll be appending if  I this one will append one if it's two weapon two   and at the end of the day we just check the length  of our counter lists to know the total number   of cars that has passed so instead of putting  counter here we just check the length of a matter so the length fighting the land gives you  the total number of elements on your list   so and that will be the total number of cars so let's run this up and check okay so total is equal to zero   I see how it gives this that wow so it's  working now the first car we just got one two   oh this this working great but for visualization  purpose we can bring this one back to let's see   or let's make these 500 and also increase the  thickness or the skill let's make the skill tool under let's leave the thickness  to and test this out foreign good results so let's see the first guy is  counted he said well this also detected very well okay so we have the Third cast and you can see the  other car on the road now I just detected now it's   not being counted because we are just targeting  a particular route so it is working I see   let's see this one that's for we are getting the  track as five is counting then where this one is   underside of the road let's check boom when it's  working so everything works nicely and this is   just fine with this small line of cool so yeah  we are not even hit 100 nights of code to achieve   this so you guys it is fantastic seven I see  and the eighth of God so please recognize it   is counting nicely and this is just part one  of variable detection and Counting the next   part will do take root as many cars and also a  PC route so that we can add other features to our   code to shoot the keys too so with this is simple  because the road is just straight up and we adjust   there are no other cars passing at the other  side of the road working on it so in order to   do this rule try ourselves with rules that  cars are going to these Direction cars are   coming to this direction then we can just  count on both shoes or something like that   so I hope you've learned something new and I  hope you are going to try this I'll put the code   and every file associated with this particular  tutorial in my GitHub repo so like I have access   to it and play with it and also improve it let  me also have your thoughts in the comment section   and all I can see next is that thanks for  tuning in and I'll see you in the next tutorial
Info
Channel: Tech Watt
Views: 4,155
Rating: undefined out of 5
Keywords:
Id: JDzSYEr05Qg
Channel Id: undefined
Length: 55min 44sec (3344 seconds)
Published: Sun Feb 19 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.