0

My use of Autodesk Forge Reality Capture

I am using Autodesk Forge Reality Capture to create precise 3D models of small target objects. These models are then further adjusted in CAD, for eventual 3D printing.

MY GOAL: I am trying to improve the precision of my 3D models by providing a survey file with known markers (GCPs) positions and I have consulted the API documents here.

My Questions:

  1. Which coordinate system string to specify given my (non-geographical) arbitrary origin imaging application?
  2. Is there is a way to provide cartesian coordinates locations in the < gpc > tag, and if so, what is the syntax?
  3. When I should define a location as a GPC point and when I should define a location as a "checkpoint"?

My Motivation for providing survey file to Forge

Without providing survey information, I am finding that the resulting Forge models are significantly distorted, even when I use images that provided good models previously with RECAP.

When I previously modeled with the RECAP software, I initially had similarly distorted models until I provided RECAP with my marker positions. After I provided precise marker positions to RECAP, I got excellent models.

So I expect that if I can provide the marker locations to Forge I will again get very accurate output models.

However, because my application is not geographical, I want to provide my marker positions to Forge in terms of either spherical coordinates or cartesian coordinates from my own arbitrarily defined origin point.

I can provide distances in millimeters, and angles in degrees.

I can't figure out from the documentation which coordinate system name to provide.

I believe that I could probably provide the spherical coordinates from my arbitrary origin in the < gcp > tag, if I knew which coordinate system is appropriate for altitudes measured in millimeters. But I can't determine which coordinate system string I need to provide.

I see the very lengthy list of known coordinate system strings referred to in the documentation, but they are just labels with no explanation of what they are.

I can provide cartesian coordinates, but I don't know which coordinate system string would be appropriate for that. And even if I did, the < gcp > tags in the example don't illustrate any x= y= z= format.

Can someone provide me more information on use of survey files for my application?

About my set up

I have more than 20 images from known vantage points all around a controlled target imaging zone.

All around the target zone I have fiduciary marker points, with at least 3 markers visible in each image, and frequently more.

For every marker I know which images that marker appears in, and at which xpixel and ypixel location it is centered.

BTW, in RECAP these locations were defined in terms of % of the frame, rather than pixel positions. That enables more precision than a single pixel. Is that no longer possible?

I also know the physical location of each marker in 3-space, relative to an arbitrary origin (0,0,0) at the center of my imaging zone. I have these locations in terms of cartesian coordinates in millimeters, as well as in spherical coordinates forms.

mcgregor94086
  • 1,467
  • 3
  • 11
  • 22
  • I'm afraid that - based on the [docs](https://forge.autodesk.com/en/docs/reality-capture/v1/reference/http/file-POST) - only geo coordinates are supported at the moment. But let me reach out to the dev team to confirm that. – Petr Broz Jul 25 '19 at 10:55
  • Petr Broz - thank you. I would reach out to them my selves if I knew a way to do so other than ask questions here. – mcgregor94086 Jul 26 '19 at 18:41
  • No problem, I just heard back from the dev team. Let me post their feedback as an answer. – Petr Broz Jul 30 '19 at 09:01

1 Answers1

0

GCP (Ground control points) and check points can be specified in Cartesian coordinates with an arbitrary origin by setting the value of the coordinatesystem attribute to XYZ in the definition file.

Here's a sample XML that defines three GCPs:

<?xml version="1.0" encoding="UTF-8"?>
<surveydata coordinatesystem="XYZ" description="Local coordinatesystem; meters" epsgcode="0">
 <markers>
   <marker id="0" name="1">
     <images>
       <image name="IMG_0138.JPG" xpixel="2051" ypixel="946"/>
       <image name="IMG_0139.JPG" xpixel="2030" ypixel="1366"/>
       <image name="IMG_0153.JPG" xpixel="2659" ypixel="57"/>
     </images>
     <gcp x="4.897" y="-18.174" z="-1.964" checkpoint="false"/>
   </marker>
   <marker id="1" name="10">
     <images>
       <image name="IMG_0143.JPG" xpixel="2638" ypixel="1562"/>
       <image name="IMG_0153.JPG" xpixel="1996" ypixel="1515"/>
       <image name="IMG_0154.JPG" xpixel="1981" ypixel="1951"/>
     </images>
     <gcp x="10.017" y="-43.106" z="-1.121" checkpoint="false"/>
   </marker>
   <marker id="2" name="11">
     <images>
       <image name="IMG_0127.JPG" xpixel="1774" ypixel="1441"/>
       <image name="IMG_0130.JPG" xpixel="1753" ypixel="2694"/>
       <image name="IMG_0132.JPG" xpixel="1288" ypixel="33"/>
       <image name="IMG_0133.JPG" xpixel="1435" ypixel="415"/>
     </images>
     <gcp x="-2.481" y="9.208" z="-1.922" checkpoint="false"/>
   </marker>
 </markers>
</surveydata>

A location should be defined as a GCP point. Check points (checkpoint="true") can be used to validate the position of a reconstructed point against a known location. The deviation of each check point will be listed in the project report.

Do note that GCPs are only supported for aerial scenes (scenetype=aerial must be specified for the POST /photoscene endpoint).

Sub-pixel positions for xpixel and ypixel values are not supported.

Petr Broz
  • 8,891
  • 2
  • 15
  • 24