Christopher
Stoll

Backpacking Trip Report: Spruce Knob to Seneca Creek

Backpacking Trip Report: Spruce Knob to Seneca Creek

Like most years, my boys and I went on a backpacking trip over spring break. This year we were either going to the Spruce Knob area or to Dolly Sods. Both of these places offer alpine-like highlands that we are not used to seeing in Ohio. Weather would determine the location. The weather at Dolly Sods was forecast to be slightly colder with a slightly higher chance or rain, so they decided to go to Spruce Knob.

We were originally going to leave Akron on Wednesday after work, but we couldn’t make it work. It’s just as well, the drive to Spruce Knob is about five and a half hours. And, the last portion follows a winding, guardrail-less one and a half lane road up the side of the mountain. So not arriving after dark was probably for the best.

continue reading


Tensorflow Object Detection for Real World Problems

Tensorflow Object Detection for Real World Problems

I just wrapped up a challenging computer vision project and have been thinking about lessons learned. Before we started the project I looked for information about what was possible with the latest technology. I wanted to know what sort of accuracy (precision and recall) I could expect under various conditions. I understand that every application is different, but I wanted at least a rough idea. I didn’t find the type of details that we needed, so we approached the problem in a way that would give us flexibility to change our approach with minimal rework. We used the Tensorflow Object Detection API as the main tool for creating an object detection model. I wanted to share, in general terms, some of the things which we discovered. My goal is to give someone else who is approaching a computer vision problem some information which may help guide their choices.

The customer’s objective was to get an inventory of widgets sitting on a rack of shelves. The widgets were fairly large and valuable, but for various reasons RFID and other radio based solutions were not an option. So, that is where computer vision came in. Using computer vision to solve this problem was not going to be an easy task. There were many obstacles to overcome, and I will discuss them in turn.

continue reading


Setup Tensorflow for Object Detection on Ubuntu

Setup Tensorflow for Object Detection on Ubuntu

I previously wrote about setting up Tensorflow for object detection on macOS. After getting everything set up on the Mac I very quickly decided that it would be worth it to get Tensorflow running on something other than my main development computer. Running Tensorflow to train computer visions models on my Mac consumed all available computing resources. Nothing else could be done while the training was in progress. And, it was not taking advantage of the GPU. Using a dedicated Ubuntu machine with a GeForce GTX 1060 graphics card would be a much better option.

It took a lot of work to get a GPU enable version of Tensorflow installed and running properly. Then, after it was working for a few months, a kernel update caused it to suddenly stop working. I didn’t immediately know that the problems were caused by a kernel update, I though some other updated dependency was the culprit, so I didn’t just roll the kernel back and call it a day. Again I had to spend a good amount of time piecing together different references in order to get everything working properly. I documented everything in one place to make the process easier in the future.

The real moral of the story is probably that it is worth it to use cloud-based compute resources for these sort of tasks. That is especially true if the task allows for TPUs to be used. Regardless, if you have an unused gaming or mining machine sitting around and want to get Tensorflow running on it, this is how I did it.

continue reading


Setup Tensorflow for Object Detection on macOS

Tensorflow is an amazing tool, but it can be intimidating to get it up and running. I wanted to help someone get started with Tensorflow on a Mac, and if I had written all of this down then I could have just given them a link. This post isn’t a captivating read, it’s basically a list of commands, but it allows me to easily share my setup instructions. I’ll try to give a short explanation of what needs to happen and then a block with required commands. If you are in a hurry, don’t care to know what is happening, or have an odd blind trust in me, then you can skip the explanation and type in the commands at the end of each section. Conversely, if you follow along in the explanation section, then you don’t need to re-type the commands that appear at the end of each section.

There are many different applications for Tensorflow. We are currently using Tensorflow for object detection, so these instructions install everything which is required for that task. Other task could require additional prerequisites. If you are still here, then you probably need to get Tensorflow Object Detection API set up. In that case, open up a terminal window and read on.

continue reading


Climbing Trip Report: PMRP

Climbing Trip Report: PMRP

On our first climbing trip, in the still very frigid month of March, a group of six of us went to Muir Valley. For our second trip, in the surprisingly sweltering month of May, four of us made the journey to the Red River Gorge. For our last trip of the year, our group had dwindled to three. The rest of the group was, respectively, busy taking care of a new human, finishing a doctorate, and settling in to a new job. Which, from a climbing perspective, was a shame. The weather for this trip was just about perfect. It was cool with low humidity, and the remnants of Hurricane Willa passed to the north of Kentucky, yielding only mild showers on our travel day.

The only downside to beautiful weather is that everyone likes to get outside and enjoy it. I would guess that the number of climbers out on any given day is somehow proportional to the quality of the weather. Fortunately, there is so much accessible climbing in the Red River Gorge that, with a little planning, it is not hard to find a wall to climb. And, great weather opens up routes which are less desirable under cold or raining conditions. Our unofficial guide, Doug, picked some crags in the Pendergrass-Murray Recreational Preserve (PMRP) which seemed likely to give us good climbing opportunities.

continue reading


Miodomel

Miodomel

This was going to be another post in the ‘ancient mead’ series where we create modern interpretations of historical mead recipes. However, I found this excerpt to be interesting enough that I didn’t want to wait until I had come up with the interpreted recipe. I may pull out the main miodomel recipe and give my interpretation of it at some point in the future, but for now, here is an excerpt from the 1845 book “The Beekeeper’s Manual”1.

An immense quantity of honey is consumed in miodomel, which is as common as beer in this country. The numerous Roman and Greek monasteries have always their cellars well stocked with this favourite beverage. The monks, friars, priests, and nuns, of all orders and denominations, are exceedingly fond of it, and they know best how to make it. And, as there is a very numerous body of these fanatics or idlers, they help greatly to the universal consumption of the products of the earth, especially of honey; the only good they ever do render to the communities which feed them.

continue reading


Plugging IOT Data into a Machine Learning Pipeline

Plugging IOT Data into a Machine Learning Pipeline

Let’s intelligently connect many pieces of legacy infrastructure to the internet, and do it in such a way that insights can be gleaned from the all data it generates. The premise sounds simple enough, but in practice such a project requires deep knowledge of a wide range of technologies. However, by breaking the problem down into discrete, logical pieces, we can prove that a working solution is possible in a relatively short period of time. We did this exact thing for a recent project, and this is the overall approach we took.

continue reading


Ancient Meads: Mr. Masillon's Metheglin

Ancient Meads: Mr. Masillon's Metheglin

In this series we create modern interpretations of ancient meads. This time we will look at a circa 1660 metheglin recipe from Belgium. The original recipe says that hops can be used to help preserve the mead, and we will be making that miodomel (mead with hops) version. We are going to use Saaz hops, which we hope will help bridge the mildness of the mead with the spiciness of the clove and ginger. Our one gallon interpretation uses SafAle BE-256 yeast, paying homage to the original recipe’s Belgian roots. The original and modern interpretations are below, if you are up to it.

continue reading