A simple CNN for n-class classification of document images.
Project description
basic-document-classifier
A simple CNN for n-class classification of document images.
It doesn't take colour into account (it transforms to grayscale). For small numbers of classes (2 to 4) this model can achieve > 90% accuracy with as little as 10 to 30 training images per class. Training data can be provided in any image format supported by PIL.
Installation
pip install document-classifier
or
poetry add document-classifier
Usage
from document_classifier import CNN
# Create a classification model for 3 document classes.
classifier = CNN(class_number=3)
# Train the model based on images stored on the file system.
training_metrics = classifier.train(
batch_size=8,
epochs=40,
train_data_path="./train_data",
test_data_path="./test_data"
)
# "./train_data" and "./test_data" have to contain a subfolder for
# each document class, e.g. "./train_data/letter" or "./train_data/report".
# View training metrics like the validation accuracy on the test data.
print(training_metrics.history["val_acc"])
# Save the trained model to the file system.
classifier.save(model_path="./my_model")
# Load the model from the file system.
classifier = CNN.load(model_path="./my_model")
# Predict the class of some document image stored in the file system.
prediction = classifier.predict(image="./my_image.jpg")
# The image parameter also taks binary image data as a bytes object.
The prediction result is a 2-tuple containing the document class label as a string and the confidence score as a float.
Changes
0.1.2
- Give every CNN instance its own isolated tensorflow graph and session
0.1.1
- Fix a bug that occured when using multiple model instances at the same time
TODO
The model architecture is fixed for now and geared towards smaller numbers of classes and training images. I'm working on automatic scaling for the CNN.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file document-classifier-0.1.2.tar.gz
.
File metadata
- Download URL: document-classifier-0.1.2.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.12 CPython/3.6.5 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ce1d133e0b5c08786d89d2faeace221f8e05c7daa7d60e7bf644695d8493fae |
|
MD5 | b1bb719103d0b67c48411f5a11c06251 |
|
BLAKE2b-256 | d568df9f7529410061fe15eb6e7150b6ab7c955366c7bbfcd070c9c06b5271c1 |
File details
Details for the file document_classifier-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: document_classifier-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.12 CPython/3.6.5 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c08159b70d52a697dfdf711d07dc1038d468662db42f5e4d8b204695fc4385d |
|
MD5 | 018d188321db3e05edda157ccdda97d4 |
|
BLAKE2b-256 | 0102987b9f5d70442023b41e7b931346baf024aeb904dfca4c21b1f88b8ca33f |