units of optical flow velocities

6 次查看(过去 30 天)
priya
priya 2011-8-29
回答: NikoMue 2016-1-4
When Horn-Schunck or Lucas Kanade methos is applied for obtaining the optical flow velocities.. What are the units of optical flow velocities.
Thanks, Priya
  2 个评论
the cyclist
the cyclist 2011-8-29
Sorry. How is this a MATLAB question? Are these methods used in one of the specialized toolboxes? If so, the documentation will probably say what is assumed about the units for the inputs and outputs.
Walter Roberson
Walter Roberson 2011-8-29
It is the "Furman per jiffy".

请先登录,再进行评论。

回答(6 个)

Bjorn Gustavsson
Bjorn Gustavsson 2011-8-29
I'd bet it is pixels per time-period between exposures of the two images.
  3 个评论
David Young
David Young 2011-8-29
... though, if you have a calibrated camera, you might choose to express the flow in, for example, radians per second. However, the natural output units for a function which only knows about the image is pixels per frame.
Walter Roberson
Walter Roberson 2011-8-29
radians per second is just a linear multiple of my suggested "Furman per jiffy", with the latter being more natural for faster cameras.

请先登录,再进行评论。


Bastian
Bastian 2011-9-7
I also have a Problem like this. My camera is calibrated and mounted on a poti. I calculated with the angles of field of view, that 1° turn is about 16 pixels on screen. Unfortunately I'm not able to use the output parameter of optical flow form matlab toolboxes in simulink because I don't knwo the unit. There is nothing about in the help or online documentation. It can't be pixels/sample-time or frame. What about Furman per jiffy? Is this possible? Does anyone have an idea how to get the veloctiy out of this block? Or if not a possibility to get velocity out of a picture of non-destincitve points? Thanks
  2 个评论
Walter Roberson
Walter Roberson 2011-9-7
Apologies, "Furman per jiffy" is mostly a bit of humor, sort of like measuring velocity in attoparsec per microfortnight (a value that is fairly close to 1 inch per second.)
David Young
David Young 2011-9-7
Why can't it be pixels/frame?
What do you mean by getting velocity from a picture of non-distinctive points? If you mean a uniform or smooth area of the image, then no, it is not possible to accurately estimate the flow for such a region, though there are many methods that attempt to interpolate the flow from the nearest distinctive features or contours.

请先登录,再进行评论。


Bastian
Bastian 2011-9-8
I'm recording a white plane with a black line. By turning the camera in a direction with f.e. 16 pixels/sample-time. The optical flow velocity lines are brilliant and shows the right direction but their outcomes are very little, about 0.03 or less. That's why I think it's not possible that the unit might be pixels/frame, what I originally thought also. The frame-rate of camera-input is established by the sample-time, so frame-rate and sample-time should be the same.
Yes, smooth areas doesn't have any flow. I just want to determine ares, which have the same velocity as the turning camera. F.e. if motion of above mentioned black line is equal to camera motion, I could erase this area.
Maybe I'm misguided, than please correct me.
  5 个评论
David Young
David Young 2011-9-9
@priya: Not all optic flow algorithms use gradients. Some use feature matching. Some optic flow programs that do use gradients may not use gradient(). However, you are right to say that if gradient() is used, and the spacing parameters to gradient() are specified, the result may not be in the natural units of grey-levels/pixel, but you would also need to look at how the temporal gradients are calculated. (The natural approach is to express spatial image gradients in grey-levels/pixel, temporal gradients in grey-levels/frame, and then when you divide to get the flow speed you end up with pixels/frame.)
David Young
David Young 2011-9-9
If the spatial gradient is in grey(= US gray)-levels/Furman, and the temporal gradient is in grey-levels/jiffy, the resulting flow is in units of Robersons. (N.B. This may safely be ignored.)

请先登录,再进行评论。


Clara
Clara 2014-5-15
Hi, I'm following this document http://www.mathworks.it/it/help/vision/ref/vision.opticalflow-class.html#br6h6aa-7. And I'm using lukas kanade method and setting my output value to 'Horizontal and vertical components in complex form' code:
I1C1=im2double(imread('img-001_0.tif'));
I2C1=im2double(imread('img-002_0.tif'));
opticalFlow = vision.OpticalFlow('ReferenceFrameSource', 'Input port', ...
'Method', 'Lucas-Kanade');
opticalFlow.OutputValue = 'Horizontal and vertical components in complex form';
opt=step(opticalFlow,I2C1,I1C1);
H=imag(opt);
V=real(opt);
do you know wich are the units of H and V? they are very low to be pixels/frame...

Max
Max 2014-11-7
I got the same problem concerning velocity unit. The values are too low to represent motion from a pixel to another pixel. Are there any other solutions to solve the problem? Or do we get some normalized output values?
  1 个评论
Benito
Benito 2014-11-22
So the question is; How does one convert the complex (u,v) values to pixels per frame? I took video while driving at 20 mph and the u,v magnitude seams to be off by an order of magnitude. Not only that but when compared to the block match technique the angle of the u,v vectors does not seem to reflect the true motion vector field. Has anybody compared the results against standard optical flow data sets?

请先登录,再进行评论。


NikoMue
NikoMue 2016-1-4
I just found this thread and wanted to know if there are some solutions concerning the too small units of the u and v velocities? I use the opticalFlow on a 3D picture matrix but when I assume the units to be pixels per frame I get maximum velocities like 0.0806 m/s which is too small.
opticFlow = opticalFlowHS('Smoothness',1,'MaxIteration',10,'VelocityDifference',0);
%%3D matrix with 10 pics
for i=1:10
Bild= imread(names{i}, 'png');
Bilderstack(:,:,i)=Bild;
flow = estimateFlow(opticFlow,Bilderstack(:,:,i))
end
Is it even possible to use opticalFlow on a 3D picture matrix?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by