skotz / cbl-js

JavaScript CAPTCHA solving library
MIT License
155 stars 47 forks source link

Need help with captcha #63

Open sk- opened 3 years ago

sk- commented 3 years ago

Please provide at least 10 example images of the CAPTCHA system: c1 c2 c3 c4 c5 c6 c7 c8 c9 c10

Please provide the full JavaScript source to what you've already tried:

var cbl = new CBL({
    model_string: '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',
    preprocess: function(img) {
    },
    character_set: "0123456789abcdefghijklmnopqrstuvwxyz",
    exact_characters: 5,
    pattern_width: 24,
    pattern_height: 24,
    blob_min_pixels: 1,
    blob_max_pixels: 10000,
    allow_console_log: true,
    blob_console_debug: true,
});  

I'm getting an error due to exact_characters it fails while trying to access orig_width of one of the non-existent blobs.

skotz commented 3 years ago

First of all, thanks for providing images and your existing code.

Looks like something is wrong with your model.

image

Which is probably due to the missing preprocessing. Since there's a border I'd at least crop that out.

img.cropRelative(1, 1, 1, 1);

Also, this image is interesting since it has a transparent black background, meaning technically the entire image is the same color. The characters are black and the background is transparent black. To get this to work I had to add a new method to the library. You'll need to download the latest version to use this.

img.removeTransparency();

image

So your training script would be something like this.

var cbl = new CBL({
    preprocess: function(img) {
        img.debugImage("debugPreprocessed");
        img.cropRelative(1, 1, 1, 1);
        img.debugImage("debugPreprocessed");
        img.removeTransparency();
        img.debugImage("debugPreprocessed");
        img.colorRegions(1, true);
        img.debugImage("debugPreprocessed");
    },
    character_set: "0123456789abcdefghijklmnopqrstuvwxyz",
    exact_characters: 5,
    pattern_width: 24,
    pattern_height: 24,
    blob_min_pixels: 1,
    blob_max_pixels: 10000,
    allow_console_log: true,
    blob_console_debug: true,
    blob_debug: "debugSegmented"
});

And then your solving script would use the same preprocess steps and have the trained model_string like you did in your example.