We have moved! Please visit us at ANTHROECOLOGY.ORG. This website is for archival purposes only.

Dec 17 2011

TLS scanning at UMBC

We have been having an exciting time in New Jersey and Baltimore working with aTerrestrial Laser Scanner (TLS; Riegel VZ400) for generating high quality 3D reference datasets for validation of Ecosynth data.  We are in the lab today because of windy conditions, working on post-processing and data management of the large amounts of data collected in New Jersey and in the photo studio at UMBC.  I thought it would be a good time for a short update post.

These pictures are from our test setup of mobile scaffolding that we will use for gaining an elevated perspective on several open grown trees for TLS scanning.  The plan is to set up the scaffolding at each of the 4 orthogonal scan stations with the TLS mounted on the platform as shown.

The tower platform is about 2m above the ground and the TLS scanning head is about 3m off the ground.  The tower can be moved by 3-4 people to each of the scanning positions, after the TLS equipment has been taken down!

We have also configured the TLS for WLAN control, meaning that we can operate scanning and review data wirelessly.  This should be useful for when we attempt TLS scanning from the bucket crane.

Oct 26 2010

Identifying SIFT features in the forest

So that's what SIFT features look like in a forest!  As part of my final project for my Computational Photography class I am working on exploring the characteristics of SIFT features in the context of vegetation areas.  SIFT (Scale Invariant Feature Transform) is an image processing algorithm that uses a series of resampling and image convolutions (e.g., filters) to identify distinctive 'features' within an image that can be used for a number of image processing procedures, including Structure from Motion and 3D reconstruction with computer vision, as in Bundler.

While we have seen maps of SIFT features on images in the setting of urban scenes or landmarks, we had never viewed or investigated the SIFT features of our own data.  These features form the basis of the 3D point clouds that we use to measure ecosystem characteristics and it is my goal with this class project, and further with my dissertation research to investigate the nature of these features in greater detail.  Are SIFT features single leaves, groups of leaves, branches, or something else?  Questions left to be explored; it is a good thing I am able to exercise my recently discovered interests in programming and computer science for this research!  

What is in the picture?  The pink arrows represent the "locations, scales and orientations of the key features" (SIFT README, Lowe 2005).  The location of a feature (the non-arrow end of the arrow) is defined as the local maximum or minimum of a grayscale image intensity apparent through a series of image convolutions.  The scale of a feature (the size of the arrow here) represents the relative size of that feature in the image.  Clicking on the image to get a full-res version, also here, allows us to get an idea of what a feature might be. The original image without features can be seen here.  We can see that the large black shadow areas in the image, representing gaps in the canopy, typically have one large arrow extending out from somewhere within the dark area.  In this case that entire black area is the feature, with the point indicated by the arrow as the local maximum or minimum grayscale intensity.  I am still working through the mathematical explanation of how that location is determined, but it does not have to be a geometric center.  There are other approaches that might allow me to plot boxes or shapes around the features, which I will explore next.  The orientation of the key features represents the intensity gradient.  This is computed as part of the feature descriptor to make the feature invariant to image rotation when being matched to other features.

From here I will generate a sample set of photos from our study sites that cover different types of ground cover (forest, grass, pavement, water) and will analyze the characteristics of SIFT features based on scene content, feature texture and perhaps illumination.  Lot's of programming ahead!

I processed this image using a great open-source SIFT library implemented with OpenCV from a PhD Student at Oregon State, Rob Hess, in Terminal on my MacBook.


SIFT README, available online in SIFT download, http://www.cs.ubc.ca/~lowe/keypoints/

Lowe, D. G. (2004). "Distinctive Image Features from Scale-Invariant Keypoints." International Journal of Computer Vision 60(2): 91-110.


Oct 22 2010

Weekly Flight Progress (Week of 10/17/10)

This past week I got in 3 good flights at UMBC and New Jersey and learned a lot more about how to get things working well.

The first flight was at the pine barrens site in Pemberton, NJ.  I arrived at the site on Saturday to scout things out.  I met the local forest researcher Ken Clark and he showed me around the plot where I would be flying and we checked out the forest from atop a modular tower used for making meteorological measurements; I was not crazy about climbing the tower, but Ken had no problem.  I was up at 6am Sunday and at the site by 7:30.  By about 8am I had inflated all of my new huge 3' diameter balloons and set out to place these new aerial markers in the field.  This ended up working pretty well, although I think I put a tiny hole in one balloon and several balloons popped between the time I set them up and when I went to retrieve them.  It was gusting to about 13mph (according to the local met data, thanks Ken!) and the balloons blew around and into the trees throughout the morning.  Overall the flight went well, but I think that because of the gusty winds, the Hexa got blown of course several times and we may have issues with image overlap during the 3D reconstruction. Site prep took about 3 hours as it was more challenging to place the balloons in the field than when I am just using buckets on the ground.

The next flights were both on Thursday at the UMBC Herbert Run location.  I had everything set up by about 11am and then commenced with flight testing.  I think it is a good idea to use a spare battery for testing out the flying conditions on site prior to the actual image collection mission.  I found that the GPS and altitude were holding well, but that it was still quite windy.  At this site I use buckets instead of balloons as they are more stable and there are more open areas to place the buckets.  Things went well on the first flight, but the Xbee inexplicably cut out quite often.  I thought it was odd that the Xbee cut out so frequently because there was almost no data connection problem at the New Jersey site earlier in the week.  Also, it was apparent from the Garmin Astro track that the route was being affected by the wind.  I landed the unit after the flight and swapped in a new lipo, new camera battery and new camera memory card and proceeded with another flight at an altitude 40m above the first flight and along the same route.  The track of this flight showed a similar pattern as the previous one.  I posted more about the flight paths and looking at the tracks in an earlier post this week, here.  In all I got in two full flights in under an hour, by myself, with about one hour site prep. 


In summary, I had three good flights this week that I setup and flew on my own.  It looks like at each flight winds above 13 mph may have caused the Hexa to deviate from the flight path, hopefully not to the detriment of image overlap.  I think the procedure for preparing gear and setting up the site is finally getting honed down to a smooth operation.  And thank goodness for my station wagon!

Oct 19 2010

Flight Telemetry Data and Monitoring the Flight

We recently learned about the robust telemetry data that the Flight Control board creates when a MicroSD card is plugged into the onboard slot.  Since then we have always flown with the card in to capture the telemetry data and it is proving to be an invaluable part of the post-flight assessment process.

The next steps will require a *simple* GIS workflow to evaluate whether the actually flown path sufficiently matches the pre-planned path to provide the necessary image sidelap and endlap for 3D reconstruction.  

We have already seen first hand how deviations in the fight plan tracks result in gaps in the vision reconstruction and also how mis-aligned platform orientation results in gaps as well.  At a flight at SERC the platform and camera where oriented 90 degrees from the path of travel, resulting in no sidelap between parallel tracks, link to Photosynth.  At a recent flight in New Jersey the wind blew the little guy around a lot and even though the camera orientation was spot on, the width between some parallel tracks exceeded our flight plan for achieving side lap, again resulting in large scan gaps, link to Photosynth.

So what does this mean?  It is necessary not only to have spot-on preparation of camera orientation and flight planning prior to flight, but it will be necessary to run diagnostics in the field to evaluate whether the route flown was sufficient for 3D reconstruction.  I wrote a simple python script to translate the Mikrokopter GPX telemetry data into a text file for use in a spreadsheet or GIS program.  By doing this we can look at characteristics of the flight system through time (e.g., battery voltage vs. flight time) or space (e.g., Navi-Ctl status messages at each GPS point along the flight path).  The Python script that translates Mikrokopter GPX telemetry data to a text file is located on our Coding Corner page.

Oct 19 2010

The "Ups" and "Downs" of Remote Sensing with the Mikrokopter

DRAFT: We have had great successes with the Mikrokopter Hexakopter for collecting digital photos for 3D computer vision reconstruction, but there are still many challenges yet to be overcome. 

We are now able to plan a flight with GIS to cover a particular 250m x 250m area with a desired amount of image overlap and translate that into a flight plan for the Mikrokopter to follow.  We have successfully demonstrated this at each site, however some other complications have become apparent. 

One challenge that remains is the control of camera exposure.  I purchased a camera calibration card a few weeks ago and have incorporated that into the pre-flight checklist, but that technique is not quite perfected.