I am doing a project to find the speed of a vehicle from images. We are taking these images from within the vehicle. We will be marking some object from the 1st image as a reference. Using the properties of the same object in the next image, we must calculate the speed of the moving vehicle. Can anyone help me here??? I am using python opencv. I have succeeded till finding the marked pixel in the 2nd image using Optical flow method. Can anyone help me with the rest?
Find speed of vehicle from images
6k Views Asked by Rony Varghese At
1
There are 1 best solutions below
Related Questions in PYTHON
- new thread blocks main thread
- Extracting viewCount & SubscriberCount from YouTube API V3 for a given channel, where channelID does not equal userID
- Display images on Django Template Site
- Difference between list() and dict() with generators
- How can I serialize a numpy array while preserving matrix dimensions?
- Protractor did not run properly when using browser.wait, msg: "Wait timed out after XXXms"
- Why is my program adding int as string (4+7 = 47)?
- store numpy array in mysql
- how to omit the less frequent words from a dictionary in python?
- Update a text file with ( new words+ \n ) after the words is appended into a list
- python how to write list of lists to file
- Removing URL features from tokens in NLTK
- Optimizing for Social Leaderboards
- Python : Get size of string in bytes
- What is the code of the sorted function?
Related Questions in IMAGE-PROCESSING
- Need help in detecting multiple blobs
- Image based steganography that survives resizing?
- WinRT Extract Thumbnail from RAW image format
- 3D B-Spline approximation
- Qualitative and Quantitative analysis of filtered back projection / iradon in matlab
- How to detect objects in an image based on colour?
- How to make sense (handle) when computes logarithm of zero in prior information
- scilab - Drawing bounding box
- Lowpass filter non working
- Get a single line representation for multiple close by lines clustered together in opencv
- error while drawing several x-marks on a binary image in matlab
- Which method should I use to find gradient direction of pixels in an image?
- Finding Circle Boundary Pixels Coordinates and RGB Intensity Values from An RGB Input Image in Matlab
- using SURF for handdetection
- Using only one tool from CLImageEditor
Related Questions in OPENCV
- segmentation fault: 11, extracting data in vector
- Disable OpenCL in OpenCV completely
- Python - Writing your own function with opencv giving an error
- Opengl Augmented Reality in Android from solvepnp
- OpenCv Multispectral Image openCV
- Displaying bitmap image on Android (OpenCV)
- Applying homography on non planar surface
- BackgroundSubtractor getBackgroundImage() function return empty Image
- How to choose good SURF feature keypoints?
- opencv python error: Assertion failed (size.width>0 && size.height>0)
- CIDetector to filter rectangle and get cropped image
- How to detect squares in video with OpenCV?
- Python OpenCV error: (-215) size.width>0 && size.height>0 in function imshow
- OpenCV algorithm of contours searching and creation of bounding rectagle
- OpenCV Opening/Closing shifts the positions of the pixels
Related Questions in PERFORMANCE
- Slow performance on ipad erasing image
- Can Apache Ant be told to cache its XML files?
- What are the pros and cons of the picture element?
- DB candidate as CouchDB/Schema replacement
- python member str performance too slow
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Use GUI displayed results of SQL query vs new queries?
- fastest way to map a large number of longs
- Bash regular expression execution hangs on long expressions
- Why is calling a function so slow in Javascript?
- Performance of element-compare in java collections
- "Capture GPU Frame" in XCode -- iOS only?
- Efficiency penalty of initializing a struct/class within a loop
- Change the rotating speed of the circle when the mouse moves using javascript
- Replace foreach to make loop into queryable
Related Questions in OPTICALFLOW
- How to grab video frames in Qt?
- Warp images using motion maps generated by opticalFlowLKDoG (Matlab 2015A)
- open cv Feature matching using given coordinates
- How to implement optical flow using belief propagation?
- Tracking multipel opject using Optical Flow PyrLK from haar detection result
- how does the histogram of optical flow work?
- Identifying moving objects using optical flow
- Optical Flow OpenCV "lkpyramid.cpp" throws exception
- Weighted Lucas Kanade - Gaussian Function MATLAB
- How to do smooth frame interpolation and extrapolation using OpenCV?
- Find speed of vehicle from images
- Calculate actual velocity using optical flow
- How to efficiently threshold a matrix in SIMULINK (remove noise)
- Optical Flow Color Map in OpenCV
- opencv optical flow does not detect most of the vectors
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Knowing the acquisition frequency, you must now find the distance between the successive positions of the marker.
To find this distance, I suggest you estimate the pose of the marker for each image. Loosely speaking, the "pose" is the transformation matrix expressing the coordinates of an object relative to a camera. Once you have those successive coordinates, you can compute the distance, and then the speed.
Pose estimation is the process of computing the position and orientation of a known 3D object relative to a 2D camera. The resulting pose is the transformation matrix describing the object's referential in the camera's referential.
OpenCV implements a pose estimation algorithm: Posit. The doc says:
This means:
You may have to compute the focal length of the camera using the calibration routines provided by OpenCV. I think you have the two other required data.
Edit:
Edit 2: (Answers to comments)
Computing the speed of your vehicle is equivalent to computing the speed of the marker. (In the first case, the referential is the marker attached to the earth, in the second case, the referential is the camera attached to the vehicle.) This is expressed by the following equation:
With:
Dthe distance[o1 o2]o1the position of the marker at timet1o2the position of the marker at timet2You can retrieve the elapsed time either by extracting
t1andt2from the metadata of your photos, or from the acquisition frequency of your imaging device:t2-t1 = T = 1/F.This is not possible with the Posit algorithm (or with any other pose estimation algorithm as far as I know): it requires four non-coplanar points. This means you cannot chose a 2D object embedded in a 3D space, you have to chose an object with some depth.
On the other hand, you can use a really simple shape, as far as it is a volume. (A cube for example.)