Author Topic: A couple of request/suggestions after evaluation  (Read 5159 times)


  • Newbie
  • *
  • Posts: 5
    • View Profile
A couple of request/suggestions after evaluation
« on: September 12, 2013, 03:38:23 AM »

I am coming to the end of evaluation of PS, and these are my suggestions how to make this product more versatile, attractive and usable. All of my considerations are regarding making orthophoto + 3D of landscapes and might not make much sense in other use cases.

Timestamping log file and console records. That's an easy one to implement, and would be a lot of help when trying to benchmark same project on different machines or just troubleshoot some situations.

Make console browsable when running a process. Just a convenience feature. One can browse log file instead, if file logging is enabled.

More anaglyph viewer options (e.g. magenta/green, etc.) .

Save several meshes/textures/point clouds within a project file (e.g. high quality, decimated, different sizes, etc.). Now, when I build textures of different sizes, I need to "save  as" project individually every time as a new file to keep different textures/meshes with a project.

Disable (make optional) "streching" of the mesh/model to fit a rectangle. When a mesh is generated from a point cloud, PS fits it in a rectangle and fills the "wholes" on the sides till the boundaries of that rectangle. For me personally it does not make sense, and I would like to see the 3D model it in it's natural shape as it is covered by the photos (just like a point cloud looks like).

Optionally "volumize" mesh by adding a flat "floor" under it of user-given height and joining it with the model to form a uniform solid (if "fill holes" is enabled) model. If it's an orthophoto, it should like like it's been dug from the ground (following the mesh'es outer contour).

Instant pause. Sometimes pressing "Pause" does not take effect immediately, but only after some current "sub-task" finishes. Here's the problem that I ran into several times: I start a long running process in PS. Later I want to do some short task with that machine (check mail, edit a doc, etc.) before leaving it unattended for a long time (overnight, etc.), but CPU load of PS makes it feel like I'm doing it on an ancient computer. So I pause PS, do my things and then resume PS. But sometimes pause does not work instantly, it pauses execution only after some time when I'm already away - and the machine remains idle for a long time instead of being usefull. Now I use a workaround - I temporary set application's priority to lowest via Windows Task Manager, but instant pause would be much easier in such situations.

Instant "cancel". Same problem as with pause - sometimes it does not cancel the ongoing process until some kind of sub-process finishes. Not a very big deal, as I can always kill the app itself, but if the project was not saved before that - I need to wait.

Hibernate (to a file/folder) and resume current progress at any point. Would be most useful when one has to restart machine in the middle of some long-running PS process. Once I had a restart due to windows updates (missed that damn "Postpone" by just a couple of minutes) and  ~30 hours of aligning photos had to be restarted. Another time something messed up on my machine with networking and had no internet until I restarted it. And I could not restart because I was "only" 20 hours away before completing alignment, which already took ~40 hours. So I had to borrow a notebook from a friend for a day, because my own computer was offline and could not be restarted until PS finishes. Hibernation-style progress termination and resuming could be very helpful in such situations. And it would also allow to move a running project from one machine to another (just like a virtual machine, for comparison).  I know that might take quite a lot of disk space, but nowadays I don't thinks that's an issue, and it would be a user's choice anyway :)

Optional auto-saving of ongoing process state after intermediate stages of this currently running process are finished. To be more clear - when I do "Align photos", first there is feature extraction, then matching points, then estimating scene structure, etc. From users perspective all these stages are executed in on step and project cannot be saved until fully accomplished. Unintended restart of machine would result in loosing all progress. Optional auto-saving would allow to resume from last sub-step. That's kind of semi-hibernation as mentioned above and probably could be implemented together.

A dedicated menu for python scripts. It could follow the folder structure where the scripts reside, and use some meta-tags from these scripts to display their names. A community-driven online script-sharing repository could be connected to it as well. I think that the community would gladly create a lot of usefull features for You with no cost on labor :)

Roughly estimate imagery coverage and quality. This would serve as a field tool (could even be a stand-alone utility due to licensing) that user could use right after a flight on an ordinary notebook to check if the flight imagery is OK. It could show a two-color gradient map with one color meaning good coverage (enough good quality photos of that pixel/area) an other color would mean a lack of pictures or quality of them. Of couse that this could only work with geo-tagged photos with IMU data (to be fast on lo-fi notebook) and would not be very exact. But still I could save a lot of time if return to the site and re-fly is required to obtaing missing images.

Image-set optimization by removing unneccessary photos from the chunk. This would be an extention of the feature mentioned above. By knowing the amount of photos that cover any given point of the final result (pixel, square cm, etc.) and the relative quality of those photos, in order to save computation time PS could offer to remove unneccessary photos to leave only the minimum required amount and only those of best quality. Of course, this would only be based on initial GPS/IMU data, and the user will make a decision of wether to use this option (if he trusts his orientation data), and how many photos are supposed to be "minimum required" for any point of final result. Sometimes, especially in windy conditions (or when doing fully manual flight), we take excessive amount of aerial photos, just to make sure that every point on earth gets covered. This, however, leads to VERY long proccessing times (currently I have ETA of >1400 hours on a reasonable workstation with 12 physical cores @ 2GHz, 80GB RAM). I will obviously need to do manual removal of excessive images, but no idea how to do that without automation… I know that new version (1.0) has a feature of image rating by quality, but that's only halfway there, because I can not remove an image without knowing what are the consequences (if there are enough other images to cover that area), even if it is of average quality.

Automatic/estimated input of diferent parameters. That is a very general statement, so I'll try to split it in examples.
Points generation. Default and recommended value is 40000, but is it always optimal? For example if photos are taken at very different heights does it make sense to have the same point count if they intersect? Maybe point count could be automatically calculated for each photo based on (initial) internal/external orientation? Also, maybe point count could be dependant on camera sensor Mpixel count? Or maybe I am talking non-sense because of my lack of understanding how photogrammetry works.
Mesh generation. There could be an option to input the target polygon count as relative value in units of polygons per area unit. E.g. 200000 polygons per 1 square km of flat ground coverage (or even better - if possible at this step - per area unit of 3D surface)
Texture generation. I'm not a 3D/texturing specialist, so please delete this item if I'm talking non-sense. When I select "Build texture", I have to input texture size, but I have no idea of what to input, so I just keep on entering larger and larger numbers, until it starts failing due to memory limitations (and that takes A LOT of time). It would be very nice if PS could precalculate maximum possible texture size on this machine, but leave an option to enter a smaller one. If with new version (1.0) memory is not a limitation anymore, it could allow to select an option to make texture as large as input data (images) allows it to be without scaling up original pixels. Also, it would be nice to input it as target ground resolution.

Export metadata about every image's (not cameras) estimated location, considering that the ground surface is flat (or round, but no elevations). Explanation: sometimes I get artifacts on orthophotos (skewed roofs and cars, weird looking trees, straight lines are curved, etc.) in important areas and I want to have the ability to see the original photos of these "broken" places. I am going to develop a standalone orthophoto viewer, where a user clicks on a point of interest on the orthophoto and sees all the original photos that contain that certain point. It would NOT need to be pixel-precise, so I think estimated interior and exterior orientation of cameras + focal length + sensor size is enough to calculate projections of each photo on the ground (given that ground can be considered flat for such scenario). So exported data would contain locations of each of four corners of each image (not of the whole image as a rectangle, but of the skewed image of original photo in it).  I think lens distortion can also be discarded for this use case and just consider that each projection is a 4-point flat ploygon. I also understand that this feature request might not be useful to the majority of users, so maybe it can be done via python script?

Thank You for reading this to the end :)



  • Newbie
  • *
  • Posts: 5
    • View Profile
Re: A couple of request/suggestions after evaluation
« Reply #1 on: September 12, 2013, 11:24:38 PM »
Attached are visual examples of image coverage estimation (overlap.jpg) and how exported but non-orthorectified images look like (planar_orthos.jpg). I just found these features already implemented in another similar software that I am evaluating as well.


P.S. For the sake of politeness to Agisoft and this forum, please don't ask what that other software is. If Agisoft implements these features as well it will not even be worth asking :)

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14012
    • View Profile
Re: A couple of request/suggestions after evaluation
« Reply #2 on: September 13, 2013, 10:22:14 PM »
Hello Rokas,

Thank you for your suggestions.

Regarding the last one (overlap): have you checked report generated by PhotoScan? One page is dedicated to the overlap.
Best regards,
Alexey Pasumansky,
Agisoft LLC