I\'ve searched around on the net, as I\'m a bit of a n00b when it comes to OCR, and I\'m actually not sure where a good starting point would be.
I\'d like to build a
1) You could also check the free, but very capable Tesseract OCR engine. It is written in C++, but you could probably use C# to easily interface to it.
2) If you would like to roll your own with image processing, you could look at using the EmguCV library, which is the .NET wrapper for OpenCV.
There was a recent post on the opencv-tag, which was trying to solve a very similar problem to yours that involved detecting marks on a lotto card.
If all you're doing is looking for X's in boxes, then you could print the form in light blue and ask people to mark the boxes with a black ink pen.
You just scan the image and look for the black X pixels. They should be relatively easy to find, compared to the light blue form. Particular x, y, coordinates on the scanned image would correspond with the answer and product type, respectively.
What you need is Optical Mark Recognition (OMR). If you are planning a commercial software, have a look at ABBYY FlexiCapture Engine, it's an SDK for integrating data and document capture technologies in server, desktop and mobile applications. It's not free, but when it comes to business - it can add a serious value to your product.
You could also use a cloud service - a website that let you upload an image and send you back an OCR'ed data. Try www.ocrsdk.com, it is a cloud based OCR SDK recently launched by ABBYY. It's now in beta so it's completely free to use. It requires for the end user device to have an internet connection, but it's completely indepent from your programming language choice and user's device resources. There are both .NET and Java code samples avalaibe at github.
Disclamer: i work @ ABBYY.
You can try and use the Office MODI library.
Other options are