AI OCR-faktura Datautvinning med ett Enkelt Python-skript

AI OCR-faktura Datautvinning med ett Enkelt Python-skript

Lär dig automatisera datautvinning från fakturor med AI-baserad OCR och Python med FlowHunt’s API – för snabb, exakt och skalbar dokumenthantering.

Vad är AI-baserad OCR?

AI-driven OCR går bortom traditionell OCR genom att använda artificiell intelligens för att förstå kontext, hantera många olika layoutvarianter och skapa högkvalitativ, strukturerad datautvinning även från de mest komplexa dokumenten. Medan traditionell OCR är utformad för att läsa text från fasta format, kan AI OCR hantera många olika layouter och konfigurationer som är vanliga i fakturor och andra affärsdokument.

Nyckelfunktioner hos AI-baserad OCR

  • Kontextuell förståelse: AI OCR använder NLP för att förstå sammanhang i dokument. Den identifierar fält som ”Totalbelopp”, ”Fakturadatum” och ”Kundnamn” även när dessa dyker upp på olika platser.
  • Flexibilitet: Traditionell OCR blir ofta förvirrad av oregelbundna layouter; AI OCR är flexibel och kan extrahera information från olika fakturaformat utan problem.
  • Datastrukturering: Ofta ger AI OCR direkt strukturerade utdata som är lättare att efterbehandla än traditionell OCR:s råtext.

Varför använda AI OCR för fakturor?

Fakturor måste behandlas effektivt och med hög noggrannhet, oavsett om det gäller ekonomi-, logistik- eller inköpsavdelningen. AI OCR automatiserar datautvinning och effektiviserar arbetsflöden, vilket förbättrar datans noggrannhet.

Fördelar med AI OCR för fakturor

  • Snabbhet och effektivitet: Med AI OCR kan ett stort antal fakturor behandlas på minimal tid, vilket frigör resurser och arbetskraft.
  • Förbättrad noggrannhet: AI-modeller, tränade på många olika dokumentformat, minskar fel vid manuell inmatning.
  • Smidigare datahantering: Eftersom datan redan är strukturerad kan den enkelt integreras i databaser, analys- och ERP-system.
  • Skalbarhet: AI OCR kan hantera stora volymer dokument utan ökad personal, vilket gör det idealiskt för stora eller snabbt växande organisationer.

Avkastningen (ROI) med FlowHunt’s AI OCR-verktyg

De flesta företag extraherar fakturadata manuellt genom anställda. Det är tidskrävande och dyrt, men kan automatiseras i många olika branscher, som skatt, juridik, ekonomi och fler.

Denna process tar 5 till 15 sekunder och kostar 0,01 – 0,02 krediter, där du annars skulle behöva betala 15 – 30 USD per timme för att en anställd gör samma arbete.

OCR Cost Comparison
ProcessorKostnad per årFakturor per årKostnad per faktura
Mänsklig$30,00012,000$2.50
FlowHunt$16212,000$0.013
FlowHunt (vid $30,000)$30,0002,250,000$0.0133

Jag vill påstå att FlowHunt är betydligt mer effektivt.

Utmaningar vid OCR-implementering

Trots fördelarna innebär OCR vissa utmaningar:

  1. Bildkvalitet: OCR-noggrannheten beror mycket på bildkvaliteten. Suddiga eller lågupplösta bilder ger sämre resultat.
  2. Komplex formatering: Dokument med komplex layout, blandade typsnitt eller tabeller kan kräva avancerad OCR.
  3. Språk och teckenuppsättning: OCR-program kan ha begränsat språkutbud och kräva specialiserade modeller för andra tecken än latinska.
  4. Felfrekvens: Ingen OCR-programvara är 100 % exakt, särskilt med handskrivna eller oregelbundna typsnitt, vilket kan leda till fel i utdata.

För att möta dessa utmaningar krävs ett kraftfullt och flexibelt OCR-verktyg. FlowHunt’s API erbjuder en robust OCR-lösning som klarar komplexa dokumentstrukturer – perfekt för stora OCR-projekt.

Installera Python OCR-skriptet

För att automatisera processen behöver du installera följande Python-bibliotek:

pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git

Detta installerar:

  • requests: För att skicka HTTP-förfrågningar till FlowHunt’s API och ladda ner OCR-utdata.
  • pdf2image: För att konvertera PDF-sidor till bilder.
  • flowhunt: FlowHunt’s Python SDK som förenklar kommunikationen med OCR API:t.

Steg-för-steg-genomgång av koden

Den här koden tar en PDF, konverterar den till bilder, skickar varje bild till FlowHunt för OCR-behandling och sparar resultatet i CSV-format.

Importera 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 och time hjälper till med JSON-hantering, filhantering, reguljära uttryck och tidsintervaller.
  • requests: Används för HTTP-förfrågningar, t.ex. för att ladda ner OCR-resultat.
  • flowhunt: FlowHunt’s SDK hanterar autentisering och kommunikation med OCR API:t.
  • pdf2image: Konverterar PDF-sidor till bilder för individuell OCR.

Funktion för att konvertera PDF-sidor till bilder

def convert_pdf_to_image(path: str) -> None:
    """
    Konvertera en PDF-fil till bilder och spara varje sida som 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: Konverterar varje PDF-sida till en bild.
  • images[i].save: Sparar varje sida som en separat JPEG för OCR.

Extrahera URL till resultatbilagan

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
  • Funktionen hämtar URL:en för att ladda ner OCR-utdata.
  • Använder regex för att hitta JSON-objektet med nedladdningslänken.

API-konfiguration och autentisering

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>"}
)
  • Konverterar PDF till bilder.
  • Ställer in API-åtkomst med FlowHunt-uppgifter.

Initiera API-klienten

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
  • Autentiserar och hämtar workspace_id för kommande API-anrop.

Starta en Flow-session

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)
  • Startar en session för att ladda upp bilder och köra OCR.

Ladda upp bilder för OCR-behandling

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()
            )
  • Laddar upp varje bild i sessionen för OCR.

Starta OCR-behandlingen och pollar för resultat

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)
  • Startar OCR och pollar var tredje sekund tills det är klart.

Ladda ner och spara OCR-utdata

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)
  • Laddar ner CSV-resultatet och sparar lokalt.

Köra skriptet och testa utdata

För att köra skriptet:

  1. Placera din PDF i mappen data/.
  2. Uppdatera <FLOW_ID_HERE> och <API_KEY_HERE> med dina FlowHunt-uppgifter.
  3. Kör skriptet för att konvertera PDF:en, ladda upp bilder för OCR och ladda ner de strukturerade CSV-resultaten.

Slutsats

Detta Python-skript erbjuder en effektiv lösning för att skala OCR-processer – perfekt för branscher med stora dokumentflöden. Med FlowHunt’s API hanterar lösningen konvertering från dokument till CSV, effektiviserar arbetsflöden och ökar produktiviteten.

Fullständig kodöversikt

Klicka HÄR för Gist-versionen.

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)

Vanliga frågor

Vad är AI-baserad OCR och hur skiljer det sig från traditionell OCR?

AI-baserad OCR använder maskininlärning och NLP för att förstå dokumentets kontext, hantera komplexa layouter och extrahera strukturerad data från fakturor – till skillnad från traditionell OCR som bygger på fast textigenkänning.

Vilka är de främsta fördelarna med att använda AI OCR för fakturor?

AI OCR ger snabbhet, noggrannhet, skalbarhet och strukturerade resultat, vilket minskar manuellt arbete, minimerar fel och möjliggör smidig integration med affärssystem.

Hur implementerar jag automatisk faktura-OCR med Python och FlowHunt?

Med FlowHunt’s Python SDK kan du konvertera PDF-filer till bilder, skicka dem till FlowHunt’s API för OCR och hämta strukturerad data i CSV-format – och automatisera hela utvinningsprocessen.

Vilka utmaningar finns med OCR och hur hanterar FlowHunt dem?

Vanliga utmaningar är låg bildkvalitet, komplexa dokumentlayouter och olika språk. FlowHunt’s API är utformat för att hantera detta med avancerade AI-modeller och flexibel behandling.

Vad är avkastningen (ROI) på att automatisera fakturadatautvinning med FlowHunt?

FlowHunt’s AI OCR kan behandla fakturor på sekunder till en bråkdel av den mänskliga kostnaden, vilket ger stora effektivitetsvinster och skalbarhet för växande företag.

Arshia är en AI-arbetsflödesingenjör på FlowHunt. Med en bakgrund inom datavetenskap och en passion för AI, specialiserar han sig på att skapa effektiva arbetsflöden som integrerar AI-verktyg i vardagliga uppgifter, vilket förbättrar produktivitet och kreativitet.

Arshia Kahani
Arshia Kahani
AI-arbetsflödesingenjör

Testa FlowHunt’s AI Faktura OCR-verktyg

Automatisera datautvinning från fakturor med FlowHunt’s kraftfulla AI OCR. Spara tid, minska fel och effektivisera dina arbetsflöden genom att konvertera PDF-filer till strukturerad data på några sekunder.

Lär dig mer

Lösa OCR-uppgifter med AI
Lösa OCR-uppgifter med AI

Lösa OCR-uppgifter med AI

Upptäck hur AI-driven OCR omvandlar datautvinning, automatiserar dokumenthantering och ökar effektiviteten inom branscher som finans, hälsovård och detaljhandel...

4 min läsning
AI OCR +5
Faktura Data Extraktor
Faktura Data Extraktor

Faktura Data Extraktor

Upptäck hur en Faktura Data Extraktor OCR Flow kan effektivisera dina finansiella processer genom att automatisera extrahering och organisering av fakturadata. ...

2 min läsning
OCR Invoice Automation +3
Optisk teckenigenkänning (OCR)
Optisk teckenigenkänning (OCR)

Optisk teckenigenkänning (OCR)

Optisk teckenigenkänning (OCR) är en omvälvande teknik som omvandlar dokument såsom inskannade papper, PDF-filer eller bilder till redigerbar och sökbar data. L...

5 min läsning
OCR Document Processing +5