# No one has made a program to solve these yet?

1. Jul 21, 2013

### Jamin2112

I'm going to try and be of aid to spammers and hackers by making a program that solves these:

Can't be too hard. Here's a procedure I'm going to implement:

Given an m x n array of pixels known to contain a letter among a bunch of noise, convert the pixels to their RGB values, give the array a binary mask, then calculate the correlation coefficient between it and each of the m x n binary arrays that would represent images of upper and lower case letters. The one that yields the greatest correlation coefficient will be assumed to be the letter.

Make sense?

2. Jul 21, 2013

### Jamin2112

For instance, I look at the correlation coefficient between the values of binary-masked arrays representing

and

http://www.ourdesigns.com/sites/odi/images/fullsize/REX00LB1S.jpg

after resizing, of course.

3. Jul 21, 2013

### DavidSnider

It's hard. That's why spammers just use man-in-the-middle attacks to solve these.
(I.E. they set up a website where people have to solve these to download pirated movies or something.)

4. Jul 21, 2013

### Staff: Mentor

A priori it is easy to solve captchas - for humans. We are are hard-wired (by evolution of predator avoidance strategies) to see things that are not the way they are normally presented.

As it stands now, captchas are not even remotely simple to solve by any known algorithms. It is a very hard problem. Please try. Maybe you can find something in graph theory that does it.

5. Jul 21, 2013

### Floid

How do you know the spacing, size, and location of the letters so that you can pick out mxn arrays that contain only 1 letter and not multiple letters, no letters, and partial letters? I think identifying a letter out of an image that is known to only contain 1 letter and noise is easier than taking an image that contains an unknown number of letters at unknown locations and in the presence of noise and intentional size and alignment distortions dividing that image up into groups of single letters.

Last edited: Jul 21, 2013
6. Jul 21, 2013

### Hepth

I've also worked on one myself using mathematica. Its not easy. REALLY. Some use neural networks to learn characters for the OCR.

Thats one of the first problems. Theres many ways. I wrote something that erodes the image to find spaces, looks at average distances between spaces, disregards those beyond some standard deviation from the mean, and compute the average character width, and try to split it up.

But then if the image is skewed or tilted, yoou have to fix that first.

7. Jul 21, 2013

### Bandarigoda

If someone could make one, i guess its AI

8. Jul 22, 2013

### ektrules

To do that you'd first have to identify the sub-matrices that may contain letters, which may not be easy. Assuming that you could seperate letters with high accuracy, I think you're solution would perform perform poorly on most captchas. Other problems are that the letters are usually skewed and put very close together where a sub-matrix of a letter may contain parts of other letters. You need a more robust representation of the images that is invariant to transformations such as resizing and skewing.

This is a computer vision problem, and I think the current best performing methods are convolutional networks with other tricks like dropout, so I'd probably try train those for this problem.

It's a pretty hard problem. I have trouble deciphering captchas myself.

9. Jul 27, 2013

### Borg

Thanks for the epiphany. I never heard of this but it makes perfect sense. Why try to solve something difficult when you can let someone else unknowingly solve it for you?