Mardy (Posts about photogrammetria)http://mardy.it/categories/photogrammetria.atom2024-02-02T20:11:02ZAlberto MardeganNikolaAnnouncing PhotoTeleport, a tool to upload your photos everywherehttp://mardy.it/blog/2018/02/announcing-phototeleport-tool-to-upload.html2018-02-02T09:48:00+03:002018-02-02T09:48:00+03:00Alberto Mardegan<p><small><i>I already wrote about PhotoTeleport in my previous post, but since not everyone can comfortably read interlingua, here's the English announcement</i></small></p>
<br>
<p>I've spent the last few months of my free time to work on a new application, called PhotoTeleport, which is a photo uploader capable of working with multiple photo sharing services at once.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://www.phototeleport.com/assets/metadata.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.phototeleport.com/assets/metadata.png" width="488" height="640" data-original-width="610" data-original-height="800"></a></div>
<p>It's an application I myself felt the need for, because as a photographer I keep my portfolio in many websites: I have a couple of pages in <a href="https://www.facebook.com/mardyphoto/">Facebook</a>, and <a href="https://vk.com/mardyphoto">VK</a> (a.k.a. "the Russian facebook"), but I also have a profile in other websites such as <a href="https://www.flickr.com/photos/mardytardi/">Flickr</a> and <a href="https://mardytardi.deviantart.com/">DeviantArt</a>, which I created to further promote my activity, but which alas I failed to keep up-to-date. The harsh reality is that working with multiple profiles is hard: even if you had just two profiles to maintain, it takes a lot of time to upload the photos to both of them and, no matter how convenient their user interface is, entering captions, descriptions and tags here and there is another boring, repetitive and time consuming task.<br>
Then how about automating it? Enter PhotoTeleport, and all photographers rejoice!</p><p>
</p><div class="separator" style="clear: both; text-align: center;"><a href="https://www.phototeleport.com/assets/interfaccia.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://www.phototeleport.com/assets/interfaccia.png" width="350" height="800" data-original-width="350" data-original-height="800"></a></div><p>The program in itself is very simple: you drag and drop the photos into its window, select which services you want to upload them to, add captions, descriptions and tags (if you like), review and then upload. For those who prefer a feature list in bullet points, here it is:</p>
<ul>
<li>Support many photo sharing services: DeviantArt, Facebook, Flickr, Google Photos, VK, etc. (see <a href="https://www.phototeleport.com/faqs/#services">here</a> for an updated list)</li>
<li>Album selection, or creation of a new album (if the service supports it)</li>
<li>Fast editor for captions, descriptions and tags</li>
<li>Possibility to specify different captions, descriptions and tags for each website</li>
<li>Read metadata embedded in the image files</li>
<li>On upload completion, provide a link to the newly uploaded files for additional editing or sharing</li>
</ul>
<p>This is just a beta version, but more features are planned, including:</p>
<ul>
<li>Ability to save and restore session</li>
<li>Watermark support</li>
<li>Image scaling</li>
<li>Support for more plugins (500px, Imgur, Smugsmug, Shutterstock, Photobucket, Pinterest and more)</li>
<li>Support for uploading to a custom (S)FTP server</li>
</ul>
<p>You are indeed welcome to suggest new features, just by adding a comment to this blog post, or by creating an issue in the <a href="https://gitlab.com/mardy/photokinesis/issues">PhotoTeleport bug tracker</a>.</p>
<p>PhotoTeleport is available for Linux, MacOS X and Windows; to get it, please visit <a href="https://www.phototeleport.com">PhotoTeleport website</a>.</p>
<h4>Only for the geeks and the folks from the IT crowd</h4>
<p>Here's some info for those who desire to hack on PhotoTeleport, or just to know more about the technology behind id: PhotoTeleport is an <a href="https://gitlab.com/mardy/photokinesis">open source project</a>, it's written in C++ and QML using the cross-platform Qt framework. The authentication to the remote servers is handled by <a href="https://gitlab.com/accounts-sso/libauthentication">libauthentication</a>, a library that I wrote just before starting the work on Phototeleport to provide an easy way for Qt and QML based applications to authenticate and peform authorized requests to remove websites using the OAuth 1.0 and OAuth 2.0 protocols (other protocols can be supported too).</p>
<p>Linux users might ask me why I chose to ship PhotoTeleport as an <a href="https://appimage.org/">AppImage</a> package, rather than using <a href="https://www.flatpak.org/">Flatpak</a>, <a href="https://snapcraft.io/">Snap</a> or a native distribution package like <code>deb</code> or <code>rpm</code>. This might deserve a blog post of its own, but in brief:
</p><ul>
<li><b><code>deb></code> or <code>rpm</code></b>: they require root permissions to be installed, moreover PhotoTeleport uses Qt 5.9 which is not available in all distributions, so if I have to bundle Qt with my package, I don't see many advantages over shipping an AppImage;</li>
<li><b>Snap</b>: they require root permission to be installed, and the support for desktop applications is still incomplete;</li>
<li><b>FlatPak</b>: there's no runtime for Qt applications (and no, I don't want to force users to install the whole KDE runtime!), and drag & drop is not supported yet.</li>
</ul>
<p>That said, it's just a matter of making the best out of my little spare time. I can reach every Linux user with the AppImage format, so that's the first option I took. I'm certainly open to the idea of using also other formats in the future (I might make debs after Ubuntu 18.04 is released with Qt 5.9) and I'll happily accept any contribution that can make PhotoTeleport available in Snap, Flatpak or other formats. But I don't have the time pioneering that right now :-)</p><p><small><i>I already wrote about PhotoTeleport in my previous post, but since not everyone can comfortably read interlingua, here's the English announcement</i></small></p>
<br>
<p>I've spent the last few months of my free time to work on a new application, called PhotoTeleport, which is a photo uploader capable of working with multiple photo sharing services at once.</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://www.phototeleport.com/assets/metadata.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.phototeleport.com/assets/metadata.png" width="488" height="640" data-original-width="610" data-original-height="800"></a></div>
<p>It's an application I myself felt the need for, because as a photographer I keep my portfolio in many websites: I have a couple of pages in <a href="https://www.facebook.com/mardyphoto/">Facebook</a>, and <a href="https://vk.com/mardyphoto">VK</a> (a.k.a. "the Russian facebook"), but I also have a profile in other websites such as <a href="https://www.flickr.com/photos/mardytardi/">Flickr</a> and <a href="https://mardytardi.deviantart.com/">DeviantArt</a>, which I created to further promote my activity, but which alas I failed to keep up-to-date. The harsh reality is that working with multiple profiles is hard: even if you had just two profiles to maintain, it takes a lot of time to upload the photos to both of them and, no matter how convenient their user interface is, entering captions, descriptions and tags here and there is another boring, repetitive and time consuming task.<br>
Then how about automating it? Enter PhotoTeleport, and all photographers rejoice!</p><p>
</p><div class="separator" style="clear: both; text-align: center;"><a href="https://www.phototeleport.com/assets/interfaccia.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://www.phototeleport.com/assets/interfaccia.png" width="350" height="800" data-original-width="350" data-original-height="800"></a></div><p>The program in itself is very simple: you drag and drop the photos into its window, select which services you want to upload them to, add captions, descriptions and tags (if you like), review and then upload. For those who prefer a feature list in bullet points, here it is:</p>
<ul>
<li>Support many photo sharing services: DeviantArt, Facebook, Flickr, Google Photos, VK, etc. (see <a href="https://www.phototeleport.com/faqs/#services">here</a> for an updated list)</li>
<li>Album selection, or creation of a new album (if the service supports it)</li>
<li>Fast editor for captions, descriptions and tags</li>
<li>Possibility to specify different captions, descriptions and tags for each website</li>
<li>Read metadata embedded in the image files</li>
<li>On upload completion, provide a link to the newly uploaded files for additional editing or sharing</li>
</ul>
<p>This is just a beta version, but more features are planned, including:</p>
<ul>
<li>Ability to save and restore session</li>
<li>Watermark support</li>
<li>Image scaling</li>
<li>Support for more plugins (500px, Imgur, Smugsmug, Shutterstock, Photobucket, Pinterest and more)</li>
<li>Support for uploading to a custom (S)FTP server</li>
</ul>
<p>You are indeed welcome to suggest new features, just by adding a comment to this blog post, or by creating an issue in the <a href="https://gitlab.com/mardy/photokinesis/issues">PhotoTeleport bug tracker</a>.</p>
<p>PhotoTeleport is available for Linux, MacOS X and Windows; to get it, please visit <a href="https://www.phototeleport.com">PhotoTeleport website</a>.</p>
<h4>Only for the geeks and the folks from the IT crowd</h4>
<p>Here's some info for those who desire to hack on PhotoTeleport, or just to know more about the technology behind id: PhotoTeleport is an <a href="https://gitlab.com/mardy/photokinesis">open source project</a>, it's written in C++ and QML using the cross-platform Qt framework. The authentication to the remote servers is handled by <a href="https://gitlab.com/accounts-sso/libauthentication">libauthentication</a>, a library that I wrote just before starting the work on Phototeleport to provide an easy way for Qt and QML based applications to authenticate and peform authorized requests to remove websites using the OAuth 1.0 and OAuth 2.0 protocols (other protocols can be supported too).</p>
<p>Linux users might ask me why I chose to ship PhotoTeleport as an <a href="https://appimage.org/">AppImage</a> package, rather than using <a href="https://www.flatpak.org/">Flatpak</a>, <a href="https://snapcraft.io/">Snap</a> or a native distribution package like <code>deb</code> or <code>rpm</code>. This might deserve a blog post of its own, but in brief:
</p><ul>
<li><b><code>deb></code> or <code>rpm</code></b>: they require root permissions to be installed, moreover PhotoTeleport uses Qt 5.9 which is not available in all distributions, so if I have to bundle Qt with my package, I don't see many advantages over shipping an AppImage;</li>
<li><b>Snap</b>: they require root permission to be installed, and the support for desktop applications is still incomplete;</li>
<li><b>FlatPak</b>: there's no runtime for Qt applications (and no, I don't want to force users to install the whole KDE runtime!), and drag & drop is not supported yet.</li>
</ul>
<p>That said, it's just a matter of making the best out of my little spare time. I can reach every Linux user with the AppImage format, so that's the first option I took. I'm certainly open to the idea of using also other formats in the future (I might make debs after Ubuntu 18.04 is released with Qt 5.9) and I'll happily accept any contribution that can make PhotoTeleport available in Snap, Flatpak or other formats. But I don't have the time pioneering that right now :-)</p>Making snap packages of photogrammetry softwarehttp://mardy.it/blog/2017/03/making-snap-packages-of-photogrammetry.html2017-03-24T21:11:00+03:002017-03-24T21:11:00+03:00Alberto Mardegan<div dir="ltr" style="text-align: left;" trbidi="on">
Some time ago I got vaguely interested into <a href="https://en.wikipedia.org/wiki/Photogrammetry" target="_blank">photogrammetry</a>, that is the reconstruction of a 3D model out of a set of plain 2D photographs. I just thought that it was cool, and wanted to try it.<br>
<br>
Unfortunately, the most popular of these tools, <a href="http://ccwu.me/vsfm/index.html" target="_blank">VisualSFM</a>, was not packaged for Ubuntu and didn't come with ready binaries. Furthermore, the steps to build it are far from trivial: they include modifying a few of the source files!<br>
<br>
So, while I was going through this ordeal in order to compile it, I though of how I could avoid running through all this pain once more, had the need emerged to build this program again in the future. I initially thought of writing a shell script to automate it, but then I realized that there exists a much better solution: a <a href="https://snapcraft.io/" target="_blank">snapcraft</a> recipe!<br>
This solution has the big advantage that the resulting binary (called a "snap" package) can be shared with other Linux users, by publishing it into the snap store. Therefore, one doesn't need to be a programmer or a computer expert anymore in order to install the software.<br>
<br>
As I quickly found out, other "structure from motion" and "multi-view stereo" (the two parts of the 3D reconstruction pipeline) programs are also unavailable as binaries for Linux, and require quite some effort to be built. As a matter of fact, this problem is quite common for scientific and academic software: always written by authentic geniuses in the field of research, but who often are not as experienced (or interested) in software distribution.<br>
<br>
So I thought — well, given that I've just made a snap package (and that I've even enjoyed the process!), why stop here? :-)<br>
<br>
And here you have it: most of this photogrammetry software is now available as snap packages, which makes it trivial to install them and try them out. Though indeed, the 3d reconstruction can take a lot of time, so that's another thing to be considered.<br>
<br>
To help you out in deciding which software to use, I made a video review of structre from motion and multi-view stereo tools; without any pretense of scientificity, — be it clear! — just with the goal of giving an overview of what is available out there, and how easy (or difficult!) to use it is:<br>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/ELHOjC_V-FE?ecver=1" width="640"></iframe><br>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
I also "snapped" a couple of other programs related to 3D reconstructions. One of them is <a href="http://www.cloudcompare.org/" target="_blank">CloudCompare</a>, a 3D point cloud and mesh processing software.<br>
<br>
I might be making more videos on this subject, so stay tuned. :-)<br>
<h3 style="font-family: Arial, Helvetica, sans-serif;">
<br></h3>
</div><div dir="ltr" style="text-align: left;" trbidi="on">
Some time ago I got vaguely interested into <a href="https://en.wikipedia.org/wiki/Photogrammetry" target="_blank">photogrammetry</a>, that is the reconstruction of a 3D model out of a set of plain 2D photographs. I just thought that it was cool, and wanted to try it.<br>
<br>
Unfortunately, the most popular of these tools, <a href="http://ccwu.me/vsfm/index.html" target="_blank">VisualSFM</a>, was not packaged for Ubuntu and didn't come with ready binaries. Furthermore, the steps to build it are far from trivial: they include modifying a few of the source files!<br>
<br>
So, while I was going through this ordeal in order to compile it, I though of how I could avoid running through all this pain once more, had the need emerged to build this program again in the future. I initially thought of writing a shell script to automate it, but then I realized that there exists a much better solution: a <a href="https://snapcraft.io/" target="_blank">snapcraft</a> recipe!<br>
This solution has the big advantage that the resulting binary (called a "snap" package) can be shared with other Linux users, by publishing it into the snap store. Therefore, one doesn't need to be a programmer or a computer expert anymore in order to install the software.<br>
<br>
As I quickly found out, other "structure from motion" and "multi-view stereo" (the two parts of the 3D reconstruction pipeline) programs are also unavailable as binaries for Linux, and require quite some effort to be built. As a matter of fact, this problem is quite common for scientific and academic software: always written by authentic geniuses in the field of research, but who often are not as experienced (or interested) in software distribution.<br>
<br>
So I thought — well, given that I've just made a snap package (and that I've even enjoyed the process!), why stop here? :-)<br>
<br>
And here you have it: most of this photogrammetry software is now available as snap packages, which makes it trivial to install them and try them out. Though indeed, the 3d reconstruction can take a lot of time, so that's another thing to be considered.<br>
<br>
To help you out in deciding which software to use, I made a video review of structre from motion and multi-view stereo tools; without any pretense of scientificity, — be it clear! — just with the goal of giving an overview of what is available out there, and how easy (or difficult!) to use it is:<br>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
<iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/ELHOjC_V-FE?ecver=1" width="640"></iframe><br>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
I also "snapped" a couple of other programs related to 3D reconstructions. One of them is <a href="http://www.cloudcompare.org/" target="_blank">CloudCompare</a>, a 3D point cloud and mesh processing software.<br>
<br>
I might be making more videos on this subject, so stay tuned. :-)<br>
<h3 style="font-family: Arial, Helvetica, sans-serif;">
<br></h3>
</div>