7

Do you know of any open source (open core) implementations of an OCR for FPGA either in C or in HDL? Where can I find them?

Thanks

The Byzantine
  • 619
  • 1
  • 6
  • 21
  • This looks to me like another take on your earlier question [Holistic Word Recognition algorithm in detail](http://stackoverflow.com/q/4503273/2509). If so you should probably have edited the earlier one rather than posting a separate question that is largely the same. If you feel that they really are different you might want to explain why. – dmckee --- ex-moderator kitten Dec 21 '10 at 20:32
  • OCR is not all about Holistic word recognition. There are numerous many ways to implement OCR. My first questions asks about the algorithmic steps for holistic recognition and if there have been some implementations already for HW. This post however, asks about any implementation for OCR in FPGA in general. – The Byzantine Dec 21 '10 at 21:47
  • 3
    I think your best bet is to first try to understand the algorithm you want to implement. Then, you need to build a prototype in software on your desktop computer. Only after all of that works, you should find an FPGA prototype board that you can use for accelerating that algorithm. Asking for a complete implementation that will fit your needs is a long shot in the dark. If you then have specific questions, people here will be more than willing to help. – Philippe Dec 22 '10 at 10:25
  • [An Efficient FPGA Implementation of Optical Character Recognition System for License Plate Recognition](http://scholar.uwindsor.ca/cgi/viewcontent.cgi?article=6833&context=etd) – zelusp Aug 08 '17 at 05:28

1 Answers1

4

As Philippe says above, you will need to find an algorithm and then port that to your FPGA.

I have never heard of an open source OCR engine for specialized hardware and I have been using OCR since 1997 when there were some European machines (CGK) with OCR in hardware. About that time they moved the OCR back into software.

You might find something here.

You also need to find an algorithm that suits the types of images you want to read. Some questions you need to ask :

  • Are you reading a fixed size font ?
  • Are you reading a fixed pitch or proportional font ?
  • Are you processing B/W or color images ?
  • What resolution or DPI images are you working with ?
  • Do you need to remove background noise or color or perform thresholding ?
  • Do the images need deskewing ?
  • How many characters do you need ? 0-9 only or the whole alphabet ?
  • How fast does it need to be ?
  • How accurate does it need to be ?
  • Is the text in the same place or randomly located ? If random, how do you find the text zones ?

If your needs are fairly simple then you may get away with some if the idea in the CodeProject link. Writing a good commercial OCR engine has taken many companies years of work and they are still fine tuning to improve accuracy vs speed.

Andrew Cash
  • 2,321
  • 1
  • 17
  • 11