Build with Tensorflow (ConvNets) and Node.js ๐ช๐ช๐ช
E.x: Amazon Captcha (click image below to watch demo video)
$ pip install -r requirements.txt
$ npm i
- Copy captcha images to
data/captcha
folder
|_data
|_captcha
|_ xss7.jpg
|_ tvu4.jpg
IMPORTANT: Note each image file is named with it's own solution.
That means that if an image is named A1bD3.jpg
, it corresponds to a captcha's whose solution is A1bD3
Run src/create_train_data.py
will save your train data as data/captcha.npz
compressed file.
$ python src/create_train_data.py
The compressed data/captcha.npz
includes:
- Train Data (
x_train
,y_train
):80%
- Test Data (
x_test
,y_test
):20%
Run src/train.py
to train the model with your own dataset.
$ python src/train.py
Take โ or ๐ต while waiting!
Now, enjoy your war ๐ฅ๐ฅ๐ฅ ๐๐๐
$ python src/predict --fname YOUR_IMAGE_PATH_or_URL
Sample output:
loading image: data/captcha/captcha_2.jpg
load captcha classifier
predict for 1 char: `X` with probability: 99.956%
predict for 2 char: `I` with probability: 99.909%
predict for 3 char: `N` with probability: 99.556%
predict for 4 char: `C` with probability: 99.853%
predict for 5 char: `H` with probability: 99.949%
predict for 6 char: `A` with probability: 98.889%
Captcha: `XINCHA` with confident: `99.686%`
XINCHA
const captchaPredict = require('src/predict')
captchaPredict(YOUR_IMAGE_PATH_or_URL)
.then(console.log)
.catch(console.error)
Sample output:
[
"loading image: data/captcha/captcha_2.jpg",
"load captcha classifier",
"predict for 1 char: `X` with probability: 99.956%",
"predict for 2 char: `I` with probability: 99.909%",
"predict for 3 char: `N` with probability: 99.556%",
"predict for 4 char: `C` with probability: 99.853%",
"predict for 5 char: `H` with probability: 99.949%",
"predict for 6 char: `A` with probability: 98.889%",
"Captcha: `XINCHA` with confident: `99.686%`",
"XINCHA"
]