Simple captcha solver using TensorFlow.
uses a combination of CNN and RNN models, and utilizes CTC loss to deal with unsegmented sequence data.
captcha2str.py- Main logic of CaptchaSolver. Selectively uses TensorFlow/TFLite depending on system
model_test.py- Driver code for testing Keras models(
.h5,.tflite) stored in local machine.
- Driver code for testing Keras models(
renamer.py- A tool for quickly labeling sample CAPTCHA images to create training datasets.
webserver/server.py- Implementation of test API of CaptchaSolver
Tensorflow is a framework that is too heavy to run on low-power devices like Raspberry Pi, so if you use CaptchaSolver just for inference, you can use Tenserflow Lite (TFLite).
To apply TFLite, install TFLite using the command pip install tflite_runtime, and then save the .tflite file converted from the .h5 to the same path as the captcha2str.py.
TensorFlow Lite builtin operator library only supports a limited number of TensorFlow operators. Since CaptchaSolver also uses operators that are not builtin operators, you will need to enable the usage of Custom OP. (see https://www.tensorflow.org/lite/guide/ops_select)
Thanks to @PINTO0309, you can find pre-built python wheel with Custom OP enabled for arm devices HERE.
Rather than installing official tflite_runtime, install the proper .whl with command pip install ${your_whl_file_name}
| Captcha Solver | Captcha Solver API |
|---|---|

