Quality Assurance Through FPGA

[Claire Chen] and [Mark Zhao], students in [Bruce Land]’s ECE5760 class at Cornell, created a project aimed at the manufacturing sector: quality-checking manufactured products automatically by visually scanning a bunch of them and processing the pixels one at a time. Ordinarily, the time when the widget comes off the line is when you have to bring in actual people to inspect. This project uses morphological image processing to like dilation and erosion to look for flaws.

[Claire] and [Mark] created a simulated manufacturing line with a servo-driven belt that brings a series of Spree candies into the range of a camera, which scans them. The SoC with a Cyclone V FPGA and ARM Cortex-9 then processes the raw images to establish the object’s color, while running it through a couple of algorithms to look for defects. The FPGA tracks how many Sprees that have passed by as well as their color, maintaining a 99% success rate with a rate of 5-10 frames per second. The FPGA also looks at each blob of color as a collection of pixels, establishing connectivity to help to distinguish multiple Sprees touching each other.

Also be sure to check out [Claire] and [Mark]’s bike sonar project from a previous semester.

13 thoughts on “Quality Assurance Through FPGA

  1. 5-10FPS is pretty slow. I once wrote a frame differencer in Python with OpenCV and the outdated GTX 570 in that lab machine easily did well over 60FPS at 1080p. Probably not surprising when GPUs are designed for stuff like that.

    1. I agree. I’m pretty sure a Pi can do this too. In realtime at more fps. And that’d probably be easier to develop/test, etc. Anyway, sounds like a nice project to do with an FPGA if you want to.

    2. You can’t critique a work without understanding the algorithm complexity. A mid-gpu plugged into a full computer isn’t a legitimate comparison to an embedded platform.

    1. Making comparisons with a student project from people learning the ropes to a professionally engineered commercial solution is pretty poor form. Yes, it can be done better and faster, but you’re not going to *have* those professional engineers if they’re criticised for not immediately being experts.

      Hell, why even have this website. Just buy commercial products for everything!

      1. My comment wasn’t about being done professionally or having better performance. It was about having this done already a long time ago. Engineering projects in the academy should be all about novelty. if it was done before with better performance, there is nothing novel about it.
        As for the similarity of the board or using professional products, what is the big difference? FPGA is FPGA. both projects were done on pretty similar SoCs. These guys used Cyclone V and the Demo used Zynq.

  2. That FPGA board should be flying. Probably implemented internet/manual/textbook examples together. That’s easy path, to get faster, you need actually do something yourself. 5-10FPS way too slow, for that board.

Leave a Reply to JohnnyCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.