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

Oct 29 2010

Testing the Scanning Camera

  Flashback to a couple of weeks ago- this shot was taken with the scanning camera when the Hexakopter believed that it had flown its intended route and was waiting for someone to tell it to land. While the flight itself was a disaster we did gain some valuable information from the photos it took.

  As you can see from the picture we did get some good quality photos, even though it’s mostly parking lots… However what was most concerning was that the pictures taken were not consistent in terms. You can clearly see the difference between the two pictures taken less than three minutes apart.


  What I wanted to know was why the second shot blurred, at the time of this shot the Hexakopter was hovering in the same spot for about 5 minutes with little movement. At first I thought that the vibration caused by the motors or the gyro reaction to the swinging mass had affected the shots.

  So in the lab, with Jonathan’s help, we came up with a way to test my theories. We suspended a Hexakopter from a pipe and mounted the scanning camera on the Hexakopter, in the  same fashion as the previous flight. We started by turning on the scanning camera without the Hexakopter on, in other words this was our control test. We quickly found out that the swinging motion did not cause the Hexakopter to move at all, putting some doubt on one of my theories.  After close examination of the setup in action, I noticed a small vibration occurred on the camera mount whenever the camera moved to the front or back. Noting this, we continued the test except with the Hexakopter powered and the motors on. With the motors on, the Hexakopter reacted no differently than with the motors off. We did observe a cool damping effect whenever you pushed the Hexakopter.

  After the testing was completed, I decided to take a look at the pictures that were taken by the scanning camera throughout the entire test. I found that the small vibrations from the camera moving forward did in fact cause the photos to come out blurred. In addition, I found that making the mounting the scanning camera on a more stable base reduced the vibrations, resulting in sharper images.

Much later I found out that the two above images were taken at different shutter speeds. The above left photo was taken at a shutter speed of 1/320 sec, while the one right was taken at a shutter speed of 1/100 sec. Upon checking the rest of the photos taken by the camera that day, I saw that alot of the images had varying shutter speeds. I tried to compare these photos with the ones taken in the lab and found out that the two sets were incomparable due to different lighting conditions and consequently much different shutter speeds (the lab photos were taken arround 1/60 sec).

  In the end, Jonathan found out that the scanning camera setup would still sweep back and forth without the camera attached. Using the fact that the scanning camera had inconsistent shutter speeds, he attached the Cannon SD4000 to the setup.

Oct 29 2010

Non-presoldered Hexakopter Kit

Over the last two weeks Nisarg and I have been assembling the non-pre-soldered(NPS) Hexakopter kit. As with most products, convenience comes with a price and the Hexakopter is no exception. This build served as a test to determine the amount of additional work and skill required to assemble the NPS Hexakopter kit compared to the pre-soldered kit.

It’s probably safe to assume that the majority of those reading this have had at least some prior experience with soldering electronic components, as it’s a large part of building both the NPS and pre-soldered kits. This being said, the amount of soldering required to build the NPS kit is not that much more than that of the Pre-soldered kit. The main difference is the assembly of the power distribution board. This process consists of assigning each of the ESC’s to a distinct channel via a solder drop and mounting them to the power distribution board’s frame with jumper wires and the supplied capacitors. This will probably take a first time Hexakopter builder up to two hours to complete. The additional soldering consists of mounting a few capacitors and the pressure sensor to their respective locations on each of the control boards.

Apart from these differences, the NPS and pre-soldered kits are relatively similar. When building the Hexakopter a majority of the time is spent constructing the frame, threading the motor wires through each of the arms and wiring all of the components together. If you have an existing Hexakopter to work from then the additional soldering required for the NPS kit is probably not worth the extra cost of purchasing a pre-soldered kit. The pre-soldered kit however, may be a good choice for those who are building the Hexakopter for the first time.                 

Oct 29 2010

Field Work Progress Report

So far this week I was able to put in a couple of hours to continue the field work that was initially laid out by me and Noam Raffel over the Summer of 2010. The tree plots of Herbert Run near completion with what appears to be perhaps another week or two’s worth of work, barring any complications with weather, etc. The leaves are changing quickly at this site as can be seen from the bi-weekly photos taken by Jonathan and the team so this has made it exceptionally apparent that it is now or never (at least not until spring) for the field work.

The measurements are coming along nicely especially since we began using the 3P mode on the hypsometer to limit the distance we have to stand from the tree for accurate assessments. This function works more similar to a clinometer than a standard range finder as 2PL mode does. Several plots worth of trees should be measured using both modes to ensure the consistency of the data.


Diagram of Plots

Red = Un-measureable due to new fence

Green = Tree Data collected

Yellow = Remaining plots





Check back to this blog for weekly updates on the progress of our field work and comparisons to the data we pull from our photos!

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 21 2010

EasyStar Modifications

Ever since our first flight with the EasyStar it was clear that a few modifications were necessary  for the plane to become a usable alternative to the SlowStick. Over the past summer Evan had spent a significant amount of time improving the EasyStar by making it easier and more convenient to use as an image acquisition platform. The following serves as an explanation of the most successful modifications that were made to the plane, many of which will be incorporated into the autonomous EasyStar project.

To provide the EasyStar with more power the stock 400 speed brushed motor was replaced with a 400 speed Turnigy brushless motor running a 6x4 APC propeller. A Turnigy 30A brushless ESC was also used along with a 11.1V 2200 mAh battery. This power system gives the EasyStar enough thrust to carry a standard digital camera, external GPS unit and FPV equipment with ease. Because of the EasyStar’s large wings it was extremely unresponsive to rudder inputs, making it difficult to maneuver.  To fix this the rudder was extended by approximately 1.5 cm to give the plane more agility when turning.

The inside of the EasyStar was carved out to make room for the battery pack and camera. Access to the planes internal components was provided by small plastic hinges mounted along the bottom of the fuselage which enabled it to be opened and closed easily. In order to protect the camera lens when landing plastic skids were created and mounted to the underside of the fuselage with hot glue. Magnets were also added to the front cover, allowing for easy access to the electronics near the nose of the plane while also providing a break-away point in a crash.

Initially, Evan and I had trouble with the elevator becoming jammed so it’s important to make sure that it can move freely in either direction before each flight. The EasyStar’s center of gravity was also found to be abnormally far forward for a high wing plane, making it difficult for us to pinpoint. After a series of test flights we had found that the EasyStar performed best when the center of gravity was located approximately 1/5 of the wing past the leading edge.

In my past experience with the EasyStar, landing has been somewhat difficult due to its natural tendency to fly fast and glide for long distances without throttle. The following are some modifications that I believe would enhance the EasyStar’s ability to land in small fields like HR. Remotely activated Air breaks could be mounted on the body to help slow the plane down when landing. This would consist of a piece of foam connected to a micro-servo which would be activated by a toggle switch on the transmitter, extending the foam and inducing drag. Another solution consists of attaching  flaperons to the trailing edges of each wing. This would act as an extended airfoil to help slow the plane down without compromising its lift. Furthermore, the addition of Landing gear would allow for rise-off-ground (rog) takeoffs and landings while also serving as a replacement for the plastic landing skids used previously.

Oct 20 2010

SD4000 with v5 Beta of CHDK

The Canon Point-and-shoot cameras for 2010 are amazingly powerful and priced to sell, but with the “simple” addition of CHDK you can get all of the features that are usually only found on high end cameras. The main feature that interests us is CHDK’s ability to incorporate an intervalometer, which allows for continuous shooting at controlled intervals…in theory.

The problem of running any beta version is that there are often going to be many un-foreseen errors that often plague open-source firmware in their early betas. After plenty of research, we were finally able to get CHDK onto a 4GB SD card using CardTricks v1.44 and running with little or no problem.  Once the script for the Ultra Intervalometer was added under /SCRIPTS/ folder on the SD the problems began to become apparent. Although the on-screen prompts for the intervalometer are all present, the actual functionality is not there as only one photo at a time can be taken despite many different settings changes and modifications to the code.

As the beta progresses I hope to see more people working with an intervalometer and perhaps then we can test it’s functionality to that of the SD4000’s stock “Continuous” setting.  Check back for updates on CHDK with this project!!



CardTricks v 1.44 available at: http://drop.io/chdksoft

CHDK for SD4000 beta v5 at: http://drop.io/chdk_ixus300_sd4000

CHDK Ultra Intervalometer at : http://chdk.wikia.com/wiki/UBASIC/Scripts:_Ultra_Intervalometer

Oct 19 2010

3D and Spectral Remote Sensing with Computer Vision

Wow, what amazing progress!  I posted a few weeks ago when we were just starting to get the Hexakopters working, how excited I was when I considered that we were still flying kites just ONE YEAR AGO!  Now it is becoming a reality that the Mikrokopters can really move this interdisciplinary research fusion of ecological remote sensing and computer vision into a reliable system for making 3D, spectral color measurements of ecosystem vegetation for measuring biomass and species diversity.  

There is definitely a lot to learn about the process, but we have got the flying down pretty well for data collection.  The video here is of me flying the Hexa up through a large gap in the canopy at the Knoll site at UMBC.  This is an invaluable capability of this system (and its pilot!) that makes it possible to fly sites like the Knoll and SERC, where it is not possible to be centrally located in a large open clearing.  

DRAFT: comparison at HR sites, seasons

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

Pre-Flight Camera Settings & Calibration

DRAFT: Recall a few weeks ago I posted about the camera exposure calibration card I purchased from Service Photo.  The call card is in full use as part of the pre-flight set up, but after several good and bad field experiences it is necessary to revise my initial procedure.