top | item 9420837

NHL goal celebration hack: real-time machine learning and hue light show

258 points| cotsog | 11 years ago |blog.francoismaillet.com

46 comments

order
[+] ddcarnage|11 years ago|reply
I'm the guy who did this; really happy this is trending on HN!

Hope everyone enjoys the game tonight! :D

[+] SG-|11 years ago|reply
I guess it probably didn't go off much tonight.
[+] KeytarHero|11 years ago|reply
Really cool.

What are you doing for away games? Can it still detect Habs goals? You mentioned you had to train the algorithm not to detect the opponents' goal horn. Couldn't you just scrape the schedule to detect if you're playing at home or away and use a different model for each?

[+] alyx|11 years ago|reply
Go Sens Go!
[+] steamy|11 years ago|reply
Pretty cool my man but how do you deal with false positives?

I don't know about hockey but in soccer (football), commentators are as much excited about near-goal scenarios like the ball hitting one of the posts or the goalie making a superb save as goals themselves.

I can't imagine employing such a system for football games. What do you think?

[+] iwaffles|11 years ago|reply
This is really awesome. I've managed to do something similar, but for the Washington Capitals. When the game starts the lights change to the color of the home team, and when they score the flash. I'm using a little web scraper to pull from nhl.com to get the data, however, sometimes it's quite out of sync with the actual game (streaming or live tv). Usually about 30 seconds to a minute delay.

The best part is when I forget that they are playing and the lights start flashing randomly. Always scares guests :)

[+] waterlesscloud|11 years ago|reply
I've been using MLB.com's api and Windows' text-to-speech to build a robo-announcer for baseball games. It builds a little narrative from the ridiculous amount of data they share. Sure, I could just listen to the streaming audio, but it's been an excuse to learn some Racket.

I kid about building a robo-color-commentator that tells old stories and bad jokes.

[+] rebel|11 years ago|reply
I'd love to get your code for that if you're willing to share. I have my hue lights set up and synced with the ESPN app in IFTTT but that triggers for every game event not just goals. Would love to get it set up with something that will work a bit better.
[+] SG-|11 years ago|reply
I know this post isn't really about the hockey part and more about the ML part, but I think it would be more practical to analyze and maybe use the Budweiser Redlight API if possible (I haven't looked into it yet or have one) to get almost instant goal reporting for your team of choice.

I have seen it in action and it's like ~2 seconds off from a live feed.

http://www.budweiser.ca/redlight/

Really nice post and I'll be using it implement a few things around the house (like trying to monitor kids crying, etc).

[+] W35|11 years ago|reply
I believe their system works by employing a man to push a button, which is then routed to your light.

They note in their fine print that they may end the service at any point, which renders it fairly useless.

As you said, you may be able to find a way of spoofing the goal signal. But now, you are just the man pushing the button.

[+] fallat|11 years ago|reply
I feel like human-integrated solutions are starting to become more and more of a thing, for example, Magic, this Budweiser Redlight, Rabbit (I think that's what it's called? For IT-related tasks), and so on. I'm surprised these services didn't exist sooner.
[+] simark1|11 years ago|reply
I am impressed that it's able to work for both when the Habs are at home and on the road. The only similar thing would be the commentator's reaction. The ambient sound is reversed (cheers and horns when the Sens score). I would think you would have to train the algorithm separately for both cases, and tell it whether the current game is at home or not.

Anyway, this is very good work, the light setup is very clean. I hope that the (your?) system will get a lot of "true positives" during tonight's game :).

[+] pragone|11 years ago|reply
You might also have good luck by analyzing the chat data from hockeystreams - just look for when a few dozen people write something along the lines of "GOOOOOOOOAAAAAAAALLLLLLLLLL", and take it from there.

Granted, not as much fun as setting up the whole system you did, but another option.

[+] yellingdog|11 years ago|reply
There's also a similar community on freenode at ##reddit-hockey we're a pretty reliable data source as well.
[+] hellskitchendev|11 years ago|reply
This is great. I use a simple IFTTT recipe to blink my hue's at the start of the Yankees games but the ESPN api hook is always off by 10 minutes or more.
[+] comrh|11 years ago|reply
Nerdy Habs fans: combining obsessive love of tech with obsessive love for hockey.

All the goal horns are on youtube, maybe you could create a training set with that?

[+] geedy|11 years ago|reply
Would not work for away games. Could easily use goal horn for home games though for higher accuracy.
[+] dquail|11 years ago|reply
This is awesome. Well done. Wondering if there was any real time speech to text that could be trained. Seems like these commentators all have their canned lines when the team scores. "He scores", "Goal", etc. etc. Seems like you might be able to fairly accurately capture that and add the sentence as an attribute? Well done. My Oilers need something like this for every time we win the Draft Lottery! McDavid!!!!!!
[+] decisiveness|11 years ago|reply
This is a cool idea, but the light show going off erroneously in my own home for the opposing team would be disheartening to any die hard fan. Any chance of this happening, let alone once every 4 games, would be unacceptable. And the pain of knowing I rigged it up myself would make it that much worse. I applaud OP for the wherewithal it must've taken to see this project through to the end.
[+] ddcarnage|11 years ago|reply
lol well it does go off erroneously sometimes... statistically speaking once every 4 games. BUT... I do have the big USB button ready to cancel the light show and goal song. Something I did not mention in the blog post is that it stops the goal song by playing the Fail Trombone sound (https://www.youtube.com/watch?v=iMpXAknykeg) when you use the USB button to cancel light show. Yes really disheartening, but the one time it happened it made the whole thing pretty funny actually :)
[+] chaosmachine|11 years ago|reply
It seems like analyzing the video would be much easier, as you could basically just OCR the on-screen scoreboard.
[+] durbin|11 years ago|reply
Scoreboards will take a bit longer to react than the announcers and goal horn.
[+] dheera|11 years ago|reply
Nice!

I was playing with the Belleds lights (friend's recent Kickstarter; similar to Hue but somewhat cheaper), wrote a Python API for it, which worked great, but then I hit a mental block in coming up with something actually cool to do with RGB lights.

I hooked it up to a text sentiment analyzer but this just wasn't all that cool. https://github.com/dheera/python-belleds/blob/master/sample-...

Hooking it up to a sports match though, that's definitely cool and useful.

[+] tantalor|11 years ago|reply
What happens when a goal is scored by the other team?
[+] ddcarnage|11 years ago|reply
Usually the commentator is way less excited so the system can make the difference.
[+] laxatives|11 years ago|reply
Its trained for the response of a particular commentator (presumably a Habs fan).
[+] ErikAugust|11 years ago|reply
Very cool. Would a Closed Caption feed be superior?
[+] ddcarnage|11 years ago|reply
Not a bad idea. However it would probably be hard to make the difference between goals for and against your team without analyzing a lot of what's said prior to a goal.
[+] jtkme|11 years ago|reply
As a fan of both ML and hockey, I love this! Can't wait to beat you again this year (let's go Rangers)

You can probably get some improved performance using hidden markov models to place of the voting scheme.

[+] hyperbovine|11 years ago|reply
> Being able to see the patterns with the naked eye is very encouraging in terms of being able to train a model to detect it.

Would that that were true!

[+] robinhowlett|11 years ago|reply
Was playing the goal song through home audio system triggered too? How (or is it Mac's audio piped through speakers)? Great idea btw
[+] ddcarnage|11 years ago|reply
Mac Mini is hooked up to speakers and TV and it plays the goal song. I set the volume of the media player so that it's just right with the game broadcast so everything sounds good together.
[+] circa|11 years ago|reply
Very cool. Lets go Islanders!!!!