terzakig / sqpnp

C++ Implementation of the SQPnP algorithm
BSD 3-Clause "New" or "Revised" License
150 stars 26 forks source link

May I ask if the sqpnp algorithm can run with high accuracy at a distance of about a hundred meters? Ten identification points make up a small proportion of the camera's field of view #21

Closed cvDFT closed 5 months ago

cvDFT commented 1 year ago

As shown in the title, the performance of my project's PNP algorithm is not as expected

terzakig commented 1 year ago

Hi there,

thanks for your interest in our work!

Distance is not an issue for the PnP in general. However, not accounting for noise, it can pose a problem if, for instance, your sensor's resolution cannot "distinguish" the projections of the 3D points from some degenerate configuration, say, a line or a point. For example, if the 3D points are arranged on the corners of a square with 50cm side at 100m from the camera, then these points may end up projected near or on a single pixel in your camera.

Other issue is "noise". If your projections are distinguishable enough, then error in the PnP estimate may be attributed to small errors in the pixel locations, which are pronounced even more at 100m distance. But this is less problematic than degenerate artrangements.

Hope the above helps


From: cvDFT @.> Sent: Thursday, September 7, 2023 1:54 PM To: terzakig/sqpnp @.> Cc: Subscribed @.***> Subject: [terzakig/sqpnp] May I ask if the sqpnp algorithm can run with high accuracy at a distance of about a hundred meters? Ten identification points make up a small proportion of the camera's field of view (Issue #21)

As shown in the title, the performance of my project's PNP algorithm is not as expected

— Reply to this email directly, view it on GitHubhttps://github.com/terzakig/sqpnp/issues/21, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AACHSFXA3DIDIFKMPN3R3ATXZG7Y3ANCNFSM6AAAAAA4O3OCWA. You are receiving this because you are subscribed to this thread.Message ID: @.***>

cvDFT commented 1 year ago

Thank you very much for your reply, but I see a saying that measuring distance is the primary factor affecting measurement accuracy, and the measurement error of the Z-axis shows exponential growth. As with this viewpoint, I am using the corner of the object on the right side of this image to measure the camera's rotation matrix, which has a significant error. 8e2882319a2a1360fa72dcfdbe122dc

terzakig commented 1 year ago

Yes, measurement accuracy is what I am referring to in my previous message. The PnP effectively works on Euclidean bearings ( which are opbtained from image projections). Thus, it should not be necessarily susceptible to the distance if these bearings are accurate. However, in practice, these bearings are obtained from image projections which can be inaccurate due to pixel quantization. So, it is your camera that needs to be as accurate as possible in distinguishing points that are at 100 meters distance. The PnP result will subsequently reflect that accuracy.


From: cvDFT @.> Sent: Friday, September 8, 2023 3:48 AM To: terzakig/sqpnp @.> Cc: George @.>; Comment @.> Subject: Re: [terzakig/sqpnp] May I ask if the sqpnp algorithm can run with high accuracy at a distance of about a hundred meters? Ten identification points make up a small proportion of the camera's field of view (Issue #21)

Thank you very much for your reply, but I see a saying that measuring distance is the primary factor affecting measurement accuracy, and the measurement error of the Z-axis shows exponential growth. As with this viewpoint, I am using the corner of the object on the right side of this image to measure the camera's rotation matrix, which has a significant error. [8e2882319a2a1360fa72dcfdbe122dc]https://user-images.githubusercontent.com/94675255/266488835-f022ea06-5386-448b-a84f-4fca9d5a84b0.png

— Reply to this email directly, view it on GitHubhttps://github.com/terzakig/sqpnp/issues/21#issuecomment-1711002212, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AACHSFXAUXO7PG4G2KPQABDXZKBO5ANCNFSM6AAAAAA4O3OCWA. You are receiving this because you commented.Message ID: @.***>

cvDFT commented 1 year ago

Thank you for your outstanding work. I should also be researching a field wide field calibration scheme myself.