If you want to estimate distance of objects with your simple webcam, then this algorithm(Triangle similarity) would be helpful for you to find Distance from object to camera, I have provide to two examples, one is simple face detection and distance Estimation, other is Yolo4 object detection and distance Estimation
Here in this readme file you will get short description, if need more details, then you can watch video tutorial on YouTube as well.
Distance.and.Speed.Estimation.Demo.mp4
Distance Estimation Youtube Tutorail
Distance & Speed Estimation Youtube Tutorial
YoloV4 Object Detection & Distance Estimation Project GitHub Repository
YoloV4.Distance.Estimation.mp4
Distnace.Estiamtion.on.Pi.mp4
✔️ here is source code and details for Instllation of Opencv-python on 🍓 Pi 😃 Distance Estimation on Raspberry pi 🍓
✔️ I have included Speed Estimation code is well check that out.
✔️ You can find the implementation of Distance estimation of multiple objects using Yolo V4 Object Detector Opencv-python
git clone https://github.com/Asadullah-Dal17/Distance_measurement_using_single_camera
-
Windows
pip install opencv-python
-
install Opencv-python on Linux or Mac
pip3 install opencv-python
-
windows: 👇
python distance.py
------ OR ---------
python Updated_distance.py
-
linux or Mac 👇
python3 distance.py
------ OR ---------
python3 Updated_distance.py
# focal length finder function
def focal_length(measured_distance, real_width, width_in_rf_image):
focal_length_value = (width_in_rf_image * measured_distance) / real_width
#return focal length.
return focal_length_value
The Focal Length finder Function has three Arguments:
measured_distance
is the distance which we have measured while capturing the reference image:straightruler:. **_From object to Camera** which is Known_distance = 72.2 #centimeter
real_width
It's measured as the width of the object in the real world, here I measured the width of the face in real-world which was Known_width =14.3 # centimetre
width_in_rf_image
is the width of the object in the image/frame it will be in pixels
# Distance estimation function
def distance_finder(focal_length, real_face_width, face_width_in_frame):
distance = (real_face_width * focal_length)/face_width_in_frame
return distance
This Function takes three Arguments,
Focal_Length
is the focal length, out of the FocalLength finder function.
real_face_width
measures the width of an object in the real world, here I measured the width of a face in real-world which was Known_width =14.3 #centimeter
face_width_in_frame
is the width of the face in the frame, the unit will be pixels here.
I have also created Face Following Robot which uses distance Estimation If you are interested you can Watch my Youtube Video You can create the following Robot with Raspberry That would be easy then, using Arduino Stuff, Raspberry 🍓 Pi will make it a system on Robot 🤖
If you found this helpful, please star ⭐ it.
You can Watch my Video Tutorial on Computer Vision Topics, just check out my YouTube Channel
If You have any questions or need help in CV Project, Feel free to DM on Instagram
I am avalaible for paid work here Fiverr