Suitable processor for machine vision applications - Page 1
Forum section: electronics / general

author: rakeshm55
author_rank: Regular Contributor
timestamp: October 07, 2016, 10:48:56 am
content: Hi,I have a requirement wherein I need to1. capture video using two camera triggered simultaneously (camera have GbE interface) @30fps 1080p2. Carryout image processing on this frames using OpenCV libraries (Linux environment)3. View video on a monitor / HMI to calibrate camera focus4. HMI (Keyboard,mouse etc)What could be the way forward?? Since GbE raspberry Pi is out of the picture.... based on expertise some suggest to useKeystone or Xilinx Zynq.... but their cost seems to be exorbitant ......But I am in lookout for a low cost solution....What could be the way forward??Any suggestions welcome

author: nctnico
author_rank: Super Contributor
timestamp: October 07, 2016, 11:33:10 am
content: Maybe NXP's latest iMX SoCs could be up for the job but it depends highly on what you want to process and what kind of compression the cameras are using. Is it an option to connect the cameras directly to a SoC or do they need to be networked? Network traffic could affect memory throughput where having the cameras connected directly to the iMX could leverage internal bus structures. Either way count on a hefty amount of work.

author: bobaruni
author_rank: Regular Contributor
timestamp: October 07, 2016, 11:37:27 am
content: Cheapest and easiest would be to use an off the shelf x86 SBC or PC?Or are there some other requirements you have not mentioned such as low power consumption or size?And you must have a board with 2x GbE?You could probably use a switch to get 2x GbE as surely 30FPS at 1080p will not chew up all the bandwidth?Maybe look at some of the VIA epia motherboards.http://www.viatech.com/en/boards/mini-itx/If size and power consumption are an issue, perhaps look at Nvidia Jetsons TX1, but pretty expensive.http://www.nvidia.com/object/jetson-tx1-dev-kit.html

author: rakeshm55
author_rank: Regular Contributor
timestamp: October 07, 2016, 11:51:05 am
content: The scheme already implemented in a workstation...The requirement is to covert into an embedded platform ...I presume the idea is to bring in volumes....It is an option either I could bring GbE to SoC or use a switch.... Both Keystone and Zynq solutions did have 2 GbEs....Are you suggesting that I should proceed with off the shelf modules rather than laying out a Board.....

author: bobaruni
author_rank: Regular Contributor
timestamp: October 07, 2016, 12:46:54 pm
content: Quote from: rakeshm55 on October 07, 2016, 11:51:05 amDepends on your volume, in the short term and to reduce design cost and time, modules might be the way to go.I am trying to decide what to use with a similar project myself but instead I need 2x USB 3.0 for the cameras and I don't have enough time to design a board from scratch so will probably use a Intel compute stick or similar.If you have already done it on a workstation, you at least know roughly how much computational power is required and maybe look for a similarly or more powerful SOC that meets your requirements but this sort of thing will take a long time to design and develop an OS.

author: Marco
author_rank: Super Contributor
timestamp: October 07, 2016, 03:36:54 pm
content: The Allwinner A20 has gigabit ethernet, but performance on some boards seems a bit flaky so caveat emptor.

author: legacy
author_rank: Super Contributor
timestamp: October 07, 2016, 07:30:37 pm
content: Quote from: bobaruni on October 07, 2016, 11:37:27 amI have two of those boards, I confirm they are excellent!(used in a machine vision application, micro robotics)edit:ops, I had forgotten, in my case, I was in the needof supporting a pair ofXtion procameras

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: October 07, 2016, 07:48:47 pm
content: Quote from: rakeshm55 on October 07, 2016, 10:48:56 amYou probably also need to specify latency - you can throw cores/CPUs at the problem to achieve the framerate, s but latency may end up quite high.It also rather depends on what processing you want to do

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: October 07, 2016, 07:51:21 pm
content: You probably want to start by prototyping with a PC, to get a handle on what processing power is needed and experiment with algorithms etc.

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2016, 07:56:21 pm
content: Low cost so how many units are we talking about?If it is in the ten thousands or more contact broadcom, they have custom chips, custom prices.

author: bitslice
author_rank: Frequent Contributor
timestamp: October 07, 2016, 10:26:10 pm
content: I think there are OpenCV libs for XMOS?XMOS would easily handle a vision application

author: Rasz
author_rank: Super Contributor
timestamp: October 07, 2016, 10:41:34 pm
content: can you even sync gbe cameras in any meaningful way?openCV = high latency, usually after prototyping phase is over you reimplement your algo in low level language on platform of choice (fpga/dsp).

author: Marco
author_rank: Super Contributor
timestamp: October 07, 2016, 11:06:20 pm
content: Why would OpenCV add latency? Unless you have 1000+ Hz fps, timing jitter even on soft realtime linux isn't going to matter much.A given camera or driver might add extra latency, but that's on them.

author: Rasz
author_rank: Super Contributor
timestamp: October 08, 2016, 04:02:33 am
content: Quote from: Marco on October 07, 2016, 11:06:20 pmbecause its a piece of $^% middleware riddled with buffer copies on every step of the way, add popular with the kids python package on top (like scikit) and you end up with single digit frames per secondIts great for prototyping (like gnuradio), not for shipping products.