What does it take for a computer program to recognize your cat? In 2004, it took a specialized software company, running a program on a desktop personal computer. In 2012, a non-expert can write a similar program and run it on a smartphone. At least that's what Aaron Forster, an information technology consultant but not a programmer, wants to show.
Forster's cat, Timothy, is pretty cute, but Forster is tired of him bringing in dead or dying birds and mice and dropping them on the carpet. Eight years ago, an image-recognition software company solved the same problem with its company cat, Flo. Quantum Picture developed a cat door that let Flo in, but locked her out if it saw she was carrying something in her mouth. At the time, the door connected to a desktop computer that ran the program that snapped pictures of Flo and analyzed them as she approached the door. Now, Forster is determined to build Flo's door for Timothy on weekends, in between his usual consulting work in Simi Valley, Calif.
"From what I'd seen in the past, the power of computing had taken the difficulty of this way down," Forster told InnovationNewsDaily. "Part of the project was to prove you could do this sort of stuff without being a computer vision expert."
Computer vision researchers say several new tools have made the task doable for hobbyists. But because computer vision is still difficult, even for scientists, people who are looking for guaranteed results, rather than the fun of putting the door together, should probably stay away from a do-it-yourself door for now.
One of the most important recent advances in computer vision is a powerful, free, open-source library of computer vision code, called OpenCV. OpenCV has code that can detect something is there, track something as it moves and recognize what something is. "OpenCV has become the go-to package of tools for developing vision systems to a prototype stage and beyond," Patrick Flynn, a computer vision researcher at the University of Notre Dame, wrote to InnovationNewsDaily in an email.
Forster found a tutorial someone else had made for using OpenCV to recognize human faces. He's now feeding the program photos, to train it to recognize Timothy instead. That training step is the "key barrier" to a working door, Flynn wrote.
So far, the program works, but poorly. Forster will gather more photos to scan into the program to make it more accurate, he said. Meanwhile, he has built a plywood structure over his existing cat door, to hold a smartphone that captures pictures of Timothy as he passes by. Forster is also working on a mechanism for locking the cat door.
For now, Timothy goes in and out, unhindered, while the smartphone snaps his mug as training data for the program. When Forster is done with the door system, the phone will compare the pictures it takes to its understanding of when to let Timothy in. It should let the cat in most of the time, but lock the door when kitty is carrying prey or when another animal, such as a raccoon, approaches the door. The final program will need to make split-second decisions. Forster estimates it'll take another month to finish the project.
The door will always struggle with striking the right balance, either locking Timothy out even when he isn't carrying prey, or being too lenient, sometimes letting in some bloody mice. "It's a very difficult trade-off," Erik Learned-Miller, a computer vision researcher at the University of Massachusetts, Amherst, wrote in an email. Publicly available programs are probably not advanced enough yet to make those decisions very accurately, he said.
Still, it should be a "fun and demanding" project, Flynn said. And it may be easier now than it would have been two years ago. As Forster read articles and tried out lines of code, trying to learn how to turn a facial-recognition program into a cat-recognizing one, he ran into previous OpenCV users' online posts about using the software library. "Reading a lot of the posts a couple years ago," he said, "there's a lot more of people struggling." He's grateful for how far OpenCV has come.
Now seemed like the perfect time to show "regular folks could do computer vision," he said. He's documenting his progress and writing his own tutorials for others to follow on his website, the Visible Kitteh Project.
While no programmer, Forster has plenty of experience tinkering. In the past, he's made everything from a robot that was supposed to turn when it bumped into walls, to a jack-o'-lantern with lights made to resemble the robotic cylons in the TV show "Battlestar Galactica."
It's a good time to be tinkerer. A recent proliferation of tools for electronics hobbyists, plus a movement among people to share their tutorials online, form a powerful hook for motivated people to make things on their own, Flynn said.
The Forster clan has apparently been tinkering long before this, however. Growing up, Aaron Forster enjoyed watching his father, an electrical engineer, try to reproduce gadgets he saw in home improvement stores.
"So I grew up with a very strong do-it-yourself mentality," he said. "My wife jokes that she's going to put, 'I can make that,' on my tombstone."
More From InnovationNewsDaily.com