AI-POWERED DOCS
What do you want to know?
OCR (Optical Character Recognition)
OV80i có thể đọc văn bản in, số sê-ri, mã ngày tháng và các ký tự chữ số khác trực tiếp từ hình ảnh camera bằng cách sử dụng mô hình OCR đã được huấn luyện sẵn. Không giống như classifier và segmenter, OCR không yêu cầu dữ liệu huấn luyện. Nó hoạt động ngay khi sử dụng.
OCR hữu ích khi bạn cần:
- Xác minh số sê-ri hoặc mã lô khớp với giá trị mong đợi
- Xác nhận nhãn có mặt và có thể đọc được
- Đọc mã ngày/hạn sử dụng để truy xuất nguồn gốc
- Kiểm tra số bộ phận trên các linh kiện trong quá trình lắp ráp
OCR chỉ có sẵn trên OV80i. OV20i và OV10i không hỗ trợ OCR.
Cách OCR Hoạt Động
OV80i sử dụng quy trình AI hai giai đoạn để nhận dạng văn bản:
- Phát Hiện Văn Bản (Text Detection): Tìm vị trí văn bản trong ROI. Trả về các hộp giới hạn (bounding box) quanh mỗi từ hoặc vùng văn bản được phát hiện.
- Nhận Dạng Văn Bản (Text Recognition): Đọc các ký tự bên trong mỗi hộp giới hạn được phát hiện và trả về chuỗi văn bản kèm theo điểm tin cậy.
Toàn bộ quá trình này chạy trên GPU NVIDIA Jetson Orin NX của camera. Không cần kết nối đám mây.
Mô hình nhận dạng một bộ ký tự rộng bao gồm:
- Chữ số (0-9)
- Chữ cái Latin (A-Z, a-z, ký tự có dấu)
- Dấu câu và ký hiệu thông dụng
- Chữ cái Hy Lạp
- Ký hiệu tiền tệ
- Toán tử toán học
Bộ ký tự được cố định và không thể tùy chỉnh. Mô hình hỗ trợ khoảng 480 ký tự bao gồm hầu hết văn bản công nghiệp được in bằng các ngôn ngữ dựa trên Latin.
Điều Kiện Tiên Quyết
Trước khi thiết lập OCR, bạn cần có một camera:
- Được lắp đặt vật lý và ổn định
- Được kết nối với mạng và có thể truy cập trong trình duyệt
- Được lấy nét vào bộ phận có văn bản bạn muốn đọc
Nếu bạn chưa thực hiện việc này, hãy làm theo các hướng dẫn bắt đầu trước:
Bước 1: Tạo Recipe Mới
Mỗi cuộc kiểm tra đều bắt đầu bằng một recipe. Recipe là một gói hoàn chỉnh: cài đặt hình ảnh, căn chỉnh, vùng quan tâm (ROI), mô hình AI và quy tắc đầu ra.
- Điều hướng đến All Recipes ở thanh bên trái
- Nhấp vào + New ở góc trên bên phải
- Đặt tên mô tả cho recipe của bạn (ví dụ: "Serial Number Check", "Label Verification")
- Nhấp vào Activate để đặt nó làm recipe đang hoạt động, sau đó nhấp Edit để mở Recipe Editor

Recipe Editor hiển thị toàn bộ quy trình kiểm tra. Bạn sẽ thao tác từ trái sang phải:
- Imaging Setup (cài đặt camera)
- Image Alignment & Inspection Setup (template, ROI)
- AI Blocks (Classification, Segmentation, OCR, Measurement)
- Set Pass/Fail & IO Logic (quy tắc đầu ra)
Để xem hướng dẫn chi tiết về việc tạo recipe, hãy xem Tạo Cuộc Kiểm Tra Đầu Tiên.
Bước 2: Cấu Hình Cài Đặt Hình Ảnh
Chất lượng hình ảnh tốt là nền tảng của OCR chính xác. Văn bản phải được nhìn thấy rõ ràng với độ tương phản cao.
- Nhấp vào Configure Imaging hoặc điều hướng đến tab Imaging Setup
- Điều chỉnh các cài đặt sau trong khi xem bản xem trước trực tiếp:
| Cài Đặt | Mục Tiêu Cho OCR |
|---|---|
| Exposure | Đủ sáng để nhìn thấy rõ tất cả văn bản. Quá tối thì ký tự biến mất vào nền. Quá sáng thì nhãn trắng bị cháy. |
| Gain | Giữ càng thấp càng tốt. Gain cao tạo ra nhiễu trông giống như giả ảnh văn bản đối với bộ phát hiện. |
| Gamma | Điều chỉnh để cải thiện độ tương phản giữa văn bản và nền. |
| Focus | Văn bản phải sắc nét. Nếu các ký tự trông mờ hoặc nhòe, hãy điều chỉnh vòng lấy nét ống kính C-mount. |
Độ chính xác của OCR phụ thuộc rất nhiều vào chất lượng hình ảnh. Văn bản phải được nhìn thấy rõ ràng trong hình ảnh camera với độ tương phản tốt so với nền. Văn bản tối trên nền sáng hoặc văn bản sáng trên nền tối đều hoạt động tốt. Tránh:
- Ánh sáng không đều tạo ra bóng đổ qua các ký tự
- Lóa trên nhãn bóng
- Thiếu sáng khiến văn bản khó phân biệt với nền
Phóng to vùng văn bản trong bản xem trước trực tiếp. Bạn có thể đọc rõ từng ký tự không? Nếu bạn không đọc được, AI cũng không đọc được.
Để xem hướng dẫn chi tiết về tất cả cài đặt hình ảnh, hãy xem Cài Đặt Hình Ảnh.
Bước 3: Thiết Lập Căn Chỉnh Template
Căn chỉnh template cho camera biết cách theo dõi vị trí và hướng của bộ phận. Điều này rất quan trọng vì các bộ phận không phải lúc nào cũng nằm ở cùng một vị trí chính xác trên băng tải hoặc đồ gá.
- Điều hướng đến tab Template Image and Alignment
- Đặt bộ phận của bạn trong tầm nhìn của camera
- Nhấp vào Capture Template để chụp một hình ảnh tham chiếu
- Vẽ 2-3 vùng template nhỏ trên các đặc điểm luôn hiện diện và dễ nhận biết (ví dụ: góc, logo, lỗ lắp đặt)
Đặt các vùng template càng xa nhau càng tốt trên bộ phận. Điều này giảm đáng kể độ rung góc trong căn chỉnh. Hai vùng gần nhau sẽ cho độ ổn định xoay kém; hai vùng ở các góc đối diện sẽ cho độ ổn định xuất sắc.
Nếu bạn bỏ qua căn chỉnh, các ROI của OCR sẽ được cố định ở các vị trí pixel tuyệt đối. Bất kỳ chuyển động nào của bộ phận sẽ khiến ROI bỏ lỡ văn bản. Luôn thiết lập căn chỉnh cho việc sử dụng trong sản xuất.
Để xem hướng dẫn chi tiết về căn chỉnh template, hãy xem Alignment.
Bước 4: Tạo Các Vùng Quan Tâm (ROI) cho OCR
Bây giờ bạn sẽ xác định chính xác vị trí trên bộ phận mà camera nên tìm văn bản. Đây là bước quan trọng nhất để đạt được độ chính xác của OCR.
4a. Điều Hướng Đến Inspection Setup
- Nhấp vào tab Inspection Setup trong Recipe Editor
- Bạn sẽ thấy Inspection Editor với hình ảnh template của bạn
4b. Thêm Model OCR
- Trong bảng bên phải, tìm phần Models
- Nếu bạn không thấy model OCR nào được liệt kê, hãy nhấp vào nút Add ở dưới cùng và chọn OCR
- Model OCR sẽ xuất hiện trong danh sách Models
Bạn chỉ có thể có một khối OCR duy nhất cho mỗi recipe. Tuy nhiên, bạn có thể tạo nhiều ROI trong khối đó để đọc văn bản từ các vùng khác nhau của bộ phận.
4c. Tạo ROI cho OCR
- Đảm bảo dòng model OCR đang được chọn (được làm nổi bật) trong danh sách Models
- Nhấp vào Add ROI trong phần Region of Interest
- Một ROI hình chữ nhật mới sẽ xuất hiện trên hình ảnh
- Kéo ROI để đặt nó lên trên văn bản bạn muốn đọc
- Thay đổi kích thước bằng cách kéo các tay cầm ở góc

4d. Thiết Lập Hướng của ROI
Đây là điều quan trọng nhất duy nhất cần phải làm đúng. Hướng của ROI phải khớp với hướng của văn bản bạn muốn đọc.
Bộ máy OCR cắt hình ảnh bằng góc của ROI, sau đó xử lý phần đã cắt như thể văn bản nằm ngang. Nếu góc ROI của bạn không khớp với góc văn bản, bộ máy sẽ cố đọc văn bản bị xoay và tạo ra kết quả vô nghĩa.
Ví dụ:
- Văn bản đọc từ trái sang phải theo chiều ngang: Góc ROI phải là 0 độ
- Văn bản xoay 90 độ theo chiều kim đồng hồ: Góc ROI phải là 90 độ
- Văn bản bị lộn ngược: Góc ROI phải là 180 độ
- Văn bản ở góc 45 độ: Góc ROI phải là 45 độ
Cách xoay một ROI:
- Chọn ROI bằng cách nhấp vào nó
- Sử dụng tay cầm xoay ở góc của ROI, HOẶC
- Đặt giá trị góc trực tiếp trong các trường vị trí ở dưới cùng của canvas
Thanh vị trí hiển thị: H (chiều cao), W (chiều rộng), X và Y (vị trí), và góc theo độ.

4e. Định Kích Thước ROI Chính Xác
- Làm ROI càng sát càng tốt xung quanh vùng văn bản. Phần nền dư thừa sẽ tạo ra nhiễu và có thể gây ra phát hiện sai.
- Bao gồm một lề nhỏ (10-20 pixel) xung quanh văn bản để các ký tự không bị cắt ở rìa.
- Không bao gồm văn bản khác mà bạn không muốn đọc. Nếu có nhiều vùng văn bản, hãy tạo các ROI riêng biệt cho từng vùng.
Nếu bạn cần đọc văn bản từ nhiều vùng của bộ phận (ví dụ: số sê-ri VÀ mã ngày), hãy tạo một ROI riêng cho mỗi vùng. Điều này cho bạn các kết quả độc lập và giúp cấu hình quy tắc pass/fail dễ dàng hơn.
4f. Tạo Các ROI Bổ Sung (Tùy Chọn)
Lặp lại các bước 4c-4e cho mỗi vùng văn bản bạn cần đọc. Mỗi ROI sẽ có tên riêng trong danh sách Region of Interest. Đổi tên thành mô tả cụ thể (ví dụ: "Serial Number", "Date Code", "Part Label") bằng cách nhấp đúp vào tên.
Sử dụng copy-paste để nhân bản ROI. Các tên sẽ tự động tăng số (ví dụ: "ROI", "ROI (1)", "ROI (2)").
Bước 5: Cấu Hình và Kiểm Tra OCR Block
5a. Điều Hướng Đến OCR Block
Nhấp vào tab OCR Block trong thanh tab Recipe Editor. Bạn sẽ thấy luồng camera ở bên trái và bảng cài đặt ở bên phải.

Bảng bên phải hiển thị:
- Mô tả OPTICAL CHARACTER RECOGNITION
- Giải thích rằng đây là mô hình được huấn luyện trước, không yêu cầu dữ liệu huấn luyện
- Hướng dẫn sử dụng Live Preview hoặc Test để xác thực
5b. Bật Live Preview
Đánh dấu vào ô Live Preview Mode ở phía trên bên phải. Camera sẽ bắt đầu xử lý các khung hình theo thời gian thực.

Khi Live Preview đang hoạt động, bạn sẽ thấy:
- Processing Time: Thời gian mà mô hình OCR cần để xử lý mỗi khung hình
- Latency: Tổng thời gian khứ hồi bao gồm chụp hình và hiển thị
- Khung bao màu tím xung quanh các vùng văn bản được phát hiện, hiển thị chồng lên luồng camera
- Văn bản được phát hiện hiển thị dưới dạng nhãn trên mỗi khung bao
- Bảng tham số ở bên phải để tinh chỉnh cài đặt phát hiện
5c. Xác Minh OCR Đang Đọc Chính Xác
Khi Live Preview đang bật, đặt bộ phận của bạn dưới camera và xác minh:
- Tất cả các vùng văn bản có được phát hiện không? Bạn sẽ thấy các khung màu tím xung quanh mỗi từ/cụm từ trong ROI.
- Văn bản có được đọc chính xác không? Các nhãn phải khớp với văn bản thực tế trên bộ phận.
- Có phát hiện sai không? Các vùng không phải văn bản có bị nhận dạng nhầm là văn bản không?
- Di chuyển bộ phận một chút. OCR có tiếp tục hoạt động ở các vị trí khác nhau không (việc này kiểm tra căn chỉnh)?
Nếu văn bản không được phát hiện hoặc bị đọc sai, hãy kiểm tra:
- Hướng của ROI khớp với hướng văn bản (xem Bước 4d)
- ROI được đặt đúng vị trí trên văn bản
- Chất lượng hình ảnh tốt (lấy nét sắc nét, độ tương phản tốt, ánh sáng đều)
- Thử điều chỉnh các tham số OCR (xem phần tiếp theo)
Bước 6: Tinh Chỉnh Tham Số OCR
Khi Live Preview được bật, bảng bên phải hiển thị bốn tham số có thể tinh chỉnh. Các tham số này điều khiển giai đoạn phát hiện văn bản (tìm vị trí của văn bản), chứ không phải giai đoạn nhận dạng (đọc nội dung).
| Tham Số | Mặc Định | Chức Năng |
|---|---|---|
| Text Segmentation Threshold | 0.10 | Mức độ tin cậy mà bộ phát hiện phải có rằng một vùng chứa văn bản. Giá trị cao hơn = phát hiện nghiêm ngặt hơn, ít báo động giả nhưng có thể bỏ sót văn bản mờ. Giá trị thấp hơn = nhạy hơn, bắt được văn bản mờ nhưng có thể có phát hiện sai. Phạm vi: 0.0 đến 1.0. |
| Unclip Ratio | 4.0 | Mức độ mở rộng các khung bao đã phát hiện ra ngoài từ đường viền văn bản. Giá trị cao hơn = khung lớn hơn. Tăng nếu các khung bị cắt ở rìa của các ký tự lớn. Giảm nếu các từ gần nhau bị gộp vào một khung. |
| Unclip Ceiling | 20 | Mức mở rộng pixel tối đa từ việc unclip. Điều này giới hạn sự tăng trưởng để các phép mở rộng tỷ lệ lớn trên văn bản lớn không tạo ra các khung khổng lồ. Tăng nếu văn bản lớn vẫn bị cắt ngay cả sau khi tăng Unclip Ratio. |
| Min Text Area | 500 | Diện tích tối thiểu (tính bằng pixel) cho một vùng văn bản được phát hiện. Bất kỳ thứ gì nhỏ hơn sẽ bị loại bỏ như nhiễu. Tăng nếu các vật thể nhỏ bị phát hiện như văn bản. Giảm nếu văn bản hợp lệ nhưng nhỏ bị lọc ra. |
Bắt đầu với các giá trị mặc định. Chỉ điều chỉnh nếu bạn thấy các vấn đề cụ thể trong Live Preview:
| Vấn Đề | Tham Số Cần Điều Chỉnh | Hướng |
|---|---|---|
| Các vùng không phải văn bản bị phát hiện như văn bản | Text Segmentation Threshold | Tăng |
| Văn bản hợp lệ bị bỏ sót | Text Segmentation Threshold | Giảm |
| Khung bao cắt rìa ký tự | Unclip Ratio | Tăng |
| Các từ gần nhau bị gộp vào một khung | Unclip Ratio | Giảm |
| Các khung trở nên quá lớn trên văn bản lớn | Unclip Ceiling | Giảm |
| Văn bản lớn vẫn bị cắt sau khi tăng Unclip Ratio | Unclip Ceiling | Tăng |
| Nhiễu/vật thể bị phát hiện như văn bản | Min Text Area | Tăng |
| Văn bản hợp lệ nhỏ bị lọc ra | Min Text Area | Giảm |
Các thay đổi tham số có hiệu lực ngay lập tức trong Live Preview, vì vậy bạn có thể tinh chỉnh lặp đi lặp lại. Các tham số này cũng áp dụng trong quá trình chụp sản xuất, không chỉ trong khi xem trước.
Bước 7: Kiểm Tra Với Hình Ảnh Đã Chụp
Sau khi tinh chỉnh các tham số bằng Live Preview, hãy xác thực OCR trên một loạt mẫu sản xuất.
7a. Sử Dụng Bảng Kiểm Tra
- Tắt Chế Độ Live Preview (bỏ chọn ô)
- Nhấp vào nút Test

- Nhấp vào Select From Library để chọn hình ảnh từ các lần kiểm tra đã chụp trước đó, hoặc nhấp vào Upload Captures để tải lên hình ảnh từ máy tính của bạn
- Kết quả kiểm tra hiển thị cho mỗi ROI:
- Detected Text (hiển thị theo định dạng monospace/code)
- Confidence (thẻ có mã màu: xanh lá trên 80%, cam trên 50%, đỏ dưới 50%)
- Detection Count (số lượng vùng văn bản được tìm thấy)
7b. Những Điều Cần Lưu Ý
- Tính nhất quán: OCR có đọc cùng một văn bản mỗi lần cho cùng một bộ phận không?
- Độ chính xác: Các chuỗi được phát hiện có khớp với văn bản thực tế trên bộ phận không?
- Điểm tin cậy (Confidence scores): Có liên tục trên 80% không? Độ tin cậy thấp thường cho thấy vấn đề về chất lượng hình ảnh.
- Trường hợp đặc biệt: Kiểm tra với các bộ phận có văn bản bị nhòe, mờ hoặc bị che khuất một phần.
Nếu điểm tin cậy liên tục dưới 80%, hãy xem lại cài đặt hình ảnh của bạn (Bước 2). Độ chính xác của OCR liên quan trực tiếp đến chất lượng hình ảnh. Không có lượng tinh chỉnh tham số nào có thể bù đắp cho một hình ảnh bị mờ hoặc thiếu ánh sáng.
Bước 8: Thiết Lập Quy Tắc Pass/Fail (IO Logic)
Sau khi OCR phát hiện văn bản chính xác, bạn cần xác định những gì cấu thành pass hoặc fail. Điều hướng đến tab IO Logic.
Chế Độ Basic
Chế Độ Basic cung cấp một giao diện dựa trên quy tắc đơn giản cho logic pass/fail của OCR. Không cần kiến thức về Node-RED.

Trang này hiển thị:
- Các tab Preview / Test ở bên trái (để hình dung kết quả theo quy tắc của bạn)
- Phần OCR Rules ở bên phải
- Nút Save & Deploy để kích hoạt các quy tắc
- Nút Advanced Mode để chuyển sang Node-RED
Tạo Quy Tắc
Nhấp vào + Add rule để tạo một quy tắc pass/fail. Mỗi quy tắc có ba trường:

| Trường | Mô tả |
|---|---|
| ROIs | (Các) ROI cần đánh giá. Nhấp để mở rộng và chọn "All ROIs" hoặc chọn các vùng cụ thể. |
| Operator | Phép so sánh thực hiện trên văn bản được phát hiện. |
| Text | Chuỗi văn bản dự kiến để so sánh. |
Các Toán Tử Có Sẵn
Nhấp vào danh sách thả xuống Operator để xem cả bốn tùy chọn:

| Toán tử | Hành vi | Ví dụ trường hợp sử dụng |
|---|---|---|
| = (equals) | Toàn bộ văn bản được phát hiện ghép lại phải khớp chính xác với văn bản dự kiến | Xác minh số sê-ri đọc chính xác là "SN-2025-0042" |
| != (not equals) | Văn bản ghép lại KHÔNG được khớp với văn bản dự kiến | Loại bỏ các bộ phận có mã đã biết là lỗi |
| includes | Văn bản ghép lại phải chứa văn bản dự kiến dưới dạng chuỗi con | Kiểm tra rằng nhãn có chứa từ "SAFETY" ở đâu đó |
| not includes | Văn bản ghép lại KHÔNG được chứa văn bản dự kiến | Đảm bảo mã sản phẩm đã ngừng sử dụng không xuất hiện |
Cách So Sánh Văn Bản
Khi một ROI chứa nhiều vùng văn bản được phát hiện (ví dụ: bộ phát hiện tìm thấy "LOT" và "2025" như các từ riêng biệt), tất cả các chuỗi văn bản riêng lẻ sẽ được nối lại bằng dấu cách trước khi so sánh.
Vì vậy, nếu bộ phát hiện tìm thấy ba vùng văn bản đọc là "LOT", "2025" và "A1", văn bản được nối lại sẽ trở thành "LOT 2025 A1". Quy tắc của bạn sẽ so sánh với chuỗi đã nối đầy đủ này.
Điều này có nghĩa là:
- Một quy tắc equals cho
"LOT 2025 A1"sẽ pass - Một quy tắc includes cho
"2025"sẽ pass - Một quy tắc equals chỉ cho
"LOT"sẽ fail (vì văn bản được nối bao gồm nhiều hơn chỉ "LOT")
Nhiều Quy Tắc
Bạn có thể thêm nhiều quy tắc bằng cách nhấp vào + Add rule một lần nữa. Tất cả các quy tắc đều sử dụng logic AND: mọi quy tắc phải pass thì kiểm tra OCR mới pass. Nếu bất kỳ quy tắc đơn lẻ nào fail, toàn bộ inspection sẽ fail.
Lựa Chọn ROI

Nhấp vào dropdown ROIs để chọn (các) vùng mà quy tắc áp dụng:
- All ROIs: Quy tắc đánh giá văn bản từ tất cả các vùng OCR được kết hợp
- Specific ROI: Mở rộng để chọn các ROI riêng lẻ theo tên (đây là lý do tại sao việc đặt tên ROI một cách mô tả ở Bước 4f rất quan trọng)
Lưu và Triển Khai
Sau khi cấu hình các quy tắc của bạn, nhấp vào Save & Deploy để kích hoạt chúng. Các quy tắc sẽ có hiệu lực ngay lập tức cho tất cả các inspection trong tương lai.
Chế Độ Nâng Cao (Node-RED)
Đối với logic pass/fail phức tạp hơn mà Basic Mode không thể xử lý, hãy chuyển sang Advanced Mode.
Nhấp vào nút Advanced Mode để xem hộp thoại xác nhận:

Hộp thoại giải thích:
- Advanced Mode sử dụng môi trường lập trình trực quan đầy đủ của Node-RED
- Bất kỳ quy tắc Basic Mode nào sẽ bị vô hiệu hóa
- Bạn có thể chuyển lại Basic Mode bất kỳ lúc nào
Nhấp vào Switch to Advanced Mode (hoặc nếu bạn đã ở Advanced Mode, nút sẽ hiển thị Basic Mode).

Trong Advanced Mode, bạn sẽ thấy một canvas flow Node-RED với các node được tạo sẵn bao gồm:
- All Block Outputs: Nhận kết quả từ tất cả các block AI (classification, segmentation, OCR, measurement)
- Check OCR (hoặc tương tự): Một function node chứa JavaScript để đánh giá kết quả OCR
- Classification Block Logic / Format Data for PLC / Trigger: Các node output khác cho việc tích hợp
- Inspection Pass/Fail: Xác định pass/fail cuối cùng
- Save to Library: Lưu trữ kết quả
OCR Output Payload trong Node-RED
Trong Advanced Mode, kết quả OCR có sẵn trong đối tượng msg.payload.ocr. Điều này cho phép bạn truy cập lập trình đầy đủ vào mọi phát hiện:
{
"predictions": [
{
"roi_id": 1,
"roi_name": "Serial Number",
"center_x_global": 450,
"center_y_global": 220,
"angle_global": 90,
"search_area_id": 1,
"detections": [
{
"text": "SN-2025-0042",
"confidence": 0.95,
"roi_bbox": {
"x": 10,
"y": 5,
"width": 120,
"height": 30,
"angle": 0
},
"global_bbox": {
"x": 450,
"y": 220,
"width": 120,
"height": 30,
"angle": 90
}
}
]
}
]
}
| Trường | Mô tả |
|---|---|
| roi_id | ID dạng số của ROI đã tạo ra kết quả này |
| roi_name | Tên bạn đã đặt cho ROI (ví dụ: "Serial Number") |
| center_x_global / center_y_global | Vị trí trung tâm của ROI trong tọa độ toàn khung hình |
| angle_global | Góc xoay của ROI trong toàn khung hình |
| search_area_id | Loại inspection / vùng tìm kiếm mà ROI này thuộc về |
| detections | Mảng các phát hiện văn bản riêng lẻ được tìm thấy trong ROI này |
| detections[].text | Chuỗi văn bản được nhận dạng |
| detections[].confidence | Độ tin cậy nhận dạng từ 0.0 đến 1.0 (được giới hạn) |
| detections[].roi_bbox | Vị trí bounding box tương đối so với gốc của ROI crop |
| detections[].global_bbox | Vị trí bounding box trong toàn khung hình camera (tính đến xoay và căn chỉnh ROI) |
Sử dụng msg.payload.ocr.predictions[0].detections.map(d => d.text).join(" ") để lấy chuỗi văn bản đã nối giống như Basic Mode sử dụng để so sánh.
Với Advanced Mode, bạn có thể:
- Áp dụng các mẫu regex cho văn bản được phát hiện bằng JavaScript
- Lọc các phát hiện theo ngưỡng độ tin cậy
- Kết hợp kết quả OCR với kết quả classification/segmentation cho logic phức tạp
- Định dạng văn bản OCR cho đầu ra PLC (ví dụ: gửi số serial được phát hiện qua EtherNet/IP)
- Gửi thông điệp tùy chỉnh đến Microsoft Teams hoặc email dựa trên nội dung OCR
Để có hướng dẫn chi tiết về Node-RED, xem Node-RED Basics.
Bạn có thể chuyển đổi giữa chế độ Basic và Advanced bất kỳ lúc nào bằng nút chuyển đổi ở đầu trang IO Logic. Khi chuyển sang Basic Mode, bất kỳ logic Node-RED nào đã triển khai sẽ bị vô hiệu hóa và được thay thế bằng các quy tắc Basic Mode. Khi chuyển lại, flow Node-RED sẽ được khôi phục.
Bước 9: Triển Khai Recipe
Sau khi thiết lập OCR đã hoàn tất và được kiểm tra:
- Điều hướng trở lại Recipe Editor (nhấp vào Recipe Editor ở thanh bên trái)
- Nhấp vào nút Deploy Recipe màu tím ở phía dưới bên phải
- Recipe hiện đã được kích hoạt và đang chạy kiểm tra
Xem Kết Quả
HMI
Trang HMI hiển thị kết quả kiểm tra trực tiếp. Khi OCR được kích hoạt, bạn sẽ thấy:
- Luồng camera trực tiếp với các khung bao quanh màu tím xung quanh văn bản được phát hiện
- Nhãn văn bản hiển thị nội dung đã đọc được
- Trạng thái Pass/fail dựa trên các quy tắc IO Logic của bạn
- Thống kê đang chạy: tổng số lần kiểm tra, đạt, lỗi, tỷ lệ phần trăm thành phẩm

Library
Điều hướng đến Library ở thanh bên trái để xem lại các kết quả đã lưu từ các lần chụp trước. Mỗi mục chụp hiển thị:
- Hình ảnh đã chụp với lớp phủ OCR
- Văn bản được phát hiện theo từng ROI
- Điểm tin cậy
- Kết quả Pass/fail
Khắc Phục Sự Cố
Không phát hiện được văn bản
| Nguyên nhân có thể | Cách khắc phục |
|---|---|
| ROI không được đặt trên văn bản | Đặt lại vị trí ROI trong Inspection Setup |
| Hướng ROI không khớp với văn bản | Xoay ROI để căn chỉnh với hướng văn bản (Bước 4d) |
| Văn bản quá nhỏ trong hình ảnh | Di chuyển camera lại gần hơn hoặc sử dụng ống kính có tiêu cự dài hơn |
| Văn bản quá nhỏ so với ROI | Thu hẹp ROI sát hơn quanh vùng văn bản |
| Min Text Area quá cao | Giảm tham số Min Text Area |
| Ánh sáng kém / độ tương phản thấp | Cải thiện ánh sáng để tối đa hóa độ tương phản giữa văn bản và nền |
| Văn bản bị mờ | Điều chỉnh tiêu cự trên ống kính C-mount và xác minh giá đỡ camera ổn định |
| Chưa thiết lập alignment | Phát hiện văn bản yêu cầu alignment. Thiết lập template alignment (Bước 3) |
Văn bản được phát hiện sai (đọc sai)
| Nguyên nhân có thể | Cách khắc phục |
|---|---|
| Hướng ROI không khớp với hướng văn bản | Đây là nguyên nhân số 1. Xoay ROI để căn chỉnh với hướng văn bản (Bước 4d) |
| Chất lượng hình ảnh thấp hoặc nhiễu | Tăng exposure, giảm gain, cải thiện ánh sáng |
| Text Segmentation Threshold quá thấp | Tăng lên để lọc bỏ các phát hiện văn bản sai |
| Các vùng văn bản chồng lấn hợp nhất thành một phát hiện | Giảm Unclip Ratio để ngăn việc hợp nhất khung |
| Nhiều dòng văn bản trong một ROI | Tạo các ROI riêng biệt cho từng dòng nếu thứ tự đọc quan trọng |
Độ tin cậy OCR liên tục thấp
| Nguyên nhân có thể | Cách khắc phục |
|---|---|
| Độ đồng đều của ánh sáng kém | Đảm bảo chiếu sáng đồng đều trên toàn bộ vùng văn bản |
| Lóa hoặc phản chiếu trên văn bản (đặc biệt là nhãn bóng) | Điều chỉnh góc chiếu sáng để loại bỏ phản chiếu gương. Cân nhắc sử dụng ánh sáng khuếch tán. |
| Phông chữ rất nhỏ hoặc cách điệu cao | Di chuyển camera lại gần hơn hoặc sử dụng ống kính có tiêu cự dài hơn để tăng kích thước văn bản trong hình ảnh |
| Văn bản bị hỏng, phai màu hoặc in một phần | OCR chỉ có thể đọc những gì camera nhìn thấy. Nếu văn bản bị xuống cấp về mặt vật lý, độ chính xác sẽ thấp hơn. |
| Gain cao trong cài đặt hình ảnh | Giảm gain. Gain cao thêm nhiễu trông giống như các artifact của văn bản. |
Các quy tắc Pass/fail không hoạt động như mong đợi
| Nguyên nhân có thể | Cách khắc phục |
|---|---|
| Văn bản được nối khác với mong đợi | Bật Live Preview và kiểm tra chính xác văn bản nào đang được phát hiện. Lưu ý, nhiều phát hiện được nối với nhau bằng dấu cách. |
| Sử dụng "equals" khi "includes" phù hợp hơn | Nếu bạn chỉ quan tâm đến một chuỗi con, hãy sử dụng "includes" thay vì "equals" |
| Quy tắc chưa được triển khai | Nhấp vào Save & Deploy sau khi thay đổi quy tắc trong Basic Mode |
| Chọn sai ROI trong quy tắc | Kiểm tra danh sách thả xuống ROIs trong quy tắc của bạn để đảm bảo nó nhắm đúng vùng |
Hạn Chế
- Tối đa 1 khối OCR mỗi recipe (bạn có thể có nhiều ROI trong khối đó)
- Chỉ tối ưu cho mô hình tiếng Anh: Mô hình được huấn luyện sẵn được tối ưu hóa cho văn bản in dựa trên ký tự Latin. Văn bản viết tay, chữ thảo hoặc các hệ chữ không phải Latin (Trung Quốc, Nhật Bản, Hàn Quốc, Ả Rập) không được hỗ trợ.
- Không hỗ trợ regex hoặc khớp mẫu trong Basic Mode: Các quy tắc pass/fail sử dụng phép so sánh chuỗi đơn giản (equals, not equals, includes, not includes). Đối với các mẫu xác thực phức tạp (ví dụ: khớp "SN-####-####"), hãy sử dụng Advanced Mode (Node-RED) với regex JavaScript tùy chỉnh.
- Không có bộ ký tự do người dùng cấu hình: Từ điển 480 ký tự của mô hình là cố định. Ví dụ, bạn không thể giới hạn nhận dạng chỉ với chữ số. Hãy sử dụng các quy tắc pass/fail để xác thực định dạng mong muốn.
- Không đảm bảo thứ tự văn bản: Khi nhiều vùng văn bản được phát hiện trong một ROI, chúng được nối theo thứ tự phát hiện (theo contour), không nhất thiết theo thứ tự đọc (trái sang phải, trên xuống dưới). Nếu thứ tự đọc quan trọng, hãy sử dụng các ROI riêng cho từng dòng văn bản.
- Chỉ sử dụng mô hình được huấn luyện sẵn: Không giống như classification và segmentation, mô hình OCR không thể được huấn luyện lại hoặc tinh chỉnh cho các phông chữ hoặc kiểu văn bản cụ thể của bạn. Nó sử dụng mô hình OCR được huấn luyện sẵn có sẵn.
Xem Thêm
- Tạo Lần Kiểm Tra Đầu Tiên - Hướng dẫn đầy đủ về tạo recipe
- Cài Đặt Hình Ảnh - Hướng dẫn thiết lập hình ảnh chi tiết
- Căn Chỉnh - Tìm hiểu sâu về căn chỉnh template
- Vùng Quan Tâm (ROIs) - Kích thước và chiến lược ROI
- Thiết Lập Kiểm Tra và Các Loại ROI - Tham khảo các loại ROI
- Kiến Thức Cơ Bản về Node-RED - Lập trình logic IO nâng cao
- Nguyên Tắc Cơ Bản Thiết Lập Hình Ảnh - Lý thuyết về chiếu sáng và chất lượng hình ảnh