Giter Site home page Giter Site logo

paul-pias / object-detection-and-distance-measurement Goto Github PK

View Code? Open in Web Editor NEW
319.0 9.0 113.0 153 KB

Using yolov3 & yolov4 weights objects are being detected from live video frame along with the measurement of the object from the camera without the support of any extra hardware device.

Python 97.02% HTML 2.98%
distance-measurement-using-camera real-time-distance-measurement object-distance-using-camera object-detection-using-yolov3 real-time-object-detection yolov3 video-object-detection webcam-object-detection yolov4

object-detection-and-distance-measurement's Introduction

Object Detection and Distance Measurement

N|Solid

Introduction

This repo contains object_detection.py, which can perform the following task -

  • Object detection from a live video frame, in any video file, or in an image
  • Counting the number of objects in a frame
  • Measuring the distance of an object using depth information
  • Inference on Multiple Camera feed at a time

For object detection, YOLO-V3 has been used, which can detect 80 different objects. Some of those are-

  • person
  • car
  • bus
  • stop sign
  • bench
  • dog
  • bear
  • backpack, and so on.

User Instruction

Update

There is a new update with yolov4 new release. All you have to do a simple step which is after downloading the project, run the following command and follow the rest of the process as it is.

  cd YOLOv4

You can also use Yolact++ as an object detector using [this] repo (https://github.com/paul-pias/Social-Distance-Monitoring).

To execute object_dection.py, you require Python version > 3.5 (depending on whether you are using GPU or not) and have to install the following libraries.

Installation

    $ pip install -r requirements.txt
         or
    $ pip install opencv-python
    $ pip install numpy
    $ pip install pandas
    $ pip install matplotlib
    $ pip install Pillow
    $ pip install imutils

For the installation of torch using "pip"

    $ pip3 install torch===1.2.0 torchvision===0.4.0 -f https://download.pytorch.org/whl/torch_stable.html

or please follow the instructions from Pytorch

For installing the "win32com.client" which is Text-to-Speech module for windows you have follow this

First, open the cmd as an administrator, then run

   $ python -m pip install pywin32
   #After installing, open your Python shell and run
      import win32com.client
      speaker = win32com.client.Dispatch("SAPI.SpVoice")
      speaker.Speak("Good Morning")

You need to clone the repository using git bash (if git bash has already been installed), or you can download the zip file.

    $ git clone https://github.com/paul-pias/Object-Detection-and-Distance-Measurement.git

After unzipping the project, there are two ways to run this. If you want to see your output in your browser, execute the "app.py" script or run "object_detection.py" to execute it locally.

If you want to run object detection and distance measurement on a video file, write the name of the video file to variable id in either "app.py" or "object_detection.py" or if you want to run it on your webcam just put 0 in id.

However, if you want to run the inference on a feed of IP Camera , use the following convention while assigning it to the variable "id"

    "rtsp://assigned_name_of_the_camera:assigned_password@camer_ip/"

You can check the performance on different weights of YOLO, which are available in YOLO

For multiple camera support, you need to add a few lines of codes as follows in app.py-

   def simulate(camera):
       while True:
           frame = camera.main()
           if frame != "":
               yield (b'--frame\r\n'
                   b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')

   @app.route('/video_simulate')
   def video_simulate():
       id = 0
       return Response(gen(ObjectDetection(id)), mimetype='multipart/x-mixed-replace; boundary=frame')

Depending on how many feeds you need, add the two methods in "app.py" with different names and add a section in index.html.

<div class="column is-narrow">
        <div class="box" style="width: 500px;">
            <p class="title is-5">Camera - 01</p>
            <hr>
            <img id="bg" width=640px height=360px src="{{ url_for('video_simulate') }}">
            <hr>

        </div>
    </div>
    <hr>

Note:

You have to use git-lfs to download the yolov3.weight file. However you can also download it from here YOLOv3 @ Google-Drive || YOLOv4 @ Google-Drive


Theory

There are two well-known strategies in a traditional image classification approach for object detection.

There are two scenarios for a single object in an image.

  • Classification
  • Localization

There are two scenarios for multiple objects in an image.

  • Object detection and localization
  • Object segmentation

For Single Objects

For Multiple Objects

Distance Measurement


Traditionally, we measure the distance of any object using Ultrasonic sensors such as HC-sr04 or any other high-frequency devices that generate sound waves to calculate the distance it traverses. However, when you are working with an embedded device to make a compact design that has functionalities such as
  • Object detection (with camera) and
  • Distance measurement

You don't always want to make your device heavier by adding unnecessary hardware modules. To avoid such cases, you can follow a more convenient and feasible approach. As you have already integrated a camera for object detection, you can use the depth information that the camera uses to draw the bounding boxes for localizing objects to calculate the distance of that object from the camera.

How the object detection works?

From the initial part, we understood that to measure the distance from an image, we had to localize it first to get the depth information. Now, how localization works?

Localize objects with regression

Regression is about returning a number instead of a class. The number can be represented as (x0,y0,width,height) which are related to a bounding box. In the images illustrated above for single object if you want to only classify the object type then we don't need to draw the bounding box around that object that's why this part is known as Classification . However, if we are interested to know where does this object locates in the image, then we need to know that 4 numbers that a regreesion layer will return. As you can see there is a black rectangle shape box in the image of a white dog, which was drawn using the regression layer. What happens here is that after the final convolutional layer + Fully connected layers, instead of asking for class scores to compare with some offsets, a regression layer is introduced. Regression layer is nothing but some rectangular box which represents individual objects. For every frame/image to detect objects the following things happens.

  • Using the inference on any pre-trained imagenet model the last fully connected layer will need to be re-trained to the desired objects.
  • After that all the proposals (=~2000proposal/image) will be resized to maatch the inputs of the cnn.
  • A SVM is need to be trained to classify between object and background (One binary SVM(Support Vector Machine) for each class)
  • And to put the bounding box perfectly over the image a linear regression classifier is needed to be trained which will output some correction factor. Problem with this approch is that one part of the network is dedicated for region proposals. After the full connected layers the model tries to propose certain regions on that image which may contain object/objects. So it also requires a high qulaity classifier to filter out valid proposals which will definitely contains object/objects. Although these methos is very accurate but it comes with a big computational cost (low frame-rate) and that's why it is not suitable for embedded devices such as Arduino or Raspberry Pi which has less processing power.

Localizing with Convolution neural networks

Another way of doing object detection and to reduce this tedious work is by combining the previous two task into one network. Here, instead of proposing regions for every images the model is fed with a set of pre-defined boxes to look for objects. So prior to the training phase of a neural network some pre-defined rectangular boxes that represents some objects are given to the network to train with. So when a image is gone through the network, after the fully connected layer the trained model tries to match predefined boxes to objects on that image by using non-maxima suppression algorithm to completely tied. If the comparison crosses some threshold, the model tries to draw the bounding box over the object. For example, in the case of the picture of white dog, the model knows what is the coordinates of the box of the dog object and when the image classification is done the model uses L2 distance to calculate the loss between the actual box coordinates that was predefined and the coordinate that the model gave so that it can perfectly draw the bounding box over the object on that image.

The main idea is to use the convolutional feature maps from the later layers of a network to run small CONV filters over these feature maps to predict class scores and bounding box offsets. Here, we are reusing the computation already made during classification to localize objects to grab the activation from the final conv layers. At this point, we still have the spatial information of an image that model starts training with but is represented in a much smaller scope. So, in the final layers, each "pixel" represent a larger area of the input image, so we can use those cells to infer object position. Here the tensor containing the original image's information is quite deep as it is now squeezed to a lower dimension. At this point, a 1x1 CONV layer can be used to classify each cell as a class, and also, from the same layer, we can add another CPNV or FC(Fully Connected) layer to predict four numbers( Bounding Box). In this way, we get both class scores and location from one. This approach is known as Single Shot Detection . The overall strategy in this approach can be summarised as follows:-

  • Train a CNN with regression(bounding box) and classification objective.
  • Gather Activation from a particular layer or layers to infer classification and location with FC layer or another CONV layer that works like an FC layer.
  • During prediction, use algorithms like non-maxima suppression to filter multiple boxes around the same object.
  • During training time, use algorithms like IoU to relate the predictions during training to the ground truth.

Yolo follows the strategy of Single Shot Detection. It uses a single activation map for the prediction of classes and bounding boxes at a time that's why it is called "You Only Look Once".

Here pre-trained yolo-v3 has been used, which can detect 80 different objects. Although this model is faster but it doesn't give the reliability of predicting the actual object in a given frame/image. It's a kind of trade-off between accuracy and precision.

How the distance measurement works?

This formula is used to determine the distance

    distancei = (2 x 3.14 x 180) ÷ (w + h x 360) x 1000 + 3

For measuring distance, at first, we have to understand how a camera sees an object.

You can relate this image to the white dog picture where the dog was localized. Again we will get four numbers in the bounding box which is (x0,y0,width,height). Here x0,y0 is used to tiled or adjust the bounding box. Width and Height these two variables are used in the formula of measuring the object and describing the detail of the detected object/objects. Width and Height will vary depending on the distance of the object from the camera.

As we know, an image goes refracted when it goes through a lens because the ray of light can also enter the lens, whereas, in the case of a mirror, the light can be reflected. That's why we get an exact reflection of the image. But in the case of the lens image gets a little stretched. The following image illustrates how the image and the corresponding angles look when it enters through a lens.

If we see there are three variables named:
  • do (Distance of object from the lens)
  • di (Distance of the refracted image from the convex lens)
  • f (focal length or focal distance)

So the green line "do" represents the actual distance of the object from the convex length. And "di" gives a sense of what the actual image looks like. Now if we consider a triangle on the left side of the image(new refracted image) with base "do" and draw an opposite triangle similar to the left side one. So the new base of the opposite triangle will also be done with the same perpendicular distance. Now if we compare the two triangles from the right side, we will see "do" and "di" is parallel, and the angle creates on each side of both triangles are opposite to each other. From this, we can infer that both the triangles on the right side are also similar. Now, as they are similar, the ratio of the corresponding sides will be also similar. So do/di = A/B. Again if we compare two triangles on the right side of the image where opposite angles are equal and one angle of both the triangles are right angle (90°) (dark blue area). So A:B is both hypotenuses of a similar triangle where both triangles has a right angle. So the new equation can be defined as :

Now, if we derive from that equation we will find:-

And eventually will come to at

Where f is the focal length or also called the arc length by using the following formula

we will get our final result in "inches" from this formula of distance.
    distancei = (2 x 3.14 x 180) ÷ (w + h x 360) x 1000 + 3
  • Notes - As mentioned earlier YOLO prefers performance over accuracy that's why the model predicts wrong objects frequently.

If anyone using this code for any kind of publication, kindly cite this work.

M. A. Khan, P. Paul, M. Rashid, M. Hossain and M. A. R. Ahad, "An AI-Based Visual Aid With Integrated Reading Assistant for the Completely Blind," in IEEE Transactions on Human-Machine Systems. doi: 10.1109/THMS.2020.3027534

Reference

object-detection-and-distance-measurement's People

Contributors

dependabot[bot] avatar paul-pias avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

object-detection-and-distance-measurement's Issues

distance_measurement

hello, please help to understand equations for distance estimation
i want to use this part in my project
1-i donot understand third equation d=f+R/r what you mean is d==do((Distance of object from the lens)? is R height in image , r height in real?
2-how you get focal length formula?
3-how you get relation distance from w , h as I use images with size 600*800
4- if there any specs of camera

Visual output of the code

Hi everyone,
I was wondering if there is an optical output after we run the code.
E.g a video that is the same with the original plus bounding boxes and markers that mark the distance
Or more generally, where can we see the distance information?

Distance measurment

Hello, actually i've tried using the distance measurement but it dosen't work all the time , it sometimes count the objects in the video and speaks the kind of the objects but it dosen't tell the distance always.
Thank you :)

I take [Errno 2] No such file or directory: 'yolov4.weights'

In order to solve this error, I downloaded yolov4.weights and put under "YOLOv4" file but I get different error (error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'). How can I solve this error?

I downloaded YOLOv3 and YOLOv4 weights from links you shared (YOLOv3 YOLOv4 ) and I put them under "YOLOv4" file both. 5 file had same name. I changed them with original files. Entire error:

Traceback (most recent call last):
  File "C:\Users\Ahmet\anaconda3\envs\yolou4\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Users\Ahmet\anaconda3\envs\yolou4\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Ahmet\Desktop\Object Detection Projeler\Object-Detection-and-Distance-Measurement\YOLOv4\object_detection.py", line 84, in frame_render
    frame = cv2.resize(frame,(self.width, self.height))
cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-dn5w5exm\opencv\modules\imgproc\src\resize.cpp:4051: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'

RuntimeError: "clamp_cpu" not implemented for 'Half'

Hi

I have just started implementing it. Trying to run the code "object_detection.py" for a video. I am able to read the video, resize it, as is inside the code. Although I am getting the following error:

Traceback (most recent call last): File "object_detection.py", line 141, in <module> ObjectDetection(id).main() File "object_detection.py", line 110, in main output[:,1:5] = torch.clamp(output[:,1:5], 0.0, float(self.inp_dim))/self.inp_dim RuntimeError: "clamp_cpu" not implemented for 'Half'

When I commented out the line

output = output.type(torch.half)

it works and does detection. But I am not sure if that's the right way to resolve the error. Please guide as what would be the issue. Thanks!

Use EfficientDet Network

Hi,

Is it possible to change the current Yolo model for EfficientDet? I can improve this repo using another model, could you guide me for this update, please?

Raspberry Pi OS to be Used

@paul-pias
Hello mate! I'm confused whether I should install a 32 or 64 bit OS in Rpi4. I know 64 bit is needed for pytorch installation but then the 64 bit beta os does not work well when using the camera. Can you help me on what to install?

Doubt regarding the distance estimation

The formula for the distance estimation is mentioned as distancei = (2 x 3.14 x 180) ÷ (w + h x 360) x 1000 + 3. I have a counterexample in mind. Please let me know if I have made a mistake. Suppose you take two objects, one much larger than the other. Place the smaller object close to the camera and the larger object far away from the camera while ensuring the fact that both the objects take up the same bounding box space in the camera. In this case, the distance estimate will be the same for both objects when one of them is in fact much farther than the other.

video output related

i was testing your code, the program is taking the video input from my webcam but the bounding boxes and the distances are not being displayed. i have downloaded the updated version of this repo..also gone through the other issues regarding the video output issue..
i have used this line ==>frame = cv2.putText(frame, str("{:.2f} Inches".format(distance)), (w,h), cv2.FONT_HERSHEY_DUPLEX, 0.6, (0,0,255), 1, cv2.LINE_AA) and initialized the distance variable..but still the bounding boxes and the distance is not being show and called out..

No detection taking place using WebCam

Installed all the packages needed to run the code. It ran successfully without any glitch but there's no object detection and distance measurement taking place. I have used both Webcam and video files but nothing.

Can we schedule a 10min meet to resolve it?

Video is displayed without detection

Hello @paul-pias ,
Thank you for sharing your code.

I'm trying to run the code on a video file using cv.VideoCapture() and (ret,frame), the video is displayed as it is without object detection nor distance measurement.
What am i missing here?

Generalization of the formula

Hello,
Thank you for sharing this project.
Sorry, how did you get this formula:?
distancei = (2 x 3.14 x 180) ÷ (w + h x 360) x 1000 + 3
I didn't quite understand. Are we supposed to know the real object size ?
Please I want to use this formula in my own Android application and I didn't quite understand how?
Can you please make it more general?
I have to detect the focal length and then what other parameters?
Thanks in advance

!ssize.empty() in function 'cv::resize'

Hello,
Anyone came across the above mentioned problem?? When I choose to load a video , I get this error.
However i cant locate the file because the folder it is supposed to be in (opencv-python\opencv\modules\imgproc\src\resize.cpp) does not exist in the specific path ( C:\projects).
I have installed opencv-python using pip install.
Any ideas?

Some confusion about distance measurement

Thank you for your outstanding contribution, but I have some confusion about distance measurement:
(1) According to the formula: distancei = (2 x 3.14 x 180) ÷ (w + hx 360) x 1000 + 3, if the same person is detected, it is obvious that the w, h of the bbox of the face is much smaller than that of the pedestrian bbox, according to the formula, the calculated distancei of the face is much farther than the pedestrian, but they belong to the same person at the same depth. The calculated result does not seem to be in accordance with common sense. Does the formula have any restrictions?
(2) How is the formula d = f + R / r inferred?
(3) Why is focal length a constant? (f=2x3.14x180/360)
Thank you very much for your enthusiastic answer!

issues reg opencv accessing webcam on windows 10

[ WARN:[email protected]] global D:\a\opencv-python\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (1752) CvCapture_MSMF::grabFrame videoio(MSMF): can't grab frame. Error: -1072875772

hello , i am trying to run the file object_detection.py and i am getting this same error over and over , it worked perfectly fine before 2 months, but i had to delete all the files , when i tried to reinstall all the requirements and run i am getting these , i searched the stack overflow couldnt find anything helpful , i set the id val=0 to run on webcam locally . Can you please tell me why i am getting this error .
Thanks in advance.

Wrong output rpi

the output has no detection as you can see

python3.5 /home/pi/o/object_detection.py
Loading network.....
Network successfully loaded
[INFO] elasped time: 4.74
[INFO] approx. FPS: 0.2
[INFO] elasped time: 4.41
[INFO] approx. FPS: 0.2
[INFO] elasped time: 4.45
[INFO] approx. FPS: 0.2
[INFO] elasped time: 5.33
[INFO] approx. FPS: 0.2
[INFO] elasped time: 4.46
[INFO] approx. FPS: 0.2
[INFO] elasped time: 4.11
[INFO] approx. FPS: 0.2
[INFO] elasped time: 4.89
[INFO] approx. FPS: 0.2
[INFO] elasped time: 4.57
[INFO] approx. FPS: 0.2
[INFO] elasped time: 8.39
[INFO] approx. FPS: 0.1
[INFO] elasped time: 7.41
[INFO] approx. FPS: 0.1

!ssize.empty()

error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
whan should I do?

About diatance measurement

Hello.It's a great job.I ran this code, but the distance measurement doesn't work, there is a big error, I don't know how to fix it.
Thanks.

how to implement to tiny yolo voc?

Hello there @paul-pias

This code is very interesting, any clue on how to implement object detection and distance measurement for yolotinyvoc, which i use with darkflow. Any suggestion?
Thanks in advance

Compatibility issues with Ubuntu while using tts engine for windows

How can I run the project in Ubuntu since the object_detection.py file uses windows "win32com.client" for windows. Is there any alternative tts engine for ubuntu or is it only compatible with windows os.

The error is as follows:
import win32com.client as wincl Traceback (most recent call last): File "object_detection.py", line 18, in <module> import win32com.client as wincl ImportError: No module named 'win32com'

distance measurement

I wonder how this {d = f + R/r} formula came out.
Does d mean do? Or does it mean oblique distance?

Download of videos

Hi everyone,

Could you upload the videos in other source please? Because unfortunately I got this error from git lfs.

response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.

Thanks in advance

Input frame size for getting the distance result.

I was trying to find the distance of the bounding boxes. What exactly should be the frame size for the formula to work.
you have mentioned 640*480 and getting the bounding boxes and passing the (w,h)
coordinates. I am not getting the results. Can you suggest to replicate the result?

Issues with the weight

I find that the weights of the project is saved in yolov3.weights. But the weights gotten from the file only has 28 elements. And it makes the whole project fail to run. How to solve this problem

NEED HELP

Can you help me in running this project from starting. I am getting stuck.

new issue found on rpi

python3.5 /home/pi/o/object_detection.py
Traceback (most recent call last):
File "/home/pi/o/object_detection.py", line 159, in
ObjectDetection(id).main()
File "/home/pi/o/object_detection.py", line 89, in init
self.classes = load_classes('data/coco.names')
File "/home/pi/o/util.py", line 81, in load_classes
fp = open(namesfile, "r")
FileNotFoundError: [Errno 2] No such file or directory: 'data/coco.names'

Distance calculation

Thanks for the code, Paul!
Your calculation of the distance is impressing and the description is very clear. However, I think it applies to the objects those are facing the camera directly or near direct facing the camera. If an object is distorted a lot in the image, for example, the objects from a CCTV camera, where the image covers a wide range of areas, the calculation may not be applied. In that case, maybe we should use perspective transform and wrapping before applying your method? Any suggestion?

Platform dependent

The library you used "pywin32" can only be used for windows.

  • Find an alternative for the respective library for Linux .

Field of View

Does this program consider the field of view and the altitude of the camera?

Nvidia nano

Can i use NVIDIA Jetson nano for this project? And if yes , what are the requirements and the changes for this repo?
Thank you in advance.

Use with model based on ssd_mobilnet dataset?

Hi @paul-pias

Is it possible to execute your script with a model that was trained with TensorFlow and the "ssd_mobilenet_v2_quantized_coco" dataset? The format of the model is .pb as well. I tried it by changing the path to the model and the labelmap in your "objDet_utils.py" script(line 15 and 18). But I get a "NoneType: none" exception in line 102 of your "object_detection.py" script. I would be very grateful for your help! (I'm using my webcam, so changed id to 0)

OS: Windows 10
TF: 1.15.0
Python: 3.5.5

Thank you for reaching out!

Thank you for reaching out!
You can use espeak instead of win32com.

First, try to install using the following command from your terminal.

  • sudo apt-get install espeak python3-espeak

Then import in the object_detection.py script

  • from espeak import espeak

and replace the #244 line with

  • espeak.synth(feedback)

I hope it will resolve the issue. Kindly let me know if it works or not.

Originally posted by @paul-pias in #2 (comment)

I wanted to add text-to-speech to YoloV4

I run Yolov4 code. It run perfectly but I wanted to add speech that says like "person at 20 inches" but I couldn't because I couldn't find where is distance variable. In Yolov3 code, there is distance variable but in Yolov4, I couldn't find it.

RuntimeError: typeerror: expected PRT <cv::umat> for argument 'src'

Hi,
When I tried to run the code "object_detection.py" for a video. I am able to read the video, resize it. There was a error:
TypeError: Expected cv::UMat for argument 'src', line:"frame = cv2.resize(frame,(self.width, self.height))"

I am using opencv 4.2.0 on python 3.7. I guess it may be because of version. Which Pytorch Version you are using? Thanks!

Using in ubuntu

Hi every one,

How can I use this code in Ubuntu? When I used it, I got these errors:

me@me:~/Object-Detection-and-Distance-Measurement/YOLOv4$ python3 app.py
Traceback (most recent call last):
File "app.py", line 5, in
from camera import ObjectDetection
File "/home/me/Object-Detection-and-Distance-Measurement/YOLOv4/camera.py", line 9, in
from darknet import Darknet
File "/home/me/Object-Detection-and-Distance-Measurement/YOLOv4/darknet.py", line 4, in
from tool.region_loss import RegionLoss
File "/home/me/Object-Detection-and-Distance-Measurement/YOLOv4/tool/region_loss.py", line 3, in
from tool.torch_utils import *
File "/home/me/Object-Detection-and-Distance-Measurement/YOLOv4/tool/torch_utils.py", line 13, in
from tool import utils
File "/home/me/Object-Detection-and-Distance-Measurement/YOLOv4/tool/utils.py", line 11, in
import win32com.client as wincl #### Python's Text-to-speech (tts) engine for windows, multiprocessing
ModuleNotFoundError: No module named 'win32com'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.