For those that haven’t experienced it, the early days of parenthood are challenging, to say the least. Trying to get anything accomplished with a raging case of sleep deprivation is hard enough, but the little bundle of joy who always seems to need to be in physical contact with you makes doing things with your hands nigh impossible. What’s the new parent to do when it comes time to be gainfully employed?
Finding himself in such a boat, [Fletcher]’s solution was to build a face-activated keyboard to work around his offspring’s needs. Before you ask: no, voice recognition software wouldn’t work, at least according to the sleepy little boss who protests noisy awakenings. The solution instead was to first try OpenCV and the dlib facial recognition library to watch [Fletcher] blinking out Morse code. While that sorta-kinda worked, one’s blinkers can’t long endure such a workout, so he moved on to an easier set of gestures. Mouthing Morse code covers most of the keyboard, while a combination of eye, eyebrow, and other facial twitches and tics cover the rest, with MediaPipe’s Face Mesh doing the heavy-lifting in terms of landmark detection.
The resulting facial keyboard, aptly dubbed “CheekyKeys,” performed well enough for [Fletcher] to use for a skills test during an interview with a Big Tech Company. Imagining the interviewer on the other end watching him convulse his way through the interview was worth the price of admission, and we don’t even care if it was a put-on. Video after the break.
CheekyKeys is pretty cool, doing something with a webcam and Python that we thought would have needed a dedicated AI depth camera to accomplish. But perhaps the real hack here was how [Fletcher] taught himself Morse in fifteen minutes.
Looks like a good facial workout!
Careful ones face doesn’t stick.
My jaw was definitely tired after writing the interview code! A lot better than the long blinks though.
My jaw was definitely tired after writing that interview code! It was a lot better than the long blinks, though.
https://github.com/everythingishacked/CheekyKeys/blob/master/Morse%20cheatsheet.md … apparently that’s how he remembers the morse code.
Unfortunately some folk who this could most help just lack the muscle control. Which makes me sad since this seems tailor made for quadrapaligics.
On the other hand imagine this paired with user recognition software so the system knows who is making a specific set of gestures and you literally sign to have specific thigns happen. Like ‘unlok door, turn livingroom lights and TV on’ etc.
Hmm a good point it does seem ideal for them, the few I’ve seen (never in person) do seem like they could probably manage this just fine though, as long as the computer isn’t thrown by the strap they may have to hold their head up comfortably…
Definitely. I built this for my use case (coding), abilities (full facial control most of the time), and restrictions (silent, hands-free). But I can definitely imagine some cases where this might be more broadly useful to others with a little individual customization. If anyone knows first-hand of any specific use cases, I’d love to help out!
One small correction to the video:
Morse code was invented by Samuel Morse for use on telegraph lines in the 1840s. https://en.m.wikipedia.org/wiki/Morse_code
When radio was invented decades later, the radio operators used Morse code.
Real Morse code, used in landline telegraphy, is a bit different than the now universal international variety. It has some real virtues- it is more “ditty” so is a little faster but interference wasn’t a big deal on landline and international code is, well, more international. Traditional morse, on a sounder, is the kind of thunk-thunk sound you hear in old movies. Only with radio do you get beeps.
I gather at one time some hams would send real Morse code, and build sounders so it would be like telegraph. But this was in the sixties.
A dash and a dot as a tone is distinctive, a sounder, you’re gearing the difference between a make and break.
Wouldn’t work for me as I have too many twitches and uncontrollable blinking ! Others may be extremely offended by what is presented on the screen !!
Dasher is nice tool for text input. Has ability adjust speed and filter out movements and use multiple types of inputs. http://www.inference.org.uk/dasher/
Sending morse code was never the problem. Receiving it was. In 1970 I got a telegraph kit (I could switch between morse sounder, buzzer or light) so I could learn the code. It was easy to send, but nobody I knew could send, and that’s what I needed to learn.
It’s a mistake many make.
In this case, it’s fine, but if he had to receive morse code, it would take way more than fifteen minutes.
Definitely harder to lear to receive than send. Most recommend not even picking up a key till you are a proficient receiver. I’m well out of practice (at both!) but learning to receive there was a definite shift from picking out characters to just sort of understanding. I learned by LCWO at 25 WPM. You MUST learn it at full speed so you can’t count dots and dashes. Many learn slow and never get over the hump.
President Dwayne Elizondo Mountain Dew Camacho (Terry Crews) thinks a full-body keyboard is a viable option, too…
https://www.youtube.com/watch?v=SYQ4yfWyYpM
This is amazing. I might have to make an actual full-body keyboard for my next project…