Video Data Processing with Python and OpenCV

Sdílet
Vložit
  • čas přidán 8. 05. 2024
  • In this video tutorial you will learn how to work with video data in python and openCV. Video processing and data analysis has many applications in machine learning, including object detection, pose estimation, and object tracking. Before you can run machine learning on videos you first need a good understanding of how to read and write video files using python and openCV. This tutorial walks through the basics, step by step, with some examples.
    Notebook used in this video: www.kaggle.com/code/robikscub...
    Timeline:
    00:00 Video Data & Python
    01:08 What is Video Data?
    04:08 Getting Setup
    06:19 Converting Videos
    08:23 Displaying Video
    09:13 Video Metadata
    11:32 Pulling Images
    17:31 Add Annotations
    25:48 Saving processed video
    31:33 Summary
    My other videos:
    Speed Up Your Pandas Code: • Make Your Pandas Code ...
    Speed up Pandas Code: • Make Your Pandas Code ...
    Intro to Pandas video: • A Gentle Introduction ...
    Exploratory Data Analysis Video: • Exploratory Data Analy...
    Working with Audio data in Python: • Audio Data Processing ...
    Efficient Pandas Dataframes: • Speed Up Your Pandas D...
    * CZcams: youtube.com/@robmulla?sub_con...
    * Discord: / discord
    * Twitch: / medallionstallion_
    * Twitter: / rob_mulla
    * Kaggle: www.kaggle.com/robikscube
    #python #computervision #datascience

Komentáře • 70

  • @VauRDeC
    @VauRDeC Před 10 měsíci +1

    This video saved my week-end ! Thank you so much for it !

  • @user-lt2px3ft4p
    @user-lt2px3ft4p Před 2 měsíci

    Thank you! You explained very clearly on the code and how you did it. ❤

  • @sharau.99
    @sharau.99 Před 10 měsíci

    Great explanation! Keep it up 👍

  • @miodice3
    @miodice3 Před 6 dny

    really neat overview thank you

  • @LeoSo
    @LeoSo Před rokem +1

    Thank you for the tutorial! I'm interested in processing and analyzing sport video using Python. Google brought me here. I like the presentation in kaggle. Keep up your good work. I will check out all your videos!

    • @robmulla
      @robmulla  Před rokem

      Thanks so much for the feedback. I’m glad you found this helpful. Please share the link with anyone else you think might find it helpful.

  • @vaijrb
    @vaijrb Před rokem +1

    Very well done! Thank you for making this video.

    • @robmulla
      @robmulla  Před rokem +1

      Glad it was helpful! If you know of anyone who might learn from it please think about sharing the link.

  • @DataCraftsman
    @DataCraftsman Před rokem +5

    Love your work as always. You should do a follow up video on using a neural network to do the labeling. I imagine it would just be some sort of CNN that outputs the coordinates for the box using the bounding pixels of the detected shapes.

    • @RobertMulla
      @RobertMulla Před rokem +1

      Thanks! Great minds think alike. My next video will be a quick introduction to object detection using yolov5 and I run it on this dataset.

    • @DataCraftsman
      @DataCraftsman Před rokem +1

      @@RobertMulla Awesome! Looking forward to it.

  • @MrEck95
    @MrEck95 Před 8 měsíci +1

    Hey thanks for the very insightful video, if I wanted to train a model with video data, do you have any recommendations on the simplest way to generate the csv file of labels and data for the segmented objects we want to annotate?

  • @linuxmill
    @linuxmill Před rokem +1

    it was beautiful watching a quaestion get so quickly converted quantitaive analysis that is easily visualized.

    • @robmulla
      @robmulla  Před rokem

      Glad you liked it. Thanks for watching and let me know if there is anything I can do better.

  • @ThanhHa-zo7lp
    @ThanhHa-zo7lp Před 8 měsíci

    Great work. Nice perform. Many thankss for sharing!

  • @pavlostsoukias8147
    @pavlostsoukias8147 Před rokem +1

    Our Data professor is back !!

    • @robmulla
      @robmulla  Před rokem +3

      Haha. I'm just trying to create content about things I find interesting and I hope people will learn from!!

  • @user-bm4vj2jr9e
    @user-bm4vj2jr9e Před měsícem

    Wow amazing thank you

  • @vivekpadman5248
    @vivekpadman5248 Před rokem +2

    This is absolutely a great tutorial for beginners. Learnt a lot and the way you explain is soo perfect. I'd definitely share it with my friends.
    Can you if possible make video on complete kaggle project walk through and how you approach the problem?

    • @robmulla
      @robmulla  Před rokem +1

      Awesome, thank you for the feedback. Please do share it with friends and/or on platforms that you think people might learn from it. I actually recorded a video walking through a kaggle competition but never released it. I do have a competition starter guide video you should check out.

  • @scullyy
    @scullyy Před rokem

    This seems like what I need to get rid of flickering in my video! First I'd need to automate detecting a completely black frame (responsible for the flickering) and then copy paste the nearest valid frame (one that isn't black) onto the black frame. Wish me luck :)

  • @nisheethsrivastava8345
    @nisheethsrivastava8345 Před 9 měsíci

    Hi Rob
    I am New to the video processing and the video is very helpful. I wondering that how did you get the csv file for video so that category of the images could be built. I need to use this method to create the labels. I am using Wowza streaming server to stream the video to the analytics application where i have to capture the stream & read the stream. I am stuck at category of objects. please let me know how it can be used

  • @vijayalaxmiise1504
    @vijayalaxmiise1504 Před rokem +1

    Thank you so much sir. It would be great help if you release some videos on Action Recognition, Detection , Classification in video

    • @robmulla
      @robmulla  Před rokem

      Noted! Have you seen my video on object detection?

  • @CarolinaMunoz-vy3ni
    @CarolinaMunoz-vy3ni Před rokem +1

    I haven't watched it but I already like it

    • @robmulla
      @robmulla  Před rokem +1

      Thanks Carolina! Let me know if you have any feedback once you have a chance to watch.

    • @CarolinaMunoz-vy3ni
      @CarolinaMunoz-vy3ni Před rokem

      @@robmulla thanks!

  • @nkrumahminsinga1541
    @nkrumahminsinga1541 Před 10 měsíci

    Thank you for this exercise, it was very helpful but please how am i supposed to do if i don't have labels datasets or how can i buid it? thank you

  • @pleasedont2270
    @pleasedont2270 Před rokem +1

    Me too on my first page man, good luck

    • @robmulla
      @robmulla  Před rokem

      Love it. Hopefully it shows up for more people!

  • @wooprime3482
    @wooprime3482 Před rokem +2

    Ooooh, this appeared on my CZcams front page, are you gonna finally pop off?

    • @robmulla
      @robmulla  Před rokem

      Fingers crossed! 😅 - Thanks for commenting and (hopefully?) watching too.

  • @ghadadodo3865
    @ghadadodo3865 Před 7 měsíci

    Could you give us the link of the video sir?
    And thanks for this video ✅

  • @yoonseokheo9487
    @yoonseokheo9487 Před rokem +1

    Thanks for your amazing work sharing. I have a question about annotation.
    As far as I know, you have mentioned that the frame index(frameIndex) should be transformed with respect to the video frame.
    So you set the value as 11.9 . I want to know how to calculate the value. Thanks in advance.
    + I am just wondering if you have any plans of "fiftyone" package which is also an interesting toolkit for vision datsets.

    • @robmulla
      @robmulla  Před rokem

      Not sure I exactly follow your question. But I need to look into that package and might make a video.

    • @yoonseokheo9487
      @yoonseokheo9487 Před rokem

      ​@@robmulla Thanks for answering my comment, and let me clarify my question.
      In the video(19:08), You add another column named "video frames" by transforming the column named "frameIndex" multiplied by 11.9.
      I am confused about the reason for multiplying the value(11.9) and how the value is set up.

  • @Az-jt2zp
    @Az-jt2zp Před 7 měsíci +1

    So did someone go in manually and identify the labels and draw the frames?

  • @andrewl.4277
    @andrewl.4277 Před 7 měsíci

    Legend has it he's still getting to the fun part. (alright and now to the fun part....3 min later....alright and now to the fun part) jokes. awesome video

  • @upendrad6081
    @upendrad6081 Před měsícem

    Where did you got the annotation label dataset CSV?

  • @RichardGreco
    @RichardGreco Před rokem +1

    What are the parameter sizes for width and height? Seems arbitrary you choose 500 or 700. Why not 5000? What does the number refer to. I have the same question for matplotlib plot sizes.

    • @robmulla
      @robmulla  Před rokem

      Great question. I think the height and width you are referring to is with the IPython display module. I found the documentation about it and this value just relates to the html height and width: github.com/ipython/ipython/blob/master/IPython/core/display.py#L1109-L1115
      I believe this is just the number of pixel values displayed in the website. I might have not been clear about it, but this is different than the actual video image resolution, it's only for displaying the video in the notebook. Hope that helps!

    • @RichardGreco
      @RichardGreco Před rokem +1

      @@robmulla Thank you. You were clear about the actual video resolution. I thought the answer would have been more arcane, but as always, the answer is in the documentation!

  • @fenfire3824
    @fenfire3824 Před 4 měsíci

    Hi, i am looking for some libraries or even frameworks on how i can find graphical items on my screen, like you can do in Auto it.
    E.G. if you play a video game and you want to automate pressing buttons or keys. I did it in the past in Auto It but I don't like Auto it that much and would like to do the same in Python maybe. Or even Java or C#.
    Is it the same as object tracking? Is OpenCV the right library for that? My problem is, it is difficult for me to find the correct documentary or tutorials because the whole topic is quite new for me and i don't know all the terminology. I am also not english, i can speak english very well, but it makes researching more difficult.
    Could you give me some hints on what i have to look for? It is not object tracking in video or images, it should me tracking from screen capturing.
    I would like to do lots of stuff with it just to learn it. Maybe something like a simple bot who can play a fighting game or a click bot for simple games. Just to learn the basics.

  • @aomo5293
    @aomo5293 Před rokem +1

    Hi
    Thank you for the great video.
    Total frames is 2393.
    On each 100 frame you displayed 1 image.
    That s why you have
    2393%100=24 images
    If i want to extract 30 images
    I should do
    2393%80
    Is it true?

    • @robmulla
      @robmulla  Před rokem +1

      I think you might be right now I’m not completely sure.

    • @aomo5293
      @aomo5293 Před rokem

      @@robmulla thank you.

  • @ChezChicago
    @ChezChicago Před rokem +1

    Impoet does not work in window command line. Where are you entering the import statements in Windows?

    • @robmulla
      @robmulla  Před rokem

      Import? I’m using Linux. But you could try in colab or a Kaggle notebook.

    • @ChezChicago
      @ChezChicago Před rokem

      input_file = ‘.\\ANYFILE.mov’ ## Actual file name
      subprocess.run([‘ffmpeg’,’-i’,input_file,’-qscale’,’0’,
      ‘026c7465-309f6d33,mp4’])
      ERROR:
      Traceback (most recent call last):
      File "", line 2, in
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 488, in run
      with Popen(*popenargs, **kwargs) as process:
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 800, in __init__
      restore_signals, start_new_session)
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1207, in _execute_child
      startupinfo)
      FileNotFoundError: [WinError 2] The system cannot find the file specified

  • @jackkelly4277
    @jackkelly4277 Před rokem +2

    I live in that neighborhood!!! So weird

  • @maxy9095
    @maxy9095 Před rokem

    How to find videos full RGB values

  • @mohammadkheder8994
    @mohammadkheder8994 Před 7 měsíci

    I can know if Vehicle is empty or not by camera in paython

  • @stephenkolostyak4087
    @stephenkolostyak4087 Před 18 dny

    you can't thread the rectangles?

  • @igorekudashev
    @igorekudashev Před rokem +1

    AttributeError: module 'cv2' has no attribute 'cv2'

    • @robmulla
      @robmulla  Před rokem

      What version of cv2 are you running? I think the imports changed in one of the releases.

    • @phillipchananda
      @phillipchananda Před rokem

      Try to use remove one cv2 inside the get function like cap.get(cv2.CAP_PROP_FRAME_COUNT)

  • @anuranjith2002
    @anuranjith2002 Před 7 měsíci +1

    I have a genuine doubt.....how do you know each and every code and you run every one of them without any errors....how did you learn coding in such a manner?

  • @magnuswootton6181
    @magnuswootton6181 Před rokem +1

    how do you make it look like a movie?

    • @robmulla
      @robmulla  Před rokem

      Sorry, I'm not understanding your question.

  • @SiliconSchematics
    @SiliconSchematics Před 9 měsíci

    I did nt understand how it recognises the objects

  • @anilkarabhari8161
    @anilkarabhari8161 Před rokem

    how to label annatations in csv file

    • @upendrad6081
      @upendrad6081 Před měsícem

      Same question. How he got the CSV?

  • @newstodayyt1
    @newstodayyt1 Před 9 měsíci +1

    No pytesseract used here

    • @robmulla
      @robmulla  Před 9 měsíci

      I have a video about detecting text in images where I use it!

    • @newstodayyt1
      @newstodayyt1 Před 9 měsíci

      @@robmulla nope do video ocr video pls

  • @jl2696
    @jl2696 Před 2 měsíci

    Is there any way to install OpenCV through conda-forge? That's what I mainly use instead of Pip