Recent break throughs in neural networks have made the use of computer vision technologies available to a wider audience, and many businesses are looking for ways to apply those technologies. To address the demand, large cloud service providers now providing basic turn-key computer vision services. Computer vision solutions currently perform best when they are asked to do tasks which are limited in scope. So, unless pre-trained models are already available for the task at hand, there could be a steep cost to implementing computer vision.
To make things worse, there are relatively few people who understand computer vision technologies from a wholistic perspective. This dearth of experience is not due to lack of educational resources, rather it is due to the steep learning curve and the inverse distribution of educational materials. There are many ways to learn how to get started with a computer vision project, but there are fewer resources explaining how to apply those initial learnings to harder real world problems.
Due to those challenges, it can be hard for technology managers get the information they need to make informed decision about the implementation of computer vision systems. In this post I will discuss ways to avoid some of the common problems encountered when non-tech companies attempt to implement custom computer vision solutions.
While looking for vintage cameras I came across a yellow and green metal Kodak film canister. Though they are certainly getting rare, I am used to seeing plastic canisters for 35mm film, but I had never seen a metal one. I unscrewed the top and saw a roll of developed black and white film inside. The screw top canister was interesting, so I purchased it for a couple dollars. I assumed the negatives would contain mundane images of someones relatives posing in the parlor. However, when I inspected them I found images of a city; not street photography type images, images of a city taken from the top of a building. I decided to try and figure out the place and time they were taken. But, based upon the title, you already know that I figured it out. I wrote out the steps I used to deduce the answers because I found the process of walking through some of Akron’s history interesting.
Recently I started restoring a vintage Ikoflex TLR camera. Before purchasing the camera I ultimately got, I did some internet research on Ikoflexes. They are not a particularly famous brand, so it was a little harder to get information about them. Fortunately, a lot of great information has been recorded at sites like the camera wiki, Pacific Rim Camera, and Barry Toogood’s TLR Cameras Website. As great as these sites are, there seems to be some minor discrepancies between them in places. Having received some basic training as a historian, I wanted to look over the primary sources. As I started gathering source material and sorting through references to the somewhat confusing Ikoflex model designations, I started taking notes. Rather than just keeping my notes to myself, I thought I would contribute back to the internet by posting them.
The title suggests that this post will contain some sort of narrative history of Ikoflex cameras. But, it doesn’t really. It’s mostly data I grabbed from other sources, organized in a way that makes sense to me. This page is a work in progress, so I will continue to update it as I learn more.
Recently I took a long, multi-day bike ride. Every day I got up early and was on the road at dawn. The heat index was between 90℉ and 100℉, so the goal was to travel as many miles as possible before it got too hot. One morning, after a rough ride, I was looking for a nice place to stop and have a snack. As I emerged from a rocky forested road I found myself looking at a nearly still lake illuminated by the early morning sun. The peacefulness of the scene was exactly what I was trying to get out of my bike ride. I whipped out my phone and took a picture of the scene so that I could enjoy it later. I hopped back on the bike and continued my ride.
As I continued to ride I though about that peaceful lake in the middle of nowhere. Was I really riding all that way through rural Ohio so that I could enjoy it latter? When would that latter come, when I was back in the bustle of everyday life? Perhaps I should take time to notice the beauty around me and appreciate it in the moment. Perhaps I should take time to notice the ugly around me and do more to fix it.
From that thoughtlessly captured photo I also started thinking about how digital technology makes everything easy. Maybe everything shouldn’t be so easy. It’s easy to take a digital photo, and it’s even easier to forget that photo. If it was harder to take would it be appreciated more? Maybe the challenge associated with taking photographs on film – changing the camera’s setting to account for lighting, color, and distance among other things – would make me better appreciate the things I was taking photographs of. Maybe I should try to make some changes which would help me slow down and appreciate the beauty, and ugliness, around me. To that end I would check if film cameras and film were still available, and I would incorporate them into my photography rather than relying so heavily upon the camera in my phone.
Despite having gone on a couple climbing trips this year, we haven’t made it to our favorite East Coast sport climbing spot, the Red River Gorge. Doug built out his trad rack, so we have been doing multi-pitch trad climbing at Seneca Rocks. With the 2019 season winding down, we decided plan a trip. The only time which worked for most of us was the weekend before Thanksgiving weekend; a week before the season ends.
The first time we traveled to the Red, six of us were able to make the trip. The original six were all back for this trip. We all had more experience, especially Doug and Mark, so we were ready to attempt some more interesting climbs. The only problem was the weather. The forecast for Saturday was calling for rain, so we sought out walls with rain protection.
The last time we climbed Seneca Rocks, weather prevented us from reaching the summit. So, before we even started driving out of Pendleton County we began talking about when we would return and actually get to the summit. It’s surprisingly hard to find a date when four working people with families and friends can break free for a long weekend of climbing, but eventually we found a weekend in early October which would mostly work for our group.
We drove down on Thursday night. The idea was to get a full day of climbing in before the weekenders showed up. This turned out to be a great date for a long weekend. The leaves were starting to change, the weather was nearly perfect for climbing, and the routes were only moderately busy. We summited twice via two different routes, and learned some good lessons along the way.
Before I started making mead I was brewing beer. I wasn’t very good at it, but I would have been much worse were it not for a handful of books pointing me in the right direction. I learned the basics of brewing by practicing what I read in Charlie Papazian’s book The Complete Joy of Homebrewing. I think it was actually Radical Brewing by Randy Mosher which gave me the idea to try mead making. When I decided to give it a shot, I picked up a copy of The Complete Meadmaker by Ken Schramm. Later I incorporated ideas from Steve Piatz’s book The Complete Guide to Making Mead. Most of what I know about making mead comes from these authors.
Through a long process of reading those books and experimenting I have become an outright decent mead maker. Along the way I have developed my own style. I like to experiment with honey varietals, adjuncts, and extraction techniques, so I normally make small one gallon batches. Also, I don’t have a temperature controlled fermentation chamber, so I only make mead during cooler months. Since I only ferment four or five months out of the year I end up having numerous small batches all fermenting at once, and I like to keep the ongoing maintenance to a minimum. These factors have shaped the process which I follow. So, in the spirit of sharing knowledge to help others produce better mead, I am sharing my process.
The Appalachian Trail is sometimes referred to as the green tunnel. The truth is that many of the backpacking trails on the East Coast run under the cover of deciduous forests and have few scenic overlooks. One backpacking area within driving distance of Northeastern Ohio which breaks out of the green tunnel is the Dolly Sods Wilderness. Dolly Sods has a rough, barren appearance which is partially the result of its unique ecology and partially the result of a long history of exploitation and abuse by European settlers.
Prior to civilization creeping up to it’s borders, Dolly Sods was an inaccessible region covered with spruce, hemlock, and mountain laurel. The expansion of the railroads brought the lumber industry into the area. As the lumber industry clear cut the forests they left behind a landscape barren of trees yet fertile for fires. Fires destroyed vegetation which survived the lumber companies. By the late 1920s little of value was left and the companies moved on. The Civilian Conservation Corps started planting spruce in the 1930s, but in 1940s the US Army rolled in. They were preparing for war in Europe and needed a place to practice destroying things with artillery shells.
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.
Last summer we drove from Akron to Fort Collins, Colorado. Although it was a great experience, we wanted to drive a little less this summer. So we came up with a new adventure idea. We wanted to find a place which was off the grid, but had front-country amenities, like running water, toilets, and great food. And, it had to be within about eight hours of Akron. It seemed like an impossible ask, and I was fairly sure that we would have to compromise on at least one aspect. Then I found Charit Creek Lodge in Tennessee. Amazingly, it has all the desired amenities and is just seven hours and fifty minutes away. As an added bonus, it costs about the same as a stay at a major hotel chain.
Rather than driving straight to Charit Creek, we decided to break our trip up. We were going to do a mix of backpacking at Zaleski, car camping at Cumberland Lake, and lodge camping at Charit Creek.
On this site I write about, what I like to believe is, a diverse set of topics. The normal way of presenting posts using a sequential list does nothing to help people discover other material on the site which they may also be interested in. I wanted to provide visitors with a list of links to content which is similar to the page they are currently viewing. However, due to limitations in the platform I’m using, there was no option to simply turn this on. So, I wrote some code and implemented an algorithm to solve this problem.
This details the hardware design for a simple 12-bit microporcessor. I created it for an undergraduate class which I took a few years ago. It is not really usefull for anything besides learning how computer hardware works, but I still think that it is pretty cool. I found the documentation for it on my hard drive and remebered how proud I was to have actually completed it; I am a computer scientist, not a computer engineer. Simple logic gates are used as the basis for the creation of more complex digital electronic circuits; those circuits, including a control unit, are in turn connected via a datapath to form a completed processor. The processor datapath is designed to implement the Simple-12 instruction set.