Looking for a cheap embedded computer solution to acquire 4K images from multiple cameras
Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Looking for a cheap embedded computer solution to acquire 4K images from multiple cameras
Hi,
As hinted in the title, i'm working on a mobile robot with a dedicated camera acquisition system for computer vision.
I have now 4 12MPixels industrial cameras and the goal is to trigger them at the same time at 5Hz. The camera grab the frame with Bayer8 format, meaning 1 byte/pixel before conversion, a quick calculation give me a required minimum bandwidth of 1920 Mbps (4 Cameras * 12 Mpix * 5Hz * 8bits/pixel).
The final system need to have 8 cameras in total (but still 4 working at a given moment max), with one embedded computer dedicated only to grab the frames via USB3, convert them to some other format, then send them to a hard drive, it also need to run on ros to communicate with other systems.
The provider of the cameras told me the NVidia TX2 or Xavier will work, but considering their price and what is required, i'm looking for a cheaper solution, maybe by adding a PCIe to USB3 to increase bandwidth capability.
USB3 bandwidth is far from my expertise, i'm looking for any advices, i'll gladly give more informations if needed
thank you for you help.
1920 Mbps = 240 MB/S and that's a very high bandwidth indeed, and nothing cheap/nasty will do you. USB-3.0 might theoretically do it, but getting doing it full time is a pain, because there's hub bandwidth, & caching issues to contend with. Yes, pcie would definitely be better. USB-3.0 only flies under strict conditions & short cable lengths
As You're designing it, I'll suggest a few things. 5Hz is a very low refresh; shooting 4 simultaneous images is dumb, and put 4x workload on everything. Beware of image conversions, which are slow - what do the cameras give out? what way are you transmitting that beck to your intelligence? There's 1 camera --> 1 sdcard units out there; Why not use 4 of those? And there's clever image processing tech which avoids repeating the same background pixels which never change and just looks st the bits that have.
Time to do some research, sissif. I put it to you that you're reinventing the square wheel. IIRC that was superseded eventually by a round one.
Hello Business_kid, thank you the reply and for the welcome.
The project is an indoor mobile robot, roaming through all the shelves of a store and taking detailed pictures every 20 cm, 4 cameras to be sure to get the whole shelf vertically, similar to the walmart robot if you've ever heard about it, the processing part is done by a separate computer after receiving all the data by the robot. The whole process is autonomous.
It's my fault for not giving better details, of course there will be some overlapping between the cameras but that's wanted for stitching them, and the robot is moving so the background is never the same
I guess i should also have defined "cheap" for this project, the suggestions i'm looking for are embedded computers under 500$ with USB3 + PCIe slot for Buses extensions, and ofc linux compatible.
I may be wrong in the requirement we need, knowing that the processing part is limited to converting 20 4k images/s, i assume that the CPU doesn't need to be cutting edge, all i care about is the bandwidth capability.
Hello Business_kid, thank you the reply and for the welcome.
The project is an indoor mobile robot, roaming through all the shelves of a store and taking detailed pictures every 20 cm, 4 cameras to be sure to get the whole shelf vertically, similar to the walmart robot if you've ever heard about it, the processing part is done by a separate computer after receiving all the data by the robot. The whole process is autonomous.
It's my fault for not giving better details, of course there will be some overlapping between the cameras but that's wanted for stitching them, and the robot is moving so the background is never the same
I guess i should also have defined "cheap" for this project, the suggestions i'm looking for are embedded computers under 500$ with USB3 + PCIe slot for Buses extensions, and ofc linux compatible.
I may be wrong in the requirement we need, knowing that the processing part is limited to converting 20 4k images/s, i assume that the CPU doesn't need to be cutting edge, all i care about is the bandwidth capability.
Amazon have it, you say. See if you can buy theirs. They have scale, volume, and the money to do it. They had their teams of hardware guys, software guys, network guys and it was all linked in to stock control, door security. That's a 3 year project and you're into ≅€100 Million designing robots outfitting all their shops to the same (New)spec, installation, training, with an annual maintenance cost. But Amazon did the sums, and see long term profit in it.
Or, Hire (or be)a project manager, who will hire hardware and software engineers who will rip you off more than splitting with any gold-digging ex-wife ever will.
Just stop, think, & check bandwiths, & scale. Imagine it
Cameras --> ??? --> pcie --> ???? --> ???, etc. You can't do that without a fancy rail interface, a robot better than a Meccanno toy. And you only want one? You'll never manage 240MB/s over any network I know
I'm gonna lurk on this for a while. I know there's other (probably better) engineers who are doing that. They had the sense to ignore this thread.
Even though the calculation is correct, I'm not sure if Mbps are counted once per second, and I think staggering the cameras outputs would be to your advantage.
Even better: do the cameras have a cache, so you could e.g. transmit the data every 4s (1 camera per second)?
(edit: no, that wouldn't reduce the amount of data transmitted.)
It does seem like a common problem for surveillance cameras, so you should probably see how this has been solved elsewhere.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.