Ich arbeite daran, Daten (wie CNIC-Nummer, Name, Geschlecht usw.) aus einem Bild zu extrahieren. Ich verwende EasyOCR zusammen mit OpenCV und anderen Python-Bibliotheken (wie Matplotlib, Scipy usw.), um bestimmte Details aus einem Bild eines CNIC (Computerized National Identity Card) zu extrahieren. Bisher habe ich erfolgreich mehrere Felder wie den Namen, den Namen des Vaters, das Geburtsdatum, das Ausstellungsdatum und das Ablaufdatum extrahiert, aber ich möchte auch die CNIC-Nummer und das Geschlecht extrahieren. Problem:
Die OCR kann Name, Vatername, Geburtsdatum usw. extrahieren, aber jetzt möchte ich auch die Felder CNIC-Nummer und Geschlecht extrahieren.
Die CNIC-Nummer und das Geschlecht werden falsch extrahiert wie CNIC-Nummer: Hunuauce und
GENDER: Geschlecht?
Ich verwende vordefinierte Begrenzungsrahmen, um zu versuchen, die relevanten Felder für CNIC und Geschlecht zu finden.
Anpassungen der Begrenzungsrahmen: Sind die vordefinierten Begrenzungsrahmen für die CNIC-Nummer und das Geschlecht korrekt oder sollten sie angepasst werden, um diese Felder besser zu erfassen?
Ich würde mich über jede Hilfe oder Hilfe freuen Vorschläge zur Verbesserung der Genauigkeit und Zuverlässigkeit der CNIC-Extraktion Zahlen und Geschlecht mithilfe von OCR.
Hier ist der Code, den ich verwende:
Ich arbeite daran, Daten (wie CNIC-Nummer, Name, Geschlecht usw.) aus einem Bild zu extrahieren. Ich verwende EasyOCR zusammen mit OpenCV und anderen Python-Bibliotheken (wie Matplotlib, Scipy usw.), um bestimmte Details aus einem Bild eines CNIC (Computerized National Identity Card) zu extrahieren. Bisher habe ich erfolgreich mehrere Felder wie den Namen, den Namen des Vaters, das Geburtsdatum, das Ausstellungsdatum und das Ablaufdatum extrahiert, aber ich möchte auch die CNIC-Nummer und das Geschlecht extrahieren. [b]Problem[/b]: Die OCR kann Name, Vatername, Geburtsdatum usw. extrahieren, aber jetzt möchte ich auch die Felder CNIC-Nummer und Geschlecht extrahieren. Die CNIC-Nummer und das Geschlecht werden falsch extrahiert wie CNIC-Nummer: Hunuauce und GENDER: Geschlecht? Ich verwende vordefinierte Begrenzungsrahmen, um zu versuchen, die relevanten Felder für CNIC und Geschlecht zu finden. Anpassungen der Begrenzungsrahmen: Sind die vordefinierten Begrenzungsrahmen für die CNIC-Nummer und das Geschlecht korrekt oder sollten sie angepasst werden, um diese Felder besser zu erfassen? Ich würde mich über jede Hilfe oder Hilfe freuen Vorschläge zur Verbesserung der Genauigkeit und Zuverlässigkeit der CNIC-Extraktion Zahlen und Geschlecht mithilfe von OCR. Hier ist der Code, den ich verwende: [code]import matplotlib.pyplot as plt import seaborn as sns import pandas as pd import cv2 from PIL import Image import easyocr import numpy as np import math import re from scipy.spatial import distance
# %% """ ## Reading a sample Image and applying OCR """
# %% # 9 image_path = "/content/drive/MyDrive/CV/T3.jpeg" im = Image.open(image_path) image = cv2.imread(image_path) result = reader.readtext(image_path) print('Result',result)
# %% dpi = im.info.get('dpi') print(f"The DPI of Image is : {dpi}")
# %% shape = image.shape[:-1] print(f"The Shape of Image is :{shape}")
# %% plt.imshow(image)
# %% """ ## Showing the marked bounding boxes """
# %% bbs = [] values = []
for (bbox, text, prob) in result: # display the OCR'd text and associated probability # print("[INFO] {:.4f}: {}".format(prob, text)) values.append(text)
# cleanup the text and draw the box surrounding the text along # with the OCR'd text itself cv2.rectangle(image, tl, br, (0, 255, 0), 2) cv2.putText(image, text, (tl[0], tl[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2) # show the output image #cv2.imshow("Image", image) #cv2.waitKey(0)
# %% def get_value(key,normalize_output): distances = {} for bbx,text in normalize_output: distances[text] = calculate_distance(key,bbx) return distances
# %% dict_data = {} output_dict = {} output_dict['Name'] = name_value output_dict['Father Name'] = father_value output_dict['Date of Birth'] = dob_value output_dict['Date of Issue'] = doi_value output_dict['Date of Expiry'] = doe_value #output_dict['CNIC Number'] = cnic_value # New entry for CNIC number #output_dict['GENDER'] = gender_value output_dict['Country of Stay'] = country_of_stay output_dict['CNIC Number'] = cnic_value output_dict['GENDER'] = gender_value
# %% for key,value in output_dict.items(): output_dict = get_value(value,normalize_output) answer = list(min(output_dict.items(), key=lambda x: x[1]))[0] dict_data[key] = answer
# %% b """ ## Output Dictionary """
# %% print('datadd',dict_data)
# %% # %% """ ## Writing the Output Dictionary to a Text File """
# Define the file path where you want to save the text file output_file_path = "/content/drive/MyDrive/output.txt"
# Open the file in write mode with open(output_file_path, "w") as file: # Loop through the dictionary and write each key-value pair to the file for key, value in dict_data.items(): file.write(f"{key}: {value}\n")
print(f"Output successfully` written to {output_file_path}")` [/code]
Ich arbeite daran, Ausweisdaten (wie Ausweisnummer, Name, Geschlecht usw.) aus einem Bild zu extrahieren. Ich verwende EasyOCR zusammen mit OpenCV und anderen Python-Bibliotheken (wie Matplotlib,...
Mein Gmail hat das Limit von 15 GB erreicht, daher habe ich alte E-Mails mit Thunderbird archiviert und möchte alle E-Mails löschen, die älter als zwei Wochen sind. Die Verwendung der GUI ist...
Wie extrahiere ich das letzte Wort aus einem SQL-Tabellennamen mithilfe von Regex in PHP?
Ich habe eine Liste von Tabellennamen in meiner Datenbank und muss das letzte Wort oder extrahieren...
1] Originalseite des DOC1 enthält 4 Tabellen
1] Ausgabe .html Seite von doc1 nicht richtig erkennen, und manchmal extrahieren Text aus der Tabelle als einfacher Text