
Rozwiązywanie zadań OCR za pomocą AI
Odkryj, jak OCR wspierany przez AI zmienia wydobywanie danych, automatyzuje przetwarzanie dokumentów i zwiększa efektywność w branżach takich jak finanse, opiek...
Dowiedz się, jak zautomatyzować ekstrakcję danych z faktur za pomocą AI OCR i Pythona z API FlowHunt, umożliwiając szybkie, dokładne i skalowalne przetwarzanie dokumentów.
OCR wspierany przez sztuczną inteligencję wykracza poza możliwości tradycyjnego OCR, ponieważ wykorzystuje AI do rozumienia kontekstu, obsługi wielu typów układów oraz zapewniania wysokiej jakości, ustrukturyzowanej ekstrakcji nawet z najbardziej złożonych dokumentów. Podczas gdy tradycyjne OCR służy do odczytywania tekstu w stałych układach, AI OCR radzi sobie z wieloma rodzajami formatów i konfiguracji typowych dla faktur i dokumentów biznesowych.
Faktury muszą być przetwarzane szybko i z dużą dokładnością — niezależnie od tego, czy dotyczy to księgowości, logistyki czy działu zakupów. AI OCR automatyzuje ekstrakcję danych i usprawnia procesy, poprawiając jakość danych.
W większości firm ekstrakcja danych z faktur odbywa się ręcznie przez pracowników. To bardzo czasochłonny i kosztowny proces, który można zautomatyzować w wielu branżach, m.in. podatkowej, prawnej, finansowej i innych.
Ten proces zajmuje 5 do 15 sekund i kosztuje 0,01 – 0,02 kredytu, podczas gdy za tę samą pracę pracownikowi trzeba zapłacić 15–30 dolarów za godzinę.
Procesor | Koszt roczny | Liczba faktur rocznie | Koszt za fakturę |
---|---|---|---|
Człowiek | $30,000 | 12,000 | $2.50 |
FlowHunt | $162 | 12,000 | $0.013 |
FlowHunt (przy $30,000) | $30,000 | 2,250,000 | $0.0133 |
Można więc powiedzieć, że FlowHunt jest znacznie efektywniejszy.
Mimo licznych zalet, OCR niesie ze sobą pewne wyzwania:
Aby rozwiązać te problemy, warto korzystać z wydajnego i elastycznego narzędzia OCR. API FlowHunt zapewnia solidne rozwiązanie OCR, radząc sobie ze złożonymi strukturami dokumentów — idealne do projektów na dużą skalę.
Aby zautomatyzować proces, zainstaluj poniższe biblioteki Pythona:
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Zainstalujesz w ten sposób:
Kod pobiera plik PDF, zamienia go na obrazy, przesyła każdy obraz do FlowHunt do przetworzenia OCR i zapisuje wynik w formacie CSV.
Import bibliotek
import json
import os
import re
import time
import requests
import flowhunt
from flowhunt.rest import ApiException
from pprint import pprint
from pdf2image import convert_from_path
json
, os
, re
, time
— obsługa JSON, zarządzanie plikami, wyrażenia regularne i odstępy czasowe.requests
: Obsługuje żądania HTTP, np. pobieranie wyników OCR.flowhunt
: SDK FlowHunt do uwierzytelniania i komunikacji z API OCR.pdf2image
: Konwertuje strony PDF na obrazy, umożliwiając OCR pojedynczych stron.Funkcja konwertująca strony PDF na obrazy
def convert_pdf_to_image(path: str) -> None:
"""
Konwertuje plik PDF na obrazy, zapisując każdą stronę jako JPEG.
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page' + str(i) + '.jpg', 'JPEG')
convert_from_path
: Zamienia każdą stronę PDF na obraz.images[i].save
: Zapisuje każdą stronę jako osobny plik JPEG do przetwarzania OCR.Ekstrakcja URL załącznika z wynikiem
def extract_attachment_url(data_string):
pattern = r'```flowhunt\n({.*})\n```'
match = re.search(pattern, data_string, re.DOTALL)
if match:
json_string = match.group(1)
try:
json_data = json.loads(json_string)
return json_data.get('download_link', None)
except json.JSONDecodeError:
print("Error: Failed to decode JSON.")
return None
return None
Konfiguracja API i uwierzytelnienie
convert_pdf_to_image("data/test.pdf")
FLOW_ID = "<FLOW_ID_HERE>"
configuration = flowhunt.Configuration(
host="https://api.flowhunt.io",
api_key={"APIKeyHeader": "<API_KEY_HERE>"}
)
Inicjalizacja klienta API
with flowhunt.ApiClient(configuration) as api_client:
auth_api = flowhunt.AuthApi(api_client)
api_response = auth_api.get_user()
workspace_id = api_response.api_key_workspace_id
workspace_id
do dalszych wywołań API.Rozpoczęcie sesji Flow
flows_api = flowhunt.FlowsApi(api_client)
from_flow_create_session_req = flowhunt.FlowSessionCreateFromFlowRequest(flow_id=FLOW_ID)
create_session_rsp = flows_api.create_flow_session(workspace_id, from_flow_create_session_req)
Przesyłanie obrazów do OCR
for image in os.listdir("data/images"):
image_name, image_extension = os.path.splitext(image)
with open("data/images/" + image, "rb") as file:
try:
flow_sess_attachment = flows_api.upload_attachments(
create_session_rsp.session_id,
file.read()
)
Wywołanie przetwarzania OCR i czekanie na wynik
invoke_rsp = flows_api.invoke_flow_response(
create_session_rsp.session_id,
flowhunt.FlowSessionInvokeRequest(message="")
)
while True:
get_flow_rsp = flows_api.poll_flow_response(
create_session_rsp.session_id, invoke_rsp.message_id
)
print("Flow response: ", get_flow_rsp)
if get_flow_rsp.response_status == "S":
print("done OCR")
break
time.sleep(3)
Pobieranie i zapisywanie wyniku OCR
attachment_url = extract_attachment_url(get_flow_rsp.final_response[0])
if attachment_url:
response = requests.get(attachment_url)
with open("data/results/" + image_name + ".csv", "wb") as file:
file.write(response.content)
Aby uruchomić ten skrypt:
data/
.<FLOW_ID_HERE>
i <API_KEY_HERE>
swoimi danymi FlowHunt.Ten skrypt w Pythonie to wydajne rozwiązanie do skalowania procesów OCR — idealne dla branż wymagających intensywnego przetwarzania dokumentów. Dzięki API FlowHunt uzyskasz konwersję dokumentów do CSV, usprawniając obieg dokumentów i zwiększając produktywność.
Kliknij TUTAJ, aby zobaczyć wersję Gist.
import json
import os
import re
import time
import requests
import flowhunt
from flowhunt.rest import ApiException
from pprint import pprint
from pdf2image import convert_from_path
def convert_pdf_to_image(path: str) -> None:
"""
Convert a pdf file to an image
:return:
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page'+ str(i) +'.jpg', 'JPEG')
def extract_attachment_url(data_string):
pattern = r'```flowhunt\n({.*})\n```'
match = re.search(pattern, data_string, re.DOTALL)
if match:
json_string = match.group(1)
try:
json_data = json.loads(json_string)
return json_data.get('download_link', None)
except json.JSONDecodeError:
print("Error: Failed to decode JSON.")
return None
return None
convert_pdf_to_image("data/test.pdf")
FLOW_ID = "<FLOW_ID_HERE>"
configuration = flowhunt.Configuration(host = "https://api.flowhunt.io",
api_key = {"APIKeyHeader": "<API_KEY_HERE>"})
with flowhunt.ApiClient(configuration) as api_client:
auth_api = flowhunt.AuthApi(api_client)
api_response = auth_api.get_user()
workspace_id = api_response.api_key_workspace_id
flows_api = flowhunt.FlowsApi(api_client)
from_flow_create_session_req = flowhunt.FlowSessionCreateFromFlowRequest(
flow_id=FLOW_ID
)
create_session_rsp = flows_api.create_flow_session(workspace_id, from_flow_create_session_req)
for image in os.listdir("data/images"):
image_name, image_extension = os.path.splitext(image)
with open("data/images/" + image, "rb") as file:
try:
flow_sess_attachment = flows_api.upload_attachments(
create_session_rsp.session_id,
file.read()
)
invoke_rsp = flows_api.invoke_flow_response(create_session_rsp.session_id, flowhunt.FlowSessionInvokeRequest(
message="",
))
while True:
get_flow_rsp = flows_api.poll_flow_response(create_session_rsp.session_id, invoke_rsp.message_id)
print("Flow response: ", get_flow_rsp)
if get_flow_rsp.response_status == "S":
print("done OCR")
attachment_url = extract_attachment_url(get_flow_rsp.final_response[0])
if attachment_url:
print("Attachment URL: ", attachment_url, "\n Downloading the file...")
response = requests.get(attachment_url)
with open("data/results/" + image_name + ".csv", "wb") as file:
file.write(response.content)
break
time.sleep(3)
except ApiException as e:
print("error for file ", image)
print(e)
AI OCR wykorzystuje uczenie maszynowe i NLP do rozumienia kontekstu dokumentów, obsługi złożonych układów i wyodrębniania ustrukturyzowanych danych z faktur, w przeciwieństwie do tradycyjnego OCR, które opiera się na rozpoznawaniu tekstu w stałym układzie.
AI OCR zapewnia szybkość, dokładność, skalowalność i ustrukturyzowane wyniki, ograniczając pracę ręczną, minimalizując błędy i umożliwiając łatwą integrację z systemami biznesowymi.
Korzystając z Python SDK FlowHunt, możesz konwertować PDF-y na obrazy, przesyłać je do API FlowHunt w celu OCR i pobierać dane w formacie CSV, automatyzując cały proces ekstrakcji.
Typowe wyzwania to słaba jakość obrazu, złożone układy dokumentów i różne języki. API FlowHunt radzi sobie z nimi dzięki zaawansowanym modelom AI i elastycznym możliwościom przetwarzania.
AI OCR FlowHunt potrafi przetwarzać faktury w kilka sekund, przy ułamku kosztów pracy ludzkiej, zapewniając ogromny wzrost efektywności i skalowalność dla rozwijających się firm.
Arshia jest Inżynierką Przepływów Pracy AI w FlowHunt. Z wykształceniem informatycznym i pasją do sztucznej inteligencji, specjalizuje się w tworzeniu wydajnych przepływów pracy, które integrują narzędzia AI z codziennymi zadaniami, zwiększając produktywność i kreatywność.
Automatyzuj ekstrakcję danych z faktur dzięki wydajnemu AI OCR FlowHunt. Oszczędzaj czas, minimalizuj błędy i usprawnij swoje procesy konwertując PDF-y na dane strukturalne w kilka sekund.
Odkryj, jak OCR wspierany przez AI zmienia wydobywanie danych, automatyzuje przetwarzanie dokumentów i zwiększa efektywność w branżach takich jak finanse, opiek...
Optical Character Recognition (OCR) to przełomowa technologia, która przekształca dokumenty, takie jak zeskanowane papiery, pliki PDF lub obrazy, w edytowalne i...
Rozpoznawanie Tekstu w Scenach (STR) to wyspecjalizowana gałąź Optycznego Rozpoznawania Znaków (OCR), skupiająca się na identyfikacji i interpretacji tekstu w o...