Automatic number plate recognition with Python, Easyocr and OpenCV | Computer vision tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2022
  • Code: github.com/computervisioneng/...
    These are the repositories we use in this video:
    - Object detection using yolov3 from OpenCV: github.com/computervisioneng/...
    - License plate detector: github.com/computervisioneng/...
    #computervision #opencv #ocr

ความคิดเห็น • 169

  • @ComputerVisionEngineer
    @ComputerVisionEngineer  9 หลายเดือนก่อน

    Did you enjoy this video? Try my premium courses! 😃🙌😊
    ● End-To-End Computer Vision: Build and Deploy a Video Summarization API bit.ly/3tyQX0M
    ● Hands-On Computer Vision in the Cloud: Building an AWS-based Real Time Number Plate Recognition System bit.ly/3RXrE1Y
    ● Machine Learning Entrepreneur: How to start your entrepreneurial journey as a freelancer and content creator bit.ly/4bFLeaC
    All my premium courses are available to the Computer Vision Experts in my Patreon. 😉
    www.patreon.com/ComputerVisionEngineer

  • @debauch-Casanova
    @debauch-Casanova ปีที่แล้ว +14

    This man is so underappreciated, His code quality is really good, he needs more recognition.❤️

  • @m.arifffirdaus686
    @m.arifffirdaus686 ปีที่แล้ว +2

    Hello Sir, I really glad for your video tutorial. It really help me for my final year project since I am not computer science student. I wish you great health and can continue sharing your knowledge!

  • @thabomorenammelefrank4770
    @thabomorenammelefrank4770 ปีที่แล้ว +1

    This is the most helpful tutorail on computer vision by far, Thank you so so much for this

  • @ri__-yr2pw
    @ri__-yr2pw ปีที่แล้ว +1

    Man you are a genius!!! Why don't you still have a million subs!!!!! You even provide the code!!!!

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +2

      lol, thank you for your support!! I am happy you find my content useful! 😄💪

  • @thabomorenammelefrank4770
    @thabomorenammelefrank4770 4 หลายเดือนก่อน

    This project helped me complete my school project and I am so greatful

  • @jabir5024
    @jabir5024 2 หลายเดือนก่อน

    Great tutorial Sir. Thank you

  • @gl4665
    @gl4665 ปีที่แล้ว +2

    Great idea! A few years ago a friend of mine, who passed away, encourage me to make something like this and sell it to buildings or private neighbourhoods. I didn't took it seriously and now they are all over the place.
    Do you have a discord server? I would be happy to join.
    Also, please make more ideas like this that can be profitable in some way!

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey! I will probably create a discord server soon, stay tuned! 🤖
      Computer vision projects that have the potential to be profitable are my favorite type of project! 😄
      I will upload more projects like this in the future! 😃💪

  • @ajibadeisaiah
    @ajibadeisaiah ปีที่แล้ว

    thank for always being a blessing
    love you bro

  • @EimiFukadaa
    @EimiFukadaa ปีที่แล้ว

    thankyou for the code 😍😍😍

  • @neelshah1651
    @neelshah1651 ปีที่แล้ว

    thank you bro!!

  • @karimbya2252
    @karimbya2252 7 หลายเดือนก่อน

    Thank you for this video !!
    Can you tell me how can import this solution in power apps ?

  • @ecsyntric
    @ecsyntric ปีที่แล้ว

    another cool vid. subscribed
    how about same thing with live traffic video. wondering how high the resolution needs to be for the model to work

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey, thank you, glad you enjoyed it! That is a very good idea, I will try to find a good video for that. 💪🙌

  • @sungjaepark7751
    @sungjaepark7751 11 หลายเดือนก่อน

    I follow all the steps but when I try to run the code it says "NameError : name "license_plate" is not defined
    can you tell me why it says this error ?

  • @eduardo9626
    @eduardo9626 ปีที่แล้ว

    Thanks for this vídeo

  • @andhreh
    @andhreh ปีที่แล้ว

    Hey man !! Nice job! thank you for this ! I want to do this with video source files ? Do you have any tutorial about this ?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Andre, thank you! 😄 I don't have a tutorial on license plate recognition on a video. If you want to apply it to a video you would need to iterate in all the frames and for each frame is the same process as in this tutorial. 🙌

  • @qditor2591
    @qditor2591 4 หลายเดือนก่อน

    At 5:27 was it command prompt you used?

  • @IsfhanAhmed
    @IsfhanAhmed ปีที่แล้ว +1

    Just came here to like the video

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Thank you so much for your support, Isfhan! 😄🙌

    • @IsfhanAhmed
      @IsfhanAhmed ปีที่แล้ว +1

      @@ComputerVisionEngineer I also have youtube channel and i know it requried alot of hard work

  • @Kuba9232838283
    @Kuba9232838283 ปีที่แล้ว

    hello, which version of python do you use?

  • @eduardo9626
    @eduardo9626 ปีที่แล้ว

    I really like your tutorials, do you have something like this tutorial for yoloV8?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey thanks! I don't, I may make a quick video about a license plate detector with Yolov8 soon. 🙌

  • @Najmiddin0
    @Najmiddin0 ปีที่แล้ว +1

    Thanks for this video. I have some questions. Can this program find license plates of cars in other countries like uz? I ran this code. All the images in the data folder are working fine, but when I add images to the data folder, the program can't find the new image number. What kind of images should I upload and how can I fix this program to find the number of blurry images? Please help.

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey, it doesn't find the license plate of any image with uz license plates? do you have an example of an image with uz plates so I test it too?

    • @Najmiddin0
      @Najmiddin0 ปีที่แล้ว

      @@ComputerVisionEngineer I tried using uz numbers but the program is basically giving wrong outputs.

  • @airportoperationlandsidete3577
    @airportoperationlandsidete3577 8 หลายเดือนก่อน

    can we use image from google???

  • @amaanusmani1017
    @amaanusmani1017 ปีที่แล้ว

    Hey, I was following your video step by step and i encountered an error on the timestamp 18:00
    Code : reader = easyocr.Reader(['en'])
    Error : UnicodeEncodeError: 'charmap' codec can't encode character '\u2588' in position 12: character maps to
    I checked online for this error and most of the problems were solved by changing the python's default encoding to UTF-8, however mine is already set to that. Any suggestions ?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      I see the same suggestion in easyocr issues (export PYTHONIOENCODING=utf-8). Are you working on a virtual environment? Are you 100% sure you are executing the same python which encoding is set to UTF-8?
      What is your OS? In Windows, according to Python docs PYTHONIOENCODING 'is ignored for interactive console buffers' (not sure what this means) unless PYTHONLEGACYWINDOWSSTDIO is also specified.

  • @dawidziach1597
    @dawidziach1597 ปีที่แล้ว

    Where can i download weights?

  • @mihovilkovacevic4019
    @mihovilkovacevic4019 ปีที่แล้ว

    After trying your code I can say YOLOv3 has a lot more accuracy than MobileNet-SSD V2. Any reasons why you didn't use newer version of YOLO?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      No reason, it's just I like classics. 😄😌

    • @mihovilkovacevic4019
      @mihovilkovacevic4019 ปีที่แล้ว +1

      @@ComputerVisionEngineer Amazing brother, thank you for the great content that's actually working, not like the others where they explain for 2 hours and then their detection accuracy is like 30% lol. Looking forward to learn more how these algorithms work in-depth so I can create cool stuff like you.

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      😃💪💪

  • @Nevergnnanoe
    @Nevergnnanoe ปีที่แล้ว

    Hi thanks for the wonderful tutorial. I’m having a problem so I’m working on a MacBook with the M1 Max chip
    10:24 I’m having a problem with this for loop, it’s not iterating over the images. When I run the code it only output one image then when I close the window the program stops. I checked if it’s reading all the images in the input_dir list using print, it is but for some reason it’s not showing all the images. Please can you help me out?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey, the program stops and do you get any error?

    • @Nevergnnanoe
      @Nevergnnanoe ปีที่แล้ว

      @@ComputerVisionEngineer no error, as soon as I close the window with the image the program terminates happens in vscode and pycharm

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      It is probably a bug in your code. Would you please paste your code here?

  • @vitaminCjuice2064
    @vitaminCjuice2064 ปีที่แล้ว

    Greetings sir, how do i put on the detected license plate text into the images based on your tutorial. (which I'm stucked on it) Kindly need your further guidance.

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey, in order to put the text on top of the images I suggest you to look into OpenCV putText() function! 😃

  • @JomariMuzada
    @JomariMuzada ปีที่แล้ว

    Hi Sir, you are so amazing, can I ask if possible to do a parking system that use computer vision in the parking area and after that it will process the plate number of it and the data will go to the database?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey Jomari, that sounds like a very interesting project! I will try to do a video about it! 😃💪

    • @JomariMuzada
      @JomariMuzada ปีที่แล้ว

      @@ComputerVisionEngineer thank you sir it will help us a lot❤️. In addition Sir it will update the system in real-time

  • @arvapallyshashidhar3009
    @arvapallyshashidhar3009 ปีที่แล้ว +1

    Hello sir, please help me in fixing this error . I tried to fix it by own but i failed.
    i am getting the following error in between of execution and it i am getting this error after execution of particular image.
    H, W, _ = img.shape
    AttributeError: 'NoneType' object has no attribute 'shape'
    And thanks for the video

  • @prajjwalrajtomar1225
    @prajjwalrajtomar1225 ปีที่แล้ว

    The code is showing an error, the error is arrising model_weights_path, can anyone help?

  • @Renagade01
    @Renagade01 ปีที่แล้ว

    hello thanks for the vid i just wanna sak if the bounding box is defaultly thick?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey, you can adjust the width with one of its parameters. 🙌

    • @Renagade01
      @Renagade01 ปีที่แล้ว

      @@ComputerVisionEngineer thanks ! and yeah just wanna say when i tried it in other countries licsense plate the result is funny xD sometimes it reads the year sometimes none sometimes it skips the images for my declared img_dir but when i tried for european license plate it kinda works xD anyways will try again thank you!

  • @samuelattaantwi3953
    @samuelattaantwi3953 ปีที่แล้ว

    Thank you very much for this wonderful tutorial💯.
    Please, I have downloaded all libraries, but I still get an error when executing
    Traceback (most recent call last):
    line 3, in
    import cv2
    line 181, in
    bootstrap()
    line 175, in bootstrap
    if __load_extra_py_code_for_module("cv2", submodule, DEBUG):
    line 28, in __load_extra_py_code_for_module
    py_module = importlib.import_module(module_name)
    line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    line 290, in
    cv2.gapi.wip.GStreamerPipeline = cv.gapi_wip_gst_GStreamerPipeline
    AttributeError: partially initialized module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline' (most likely due to a circular import)
    For line 3, I have imported cv2
    Please help me

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey Samuel, are you working on a virtual environment? Did you pip install the requirements.txt file?

  • @jiahmingchoong9089
    @jiahmingchoong9089 ปีที่แล้ว +1

    Hi, may I know how can I train my image dataset using your source code?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey, in this video I show you how to do automatic license plate recognition, although it is only the inference, it is not training.

  • @SmarTechZ
    @SmarTechZ 11 หลายเดือนก่อน

    Its possible to edit this script to capture video from ip RSTP camera y read te car plate number?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  11 หลายเดือนก่อน

      Yes, it is possible to edit the script in order to achieve the desired functionality. 🙌

  • @saswatikpanja1071
    @saswatikpanja1071 11 หลายเดือนก่อน

    Great video man! I was getting an error with running the code, which says ModuleNotFoundError: No module named 'util'. How can this be resolved?
    Thank you

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  11 หลายเดือนก่อน

      Try to execute the file from the same directory where the files are located. 🙌

  • @tsaashik8048
    @tsaashik8048 ปีที่แล้ว

    Okay 😅..for custom training licence plate using yolov8 how many pictures would be sufficient 😅

  • @airamaesumile5726
    @airamaesumile5726 ปีที่แล้ว

    What version of pycharm you are using?

  • @arifemreyaman2150
    @arifemreyaman2150 ปีที่แล้ว

    hello sir you CUDA not available - defaulting to CPU. Note: This module is much faster with a GPU. do you know the error

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Arif, I am not sure what is the error. You may take a look at easyocr official repository in case someone else has reported the same issue. 🙌

  • @user-jw8zl9rs9p
    @user-jw8zl9rs9p ปีที่แล้ว

    sir program is giving img.shap error error when i try it on other plates than given in data folder

  • @tsaashik8048
    @tsaashik8048 ปีที่แล้ว

    sir for recognising multi language licesnce plates how should i custom train the OCR 😅😅coz few languages are not there

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey, take a look at some tutorials on how to retrain easyocr on a custom dataset. If you have challenges retraining an easyocr model you may want to consider moving to a diferent ocr technology as tesseract or paddleocr. 🙌

    • @tsaashik8048
      @tsaashik8048 ปีที่แล้ว

      @@ComputerVisionEngineer thank you

  • @rishabhsrinivasan5664
    @rishabhsrinivasan5664 ปีที่แล้ว +1

    Hello Sir,
    I had got this issue can u plz help me to solve it
    Traceback (most recent call last):
    File "yolov3-from-opencv-object-detection\main.py", line 18, in
    with open(class_names_path, 'r') as f:
    FileNotFoundError: [Errno 2] No such file or directory: '.\\model\\class.names'

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey Rishab, change the file location to the absolute path, that should fix it. 🙌

    • @rishabhsrinivasan5664
      @rishabhsrinivasan5664 ปีที่แล้ว +1

      @@ComputerVisionEngineer Sir it Worked Thank you soo Much for ur Help!!

  • @chinkhu4405
    @chinkhu4405 ปีที่แล้ว

    It was amazingly clear. But is it possible to use video?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      It is possible to use it in a video. License plates need to be frontal, so the perspective of the video is important, but it is definitely possible! 😃💪

  • @m3forengineers877
    @m3forengineers877 ปีที่แล้ว +1

    Can we detect any symbolic number

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Do you mean if you can read any symbolic number? You should be able to read any symbol. Try to use a language which contains that symbol. Let me know how it goes! 🙌

  • @hilmeroudijk5991
    @hilmeroudijk5991 ปีที่แล้ว

    would this work on a raspberry pi, with raspberry OS?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      If you manage to install Easyocr and OpenCV, yes it would work! 💪

  • @kavimourthy3679
    @kavimourthy3679 ปีที่แล้ว

    What's the issue of only shows one figure when i put for loop image

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Kavi, so you are executing the code as it is in the repository and you only visualize one figure? Which one?

    • @kavimourthy3679
      @kavimourthy3679 ปีที่แล้ว

      @@ComputerVisionEngineer 10:9 to 11:09 I'm struggling

  • @tsaashik8048
    @tsaashik8048 ปีที่แล้ว

    the yolo used here is v8 or v3?

  • @Ak-um1yg
    @Ak-um1yg ปีที่แล้ว +1

    Hey can u make a project of Number Plate extraction If biker is not wearing a helmet
    Yolo and easy ocr will do

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Sounds like a cool project! I will definitely keep it in mind next time I plan my future videos! 😃💪

    • @Ak-um1yg
      @Ak-um1yg ปีที่แล้ว +1

      @@ComputerVisionEngineer I am eagerly waiting for it .. Your channel content is awesome . i have subscribed ✅👍

  • @danielchembesi4491
    @danielchembesi4491 ปีที่แล้ว

    Thank you for such a helpful and clear tutorial. I have one problem that is the model.weights file which is missing after cloning the project. i think it's the one which is causing the following error:
    line 28, in
    net = cv2.dnn.readNetFromDarknet(model_cfg_path, model_weights_path)
    cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\dnn\src\darknet\darknet_importer.cpp:214: error: (-212:Parsing error) Failed to parse NetParameter file: .\model\weights\model.weights in function 'cv::dnn::dnn4_v20211004::readNetFromDarknet'

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +2

      Hey Daniel, you can download the weights for the license plate detector here: drive.google.com/drive/folders/1STio9AvOODRUdLEI0lX2vh1NS0GDeUm5?usp=share_link 😃🙌

    • @dirandevaiah1892
      @dirandevaiah1892 ปีที่แล้ว

      @@ComputerVisionEngineer same error sir

  • @nakishahawkin797
    @nakishahawkin797 ปีที่แล้ว

    Hello sir i did this system and i add my web cam but i cant use license_platr ,license_plate_thresh ,license_plate_gray and my gpu
    i try reader = easyocr.Reader(["en"],bool= True)but its not work .

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Nakisha, please copy paste your code here and the error you are getting and I will try to help you. 🙌

    • @nakishahawkin797
      @nakishahawkin797 ปีที่แล้ว

      @@ComputerVisionEngineer import os
      import cv2
      import numpy as np
      import matplotlib.pyplot as plt
      import easyocr
      import util
      # define constants
      model_cfg_path = os.path.join('.', 'model', 'cfg', 'darknet-yolov3.cfg')
      model_weights_path = os.path.join('.', 'model', 'weights', 'model.weights')
      class_names_path = os.path.join('.', 'model', 'class.names')
      cap = cv2.VideoCapture(0)
      while True:
      # load class names
      ret,frame = cap.read()
      with open(class_names_path, 'r') as f:
      class_names = [j[:-1] for j in f.readlines() if len(j) > 2]
      f.close()
      # load model
      net = cv2.dnn.readNetFromDarknet(model_cfg_path, model_weights_path)
      # load image
      #Sometimes I get an error from the code below, do you know why?
      H,W,_= frame.shape
      # convert image
      blob = cv2.dnn.blobFromImage(frame, 1 / 255, (416, 416), (0, 0, 0), True)
      # get detections
      net.setInput(blob)
      detections = util.get_outputs(net)
      # bboxes, class_ids, confidences
      bboxes = []
      class_ids = []
      scores = []
      for detection in detections:
      # [x1, x2, x3, x4, x5, x6, ..., x85]
      bbox = detection[:4]
      xc, yc, w, h = bbox
      bbox = [int(xc * W), int(yc * H), int(w * W), int(h * H)]
      bbox_confidence = detection[4]
      class_id = np.argmax(detection[5:])
      score = np.amax(detection[5:])
      bboxes.append(bbox)
      class_ids.append(class_id)
      scores.append(score)
      # apply nms
      bboxes, class_ids, scores = util.NMS(bboxes, class_ids, scores)
      # plot
      reader = easyocr.Reader(['en']) #bool = True / ? why isnt open
      for bbox_, bbox in enumerate(bboxes):
      xc, yc, w, h = bbox
      cv2.putText(frame,
      class_names[class_ids[bbox_]],
      (int(xc - (w / 2)), int(yc + (h / 2) - 0)),
      cv2.FONT_HERSHEY_SIMPLEX,
      0,
      (0, 0, 0),
      0)
      #license_plate = img[int(yc - (h / 2)):int(yc + (h / 2)):, int(xc - (w / 2)): int(xc + (w / 2)), :].copy()
      img = cv2.rectangle(frame,
      (int(xc - (w / 2)), int(yc - (h / 2))),
      (int(xc + (w / 2)), int(yc + (h / 2))),
      (0, 255, 0),
      10)
      #license_plate = img[int(yc - (h / 2)):int(yc + (h / 2)):, int(xc - (w / 2)): int(xc + (w / 2)), :].copy()
      #license_plate_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
      #license_plate_thresh = cv2.threshold(license_plate_gray, 64,255, cv2.THRESH_BİNARY)
      output = reader.readtext(frame)
      for out in output:
      text_bbox, text, text_score = out
      print(text)
      cv2.imshow('img', frame)
      #cv2.imshow('asd1', license_plate)
      cv2.waitKey(25)
      if cv2.waitKey(25) & 0xFF == ord("q"):
      break
      cap.release()

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      At a glance nothing seems to be wrong with your code. I recommend you to take things incrementally. Try to execute one line of the code at the time until you identify the error. Also, the error message you will see in the terminal will give you a lot of valuable information regarding the cause of the error.

    • @nakishahawkin797
      @nakishahawkin797 ปีที่แล้ว

      @@ComputerVisionEngineer sir i take this error
      NameError: name 'license_plate' is not defined
      and ı dont use my gpu pls help me

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      The best advice I can give you is to take the project one step at the time. Start the project from scratch, type one line of code at the time and execute the script right after you type each line. This will give you a better insight on what is going on in your code.

  • @Mr01Daryl
    @Mr01Daryl 9 หลายเดือนก่อน

    model/wieghts missing

  • @IsfhanAhmed
    @IsfhanAhmed ปีที่แล้ว

    Can you create a course where we can learn ho to solve real world problem using computer vision

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      That sounds like a very interesting course to create!! 😃😃
      Thanks for your suggestion, Isfhan! I will definitely create content around that idea. Stay tuned! 😃🙌

  • @christianurs
    @christianurs ปีที่แล้ว

    Hi guys, I've install the easyocr 1.6.2 but still got thie error: ModuleNotFoundError: No module named 'easyocr' . Can anyone help? Thanks

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Christian, are you executing the script in the same virtual environment where you installed easyocr?

    • @christianurs
      @christianurs ปีที่แล้ว +1

      @@ComputerVisionEngineer sorry, my mistake. It’s working now. I do get another warning when running: CUDA not available- defaulting to CPU. I need to mention that I have a MacBook Pro M1. Thanks

    • @abdallawanjusi
      @abdallawanjusi ปีที่แล้ว +1

      @@christianurs how did you fix this error

    • @christianurs
      @christianurs ปีที่แล้ว

      @@abdallawanjusi It's been a while but if I remember well, I restarted the virtual env and properly install all requirements. Hope this helps

  • @raymondmichael4987
    @raymondmichael4987 ปีที่แล้ว

    How can we detect & read plate from a webcam in real time

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Hey Raymond, you could adapt this current pipeline to take frames from a webcam instead of individual images. 🙌

  • @YouSerious98
    @YouSerious98 ปีที่แล้ว

    Great Video! I am getting an easyorc error where it says it depends on torch. I tried all sorts of sources but cant get it to work. There a good way to fix this error? thanks!

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Daniel, what error do you get?

    • @YouSerious98
      @YouSerious98 ปีที่แล้ว +1

      @@ComputerVisionEngineer Hey I was able to fix it! I needed to make the conda interpreter. Thanks again for the vid! I do have one issue, I am trying multiple USA license plates but 1 out of like 10 seem to create bounding boxes for them. When it doesn't work, it shows the most recent found plates bounding box. Any thing I need to look into?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      @@YouSerious98 Ok I see why. Add an if before the rectangle drawing of line 85.
      if len(bboxes) > 0:
      cv2.rectangle(....)

    • @YouSerious98
      @YouSerious98 ปีที่แล้ว +1

      @@ComputerVisionEngineer Thanks, I will try that. The main thing is that I use many USA license plate images, and only a few images are being detected. Is that an issue with the model itself? (Sorry for all the questions)

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      @@YouSerious98 Maybe you could try with another model. Something like yolov8 would perform better if you use a big enough dataset. There are a few datasets for license plate detection available online, you could try to train a yolov8 model with them and see how it performs on your data. 🙌

  • @RisabTajale
    @RisabTajale ปีที่แล้ว

    Can we implement train split on CNN algorithm too?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Risab! Sure, I will keep that in mind for a future video! 💪🙌

  • @vamsiyeruva9594
    @vamsiyeruva9594 ปีที่แล้ว

    a very good video sir , I have encountered with a error while installing easyocr
    ERROR: Ignored the following versions that require a different python version: 1.21.2 Requires-Python >=3.7,=3.7,=3.7,=3.7,=3.7,

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Try removing the package versions in the requirements file. pip will figure out the versions on itself.

  • @prajwalm.s7976
    @prajwalm.s7976 ปีที่แล้ว

    Sir I tried this project, but it's not working for bike number plates
    What to do

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Oh, I see. What part is not working? The license plate detection or the license reader?

    • @prajwalm.s7976
      @prajwalm.s7976 ปีที่แล้ว

      @@ComputerVisionEngineer as soon as I put some custom images, it shows invalid class name(License Plate)

    • @prajwalm.s7976
      @prajwalm.s7976 ปีที่แล้ว

      @@ComputerVisionEngineer I'm actually doing helmet detection project and licence plate extraction of bikers not wearing helmet.
      Can you please help?

  • @amaica01
    @amaica01 ปีที่แล้ว

    how do this in video?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      In order to do it in a video you would have to apply the same process to all the frames of a video. You could take a look at my tutorial on face anonymization, where I iterate in all the frames of a video and I apply the face anonymization process in each frame. It would be exactly the same idea but applying the license reader instead of the face anonymization. 😃💪

  • @aRietD
    @aRietD ปีที่แล้ว

    I get way too many errors on this tutorial. file path not reading then Failed to parse NetParameter

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Ari, I would be super happy to help you solve those errors. Would you please describe exactly what is the first error you get and what script / line are you getting it? Also, what is your OS and Python version? Are you working on a virtual environment?

  • @arifemreyaman2150
    @arifemreyaman2150 ปีที่แล้ว

    Hello Sir,again me pls dont hate me 😶 ,i did it in a way to take it from the video, but the camera only takes 1 image and i need to turn it off and on, do you know how i can edit it?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Arif, would you please copy paste your code here?

    • @arifemreyaman2150
      @arifemreyaman2150 ปีที่แล้ว

      @@ComputerVisionEngineer import os
      import cv2
      import numpy as np
      import matplotlib.pyplot as plt
      import util
      # define constants
      model_cfg_path = os.path.join('.', 'model', 'cfg', 'darknet-yolov3.cfg')
      model_weights_path = os.path.join('.', 'model', 'weights', 'model.weights')
      class_names_path = os.path.join('.', 'model', 'class.names')
      img_path = cv2.VideoCapture(0)
      while True:
      # load class names
      ret,img = img_path.read()
      with open(class_names_path, 'r') as f:
      class_names = [j[:-1] for j in f.readlines() if len(j) > 2]
      f.close()
      # load model
      net = cv2.dnn.readNetFromDarknet(model_cfg_path, model_weights_path)
      # load image
      H, W, _ = img.shape
      # convert image
      blob = cv2.dnn.blobFromImage(img, 1 / 255, (416, 416), (0, 0, 0), True)
      # get detections
      net.setInput(blob)
      detections = util.get_outputs(net)
      # bboxes, class_ids, confidences
      bboxes = []
      class_ids = []
      scores = []
      for detection in detections:
      # [x1, x2, x3, x4, x5, x6, ..., x85]
      bbox = detection[:4]
      xc, yc, w, h = bbox
      bbox = [int(xc * W), int(yc * H), int(w * W), int(h * H)]
      bbox_confidence = detection[4]
      class_id = np.argmax(detection[5:])
      score = np.amax(detection[5:])
      bboxes.append(bbox)
      class_ids.append(class_id)
      scores.append(score)
      # apply nms
      bboxes, class_ids, scores = util.NMS(bboxes, class_ids, scores)
      # plot
      for bbox_, bbox in enumerate(bboxes):
      xc, yc, w, h = bbox
      cv2.putText(img,
      class_names[class_ids[bbox_]],
      (int(xc - (w / 2)), int(yc + (h / 2) - 0)),
      cv2.FONT_HERSHEY_SIMPLEX,
      0,
      (0, 0, 0),
      0)
      img = cv2.rectangle(img,
      (int(xc - (w / 2)), int(yc - (h / 2))),
      (int(xc + (w / 2)), int(yc + (h / 2))),
      (0, 255, 0),
      10)
      plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
      plt.show()

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      If you are looking to visualize the entire stream from your webcam I would suggest to use cv2.imshow instead of matplotlib as visualization.
      So remove the last two lines (plt.imshow and plt.show) and add:
      cv2.imshow('img', img)
      cv2.waitKey(25)

    • @arifemreyaman2150
      @arifemreyaman2150 ปีที่แล้ว +1

      ​@@ComputerVisionEngineer thank you very much sir

  • @ajibadeisaiah
    @ajibadeisaiah ปีที่แล้ว +1

    please i need your assistance on face recognition system

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Sure, tell me, how can I assist you?

    • @ajibadeisaiah
      @ajibadeisaiah ปีที่แล้ว +1

      @@ComputerVisionEngineer please I need the window that is used for capturing new users to have more text labels instead of just username. And more also when the user is login, the successful login message box should come in more like another fresh window, welcoming the user to the system and showing all his details that has been captured in the registration process

    • @ajibadeisaiah
      @ajibadeisaiah ปีที่แล้ว

      I hope you understand what I meant. But if you have any platform we can connect to either have video calls with you

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      It sounds like some very nice new features! 😄💪
      I will definitely keep it in mind in a future commit to this repository.
      I will make a video with an update about this project soon. Hopefully in the next couple of weeks. Stay tuned! 😃🙌🏻

  • @m3forengineers877
    @m3forengineers877 ปีที่แล้ว +1

    Can we detect plate number which is written in any language

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      In theory, yes. You can select any language when creating your easyocr reader. 💪

  • @iamipyana
    @iamipyana ปีที่แล้ว

    he is very well understood, how can i connect with you?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Ipyana, thank you! You can connect with me through the comments section in my videos and through our discord. 🙌

    • @iamipyana
      @iamipyana ปีที่แล้ว

      @@ComputerVisionEngineer do you have on how to create modal and train according to my data?

    • @iamipyana
      @iamipyana ปีที่แล้ว

      @@ComputerVisionEngineer also using live in camera instead of image

  • @femiomolacholawrencetoudon3908
    @femiomolacholawrencetoudon3908 10 หลายเดือนก่อน

    hey sir your code source d ont work

  • @arifemreyaman2150
    @arifemreyaman2150 ปีที่แล้ว

    hi sir again me how can ı use gpu in this code

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Have you tried with easyocr.Reader(['en'], gpu=True)?

    • @arifemreyaman2150
      @arifemreyaman2150 ปีที่แล้ว

      @@ComputerVisionEngineer yes i tried but not work and itake this error TypeError: __init__() got an unexpected keyword argument 'GPU'
      i tried lower casse but its not work

  • @marchef7291
    @marchef7291 ปีที่แล้ว

    hacelo en español papu si sos de la republica oriental del uruguay!!!!

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      😂 Tal vez haga un canal similar en español en el futuro! 🙌

  • @nakishahawkin797
    @nakishahawkin797 ปีที่แล้ว

    hi sir my comments is not showing

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Nakisha, let me check the 'held for review' section of the comments. Sometimes TH-cam flags comments for whatever reason. Let me check.

  • @tsaashik8048
    @tsaashik8048 ปีที่แล้ว

    But yolov3 is a bit outdated right 😅... Where can I find yolov8 which was pre trained for license plate detection... I'm doing project for my college 🥲..they said yolo v3 is outdated

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      Yeah, agreed, yolov3 is not the most recent version. Although I did notice a very good performance using this model. Yolov3 may be old but it is a very robust object detector. 💪
      Try to find a yolov8 model on github, or... train your own model following the steps I describe in my video on how to train yolov8 on a custom dataset! 😃

  • @jeanmi8184
    @jeanmi8184 ปีที่แล้ว

    Code: empty

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      😅 Thank you so much for the heads up!
      The github repository for this tutorial was added in the description! 😃💪

  • @milesonme
    @milesonme ปีที่แล้ว +2

    Mate, you have no idea helpful these videos are to us....trying to get started in this industry....I've taken courses on ML,DL, Node.js, Flask, Streamlit, MLOps,NLP and so on. I read and implement Computer vision papers every day....I would like to ask, on average, or roughly, how many papers did u have to read to feel like an actual expert in Computer Vision?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว +1

      😊 Hey! I am glad you find my videos useful! How many papers... mmm.... 🤔 when it comes to 'expertise' I would say the number of projects you work in is more important than the number of papers you read. Not sure how many projects I have been involved in so far, but they are many for sure! 💪💪

  • @MichaBroda
    @MichaBroda ปีที่แล้ว

    Hello Boss, I have problem with NNPACK. When I try reading plate, I get answer: [W NNPACK.cpp:53] "Could not initialize NNPACK! Reason: Unsupported hardware."
    I heard that I must use cmake USE_NNPACK=0. Pycharm have option cmake?

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey, if you need to build PyTorch from source without NNPACK I don't think you can do it in Pycharm. You can find instructions on how to build it from source on PyTorch official repository. 😃💪

  • @okwarebrian1838
    @okwarebrian1838 ปีที่แล้ว

    Hello how can I contact you

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Okware,
      Currently, leaving a comment in a TH-cam video is the best way to reach out to me. How can I help you? 🙂

  • @kenatsharaby
    @kenatsharaby ปีที่แล้ว

    Hi Felipe. I am very impresed from your knowledge and would like to potentialy hire your service for a AI project we develop. Please contact me. Thanks!

    • @ComputerVisionEngineer
      @ComputerVisionEngineer  ปีที่แล้ว

      Hey Giyora, thank you!! Glad you enjoyed the content! 😃💪💪