FPGA kits for camera vision

Not happy with your Pi+webcam or Pi+Camera. Hardcoding GPUs not doing it? Heard about FPGAs and want to try building your own vision hardware? I looked around on the web for an overview of FPGA boards for computer vision but found nothing summarizing them all.

I looked around on the web for an overview of FPGA boards for computer vision but found nothing summarizing them all. There are some out there. But with the plethora of SEO sites selling Pis+cameras the kits are a bit lost. Especially if you're on a tighter budget. So here’s a start at an overview, I hope others can add to it. By the way, if you want to know why FPGAs in vision projects are relevant try this article from 2005: http://www.wjamesmaclean.net/9501292851/cvpr05-ecv-MacLean-eval.pdf

Disclaimer: I haven’t bought most of these kits and this article is not a review. It is supposed to provide a list for you to google and choose your preferred “review” or “critic”.


The Hobbyist End

So if you’re a hobbyist (or starting on a small budget) you might pop over to Adafruit: https://www.adafruit.com/products/451

The DE0-Nano - Altera Cyclone IV FPGA starter board is available there for around $100. There is documentation to blink LEDs and all the standard stuff. The video suggests that a 5MP CMOS camera is available, but seems (as of writing) not to be available from Adafruit. The camera can be got directly from Terasic and seems to cost around $80: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=68&No=281&PartNo=1

As I said I haven’t ordered all of these and it worries me a bit whether it will directly work with little or no software. But to learn about FPGAs it’s not bad.

Adafruit also stocks the Mojo FPGA board: https://www.adafruit.com/products/1553 . The Mojo FPGA Development Board (Spartan 6 XC6SLX9 FPGA) is sold there for $80. Again Adafruit doesn’t seem to trust itself with a vision example but a tutorial can be found here: https://embeddedmicro.com/tutorials/lucid/camera-tutorial . You’re going to need more hardware for that (RAM $25 and a camera board, $25):  https://embeddedmicro.com/products/sdram-shield.htmlhttps://embeddedmicro.com/products/camera-shield.html

Interesting is the quote on the tutorial page: “Omnivision, like most camera manufactures, keeps tight reigns on their datasheets (I really don't know why). This means we can't directly post them, but we will be posting some example initializations for getting the camera to send out data in various resolutions and frames rates. If you want to dig into the datasheet yourself, contact Omnivision “. This camera sensor manufacturer problem is widespread and getting documentation on the register layouts is near to impossible in the hobbyist area.

Seeedstudio want to sell you a Papilio: https://www.seeedstudio.com/Papilio-DUO-2MB-p-2329.html, for $124.99 (a Spartan 6 LX9 FPGA). Unfortunately to date I haven’t found a camera module for it. If anybody knows of one, please comment here. I’ve listed it, because I can’t believe there isn’t one :-)


B2B area

So that was it for the “cheaper” hobby area. If you go up in the price range you will also have problems buying the boards as a hobbyist because we move from the B2C to B2B area (with the prices).

One of the cheaper ones is the MicroZed Embedded Vision Development Kit (Zynq 7020) that is priced at $549 (https://www.xilinx.com/products/boards-and-kits/1-5okkqv.html). The FPGA development board seems to be very powerful (I have actually tried this one out). I can also recommend the Adam Taylor blog to help you get started here: http://adiuvoengineering.com/?page_id=285 . Issues 114 to 127 are relevant here. It also shows you the complexity that is needed to build a vision system.

After that my researches drew a blank for the kits under $1000. Above this sum there are a few high-end specialties. But unless you are a medium to large business with your own R&D department they become perhaps too “professional”. I’ll list a couple I’ve found:

Xilinx PicoZed Embedded Vision Kit (Zynq 7030), €1500 (http://picozed.org/product/picozed-embedded-vision-kit)

Critical Link offers a Vision Development Kit based on a Xilinx Spartan 6 FPGA and a TI OMAP-L138 dual core processor that sells for $995 (http://www.criticallink.com/product/vision-dev-kit/).

There are more above this price end but I’ll just stop here with the list.



By the way, it is not as easy as one thinks to build these development kits for the raw sensor. If you are of a different opinion and want a challenge there is the Parallella competition with a bounty of $4000 for the first open source solution for a MIPI camera module working on the Parallella board:


Otherwise if you want a much more comfortable development system the National Instruments Labview setup is also available for you:


One other option is the new Basler development kit (http://www.baslerweb.com/en/products/embedded-vision-portfolio/powerpacks-embedded-vision). Instead of plugging in a raw sensor and having to do all the debayering, denoising and stuff like that (see the Adam Taylor Blog above for more infos here), with the Basler kit you get a full working camera + image pipeline which feeds its input directly into FPGA from the Avnet MicroZed board. Then you can ignore the pipeline stuff and just concentrate on your own business logic – and you have more space on the small Zynq for it. When it’s available it probably isn’t the cheapest but also not the priciest one on the market.

Anyhow have fun and please comment or add kits to the list here (btw, you need to log in to comment).


Tinkerberg report abuse
Hi, I love the BASYS 3 board for development (http://store.digilentinc.com/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/). An idea whether I can use it for trying out vision stuff. The others seem too expensive. It can’t be too difficult soldering an Omnivision sensor (pi camera) onto it?” Regards.
edhak report abuse
Theoretically you could. But you would really have to know what you are doing in an embedded integration way. Although cameras are listed as MIPI or CSI2 compatible this refers to only a part of the complete protocol. Also watch out the first pi camera was CSI1 and not CSI2. If you wanted to connect it onto the BASYS board you would have to do a bit of soldering. The connectors on the board are not ideal for camera data rates. But your main problem is collecting the data in the FPGA and passing on to the processor in a way you can then use it (probably RGBA raw data form). If you look at one of the development kits which does this and the code behind it will give you an idea of the complexity. Definitely not one for beginners to sensor technology.

Want to read on?

Find other interesting ... Show more