Chinh Phục OCR Trên Azure: Khi Logic App “Trái Kèo” Và Function App Lên Ngôi!
Lê Lân
1
OCR với Azure Applied AI Services: Kinh nghiệm và Giải pháp Tối ưu
Mở Đầu
Azure Applied AI Services đang trở thành một trong những nền tảng mạnh mẽ hỗ trợ xử lý hình ảnh và dữ liệu văn bản tự động với đa dạng dịch vụ AI tích hợp sẵn.
Việc sử dụng trí tuệ nhân tạo để nhận diện ký tự quang học (OCR) ngày càng phổ biến trong các ứng dụng doanh nghiệp. Trong bài viết này, chúng tôi chia sẻ trải nghiệm thực tế khi triển khai OCR sử dụng Azure Applied AI Services thông qua Azure Logic Apps và Function Apps. Bạn sẽ hiểu được quy trình thiết lập, những khó khăn gặp phải cũng như giải pháp thay thế giúp nâng cao chất lượng nhận diện chữ trên hình ảnh. Ngoài ra, bài viết minh họa chi tiết cách tích hợp và ví dụ cụ thể từ hình ảnh thực tế.
Tổng Quan Về Azure Applied AI Services
Azure Applied AI Services Là Gì?
Azure Applied AI Services là bộ dịch vụ AI được Microsoft xây dựng trên nền tảng đám mây Azure, giúp các lập trình viên dễ dàng áp dụng các mô hình trí tuệ nhân tạo đã được tối ưu vào các ứng dụng thực tế, như xử lý ngôn ngữ tự nhiên, nhận diện hình ảnh, và OCR.
Những Ưu Điểm Khi Sử Dụng Azure AI Services
Dễ dàng thiết lập với các connector làm sẵn.
Cung cấp nhiều starter samples hỗ trợ nhanh chóng bắt đầu.
Có thể tích hợp linh hoạt qua Logic Apps hoặc các giải pháp serverless như Function Apps.
Tích hợp API endpoint và Khoá API bảo mật sẵn có.
Triển Khai OCR Bằng Azure Logic Apps
Thiết Lập Connector Computer Vision API
Để thực hiện OCR, trước tiên bạn cần tạo một connector tới Azure Computer Vision API trong Logic Apps. Connector này yêu cầu:
API Endpoint
API Key (được tạo cùng lúc với dịch vụ Azure AI Multi-service account)
Các Tác Vụ Có Sẵn Trong Connector
Tác vụ
Mô tả
Optical Character Recognition
Xử lý nhận diện ký tự từ hình ảnh
Analyze Image
Phân tích hình ảnh tổng thể
Generate Thumbnail
Tạo hình thu nhỏ
Thực Hiện OCR Với Action "Optical Character Recognition to JSON V3"
Bạn sẽ sử dụng action này thiết lập như hình dưới để đọc văn bản từ ảnh đầu vào.
Ví Dụ Hình Ảnh Đầu Vào (Input Image)
Đây là ảnh số hoá từ phim âm bản ngày lễ tốt nghiệp năm 1998.
Kết Quả OCR
Tuy nhiên, khi chạy trên Logic App, kết quả đầu ra không chứa văn bản hay bounding box hợp lệ như kỳ vọng.
Mặc dù thiết lập đơn giản, nhưng thực tế kết quả OCR trên Logic Apps chưa đáp ứng tốt, đặc biệt với những hình ảnh phức tạp hoặc chất lượng hình ảnh không tối ưu.
Giải Pháp Thay Thế: Tích Hợp Qua Azure Function App
Ý Tưởng Giải Pháp
Thay vì trực tiếp dùng connector Logic App, ta triển khai một Function App làm cầu nối (proxy) gọi trực tiếp Azure Applied AI Service bằng SDK chính thức. Điều này giúp:
Kiểm soát tốt hơn quá trình phân tích hình ảnh
Tận dụng được khả năng tùy chỉnh nâng cao
Kết quả đầu ra chuẩn xác hơn
Quy Trình Tích Hợp Tổng Quan
Cấu Hình Logic App Gọi Function App
Trong Logic App, ta thêm action gọi tới Function App như hình dưới:
ImageAnalysisResult result = _ImageAnalysisClient.Analyze(requestData, VisualFeatures.Read);
foreach (var line in result.Read.Blocks.SelectMany(block => block.Lines))
{
var lineObject = new
{
Text = line.Text,
BoundingPolygon = line.BoundingPolygon.ToList(),
Words = line.Words.Select(word => new
{
Text = word.Text,
Confidence = word.Confidence.ToString("#.####"),
BoundingPolygon = word.BoundingPolygon.ToList()
}).ToList()
};
response.Add(lineObject);
}
returnnew JsonResult(response);
Ví Dụ Phân Tích Kết Quả
Đầu ra từ Function App thể hiện đầy đủ văn bản, tọa độ vùng chữ và điểm tin cậy từ ảnh đã cho.
Sử dụng Azure Function để gọi dịch vụ AI trực tiếp giúp cải thiện đáng kể độ chính xác và chi tiết dữ liệu nhận dạng so với phương án dùng Logic App connector gốc.
Kết Luận
Thông qua việc trải nghiệm hai cách triển khai OCR trên Azure Applied AI Services, rõ ràng mỗi phương pháp có ưu và nhược điểm riêng:
Azure Logic Apps connector: nhanh chóng, đơn giản nhưng có thể hạn chế về tính năng cũng như độ chính xác.
Azure Function App sử dụng SDK: phức tạp hơn chút nhưng kiểm soát được quy trình, cải thiện chất lượng kết quả.
Đối với những bài toán yêu cầu độ chính xác cao và khả năng tùy biến, triển khai giải pháp dựa trên Function App là lựa chọn tối ưu. Tuy nhiên, điều này cũng đồng nghĩa bạn phải duy trì thêm một lớp hạ tầng trung gian.
Bạn đã có trải nghiệm nào tương tự với Azure AI Services hay các mô hình tích hợp khác? Hãy chia sẻ suy nghĩ và câu chuyện của bạn trong phần bình luận!