"In the world ye shall have tribulation: but be of good cheer; I have overcome the world." –John 16:33

Tag: GaugeCam

Retirement PhD: GaugeCam revisited

This is the first time in years that I have taken a vacation to do just… nothing. Well, not nothing because I have made great progress on the reboot of GaugeCam–the camera based water level measurement system developed in conjunction with professors from NCSU and UNL. I think I am about halfway to the point where we will be able to start hosting water level cameras in the wild again. Today, I was able to implement some new methods to automatically find the water level by evaluating vertical swaths of the area between the bowtie targets shown in the image above. This is a really good, new thing in that the only thing necessary to set up the camera is to tell the system the x-y position of the individual bow ties in the system after the camera is mounted and pointed at the bow tie target. This is much easier than the previous system where it was necessary to follow an elaborate procedure to tell the system how and where to look for the water level. Hopefully, we will be able to publish a paper on how we do this that will help me in my PhD program if I ever get accepted and pull the trigger to do it. I am getting very much closer on all that and have hope it will happen.

Retirement PhD: GaugeCam web server

If you click on the image (or here), you can see a live version of the new GaugeCam web server. Right now, the program is running on a Raspberry Pi in our house. The reason it is live web page is so professors at University of Nebraska Lincoln and North Carolina State University can critique the design and view adjustments as new features are implemented. There is on-going scholarly work associated with this software. One refereed journal article has already been published (click here) and two more are in the works. Click here to see an article on the early phases of the work on the web site of a commercial camera company (full disclosure–I wrote the article). The goal is to accommodate a variety of sensors that produce 2d and 3d images as well as point measurements and hyper-spectral images. Hopefully, this effort will continue on into my retirement both as a way to contribute and maybe even earn a PhD for this and previous work on similar projects.

Reengaging with water research

Over the last couple of days, I had a couple of long and interesting talks with my old friend, Troy, with whom I worked on the GaugeCam project when we lived in North Carolina. Troy is an Assistant Professor at University of Nebraska right now with lots of interesting research going on. We discussed the idea of me reengaging on some of his research again when I started to approach retirement. Well, retirement is rapidly approaching and it looks like the stars might be starting to align. This is still just wishful thinking, but we have talked about a few specific ideas and I even called and talked to my old Masters degree professor, Carroll Johnson long retired from University of Texas at El Paso. We have hope we can make something happen.  If this idea comes to fruition, I hope to be writing about it here on a semi-regular basis.

Technology caught up with us (that is a good thing)

I have had little time to work on the GaugeCam project due to other responsibilities. We got a helping hand with this product when we found that there are now cameras available that do precisely the part of the product we did not want to do and at which we were not that good. The camera in this post is an example of that. Before, we had to put together a cellphone enabled remote camera with mounting systems, batteries, a solar setup, etc. Now, you can just buy it and install it yourself. So now I think we will be able to concentrate on the software and the water level data that is accumulated from the product which is really our strong point anyway.

Now I will be able to concentrate on my EKG project a little more before I go back to GaugeCam. Also, I will be able to use the BeagleBone Black I purchased on the EKG if I want. I am hoping to communicate between the Arduino/EKG electronics and the mothership computer via Bluetooth, but I am not sure I can get it to go fast enough. The Bluetooth will handle it, but I do not know if the Arduino can shovel the bits fast enough for the EKG sample rate I need (1K Hz). We shall see!

Wildly cool reinvigoration of the GaugeCam project

François installing GaugeCam in Harlingen, TXThis photograph is of François working with a team from Texas A&M to install a water level camera in Harlingen, TX. It went very, very well. It is not complete yet, but images are flowing from the camera up to the GaugeCam server. Next steps are to calibrate the camera system and start plotting camera level. My buddy John from my previous job and Arizona and I are working on the next generation software for this project. If this goes well, there will be several other opportunities in Texas.

Technically, we are working on putting the software into a small embedded computer with a BeagleBone Black computer a camera and a cell phone connection. After that we plan to start working on commercializing both the software and the hardware. Up until now, the system has been, more or less, a lab project. As more and more people show interest, we need to harden the design to make it as robust as possible for field use and easy to maintain.

Betty Blonde #395 – 01/20/2010
Betty Blonde #395
Click here or on the image to see full size strip.

A few moments to work on GaugeCam (GRIME in Linux)

I had a few extra minutes tonight so I got the GaugeCam GRIME program up and running under Linux. Now I have to do the same for the webserver which should take a little more work but not too much. I am looking forward to working on this more.

GaugeCam GRIME running under Linux

Betty Blonde #293 – 09/01/2009
Betty Blonde #293
Click 
here or on the image to see full size strip.

GaugeCam LIVES!

I received a call from my buddy Francois at NCSU in Raleigh a couple of days ago. It turns out that the GaugeCam project to perform automatic water height measurement with cameras in streams, lakes and other water bodies continues to garner interest. Francois has talked to lots of people who have had very limited success at finding systems that work to do this well, including the two biggest commercial providers in the industry. So, I spent a couple of evenings dusting off the software, upgrading the libraries and creating a new build with functionality we had developed, but never made available. We have decided to work on it again and have some new ideas about what we want to do.

I have written a blog post over at the GaugeCam blog that describes our next steps to accommodate this renewed interest.

Betty Blonde #282 – 08/17/2009
Betty Blonde #282
Click 
here or on the image to see full size strip.

GaugeCam update

A lot of you know I work on a volunteer side project called GaugeCam for the Biological and Agricultural Engineering Department at North Carolina State University. The initial program I wrote for the project was made on July 3, 2009 almost exactly five years ago, but the project really started a little before that.  We have worked on the project with varying degrees of vigor, but mainly we have kept going fairly consistently for all that time.  The most recent couple of events are pretty interesting.  I write about all that here, here, and here.

Norway water line measurement problems

The first came from Norway.  A researcher there wanted to put up some cameras in fjords there to measure water height.  My colleague, François Birgand sent the gentleman a camera and a calibration target which the researcher dutifully set up in a fjord and the thing did not work. At all. So François got some of the images that had failed and sent them on to me. I could see immediately we had a problem because my software would struggle with two things.  The glint at the waterline would confuse our current line find technique and it would be hard to calibrate on a calibration target that filled a very small portion of the field of view relative to previous images.  You can see the problem in one of the Norway images shown above.  So I started a major update of the program to address those issues.  We have now worked our way through most of the current problems and François started a large test run on thousands of images last night to see how much the changes improve our measurements.

Betty Blonde #133 – 01/19/2009
Betty Blonde #133
Click here or on the image to see full size strip.

Back to work on GaugeCam


I have finally gotten a chance to spend an hour or two on GaugeCam.  I really did not have the time, but was so burnt out on everything else, I took a little time after dinner last night and fixed a few things.  Here is the blog post for the latest update.  The video shows what I did.  It used to take three or four clicks of the mouse to calibrate the water level measurement system.  Now it only takes one.  You can see it in the video above.

I have decided I am going to spend some more time on this over the next few months until Lorena and I have had a chance to figure out what we will do next. More and more people are getting interested in it and we keep thinking of new things to improve. It should be fun.

Betty Blonde #120 – 12/31/2008
Betty Blonde #120
Click here or on the image to see full size strip.

How to teach computer programming to kids (Part 5) Projects in C, GaugeCam, and PHP

Day 608 of 1000

This is the fifth in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

Sandisk C200 MP3 Audio PlayerChristian only spent half the school year at age 11 learning to program C#.  We really only got him going on it as an afterthought because he was interested.  After he had established a foundation, he got a little bored, I think because he did not have a specific project in mind to practice his skill.  The reason he asked to switch from C# programming to was that we got him a little MP3 audio player.  When he gets a new “toy” like that, he really likes to investigate its capabilities.  He found that it was possible to convert many MP3 players from just audio playback devices into little, general use computers that could run games, videos, and other programs.

The conversion is made by replacing the firmware provided by the hardware vendor to perform audio playback with an open source program called Rockbox.  Rockbox is written in C and Assembly language.  The problem Christian wanted to solve was to make the fonts look better for Rockbox on the Sandisk C200, the one we bought him for his birthday.  To do that Christian did the following:

  • Downloaded the source code
  • Learned how to build and install the code with the gcc compiler
  • Found some anti-aliasing font code to improve the appearance of the fonts
  • Modified the code to run on the Sandisk C200

This new pass through the whole configure-make-install process was much less automated that with the Linux environment.  It moved him up the curve a little bit further and got him his first experience at modifying someone elses C/C++ code to work on a new platform.  The problem was that he finished that in just a couple of months and wanted to move on to a new project.  That is when he decided he needed to know how to build a professional quality website.

Rather than start with something already packaged like WordPress, Christian decided he would use one of the professional quality open source, content management frameworks and build a site from scratch.  After eliminating the idea of using WordPress, he decided on Drupal, so he had to learn PHP.  PHP is a scripting langauge that looks (speaking very roughly here) like HTML with embedded C functions.  It also requires a working knowledge of the MySQL database program.  He spent several months learning how to use the tools, then built himself a site.

In addition to learning how to program a website, he also learned how to work on the aesthetics of his site. I am notoriously bad at making this blog look good.  Christian browbeat me into adjusting the site’s appearance this very weekend.  He still thinks I did a pretty bad job, but he that it is better than it was before.  Part of that is due to the help he gave me on such things as using complementary colors and using the Color Scheme Designer website for help in their selection.

During this whole time, Christian volunteered his time at the GaugeCam project under Dr. Francois Birgand in the Biological and Agricultural Engineering Department at North Carolina State University.  While most of the GaugeCam spent their time gathering data, performing research, testing equipment, etc,, Christian was tasked with building a server to run the website, capture and process results, host a blog, and generally act as the systems administrator on the project for a couple of years.  We gave him an old computer on which he installed a LAMP stack, the operating system and programs to run the server.

The take-away from all this is that Christian stayed engaged in computing with the help of a variety of projects that had specific goals the he wanted to finish and make work.  He learned a lot along the way, a little at a time as it was required for his projects.  The gift of interesting projects with specific goals is one we believe is essential in the effort to learn how to program.  He had one additional project that fits into this category, but that is sufficiently interesting that it requires a post of its own.  Christian figured out how to browse the web on his “dumb” cell phone.  That will be the subject of the next post in this series.

Stuck in a “project” rut

Day 77 of 1000

Our 1000 day plan has given everyone in our family lots of energy to get on track with a lot of stuff.  Now that we are in the last third of the semester, Lorena and the kids hit the books hard most nights and most of the time on weekends.  We miss workouts more often than we would like, but that is because of all the school work.  I like to fill up the time when the kids do their school work with learning projects.  I am all fired up to do something cool, but now that Troy has moved on to more important research and we have hit most of our big milestones for the GaugeCam project, I am struggling with finding something that really excites me.  It would be very cool to work on a project like this Flying Machine, but do not have the mechanical skills.

I have what seem like very good options, but every one of them have some caveats.  BleAx is great, but Kelly will not have time to really jump back into her Betty Blonde comic strip until after spring semester. I could move on with GaugeCam, but we have not really defined what we want to do next.  The Android programming is fun, but I have not identified anything that is not already done that I want to do.  I work want to work on SQL, but that suffers from the same problem as Android.  Maybe I will talk to my buddy Jeff to figure out something to make that requires a control system and vision.

Update:  And another thing.  I am WAY to fat.  When I get in this mode and do not have a project to distract me, I eat way too much.  I have to find a project.

GaugeCam press release

Day 70 of 1000

North Carolina State University has made a press release on our work at GaugeCam.  That is the volunteer project I am doing and my buddies, Troy and Andrew with Dr. François Birgand and my buddies, Troy and Andrew, to measure water levels in the wild and post the results, with images, on the internet.  Dr. Birgand has already been called for an interview by a national radio program.  We will keep you posted.

Powered by WordPress & Theme by Anders Norén