Untitled
unknown
plain_text
2 years ago
1.7 kB
4
Indexable
import cv2
import numpy as np
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.inception_v3 import InceptionV3, preprocess_input, decode_predictions
# Load the pre-trained InceptionV3 model
model = InceptionV3(weights='imagenet')
def preprocess_image(img_path):
# Load and preprocess the image
img = image.load_img(img_path, target_size=(299, 299))
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)
img_array = preprocess_input(img_array)
return img_array
def predict_invoice(img_path):
# Preprocess the image
img_array = preprocess_image(img_path)
#print("Image Array : ",img_array)
# Make predictions
predictions = model.predict(img_array)
#print("Predictions : ",predictions)
# Decode and print the top-3 predicted classes
decoded_predictions = decode_predictions(predictions, top=3)[0]
print("Decoded Predictions:")
for i, (imagenet_id, label, score) in enumerate(decoded_predictions):
print(f"{i + 1}: {label} ({score:.2f})")
# Check if the top prediction is related to an invoice
invoice_keywords = ["invoice", "receipt", "bill"]
for (_, label, _) in decoded_predictions:
if any(keyword in label.lower() for keyword in invoice_keywords):
return True
return False
# Test the function with an image
img_path = "/Analytics/venv/Jup/CAPE_Case_Management_PDF_Invoicing/Data/images/Amazon_Web_Services_1001319invoice1411607217.pdf_page_1.png"
is_invoice = predict_invoice(img_path)
if is_invoice:
print("The image is likely an invoice.")
else:
print("The image is not recognized as an invoice.")
Editor is loading...
Leave a Comment