Skip to main content

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 mô hình OCR đã được huấn luyện trước. 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 lập tức.

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ó hiện diện và đọc được
  • Đọc mã ngày tháng/hạn sử dụng để truy xuất nguồn gốc
  • Kiểm tra mã linh kiện trên các bộ phận trong quá trình lắp ráp
Chỉ dành cho OV80i

OCR chỉ có sẵn trên OV80i. OV20i và OV10i không hỗ trợ OCR.


OCR Hoạt Động Như Thế Nào

OV80i sử dụng pipeline AI hai giai đoạn để nhận dạng văn bản:

  1. Text Detection: Tìm vị trí của văn bản trong ROI. Trả về các hộp giới hạn (bounding box) xung quanh mỗi từ hoặc vùng văn bản được phát hiện.
  2. Text Recognition: Đọc các ký tự bên trong mỗi hộp giới hạn đã phát hiện và trả về chuỗi văn bản kèm điểm số 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, các 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ệ
  • Các toán tử toán học
ghi chú

Bộ ký tự là cố định và không thể tùy chỉnh. Mô hình hỗ trợ khoảng 480 ký tự, bao phủ hầu hết văn bản công nghiệp được in trong 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 một camera đã được:

  • Lắp đặt cố định và ổn định
  • Kết nối với mạng của bạn và có thể truy cập trong trình duyệt
  • 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 điều 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, các vùng quan tâm (ROI), mô hình AI và quy tắc đầu ra.

  1. Điều hướng đến All Recipes ở thanh bên trái
  2. Nhấp vào + New ở góc trên bên phải
  3. Đặt cho recipe của bạn một cái tên mô tả (ví dụ: "Serial Number Check", "Label Verification")
  4. Nhấp Activate để đặt nó làm recipe đang hoạt động, sau đó nhấp Edit để mở Recipe Editor

Tổng quan Recipe Editor hiển thị tất cả các block

Recipe Editor hiển thị toàn bộ pipeline kiểm tra. Bạn sẽ làm việc qua nó 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)

Để biết 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 cho OCR chính xác. Văn bản phải hiển thị rõ ràng với độ tương phản cao.

  1. Nhấp Configure Imaging hoặc điều hướng đến tab Imaging Setup
  2. Điều chỉnh các cài đặt sau trong khi quan sát bản xem trước trực tiếp:
Cài ĐặtMục Tiêu Cho OCR
ExposureĐủ sáng để thấy rõ tất cả văn bản. Quá tối sẽ làm ký tự biến mất vào nền. Quá sáng sẽ làm nhãn trắng bị cháy sáng.
GainGiữ ở mức thấp nhất có thể. Gain cao sẽ tạo ra nhiễu giống như các artifact văn bản đối với detector.
GammaĐiều chỉnh để cải thiện độ tương phản giữa văn bản và nền.
FocusVă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 của ống kính C-mount.
Ánh sáng rất quan trọng cho OCR

Độ 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 hiển thị 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 đổ trên các ký tự
  • Lóa trên các nhãn bóng
  • Thiếu sáng làm cho văn bản khó phân biệt với nền
tip

Phóng to vào 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 thể.

Để có hướng dẫn chi tiết về tất cả cá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 hướng dẫn camera 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 chính xác cùng một vị trí trên băng tải hoặc đồ gá.

  1. Điều hướng đến tab Template Image and Alignment
  2. Đặt bộ phận vào trường nhìn của camera
  3. Nhấp vào Capture Template để chụp ảnh tham chiếu
  4. Vẽ 2-3 vùng template nhỏ trên các đặc điểm luôn hiện diện và dễ nhận dạng (ví dụ: góc cạnh, logo, lỗ lắp ráp)
ghi chú

Đặt các vùng template càng xa nhau càng tốt trên bộ phận. Điều này làm giảm đáng kể độ rung góc trong quá trình 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 tuyệt vời.

cảnh báo

Nếu bạn bỏ qua bước căn chỉnh, các ROI của OCR sẽ được cố định ở 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 khi sử dụng trong sản xuất.

Để biết hướng dẫn chi tiết về căn chỉnh template, 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 cần tìm văn bản. Đây là bước quan trọng nhất đối với độ chính xác của OCR.

4a. Điều Hướng Đến Inspection Setup

  1. Nhấp vào tab Inspection Setup trong Recipe Editor
  2. Bạn sẽ thấy Inspection Editor cùng với hình ảnh template

4b. Thêm Model OCR

  1. Ở bảng bên phải, tìm phần Models
  2. Nếu bạn không thấy model OCR được liệt kê, nhấp vào nút Add ở dưới cùng và chọn OCR
  3. Model OCR sẽ xuất hiện trong danh sách Models
ghi chú

Bạn chỉ có thể có một khối OCR 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 khu vực khác nhau của bộ phận.

4c. Tạo ROI Cho OCR

  1. Đảm bảo dòng model OCR được chọn (được làm nổi bật) trong danh sách Models
  2. Nhấp vào Add ROI trong phần Region of Interest
  3. Một ROI hình chữ nhật mới sẽ xuất hiện trên hình ảnh
  4. Kéo ROI để định vị nó trên văn bản bạn muốn đọc
  5. Thay đổi kích thước bằng cách kéo các tay nắm ở góc

Inspection Setup với ROI OCR được vẽ trên văn bản

4d. Đặt Hướng Của ROI

Hướng ROI PHẢI Khớp Với Hướng Văn Bản

Đây là điều quan trọng nhất cần 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 sử dụng góc của ROI, sau đó xử lý phần cắt như thể văn bản là nằm ngang. Nếu góc ROI 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 được 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 ROI:

  1. Chọn ROI bằng cách nhấp vào nó
  2. Sử dụng tay nắm xoay ở góc của ROI, HOẶC
  3. Đặ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), XY (vị trí), và angle (góc) tính bằng độ.

ROI được chọn hiển thị vị trí, kích thước và góc 90.96 độ

4e. Định Kích Thước ROI Chính Xác

  • Làm cho ROI bao sát nhất có thể quanh vùng văn bản. Phần nền thừa tạo ra nhiễu và có thể gây 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 ở các cạnh.
  • 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 cho mỗi vùng.
tip

Nếu bạn cần đọc văn bản từ nhiều vùng của bộ phận (ví dụ: số serial 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 việc cấu hình các 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 mà bạn cần đọc. Mỗi ROI sẽ có tên riêng trong danh sách Region of Interest. Đổi tên chúng thành tên mô tả (ví dụ: "Serial Number", "Date Code", "Part Label") bằng cách nhấp đúp vào tên.

tip

Sử dụng copy-paste để nhân bản các 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 nguồn cấp camera ở bên trái và bảng cài đặt ở bên phải.

Trang tổng quan OCR Block

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 cần 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 ở góc trên bên phải. Camera sẽ bắt đầu xử lý các khung hình theo thời gian thực.

OCR Live Preview với bảng tham số

Khi Live Preview hoạt động, bạn sẽ thấy:

  • Processing Time: Thời gian mô hình OCR mất cho mỗi khung hình
  • Latency: Tổng thời gian khứ hồi bao gồm chụp ảnh và hiển thị
  • Hộp giới hạn màu tím xung quanh các vùng văn bản được phát hiện, phủ trên nguồn cấp camera
  • Văn bản được phát hiện hiển thị dưới dạng nhãn trên mỗi hộp giới hạn
  • 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 Đúng

Khi Live Preview đang bật, đặt bộ phận của bạn dưới camera và xác minh:

  1. Tất cả các vùng văn bản đã được phát hiện chưa? Bạn sẽ thấy các hộp màu tím xung quanh từng từ/cụm từ trong ROI.
  2. Văn bản có được đọc đúng không? Các nhãn phải khớp với văn bản thực tế trên bộ phận.
  3. Có phát hiện sai không? Có vùng nào không phải văn bản bị nhận diện nhầm thành văn bản không?
  4. 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 (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 Các 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), không phải giai đoạn nhận dạng (đọc nội dung).

Tham SốMặc ĐịnhChức Năng
Text Segmentation Threshold0.10Mứ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 kết quả dương tính giả nhưng có thể bỏ sót văn bản mờ nhạt. Giá trị thấp hơn = nhạy hơn, bắt được văn bản mờ nhạt nhưng có thể có phát hiện sai. Phạm vi: 0.0 đến 1.0.
Unclip Ratio4.0Mức độ mở rộng các hộp giới hạn được phát hiện ra ngoài đường viền văn bản. Giá trị cao hơn = hộp lớn hơn. Tăng nếu các hộp bị cắt ở cạnh của các ký tự lớn. Giảm nếu các từ gần nhau bị gộp thành một hộp.
Unclip Ceiling20Mở rộng pixel tối đa khi unclip. Giới hạn này ngăn các mở rộng tỷ lệ lớn trên văn bản lớn tạo ra các hộp 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 Area500Diệ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 cứ thứ gì nhỏ hơn sẽ bị loại bỏ như nhiễu. Tăng nếu các tạp chất nhỏ bị phát hiện là văn bản. Giảm nếu văn bản nhỏ nhưng hợp lệ bị lọc ra.
Khi nào nên điều chỉnh các tham số

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ỉnhHướng
Vùng không phải văn bản bị phát hiện là văn bảnText Segmentation ThresholdTăng
Văn bản hợp lệ bị bỏ sótText Segmentation ThresholdGiảm
Hộp giới hạn cắt cạnh ký tựUnclip RatioTăng
Các từ gần nhau gộp thành một hộpUnclip RatioGiảm
Hộp phát triển quá lớn trên văn bản lớnUnclip CeilingGiảm
Văn bản lớn vẫn bị cắt sau khi tăng Unclip RatioUnclip CeilingTăng
Nhiễu/tạp chất bị phát hiện là văn bảnMin Text AreaTăng
Văn bản nhỏ hợp lệ bị lọc raMin Text AreaGiả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 quá trình 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 các mẫu sản xuất.

7a. Sử Dụng Bảng Test

  1. Tắt chế độ Live Preview (bỏ chọn ô đánh dấu)
  2. Nhấp vào nút Test

Bảng Test OCR Block với các tùy chọn Select From Library và Upload

  1. Nhấp vào Select From Library để chọn hình ảnh từ các lần kiểm tra đã được chụp trước đó, hoặc nhấp vào Upload Captures để tải hình ảnh lên từ máy tính của bạn
  2. Kết quả kiểm tra hiển thị cho mỗi ROI:
    • Detected Text (hiển thị ở đị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 (có bao nhiêu 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 confidence: Có luôn trên 80% không? Confidence thấp thường cho thấy vấn đề về chất lượng hình ảnh.
  • Các 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.
cẩn trọng

Nếu điểm confidence luôn 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 OCR liên quan trực tiếp đến chất lượng hình ảnh. Không có mức độ tinh chỉnh tham số nào có thể bù đắp cho một hình ảnh bị mờ hoặc thiếu 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 điều gì cấu thành một pass hoặc fail. Điều hướng đến tab IO Logic.

Basic Mode

Basic Mode cung cấp 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.

Phần Basic Mode Pass/Fail & IO Logic với OCR Rules

Trang hiển thị:

  • Các tab Preview / Test ở bên trái (để trực quan hóa kết quả so với các 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 Một 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:

Add rule hiển thị dropdown ROIs, dropdown Operator và ô nhập Text

TrườngMô 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ể.
OperatorPhép so sánh thực hiện trên văn bản được phát hiện.
TextChuỗi văn bản mong đợi để so sánh.

Các Operator Có Sẵn

Nhấp vào dropdown Operator để xem tất cả bốn tùy chọn:

Dropdown Operator hiển thị equals, not equals, includes, not includes

OperatorHành viVí dụ trường hợp sử dụng
= (equals)Tất cả 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 mong đợiXác minh số serial đọc chính xác là "SN-2025-0042"
!= (not equals)Văn bản đã ghép KHÔNG được khớp với văn bản mong đợiLoại bỏ các bộ phận có mã đã biết là lỗi
includesVăn bản đã ghép phải chứa văn bản mong đợi như một chuỗi conKiểm tra rằng nhãn có chứa từ "SAFETY" ở đâu đó
not includesVăn bản đã ghép KHÔNG được chứa văn bản mong đợiĐả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

Quan trọng: Hành vi nối 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ư những từ riêng biệt), tất cả các chuỗi văn bản riêng lẻ sẽ được nối với nhau bằng khoảng trắng 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 được là "LOT", "2025" và "A1", văn bản được nối sẽ trở thành "LOT 2025 A1". Quy tắc của bạn sẽ so sánh với toàn bộ chuỗi đã được nối này.

Điều này có nghĩa là:

  • Một quy tắc equals cho "LOT 2025 A1" sẽ đạt
  • Một quy tắc includes cho "2025" sẽ đạt
  • Một quy tắc equals chỉ cho "LOT" sẽ không đạt (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 sử dụng logic AND: mọi quy tắc đều phải đạt thì kiểm tra OCR mới đạt. Nếu bất kỳ quy tắc đơn lẻ nào không đạt, toàn bộ cuộc kiểm tra sẽ thất bại.

Lựa Chọn ROI

Menu thả xuống ROIs hiển thị tùy chọn All ROIs

Nhấp vào menu thả xuống ROIs để chọn (các) vùng mà quy tắc sẽ á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 từng 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 là quan trọng)

Lưu và Triển Khai

Sau khi cấu hình các quy tắc, 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 cuộc kiểm tra trong tương lai.


Chế Độ Nâng Cao (Node-RED)

Đối với logic pass/fail phức tạp hơn mà Chế Độ Cơ Bản 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 xác nhận Chế Độ Cơ Bản giải thích về việc chuyển đổi

Hộp thoại giải thích:

  • Advanced Mode sử dụng môi trường lập trình trực quan Node-RED đầy đủ
  • Bất kỳ quy tắc Chế Độ Cơ Bản nào cũng sẽ bị vô hiệu hóa
  • Bạn có thể chuyển trở lại Chế Độ Cơ Bản bất cứ lúc nào

Nhấp vào Switch to Advanced Mode (hoặc nếu bạn đã ở Chế Độ Nâng Cao, nút sẽ hiển thị Basic Mode).

Luồng Node-RED Chế Độ Nâng Cao với nút Check OCR

Trong Chế Độ Nâng Cao, bạn sẽ thấy một canvas luồng Node-RED với các node được xây dựng sẵn bao gồm:

  • All Block Outputs: Nhận kết quả từ tất cả các khối 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 đầu ra khá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ả

Payload Đầu Ra OCR trong Node-RED

Trong Chế Độ Nâng Cao, kết quả OCR có sẵn trong đối tượng msg.payload.ocr. Điều này cung cấp cho bạn quyề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ườngMô tả
roi_idID dạng số của ROI đã tạo ra kết quả này
roi_nameTên bạn đặt cho ROI (ví dụ: "Serial Number")
center_x_global / center_y_globalVị trí trung tâm của ROI theo tọa độ toàn khung hình
angle_globalGóc xoay của ROI trong toàn khung hình
search_area_idLoại kiểm tra / vùng tìm kiếm mà ROI này thuộc về
detectionsMảng các phát hiện văn bản riêng lẻ được tìm thấy trong ROI này
detections[].textChuỗ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_bboxVị trí bounding box tương đối với gốc cắt ROI
detections[].global_bboxVị trí bounding box trong toàn bộ khung hình camera (tính đến việc xoay và căn chỉnh ROI)
tip

Sử dụng msg.payload.ocr.predictions[0].detections.map(d => d.text).join(" ") để nhận được cùng chuỗi văn bản đã được nối mà Chế Độ Cơ Bản sử dụng để so sánh.

Với Chế Độ Nâng Cao, 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 tin nhắn 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.

Chuyển đổi giữa các chế độ

Bạn có thể chuyển đổi giữa Chế Độ Cơ Bản và Nâng Cao bất kỳ lúc nào bằng nút chuyển ở đầu trang IO Logic. Khi chuyển sang Chế Độ Cơ Bản, bất kỳ logic Node-RED nào đã được triển khai sẽ bị vô hiệu hóa và được thay thế bằng các quy tắc Chế Độ Cơ Bản. Khi chuyển trở lại, luồng 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:

  1. Quay lại Recipe Editor (nhấp vào Recipe Editor ở thanh bên trái)
  2. Nhấp vào nút màu tím Deploy Recipe ở góc dưới bên phải
  3. Recipe hiện đang hoạt động và 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 đang hoạt động, bạn sẽ thấy:

  • Luồng camera trực tiếp với các hộp bao quanh màu tím xung quanh văn bản được phát hiện
  • Các 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 yield

Chế độ xem HMI hiển thị kết quả kiểm tra OCR trực tiếp

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 (confidence)
  • 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Định vị lại ROI trong Inspection Setup
Hướng của ROI không khớp với văn bảnXoay ROI để căn chỉnh theo hướng của văn bản (Bước 4d)
Văn bản quá nhỏ trong hình ảnhDi 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 ROIThu hẹp ROI gần sát khu vực chứa văn bản
Min Text Area quá caoGiảm tham số Min Text Area
Ánh sáng kém / độ tương phản thấpCả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 nhận camera được gắn chắc chắn
Chưa thiết lập alignmentPhát hiện văn bản yêu cầu alignment. Thiết lập template alignment (Bước 3)

Phát hiện sai văn bản (đọc nhầm)

Nguyên nhân có thểCách khắc phục
Hướng của 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 theo hướng của văn bản (Bước 4d)
Chất lượng hình ảnh kém hoặc có nhiễuTăng exposure, giảm gain, cải thiện ánh sáng
Text Segmentation Threshold quá thấpTă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ấp bị gộp thành một phát hiệnGiảm Unclip Ratio để ngăn các hộp bị gộp lại
Nhiều dòng văn bản trong một ROITạ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 ánh sáng kémĐảm bảo chiếu sáng đều trên toàn bộ vùng văn bản
Chói hoặc phản xạ 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 xạ 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 caoDi chuyển camera lại gần hơn hoặc sử dụng ống kính 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ư hỏng, phai mờ hoặc in một phầnOCR chỉ có thể đọc những gì camera nhìn thấy. Nếu văn bản bị xuống cấp vật lý, độ chính xác sẽ thấp hơn.
Gain cao trong cài đặt hình ảnhGiảm gain. Gain cao sẽ thêm nhiễu trông giống như artifact 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 đợiBậ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 sẽ được nối với nhau bằng khoảng trắng.
Sử dụng "equals" trong khi "includes" phù hợp hơnNếu bạn chỉ quan tâm đến một chuỗi con, hãy dùng "includes" thay vì "equals"
Quy tắc chưa được triển khaiNhấp vào Save & Deploy sau khi thay đổi quy tắc trong Basic Mode
Chọn sai ROI trong quy tắcKiểm tra menu 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 trước được tối ưu cho văn bản in dựa trên ký tự Latinh. Văn bản viết tay, chữ thảo hoặc các hệ chữ viết không phải Latinh (Trung, Nhật, Hàn, Ả Rập) không được hỗ trợ.
  • Không có regex hoặc đối sánh mẫu trong Basic Mode: Các quy tắc pass/fail sử dụng 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ụ: đối sánh "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 đợi.
  • 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 đường viền), không nhất thiết theo thứ tự đọc (trái-phải, trên-dưới). Nếu thứ tự đọc quan trọng, hãy sử dụng các ROI riêng biệt cho từng dòng văn bản.
  • Chỉ mô hình huấn luyện trước: Không giống như phân loại và phân đoạn, mô hình OCR không thể được huấn luyện lại hoặc tinh chỉnh trên 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 huấn luyện trước được tích hợp sẵn.

Xem Thêm