Find hinge point or axis of rotation point?

asked 2019-07-10 05:52:41 -0500

muglikar gravatar image

updated 2019-07-20 07:02:36 -0500

I have a problem at hand where I need to detect/predict the coordinates of the hinge point or axis of rotation point using image processing. The image is as shown below:

image description

image description

I've used a method where I started with tracking the circular movement (in an arc) of a few feature points in an RoI around the default hinge coordinates (entered manually) in a configuration file. This circular motion of these tracked points happens around the vertical axis which passes through the hinge point. Now, I tracked these points from their initial position until the connecting bar made a particular angle (15°/20°) with the y-axis, I drew secants between these different positions (start and end positions) of the same point and drew its perpendicular bisector, which will ideally pass through the centre of the (concentric) circles, which is the ideal hinge point.

Now, the issues we faced in this ideal scenario to practical working of it is:

Different tracked points give different potential hinge points, (few of which are very close the ground truth), but their weighted/average goes off the mark. Quite frankly, this is a problem of too many in which we do get the closest potentially to ground truth, but we’re not sure, which of these points is the closest as we’re not to use the default connecting coordinates (entered manually) from config file. Eg:

y_intercepts calculated for each point
H0 (322, 42)                        
H1 (322, 64) (within tolerance, closest to GT)
H2 (322, 48)
H_avg (322,52)
H_groundtruth (x,y): (322, 61)

image description

Update: Added part of original image for more clarity. Dots on vertical yellow line = Different hinge points given by different feature points tracked in an arc Green circle: Predicted hinge point from avg of the above different hinge points Yellow circle: Ground truth hinge point

edit retag flag offensive close merge delete



If you could fix a marker (a chessboard, an Aruco marker...) you could find the relative position and orientation of the marker and calculate the center of rotation.

Witek gravatar imageWitek ( 2019-07-10 07:20:23 -0500 )edit

Can you share some real images with us? Will the camera and object be fixed other than the rotation at the hinge?
Will the lighting be consistent?

Chris gravatar imageChris ( 2019-07-10 08:50:36 -0500 )edit

@Witek: We're not allowed to use markers. @Chris: We're not allowed to share actual images. However, this drawn image is similar to what we'll have in real. Also, the lighting condition will be consistent during one iteration. The camera is a moving camera, however in it's frame of reference, the hinge will be fixed relatively and the object on top will only move to left or right.

muglikar gravatar imagemuglikar ( 2019-07-11 01:36:23 -0500 )edit

I am not sure if my understanding of the problem is correct, but if you can track a number of feature points along the hinge rotation, you can later use the Hough Circle transform to fit the circles and find their center(s). This is similar to what you are doing now, but using more data points should result in lesser noise. Eventually you would have to find a sufficiently small cluster of the centers and get the average center from those points only.

Is this idea any useful?

Witek gravatar imageWitek ( 2019-07-11 07:17:14 -0500 )edit

I tried fitting Hough circles but it's computationally expensive as the radius as well as centre of these circles is unknown. Plus we have only upto 15-20 degrees of rotation to track these points and get the centre of circle.

muglikar gravatar imagemuglikar ( 2019-07-20 07:04:23 -0500 )edit

Right, with just a short arc Hough might provide inaccurate results. How about fitting a circle to these points?

Witek gravatar imageWitek ( 2019-07-20 08:25:50 -0500 )edit

@muglikar. Can you post actual image?

supra56 gravatar imagesupra56 ( 2019-07-20 08:28:58 -0500 )edit

@Witek. Nope. That doesn't help. He wants angle of axis.

supra56 gravatar imagesupra56 ( 2019-07-20 08:30:56 -0500 )edit

Actual image is up in the question. It is quite low res though. He wants center of rotation, so precise fitting of circles might work, but @muglikar's method is generally correct, but yields very different results. I am wondering if this might be due to low resolution and errors in point tracking and pixel quantization.

I have another idea but I would need to see three images at left, center and right position of the object. Possibly at higher resolution.

Witek gravatar imageWitek ( 2019-07-20 13:48:02 -0500 )edit