<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Batu,<div class=""><br class=""></div><div class="">I’ll address your questions inline below.</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 11, 2016, at 5:19 PM, OSMANOGLU, BATUHAN (GSFC-6180) <<a href="mailto:batuhan.osmanoglu@nasa.gov" class="">batuhan.osmanoglu@nasa.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" class="">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class="">Hi all, </div>
<div class=""><br class="">
</div>
<div class="">I have an airborne dataset collected over forested areas. Looking into Surface/Structure From Motion algorithms I cam across MapTK and would like to give it a shot. We are interested in getting tree heights… </div>
<div class=""><br class="">
</div>
<div class="">I couldn’t get access to the forge.mil, so I am working with the public version at the moment. Not sure if there are differences. </div></div></div></blockquote><div><br class=""></div><div>None of MAP-Tk is on forge.mil.  However, some other parts of KWIVER have a component on forge.mil.  We do have an internal development branch of MAP-Tk that is not public.  This is where we do much of the development sponsored by the Air Force.  Every three months we request approval for that code from the Air Force and once we get approval we fold that code back into the public Github master branch.  There is a large chunk of code pending approval right now.  I expect approval to come through any day now.  Once approved I will push the changes to Github and shortly after that I’ll be releasing MAP-Tk v0.8.0.  If you can wait a couple weeks, you’ll find MAP-Tk v0.8.0 to be considerably easier to configure.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class=""><br class="">
</div>
<div class="">I couldn’t find a tutorial on MapTK (I guess Matt is working on it), but reading some of the emails on this list, I think I will have to do:</div>
<ul class="">
<li class="">Extract frames from the video (ffmpeg etc.)</li><li class="">Use the config files under /tools/config as template</li></ul></div></div></blockquote><div>Correct.  A tutorial will be coming out (pending Air Force approval) in April as a blog post and in the April edition of the Kitware Source (<a href="http://www.kitware.com/media/thesource.html" class="">http://www.kitware.com/media/thesource.html</a>).  This tutorial will come with some sample data and configuration files.  It will focus on MAP-Tk v0.8.0.</div><div><br class=""></div><div>For now you do need to extract frames as images using FFmpeg or another tool.  That will probably not change until MAP-Tk v0.9.0 later this year.  In MAP-Tk v0.7.x you should use the config files in tools/config as a template.  These files can be a bit unwieldy due to the number of nested algorithms.  MAP-Tk v0.8.0 will support modular config files which can be included from other config files.  A default set of config files will be installed with the software.  This will make the top-level configuration much simpler.  You will be able to include the default config files to get the default algorithms and parameters.</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class="">This is where it gets fuzzy ;)</div>
<ul class="">
<li class="">What is the order/sequence of the MapTK commands?
<ul class="">
<li class="">maptk_track_features first etc..</li></ul></li></ul></div></div></blockquote><div>The primary two commands are maptk_track_features and maptk_bundle_adjust_tracks, run in that order.  The first takes your image sequence and produces a feature track file.  The second takes the feature track file and estimates camera parameters and 3D landmarks.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class=""><ul class=""><li class="">
</li><li class="">How do I enter the camera position (or plane position info?) 
<ul class="">
<li class="">What format does it need etc?</li></ul></li></ul></div></div></blockquote><div>MAP-Tk can reconstruct the camera positions and landmarks without any prior position info, but the solution is only up to an unknown similarity transform (global scale, orientation, and geo-location).  If you have metadata about position (e.g. from GPS and IMU) you can use that.  The metadata will provide initialization to the solution and also constrain the unknown similarity.  Currently the only format we support for the metadata is a format used by the Air Force called POS.  You can find an example of POS metadata with the CLIF 2007 data (<a href="https://www.sdms.afrl.af.mil/index.php?collection=clif2007" class="">https://www.sdms.afrl.af.mil/index.php?collection=clif2007</a>).  There is one POS file per image, and each contains comma separated ASCII values for </div><div><br class=""></div><div>   yaw, pitch, roll, latitude, longitude, altitude, gpsSeconds, gpsWeek, northVel, eastVel, upVel, imuStatus, localAdjustment, dstFlag</div><div><br class=""></div><div>We currently only use the first 6 fields in this file in MAP-Tk.  The rest could be set to zeros.  If you have another format for your metadata I be interested to know about it.  There is no reason we couldn’t support other formats in the future.  The other format we support for cameras is KRTD, another ASCII format which contains a 3x3 calibration matrix (K), a 3x3 rotation matrix (R), a 1x3 translation vector (t), and a 1xN distortion vector (d).  For the distortion vector N can between 1 and 8, but you can use a single “0” to model no radial distortion.  The KRTD file represents the cameras relative to some local origin.  The KRTD files are not geo-located but can contain absolution scale and orientation.  The POS files, on the other hand have geo coordinates, but do not contain any information on camera intrinsic parameters (focal length, distortion, etc.).</div><div><br class=""></div><div>There is a tool, pos2krtd, that converts POS files to KRTD given also a model of the camera intrinsics.  The orientation angles (yaw, pitch, roll) can be tricky to get correct in the POS file if you are making the POS file from another data source.  Converting POS to KRTD is a good way to check that the POS files are as expected.  The KRTD files can be loaded directly into the MAP-Tk GUI application for viewing.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class=""><ul class=""><li class="">
</li><li class="">Tools for displaying the point cloud?
<ul class="">
<li class="">Or do we get a file that has to be opened with python displayed in Mayavi etc…</li></ul></li></ul></div></div></blockquote><div><br class=""></div><div>The point cloud comes out as a PLY file, which is fairly standard and can be viewed in numerous tools.  The MAP-Tk GUI make it easy to view both the cameras and 3D point cloud together.  In MAP-Tk v0.8.0 you can just “open” the same config files used on the command line to load the cameras and point cloud.  MAP-Tk also comes with scripts to aid importing the results into other third party tools.  MAP-Tk includes Python plugins for Blender (<a href="https://www.blender.org/" class="">https://www.blender.org/</a>) to load the KRTD files and Blender natively supports PLY.  MAP-Tk v0.8.0 will also provide Ruby plugins for SketchUp (<a href="http://www.sketchup.com/" class="">http://www.sketchup.com/</a>) to import both KRTD cameras files and the PLY point cloud.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class=""><ul class=""><li class="">
</li></ul>
<div class="">I appreciate any suggestions, assistance ;) Oh and currently I am on MacOS, though can switch to others if there is a preferred environment. </div></div></div></blockquote><div><br class=""></div><div>We support MacOS, Linux, and Windows.  I do most of my development on MacOS as well, so that should not be a problem. </div><div><br class=""></div><div>MAP-Tk is still very much a work in progress, so please let us know if you run into trouble.  If you are willing to get your hands dirty with the code, pull requests are also welcome for bug fixes and new features.</div><div><br class=""></div><div>Good luck,</div><div>Matt</div><div><br class=""></div><div><br class=""></div></div><br class=""></div></body></html>