Skip to main content

AI-POWERED DOCS

What do you want to know?

Classification: một nhãn cho mỗi vùng

Một classifier nhìn vào một vùng đã được cắt và trả lời một câu hỏi duy nhất: đây thuộc nhóm nào? Pass hay fail. Trống hay đầy. Đỏ, xanh lá, hay xanh dương. Đây là loại kiểm tra đơn giản nhất, nhanh nhất, và là lựa chọn mặc định phù hợp trừ khi bạn cần biết vị trí của lỗi.

Cấu hình cho một classifier được xây dựng trên một hệ thống phân cấp đơn giản: Types sở hữu Classes, và Types được đóng dấu lên hình ảnh dưới dạng ROI.

Hãy nghĩ về nó như một hệ thống con dấu cao su. Inspection Type là chính con dấu (thiết kế). Các ROI là các dấu bạn đóng lên trang giấy (hình ảnh). Mỗi dấu đều thừa hưởng cùng một thiết kế, cùng một danh sách class, và cùng một mô hình đã được huấn luyện.

Ba khái niệm

Trước khi bạn có thể huấn luyện một mô hình AI, camera cần biết ở đâu để tìm, những kết quả có thể là gì, và mỗi vùng cắt nên được đánh giá như thế nào. Ba câu hỏi đó tương ứng với ba khái niệm, và chúng được lồng vào nhau theo một cách rất cụ thể.

01 / Concept

Inspection Type

A named bucket. Holds one shared dataset, one shared list of classes, and one trained AI model.

02 / Concept

Classes

The vocabulary of possible outcomes for this inspection. Defined once on the type.

03 / Concept

Region of Interest (ROI)

A rectangle drawn on the image. Many ROIs can share one type and, therefore, one dataset and one model.

Mô Hình Tư Duy: một type sở hữu các class và các ROI

Một Inspection Type là một bucket. Nó chứa một bộ dữ liệu chung, một danh sách class chung, và một mô hình AI đã được huấn luyện. Sau đó bạn đóng dấu bucket đó lên hình ảnh ở nhiều vị trí, các dấu đó là các ROI. Mỗi ROI cùng type đều thừa hưởng cùng các class và được đánh giá bởi cùng một mô hình.

INSPECTION TYPEone bucket1 dataset · 1 model · N ROIsCLASSES · DEFINED ONCEclass_aclass_bclass_c+ addAdd or edit classes here andevery ROI on this type updates.Single source of truth.ROIs · PLACED ON IMAGEroi_1roi_2roi_3roi_4roi_5+ add ROIEach ROI is a tight crop at a specificlocation, evaluated by the same model.All share one dataset.classes applied to ROIs
  • Inspection Type là bucket.
  • Classes là từ vựng cho các kết quả.
  • ROI là một vị trí trên hình ảnh.

Đối với một classifier: một nhãn cho mỗi ROI, được chọn từ danh sách class

Một classifier nhận mỗi vùng cắt ROI và đặt một câu hỏi duy nhất: vùng này trông giống class nào? Có hay không có. Pass hay fail. Tốt, trầy xước, hay nứt. Đầu ra cho mỗi ROI là một tên class cộng với một điểm tin cậy (confidence score), một câu trả lời phân loại rõ ràng mà phần còn lại của pipeline có thể hành động dựa trên đó.

Ví dụ thực tế: kiểm tra sự hiện diện của ốc vít trên PCB

Hãy xem xét một bo PCB với sáu vị trí ốc vít. Bốn ốc vít có mặt, một bị thiếu, một bị hỏng. Bạn sẽ cấu hình như sau:

OV-MCU · v2Screw_1 · presentScrew_2 · absentScrew_3 · presentScrew_4 · presentScrew_5 · presentScrew_6 · damaged
  • Type: Screws (6 ROI, classifier)
  • Classes: present, absent, damaged
  • ROIs: Screw_1 đến Screw_6, mỗi cái được gán một trong ba class

Đầu ra cho mỗi ROI là một nhãn cộng với độ tin cậy:

ROILabelConfidence
Screw_1present0.98
Screw_2absent0.94
Screw_3present0.97
Screw_4present0.96
Screw_5present0.95
Screw_6damaged0.82

Ba điều cần ghi nhớ từ ví dụ này:

  1. Một nhãn cho mỗi ROI. Classifier gán chính xác một class cho mỗi vùng cắt, một thao tác chọn từ dropdown, không phải tác vụ tô vẽ. Đầu ra là class_name cộng với một confidence score.
  2. Type là chủ sở hữu. Cả sáu ROI dùng chung bộ dữ liệu Screws. Chụp một ảnh sẽ cho bạn sáu mẫu huấn luyện mới, và một mô hình đã huấn luyện sẽ quyết định cả sáu.
  3. ROI chỉ là vị trí. Vẽ thật khít (dưới 512 × 512 px). Sử dụng Duplicate để đóng dấu Screw_1 → Screw_2 → Screw_3, mỗi cái sẽ tự động thừa hưởng danh sách class.
OV80i hỗ trợ cả classifier và segmenter

Trên OV80i, một recipe duy nhất có thể kết hợp nhiều loại mô hình. Sử dụng classifier cho các verdict và các danh mục đã biết, sau đó thêm một segmenter bên trên cho các phép đo ở mức pixel. Xem Understanding Segmenter cho phần còn lại của câu chuyện.

Đi sâu: cách các class hoạt động

Classes thuộc về type, không thuộc về ROI

Đây là điều quan trọng nhất cần ghi nhớ. Classes là một thuộc tính của Inspection Type, có nghĩa là việc thêm hoặc xóa một class sẽ tự động thay đổi các tùy chọn nhãn cho mọi ROI sử dụng type đó.

TYPE · SCREWS · CLASSESpresentabsentdamagedstripped_headNEWAdd a class here →Screw_1LABELpresent ▾other options:· absent · damaged· stripped_head ← newScrew_2LABELabsent ▾other options:· present · damaged· stripped_head ← newScrew_3LABELpresent ▾other options:· absent · damaged· stripped_head ← new…AND EVERY OTHER ROI OF THIS TYPE
  1. Định nghĩa một lần. Nhấp + Add class trong panel Classes. Đặt tên cho nó (ví dụ: stripped_head) và một màu.
  2. Lan truyền tức thì. Class mới xuất hiện trong dropdown trên mọi ROI của type đó. Không cần cấu hình riêng từng ROI.
  3. Gán nhãn lại khi cần. Các hình ảnh huấn luyện hiện có giữ nguyên nhãn của chúng; bạn có thể xem lại bất kỳ hình ảnh nào và phân loại lại sang class mới.
  4. Giữ cho gọn. Bắt đầu với tập class nhỏ nhất phản ánh được các quyết định của bạn. Hai class (pass / fail) thường hoạt động tốt hơn năm class mơ hồ.

Đi sâu: cách các ROI hoạt động

Quy Tắc Vàng của ROI

Vùng nhỏ hơn sẽ thắng. Làm cho mỗi ROI vừa đủ lớn để chứa đặc trưng. ROI nhỏ hơn có nghĩa là cần ít dữ liệu huấn luyện hơn, lặp nhanh hơn, và quyết định AI chính xác hơn, đặc trưng sẽ chiếm ưu thế trong vùng cắt thay vì bị lạc trong nền, và không có gì bị thu nhỏ kích thước.

Nhỏ, cụ thể, và nhiều

Một ROI cho camera biết vị trí để cắt. Vùng cắt càng khít, tín hiệu mà mô hình nhận được càng rõ ràng. Vì các ROI dùng chung một type, nên việc thêm nhiều ROI sẽ nhân số lượng dữ liệu huấn luyện của bạn lên mà không nhân khối lượng công việc.

GOOD · TIGHT CROP60 × 60 px · feature dominatesBAD · TOO LARGEscrew is a speck · downscaledDUPLICATE PATTERNScrew_1Screw_2Screw_3…NName the first ROI, click Duplicate, and the rest auto-increment.All share the same type → same classes, same dataset, same model.10 ROIs × 1 CAPTURE = 10 TRAINING SAMPLES
  1. Giữ vùng cắt dưới 512 × 512 px. Bất kỳ kích thước nào lớn hơn sẽ bị thu nhỏ để vừa với đầu vào của mô hình, và chi tiết sẽ bị mất vĩnh viễn.
  2. Khít sẽ tốt hơn. Một ROI nhỏ xung quanh một đặc trưng đơn lẻ cho mô hình một tín hiệu rõ ràng và cần ít dữ liệu huấn luyện hơn để hội tụ.
  3. Nhiều ROI, một type. 10 ốc vít → 10 ROI trên cùng type Screws. Một lần chụp trở thành mười mẫu huấn luyện, và một mô hình xử lý cả mười khi inference.
  4. Sử dụng Duplicate. Đặt tên ROI đầu tiên một cách có ý nghĩa (Screw_Top_Left). Duplicate sẽ tự động tăng số trong tên để bạn không phải gõ lại.
  5. Cần phủ toàn bộ? Đừng vẽ một ROI khổng lồ, hãy lát một lưới gồm các ROI nhỏ. Mỗi ROI giữ được độ phân giải đầy đủ.

Luồng dữ liệu: mỗi ROI thực hiện chuyến đi riêng qua mô hình

Khi chạy, camera cắt mỗi ROI ra khỏi hình ảnh đầy đủ, đưa vào mô hình đã huấn luyện riêng biệt, và ghi lại class nào thắng cùng với điểm tin cậy. Kết quả là một nhãn cho mỗi ROI, mỗi lần chụp.

1 · CAPTUREFull frame + 6 ROIs2 · CROP INDIVIDUALLYScrew_1Screw_2Screw_3Screw_4Screw_5Screw_6max 512 × 512 px each3 · CLASSIFIER MODELScrews · trained modelpicks 1 class + confidence4 · OUTPUTScrew_1present 0.98Screw_2absent 0.94Screw_3present 0.97Screw_4present 0.99Screw_5present 0.96Screw_6damaged 0.82resultFAIL
  1. Capture toàn bộ khung hình với tất cả các ROI được đánh dấu.
  2. Cắt riêng biệt để mỗi ROI trở thành một hình ảnh nhỏ riêng.
  3. Mô hình Classifier chọn một class cộng với một điểm tin cậy cho mỗi vùng cắt.
  4. Đầu ra là một bảng ROI → nhãn → độ tin cậy. Logic pass/fail trên bảng đó tùy thuộc vào các quy tắc IO Block của bạn.

Tóm tắt cấu hình

Một danh sách kiểm tra nhanh trước khi bạn huấn luyện. Nếu mỗi mục dưới đây đều đúng, classifier của bạn sẽ có một nền tảng vững chắc.

  • Một Inspection Type cho mỗi quyết định. Đừng trộn "screws" và "labels" trong cùng một type, hãy cho mỗi cái một type riêng để chúng có classes, bộ dữ liệu, và mô hình riêng.
  • Classes được định nghĩa ở cấp độ type. Mọi ROI đều có cùng một dropdown. Nếu một tùy chọn không áp dụng cho mọi ROI, có lẽ nó thuộc về một type khác.
  • ROI được vẽ khít và đặt tên mô tả. Screw_Top_Left tốt hơn New ROI. Giữ mỗi ROI vừa đủ lớn cho đặc trưng của nó, và dưới 512 × 512 px.
  • Alignment phải hoạt động trước. Nếu bộ phận dịch chuyển hoặc xoay, aligner sẽ di chuyển các ROI của bạn theo. ROI khít chỉ hoạt động khi alignment chắc chắn.
  • 3 đến 5 hình ảnh huấn luyện cho mỗi class để bắt đầu. Huấn luyện, tìm các trường hợp lỗi, thêm dữ liệu có mục tiêu, huấn luyện lại. Hai đến bốn lần lặp là điển hình.
  • Mỗi nhãn được kiểm tra hai lần. Một nhãn sai trong năm hình ảnh huấn luyện là 20% bị hỏng. Nhấp View All ROIs trước mỗi lần huấn luyện.

Tiếp theo là gì