
Giải quyết các bài toán OCR với AI
Khám phá cách OCR tích hợp AI đang thay đổi việc trích xuất dữ liệu, tự động hóa xử lý tài liệu và thúc đẩy hiệu quả trong các ngành như tài chính, y tế và bán ...
Tìm hiểu cách tự động hóa trích xuất dữ liệu hóa đơn bằng AI OCR và Python với API FlowHunt, giúp xử lý tài liệu nhanh, chính xác và mở rộng.
OCR được điều khiển bởi AI còn vượt qua khả năng của OCR truyền thống ở chỗ nó sử dụng trí tuệ nhân tạo để hiểu ngữ cảnh, xử lý nhiều kiểu bố cục, và trích xuất dữ liệu có cấu trúc chất lượng cao ngay cả từ tài liệu phức tạp nhất. Trong khi OCR truyền thống chỉ nhận diện văn bản từ mẫu cố định, AI OCR có thể xử lý đa dạng các kiểu bố cục phổ biến trong hóa đơn và tài liệu doanh nghiệp.
Hóa đơn cần được xử lý hiệu quả và chính xác cao, dù ở bộ phận kế toán, logistics hay mua sắm. AI OCR tự động hóa việc trích xuất dữ liệu, giúp quy trình làm việc trơn tru hơn và nâng cao độ chính xác dữ liệu.
Phần lớn doanh nghiệp truyền thống trích xuất dữ liệu hóa đơn thủ công qua nhân viên. Đây là công việc tốn nhiều thời gian và chi phí, có thể tự động hóa cho nhiều lĩnh vực như thuế, pháp lý, tài chính, v.v.
Quá trình này chỉ mất 5 đến 15 giây và tiêu tốn 0.01 – 0.02 credit, trong khi bình thường bạn phải trả $15 – $30 cho mỗi giờ làm việc của nhân viên với cùng tác vụ.
Bộ Xử Lý | Chi Phí/Năm | Số Hóa Đơn Xử Lý/Năm | Chi Phí/Hóa Đơn |
---|---|---|---|
Con người | $30,000 | 12,000 | $2.50 |
FlowHunt | $162 | 12,000 | $0.013 |
FlowHunt (với $30,000) | $30,000 | 2,250,000 | $0.0133 |
Có thể thấy FlowHunt hiệu quả hơn rất nhiều lần.
Dù OCR rất hữu ích, nhưng vẫn tồn tại một số thách thức:
Để khắc phục, bạn nên sử dụng công cụ OCR mạnh mẽ và linh hoạt. API của FlowHunt cung cấp giải pháp OCR vượt trội, xử lý tốt tài liệu phức tạp, lý tưởng cho dự án OCR quy mô lớn.
Để tự động hóa quá trình, bạn cần cài các thư viện Python sau:
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Các thư viện này gồm:
Đoạn mã dưới đây sẽ lấy file PDF, chuyển từng trang thành ảnh, gửi lên FlowHunt để OCR và lưu kết quả ở dạng CSV.
Import Thư Viện
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
, và time
hỗ trợ xử lý JSON, quản lý file, regex và thời gian.requests
: Dùng để gửi HTTP request, tải kết quả OCR.flowhunt
: SDK của FlowHunt xử lý xác thực và giao tiếp với API OCR.pdf2image
: Chuyển trang PDF thành ảnh, phục vụ OCR từng trang.Hàm Chuyển Trang PDF Thành Ảnh
def convert_pdf_to_image(path: str) -> None:
"""
Convert a PDF file to images, storing each page as a 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
: Chuyển từng trang PDF thành ảnh.images[i].save
: Lưu từng trang thành file JPEG để OCR.Trích Xuất URL Đính Kèm Kết Quả
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
Cấu Hình & Xác Thực API
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>"}
)
Khởi Tạo API Client
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
để gọi API.Bắt Đầu Phiên Làm Việc Với 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)
Upload Ảnh Để Xử Lý 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()
)
Gọi Xử Lý OCR & Kiểm Tra Kết Quả
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)
Tải Kết Quả OCR Về Máy
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)
Để chạy script này:
data/
.<FLOW_ID_HERE>
và <API_KEY_HERE>
bằng thông tin FlowHunt của bạn.Script Python này là giải pháp hiệu quả để mở rộng quy trình OCR, phù hợp cho các ngành có nhu cầu xử lý tài liệu lớn. Kết hợp API FlowHunt, giải pháp này giúp chuyển tài liệu sang CSV nhanh chóng, tối ưu hóa quy trình và nâng cao năng suất.
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)
OCR dựa trên AI tận dụng machine learning và NLP để hiểu ngữ cảnh tài liệu, xử lý bố cục phức tạp và trích xuất dữ liệu có cấu trúc từ hóa đơn, trong khi OCR truyền thống chỉ dựa vào nhận diện văn bản theo định dạng cố định.
AI OCR mang lại tốc độ, độ chính xác, khả năng mở rộng và kết quả có cấu trúc, giảm công việc thủ công, tối thiểu hóa lỗi và dễ dàng tích hợp với các hệ thống doanh nghiệp.
Bằng cách sử dụng FlowHunt Python SDK, bạn có thể chuyển PDF sang ảnh, gửi lên API FlowHunt để OCR và nhận dữ liệu có cấu trúc ở dạng CSV, tự động hóa toàn bộ quá trình trích xuất.
Các thách thức thường gặp gồm chất lượng ảnh kém, bố cục tài liệu phức tạp, đa ngôn ngữ. API của FlowHunt được thiết kế để xử lý những vấn đề này với mô hình AI tiên tiến và khả năng xử lý linh hoạt.
AI OCR của FlowHunt có thể xử lý hóa đơn chỉ trong vài giây với chi phí thấp hơn nhiều lần so với con người, mang lại hiệu quả vượt trội và khả năng mở rộng cho doanh nghiệp tăng trưởng nhanh.
Arshia là Kỹ sư Quy trình AI tại FlowHunt. Với nền tảng về khoa học máy tính và niềm đam mê AI, anh chuyên tạo ra các quy trình hiệu quả tích hợp công cụ AI vào các nhiệm vụ hàng ngày, nâng cao năng suất và sự sáng tạo.
Tự động hóa trích xuất dữ liệu hóa đơn với AI OCR mạnh mẽ của FlowHunt. Tiết kiệm thời gian, giảm sai sót và tối ưu hóa quy trình làm việc chỉ với vài giây chuyển PDF sang dữ liệu có cấu trúc.
Khám phá cách OCR tích hợp AI đang thay đổi việc trích xuất dữ liệu, tự động hóa xử lý tài liệu và thúc đẩy hiệu quả trong các ngành như tài chính, y tế và bán ...
Khám phá cách một quy trình OCR Trích Xuất Dữ Liệu Hóa Đơn có thể tối ưu hóa quy trình tài chính của bạn bằng cách tự động hóa việc trích xuất và tổ chức dữ liệ...
Nhận diện ký tự quang học (OCR) là công nghệ đột phá giúp chuyển đổi các tài liệu như giấy tờ được quét, PDF hoặc hình ảnh thành dữ liệu có thể chỉnh sửa và tìm...