generated from daniil-berg/boilerplate-py
Compare commits
3 Commits
7c9f97f21b
...
master
Author | SHA1 | Date | |
---|---|---|---|
b7894787ca | |||
a8636822c9 | |||
18870a3786 |
@ -1,3 +1 @@
|
|||||||
tensorflow
|
|
||||||
numpy
|
numpy
|
||||||
matplotlib
|
|
||||||
|
2
requirements/plt.txt
Normal file
2
requirements/plt.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
-r common.txt
|
||||||
|
matplotlib
|
@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = ccaptchas
|
name = ccaptchas
|
||||||
version = 0.0.1
|
version = 0.1.2
|
||||||
author = Daniil Fajnberg
|
author = Daniil Fajnberg
|
||||||
author_email = mail@daniil.fajnberg.de
|
author_email = mail@daniil.fajnberg.de
|
||||||
description = Character CAPTCHA Solver
|
description = Character CAPTCHA Solver
|
||||||
@ -17,14 +17,15 @@ classifiers =
|
|||||||
package_dir =
|
package_dir =
|
||||||
= src
|
= src
|
||||||
packages = find:
|
packages = find:
|
||||||
python_requires = >=3
|
python_requires = >=3.9
|
||||||
install_requires =
|
install_requires =
|
||||||
numpy
|
numpy
|
||||||
matplotlib
|
|
||||||
|
|
||||||
[options.extras_require]
|
[options.extras_require]
|
||||||
dev =
|
dev =
|
||||||
coverage
|
coverage
|
||||||
|
plt =
|
||||||
|
matplotlib
|
||||||
|
|
||||||
[options.packages.find]
|
[options.packages.find]
|
||||||
where = src
|
where = src
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import os
|
||||||
|
import warnings
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Sequence
|
from typing import Any, Sequence
|
||||||
@ -156,4 +158,8 @@ def main() -> None:
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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()
|
main()
|
||||||
|
@ -11,7 +11,6 @@ from keras.api._v2.keras.backend import ctc_decode
|
|||||||
from .config import CONFIG
|
from .config import CONFIG
|
||||||
from .preprocess import process_image, decode_label, find_image_files, get_lookup_table
|
from .preprocess import process_image, decode_label, find_image_files, get_lookup_table
|
||||||
from .types import PathT, ImgT, Array
|
from .types import PathT, ImgT, Array
|
||||||
from .visualize import plot_images
|
|
||||||
|
|
||||||
|
|
||||||
def process_predictions(predictions: tf.Tensor) -> tf.Tensor:
|
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]]:
|
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])
|
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]
|
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)
|
model, backward_lookup = load_inference_model(model_dir)
|
||||||
images, labels = predict_and_decode(images, model, backward_lookup)
|
images, labels = predict_and_decode(images, model, backward_lookup)
|
||||||
if plot_results:
|
if plot_results:
|
||||||
|
from .visualize import plot_images
|
||||||
per_plot = 24
|
per_plot = 24
|
||||||
for i in range(0, len(images), per_plot):
|
for i in range(0, len(images), per_plot):
|
||||||
plot_images(images[i:(i + per_plot)], labels=labels[i:(i + per_plot)])
|
plot_images(images[i:(i + per_plot)], labels=labels[i:(i + per_plot)])
|
||||||
|
Reference in New Issue
Block a user