Page 1 of 1

Image Identification from Point Cloud

Posted: Sat Mar 18, 2017 10:18 am
by SteveGalvin
Hello

I use point clouds to build structures (for roof surveys) from drone aerial images and create point clouds and meshes using SfM. The problem I am trying to solve is the way I can use the point cloud as a means of i8dentifying the images that have thet point within thier field of view. By selecting a point in CCViewer the vector data of that point will need to fall withing the square cone or pyramid extending from the camera's focal plane.

My understanding is that in order to do this the position, tilt and rotation camera's focal plane needs to be known. This I believe can be obtained from the exported xmp Metadata of each the images. From that data the distance from the point to the camera can be calculated and knowing the lens' focal length the file of view from the camera can be calculated. Therefore any point falling within the range of the view of the camera will appear in the jpg image. This is of course then filtered in both the xy and xz planes.

Does anyone know if here is a plug-in or a how to calculate this so that the images that are 'looking' at this point can be indentified from the CCViewer's point data?

Many thanks Steve

Re: Image Identification from Point Cloud

Posted: Sat Mar 18, 2017 9:11 pm
by daniel
Actually CloudCompare (not ccViewer) can already do this 'visibility' computation once you have defined a 'camera sensor' object. This is actually done automatically when loading a Bundler (.out) or Photoscan (.psz) file. I guess it should be technically possible to do the same thing with xmp files.

Re: Image Identification from Point Cloud

Posted: Mon Mar 20, 2017 10:53 am
by SteveGalvin
I have tried to load a Bundler .out file in Cloud Compare but keep getting "reading error (no access right?)" - How do I get round this?

Re: Image Identification from Point Cloud

Posted: Mon Mar 20, 2017 1:38 pm
by SteveGalvin
I have managed to export a .csv file from Capturing Reality which gives the filename,x,y,z,heading,pitch and roll values. When I load the xyz file to viewer and look at the point of a camera position the 2 values are not relative to one another. The image I am comparing is DJI_0151.jpg. This shot shows the position from CCViewer while the other is the csv x,y,z co-ordinates from the exported csv.

Any ideas as to why the 2 sets of data do not seem to match?
Screenshot (25).jpg
Screenshot (25).jpg (173.71 KiB) Viewed 16889 times
Screenshot (26).jpg
Screenshot (26).jpg (198.97 KiB) Viewed 16889 times

Re: Image Identification from Point Cloud

Posted: Tue Mar 21, 2017 7:47 pm
by daniel
In the CSV file, the 'x, y, z, heading, pitch, roll' are probably describing the camera position? (i.e. optical center + camera orientation)

In this case, you have to consider the 'cone' of vision of the camera to be able to determine if a 3D point falls inside or not. And sadly you are missing some other information to do this (the field of view or equivalently the focal length).