Hacker News new | past | comments | ask | show | jobs | submit | nemik's comments login

While OpenWRT is really good and often the best one for really constrained Linux HW, adding features like secure-boot and secure storage to the builds can be much more difficult than on Yocto. Especially when vendors like NXP provide that functionality in their Yocto BSPs. This can be important for commercial projects because a lot of customers are now asking for such features to secure end-devices.


That's true, but converting recipes to Openwrt is not that hard, it's just tedious.


Yes, excellent point regarding secure boot (for good or for evil)!


For more training data, I wonder if you could make Lego parts in Sketchup or some 3D program, then render them in a 'scene' similar to your camera setup using a renderer like Maxwell or V-Ray or whatever. Then you could maybe be able to generate unlimited numbers of sample images to train on.

I'm doing a similar experiment now to train a model to parse out an image of a blood pressure monitor that's a 7-segment LCD display. To do it I separated out each segment of the display as masks with Gimp/Photoshop and then I can create my own images by just overlaying them on top of an image of a blank LCD display. That gets me basically unlimited training photos. If you could render the 3D parts from various angles, colours, etc then something similar might be possible.

Also, you said you're doing modified VGG and into 20k classes. That works, but another thing to maybe try is use binary_crossentropy as the loss function and a sigmoid (instead of softmax) on the final activation layer, to be able to do multiclass classification. Then your labels could be a vector of shape possibilities, colour possibilities, or whatever you could divide your 20k classes into.


I've tried the rendering trick but it didn't work well enough, the real pictures seem to give much better results when used on unseen data.

> Also, you said you're doing modified VGG and into 20k classes. That works,

Right now there are 1002 classes, the 1000 most common lego parts, 'mess' and 'other'.

> but another thing to maybe try is use binary_crossentropy as the loss function and a sigmoid (instead of softmax) on the final activation layer, to be able to do multiclass classification. Then your labels could be a vector of shape possibilities, colour possibilities, or whatever you could divide your 20k classes into.

Ok, I can try that. Thank you!


Tagging/multi-label classification is useful because it'll help tame your explosion of classification if you want to expand. For example, it can then handle stuck-together parts by tagging it as both parts rather than putting them into a generic 'other' classification, or you could include separate tags for colors or fakeness or damagedness, avoiding the need for 100,000 categories of 'fake damaged red square brick' etc. It might also improve learning since it's a more natural way of describing the data.


Thanks for writing this up and adding all these detailed notes! Super awesome work on this, it's very cool.

The air puffs seem like the most unreliable parts at the moment?

Maybe if you could have some manual labour, one thing to do would be to mount a project above the setup to shine a graphic you generate onto it.

If you have bins labeled, you could project the label next to or on top of the part as it's moving on the conveyor. That way if you have human pickers, you're not constrained by the number of bins with each needing its own air-puff solenoid.


> The air puffs seem like the most unreliable parts at the moment?

Yes, absolutely. There are ways to improve on that but nothing simple.

> Maybe if you could have some manual labour, one thing to do would be to mount a project above the setup to shine a graphic you generate onto it.

I don't follow you, what do you mean?

> If you have bins labeled, you could project the label next to or on top of the part as it's moving on the conveyor. That way if you have human pickers, you're not constrained by the number of bins with each needing its own air-puff solenoid.

Ah I see, no, the airpuffs are reliable enough for now even if they are the most unreliable part, besides humans would not keep up with the machine at speed. But it is a solvable problem, just not the most interesting one at the moment. The most interesting one is the hopper feeder belt because if I can make that work just a little bit better it will speed things up by a factor of 4 to 10 depending on how well it will work.


His way is a lot safer. It's never a "$1" chip, you also need a power supply for that chip, breadboard (or dev kit) which puts price into cheapo webcam range.

On top of that, breaking out to LCD pins or their drivers is not easy. They're often very fine-pitch pins, if they have pins at all, some can be QFNP packages making it even harder to get to the pins. There's a big risk of just straight-up breaking the thermometer doing this, so if you attempt it, it's best to buy a backup.


A lot of these small LCDs interface with a zebra pad, hitting contacts on the LCD glass and some gold or carbon-coated conductors on the PCB. Gold conductors are easy, carbon-coated conductors are okay but can be annoying, but the pitch generally narrow for these, as you've mentioned.


Personally, rather than thinner/lighter I'd pay for it to be a bit bigger but capable of letting me open it up and replace RAM and the SSD as was possible up to the 2013 ones.


I'll be holding onto my MBP-Non retina from 2012 for as long as I can!

Best look for a cheese-grater Mac as a workhouse. Xeons may be old but not to be sniffed at.


The resell market is good enough that you can sell your laptop and buy one with the upgrades you want for around the price the upgrade would have cost.


That's a workaround, not a solution. Not being able to replace memory is absurd. But being able to replace a hard drive (the part most likely to fail) is just evil.


:( I think you just called yourself stupid.


Check out DirtyPCBs too. Based in Shenzhen but offers next-day DHL. Usually a 4 to 6 day turn-around time for me; great prices and good quality too.

If you're in a bigger city, also check out some smaller shops near you. There are a few nearby in the suburbs of Chicago for me and sometimes I go to them for quick turn-around time and a price that's higher than DirtyPCBs/Seeed's, but much closer than Advanced Circuits'.


https://www.amazon.com/ALITOVE-WS2812B-Individually-Addressa... are perfectly cromulent LEDs and less expensive than Neopixels. Not as cheap as the RGB strips, but if you pick off more points for colour analysis, you could adjust them along the edges, if you really wanted to. Nice work on the project!


Ooh, that's much cheaper, thanks! I'll order one and play around, it should be much better for an Ambilight-style display as well, thank you.


What keeps it from crushing you while you sleep?


Or smooshing you into the wall? Or just pinching your hand when you bend over to get something that fell under the bed?


Vim for everything (C, Python, JS/HTML/CSS, etc etc) except Android development, I use Android Studio for that.


Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: