Picking out 2d barcodes from camera feeds?

I’d like to point off the shelf IP cameras at some 2d barcodes and have software read and report the codes found, as well as their relative positions (x, y coordinates). All this to be read into Ignition or a PLC.

I’m sure I could do it with with Cognex cameras but they are very expensive and I’d like to have all the smarts in one place versus having to program a bunch of cameras. I’m thinking there must be some software out there that tunes into the camera feeds and provides similar tools to what I’ve used in the past w/ Cognex products.

Has anybody ever worked a problem like this?

I’d start with OpenCV, but I may be a bit biased. (:

My Image Streamer module will load OpenCV into Ignition for use from jython. Its QRCodeDetector class shows up in the list loaded by Ignition v8.1 in an Ubuntu 20.04 server with Ubuntu’s libopencv4.2-java package installed.

I don’t offer any access to the images read from IP camera devices. I guess I should add that to my to-do list. (:

This might be just what I’m looking for. Thanks!

@cody.abbott I’d be interested in how this works out for you. I did a little testing with this using a Basler camera (images only) and just manually feeding into some barcode capture tools. Issue I ran into was motion blur vs exposure time vs enough light. But we were testing on a moving conveyor belt with barcodes that are almost never facing directly at the camera, so these might not be big issues for your setup.

We ended up going with the Cognex scanners (pretty impressed with the scan rates - 10 scans per second and definitely capable of faster rates in more consistent processes - along with off angle orientations that they can pick up as the barcodes are rarely facing the camera). The liquid lens helps a lot with range/rate of focus too. I’ll add that once you have the first Cognex camera setup, you can just copy the config between the cameras.

Yeah for sure, packaged machine vision setups like Cognex are pretty user friendly, even for block heads like me! For this application I’m aiming to have some TrendNET security cameras identify WIP bins on the shop floor. I could have some 2d barcodes about a foot wide on them, and speed of detection isn’t an issue here. I might need a dozen cameras or more to look at all the spots they could be in, so it probably is only feasible w/ cheap hardware.