Compare commits

...

3 Commits

Author SHA1 Message Date
b7894787ca Reduce tensorflow verbosity 2022-06-16 09:40:30 +02:00
a8636822c9 make matplotlib an optional requirement 2022-05-16 08:43:40 +02:00
18870a3786 update version & requirements 2022-05-11 17:34:44 +02:00
5 changed files with 14 additions and 7 deletions

View File

@ -1,3 +1 @@
tensorflow
numpy
matplotlib

2
requirements/plt.txt Normal file
View File

@ -0,0 +1,2 @@
-r common.txt
matplotlib

View File

@ -1,6 +1,6 @@
[metadata]
name = ccaptchas
version = 0.0.1
version = 0.1.2
author = Daniil Fajnberg
author_email = mail@daniil.fajnberg.de
description = Character CAPTCHA Solver
@ -17,14 +17,15 @@ classifiers =
package_dir =
= src
packages = find:
python_requires = >=3
python_requires = >=3.9
install_requires =
numpy
matplotlib
[options.extras_require]
dev =
coverage
plt =
matplotlib
[options.packages.find]
where = src

View File

@ -1,3 +1,5 @@
import os
import warnings
from argparse import ArgumentParser
from pathlib import Path
from typing import Any, Sequence
@ -156,4 +158,8 @@ def main() -> None:
if __name__ == '__main__':
# Shut up Tensorflow:
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# Shut up numpy:
warnings.filterwarnings('ignore', 'elementwise comparison failed', FutureWarning, module='numpy')
main()

View File

@ -11,7 +11,6 @@ from keras.api._v2.keras.backend import ctc_decode
from .config import CONFIG
from .preprocess import process_image, decode_label, find_image_files, get_lookup_table
from .types import PathT, ImgT, Array
from .visualize import plot_images
def process_predictions(predictions: tf.Tensor) -> tf.Tensor:
@ -53,7 +52,7 @@ def load_inference_model(model_dir: PathT) -> tuple[Model, StringLookup]:
def predict_and_decode(images: Sequence[ImgT], model: Model, backward_lookup: StringLookup) -> tuple[Array, list[str]]:
dataset = np.array([process_image(img) for img in images])
encoded_labels = process_predictions(model.predict(dataset))
encoded_labels = process_predictions(model.predict(dataset, verbose=0))
return dataset, [decode_label(label, backward_lookup) for label in encoded_labels]
@ -61,6 +60,7 @@ def load_and_infer(images: Sequence[ImgT], model_dir: PathT, plot_results: bool
model, backward_lookup = load_inference_model(model_dir)
images, labels = predict_and_decode(images, model, backward_lookup)
if plot_results:
from .visualize import plot_images
per_plot = 24
for i in range(0, len(images), per_plot):
plot_images(images[i:(i + per_plot)], labels=labels[i:(i + per_plot)])