IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Need more details
- What kind of barcode? (UPC, EAN, Code 39, Code 128, DataMatrix, etc)
- What is the barcode size?
- Is the barcode location consistent?
- Is the height of the barcode on the conveyor consistent?

Some initial thoughts:
- Definitely look at companies making dedicated barcode readers, such as [link|http://www.microscan.com|Microscan]
- Definitely find some local distributors (e.g. find out who in your area reps/distributes Microscan, Cognex/DVT, Banner, and such) - besides using their expertise (although remember they're still salesmen), it's common to get demonstrations and equipment on consignment.
- It's especially good if you can find some people with experience in high speed. My experiences has been with robot mounted cameras, where we would stop and take a picture; high speed has different challenges.
- If you're doing normal (1-D) barcodes or stacked 2-D barcodes (UPS style, not Datamatrix) in a relatively fixed location, consider using an industrial laser barcode reader - they are very reliable and have very good depth of field.
- If the barcode is going to be all over the place or you need to read Datamatrix or similar, you will have to use a CMOS or CCD camera (this includes dedicated barcode scanners using CMOS/CCD sensors).
- Cameras have limited depth of field compared to lasers, so if the height varies a lot you could have problems.
- If the barcode position can be anywhere in a large area, you will want a higher resolution camera and the software will be more difficult.
- Generally, true industrial cameras use CameraLink, Firewire, or Gigabit Ethernet. Smart cameras and barcode scanners typically use RS-232 and/or 100BaseT (Cognex is pricey, but does a nice job - their smart cameras use FTP, Telnet, and such). Megapixel Firewire and CameraLink cameras can be under $1000; CameraLink also needs a PCI/PCI-E board (under $500 IIRC).
- You will want an industrial camera - for example, you do want not smeared images, and you will probably want to be able to trigger the camera (a sensor on the conveyor triggers the camera when it's time to take a picture). For high speed, you will need a global shutter (not interlaced or rolling shutter).
- Lighting is critical. Plenty of light always helps (e.g. can use faster exposure), and a strobe might be a good idea (to freeze the image). Definitely talk to a few lighting companies, such as [link|http://www.nerlite.com/|Nerlite]
- You can put the whole system together (camera, interface board, lighting, software, etc). Smart cameras or barcode scanners are also worth considering - from my research, their software is easier to get started with. Barcode reading is very common; most smart cameras can do it, and most vision libraries (e.g. Matrox MIL, Halcon, Sherlock).
- [link|http://www.machinevisiononline.org/|Machine Vision Online] is a good place to look.

I'm currently looking into a challenging OCR problem - trying to read 600 micron high text on a existing system with very little space for the added equipment. With text that small, depth of field becomes a real concern.

--Tony
New Thanks - lot of good stuff to think about
The majority of what I need to track are printed pages.

They start as a stack of cut sheet paper with a preprinted
backgroup. The printer has multiple trays.

For example:

A typical production run will have a cover page pulled
from one bin, with name address, city, state, zip printed
on it, along with some personalized letter text.

The bottom 1/3 of the coversheet has a certificate with
a barcode (3 of 9) on it. We might be dealing with other
codes later.

Then, additional secondary pages are pulled. They contain up to
3 certificates, with 3 bar codes, spread throughout the page.

There is no external visibility during printing.

There are always the same number of pages - each print run
is segmented into pages since the folding machine needs to
know how many pieces go together.

So now we have a stack of pages that is fed into the folding
machine. We set the number of pages per group, and it feeds
them in. They go about 3 pages per second.

The machine folds them together and spits it out the other
side.


For a 3 page grouping, on the feed side:
Page 1 goes from feeder to pre-fold area. - Single bar code
Page 2 goes from feeder to pre-fold area. - 3 bar codes
Page 3 goes from feeder to pre-fold area. - 2 bar codes
Folder grabs 3 pages, folds, spits them
out the other side. - single bar code.

When pages are accumulating, there is about 1/4
second where they sit, waiting for the next page
to show up. But then the last page arrives, the
folder grabs them and pulls them through very
quickly.

On the other side, I have anywhere from 1/2 a second
any 2 seconds between pieces, but they fly by
about 3 feet per second. If we set an area to watch
of about 1 foot, then we have 1/3 of a second to grab
the image and pull the code.
\t
I'd like to correlate what comes in with what goes out,
making sure the correct number of pages comes through,
that only the cover bar code comes out, and possibly
triggering an equipment stop on a fault.

I would also need to pull the valid bar codes from a
database, but I doubt I would be doing this on a per
piece basis.

I'd most likely be front loading a job into memory and
doing QC by matching as they fly by.


Based on tech specs and lit (all bullshit until I
get equipment) a typicaly monochrome USB or firewire
cameras ($500 - $750) can feed from 20 - 50 pictures
a second to the computer.

So, even at the slow rate, if I have 2 foot page move
by at 3 feet per second, and I am looking at a 1
foot area, I should get several pictures of every
bar code on the page at least a few times.

Based on me reading the Linux firewire development
how-to, I should be able to setup a ring-buffer for
these images to arrive into, and I should be able to
loop around, grabbing the images, and then sending
them to a 3rd party software library which claims to
be able to parse out about 60 pages per second (of course,
they have their caveats).

I would get the returned codes, throw away dupes, do
a hashed memory lookup to validate, and react as necessary.

As a first step, I wouldn't mind merely writing the
discovered bar codes to a file for later processing.
New Sounds like you're on the right track
You can get somewhat faster relatively affordably - there's also a tradeoff between speed and resolution, but if 640x480 will work, the [link|http://www.ptgrey.com/products/dx/index.asp|Pt Grey Dragonfly Express] for example, maxes out at 200 frames/sec at 640x480 (real speed may be slower; it's a 1394b Firewire camera, and they spec a certain image format). IIRC, that model is around $1000.

Be prepared to do some experimenting, especially with lighting and software. One cheap light source is high frequency flourescent lights (something like 400Hz flicker instead of 60Hz).

There are commercial, relatively "plug and play" solutions for web inspection (offset printing); but I haven't heard of anything for what you describe.

In my experience, machine vision has been both very cool and very frustrating. It is very easy to spend a lot of time trying to tweak the system for best results.

In fact, I have one final suggestion - see if you can setup the vision software to do regression software. I mean something like this:
- get the camera running and take a whole bunch of pictures (at least 100) that you're happy with (e.g. good image quality), and record what the vision system should give you back.
- then write a program that will feed the images to your vision software, and record the results compared to what the results should be
- and every time you tweak the machine vision software, run the test case, and check if the results are better or worse.

I did something similar with my Cognex camera (to make sure the results were good on a variety of pictures, not just the one I used to adjust things).

Good luck,
--Tony
     Who here has industrial camera experience? - (crazy) - (6)
         Tony would be your best bet, I guess. -NT - (CRConrad)
         Need more details - (tonytib) - (2)
             Thanks - lot of good stuff to think about - (crazy) - (1)
                 Sounds like you're on the right track - (tonytib)
         You've got a local option - (bepatient) - (1)
             Distributor/Rep is best local option - (tonytib)

Powered by general relativity!
75 ms