CLOSE
quiz
arrow

Pixar Trivia of Escalating Difficulty

iStock // Ekaterina Minaeva
technology
Man Buys Two Metric Tons of LEGO Bricks; Sorts Them Via Machine Learning
May 21, 2017
iStock // Ekaterina Minaeva

Jacques Mattheij made a small, but awesome, mistake. He went on eBay one evening and bid on a bunch of bulk LEGO brick auctions, then went to sleep. Upon waking, he discovered that he was the high bidder on many, and was now the proud owner of two tons of LEGO bricks. (This is about 4400 pounds.) He wrote, "[L]esson 1: if you win almost all bids you are bidding too high."

Mattheij had noticed that bulk, unsorted bricks sell for something like €10/kilogram, whereas sets are roughly €40/kg and rare parts go for up to €100/kg. Much of the value of the bricks is in their sorting. If he could reduce the entropy of these bins of unsorted bricks, he could make a tidy profit. While many people do this work by hand, the problem is enormous—just the kind of challenge for a computer. Mattheij writes:

There are 38000+ shapes and there are 100+ possible shades of color (you can roughly tell how old someone is by asking them what lego colors they remember from their youth).

In the following months, Mattheij built a proof-of-concept sorting system using, of course, LEGO. He broke the problem down into a series of sub-problems (including "feeding LEGO reliably from a hopper is surprisingly hard," one of those facts of nature that will stymie even the best system design). After tinkering with the prototype at length, he expanded the system to a surprisingly complex system of conveyer belts (powered by a home treadmill), various pieces of cabinetry, and "copious quantities of crazy glue."

Here's a video showing the current system running at low speed:

The key part of the system was running the bricks past a camera paired with a computer running a neural net-based image classifier. That allows the computer (when sufficiently trained on brick images) to recognize bricks and thus categorize them by color, shape, or other parameters. Remember that as bricks pass by, they can be in any orientation, can be dirty, can even be stuck to other pieces. So having a flexible software system is key to recognizing—in a fraction of a second—what a given brick is, in order to sort it out. When a match is found, a jet of compressed air pops the piece off the conveyer belt and into a waiting bin.

After much experimentation, Mattheij rewrote the software (several times in fact) to accomplish a variety of basic tasks. At its core, the system takes images from a webcam and feeds them to a neural network to do the classification. Of course, the neural net needs to be "trained" by showing it lots of images, and telling it what those images represent. Mattheij's breakthrough was allowing the machine to effectively train itself, with guidance: Running pieces through allows the system to take its own photos, make a guess, and build on that guess. As long as Mattheij corrects the incorrect guesses, he ends up with a decent (and self-reinforcing) corpus of training data. As the machine continues running, it can rack up more training, allowing it to recognize a broad variety of pieces on the fly.

Here's another video, focusing on how the pieces move on conveyer belts (running at slow speed so puny humans can follow). You can also see the air jets in action:

In an email interview, Mattheij told Mental Floss that the system currently sorts LEGO bricks into more than 50 categories. It can also be run in a color-sorting mode to bin the parts across 12 color groups. (Thus at present you'd likely do a two-pass sort on the bricks: once for shape, then a separate pass for color.) He continues to refine the system, with a focus on making its recognition abilities faster. At some point down the line, he plans to make the software portion open source. You're on your own as far as building conveyer belts, bins, and so forth.

Check out Mattheij's writeup in two parts for more information. It starts with an overview of the story, followed up with a deep dive on the software. He's also tweeting about the project (among other things). And if you look around a bit, you'll find bulk LEGO brick auctions online—it's definitely a thing!

iStock
8 Common Dog Behaviors, Decoded
May 25, 2017
iStock

Dogs are a lot more complicated than we give them credit for. As a result, sometimes things get lost in translation. We’ve yet to invent a dog-to-English translator, but there are certain behaviors you can learn to read in order to better understand what your dog is trying to tell you. The more tuned-in you are to your dog’s emotions, the better you’ll be able to respond—whether that means giving her some space or welcoming a wet, slobbery kiss.

1. What you’ll see: Your dog is standing with his legs and body relaxed and tail low. His ears are up, but not pointed forward. His mouth is slightly open, he’s panting lightly, and his tongue is loose. His eyes? Soft or maybe slightly squinty from getting his smile on.

What it means: “Hey there, friend!” Your pup is in a calm, relaxed state. He’s open to mingling, which means you can feel comfortable letting friends say hi.

2. What you’ll see: Your dog is standing with her body leaning forward. Her ears are erect and angled forward—or have at least perked up if they’re floppy—and her mouth is closed. Her tail might be sticking out horizontally or sticking straight up and wagging slightly.

What it means: “Hark! Who goes there?!” Something caught your pup’s attention and now she’s on high alert, trying to discern whether or not the person, animal, or situation is a threat. She’ll likely stay on guard until she feels safe or becomes distracted.

3. What you’ll see: Your dog is standing, leaning slightly forward. His body and legs are tense, and his hackles—those hairs along his back and neck—are raised. His tail is stiff and twitching, not swooping playfully. His mouth is open, teeth are exposed, and he may be snarling, snapping, or barking excessively.

What it means: “Don’t mess with me!” This dog is asserting his social dominance and letting others know that he might attack if they don’t defer accordingly. A dog in this stance could be either offensively aggressive or defensively aggressive. If you encounter a dog in this state, play it safe and back away slowly without making eye contact.

4. What you’ll see: As another dog approaches, your dog lies down on his back with his tail tucked in between his legs. His paws are tucked in too, his ears are flat, and he isn’t making direct eye contact with the other dog standing over him.

What it means: “I come in peace!” Your pooch is displaying signs of submission to a more dominant dog, conveying total surrender to avoid physical confrontation. Other, less obvious, signs of submission include ears that are flattened back against the head, an avoidance of eye contact, a tongue flick, and bared teeth. Yup—a dog might bare his teeth while still being submissive, but they’ll likely be clenched together, the lips opened horizontally rather than curled up to show the front canines. A submissive dog will also slink backward or inward rather than forward, which would indicate more aggressive behavior.

5. What you’ll see: Your dog is crouching with her back hunched, tail tucked, and the corner of her mouth pulled back with lips slightly curled. Her shoulders, or hackles, are raised and her ears are flattened. She’s avoiding eye contact.

What it means: “I’m scared, but will fight you if I have to.” This dog’s fight or flight instincts have been activated. It’s best to keep your distance from a dog in this emotional state because she could attack if she feels cornered.

6. What you’ll see: You’re staring at your dog, holding eye contact. Your dog looks away from you, tentatively looks back, then looks away again. After some time, he licks his chops and yawns.

What it means: “I don’t know what’s going on and it’s weirding me out.” Your dog doesn’t know what to make of the situation, but rather than nipping or barking, he’ll stick to behaviors he knows are OK, like yawning, licking his chops, or shaking as if he’s wet. You’ll want to intervene by removing whatever it is causing him discomfort—such as an overly grabby child—and giving him some space to relax.

7. What you’ll see: Your dog has her front paws bent and lowered onto the ground with her rear in the air. Her body is relaxed, loose, and wiggly, and her tail is up and wagging from side to side. She might also let out a high-pitched or impatient bark.

What it means: “What’s the hold up? Let’s play!” This classic stance, known to dog trainers and behaviorists as “the play bow,” is a sign she’s ready to let the good times roll. Get ready for a round of fetch or tug of war, or for a good long outing at the dog park.

8. What you’ll see: You’ve just gotten home from work and your dog rushes over. He can’t stop wiggling his backside, and he may even lower himself into a giant stretch, like he’s doing yoga.

What it means: “OhmygoshImsohappytoseeyou I love you so much you’re my best friend foreverandeverandever!!!!” This one’s easy: Your pup is overjoyed his BFF is back. That big stretch is something dogs don’t pull out for just anyone; they save that for the people they truly love. Show him you feel the same way with a good belly rub and a handful of his favorite treats.

The best way to say “I love you” in dog? A monthly subscription to BarkBox. Your favorite pup will get a package filled with treats, toys, and other good stuff (and in return, you’ll probably get lots of sloppy kisses). Visit BarkBox to learn more.

SECTIONS
BIG QUESTIONS
BIG QUESTIONS
WEATHER WATCH
BE THE CHANGE
JOB SECRETS
QUIZZES
WORLD WAR 1
SMART SHOPPING
STONES, BONES, & WRECKS
#TBT
THE PRESIDENTS
WORDS
RETROBITUARIES