engiAI
- Yêu cầu
- Nó làm gì
- Quy trình cấp phép
Giao diện engiAI hỗ trợ tiếng Việt: tên các nút và trường trong hướng dẫn này được ghi đúng như hiển thị trong chương trình.
Nội dung
- 1. Tại sao phương pháp engiAI và VÙNG-CẶP lại hiệu quả?
- 1.1. Phương pháp này mang lại lợi ích gì so với việc phân loại toàn bộ khung hình?
- 1.2. Tốc độ: AI chỉ tập trung vào các đoạn thông tin cần thiết.
- 1.3. Độ chính xác dự kiến: tính toán dựa trên camera của chúng ta
- 1.4. Khởi động nhanh: cài đặt đã được thiết lập, khu vực và mẫu được chọn chỉ với vài cú nhấp chuột.
- 2. Giao diện của chương trình trong vòng một phút
- 3. Camera: Kết nối và cài đặt
- 3.1. Các loại máy ảnh nào được hỗ trợ
- 3.2. Cửa sổ CAMERA: thêm, kết nối lại, xóa
- 3.3. Thanh Camera cho HIKROBOT và SICK
- 3.4. Thẻ "Camera" cho webcam/camera USB
- 3.5. Các cài đặt camera đã lưu (tập hợp)
- 3.6. Mạng GigE và kết nối lại
- 4. Mô hình VÙNG-CẶP: từ lưới đến mô hình đã được huấn luyện
- 4.1. Phương pháp này hoạt động như thế nào: một mô hình, một lớp cho mỗi khu vực.
- 4.2. Xây dựng mô hình
- 4.3. Xác định các khu vực cần thanh toán
- 4.4. Ghi lại hình ảnh tham chiếu: vùng căn chỉnh
- 4.5. Ảnh chụp theo khu vực: ảnh bình thường và dữ liệu tổng hợp
- 4.6. Dữ liệu tổng hợp về lỗi: khi nhấn hai lần, phần tử di chuyển cùng với nền.
- 4.7. Các lỗi trong vùng: cửa sổ cài đặt
- 4.8. Ảnh tham khảo với các vùng: khu vực hàn và vùng chỉnh sửa
- 4.9. Huấn luyện mô hình
- 5. Kiểm tra
- 5.1. Xác định mô hình và kiểm tra các khu vực
- 5.2. Tiêu chí xác định khu vực
- 5.3. Hệ thống dây chuyền sản xuất linh hoạt: hoạt động tốt ở mọi tư thế
- 5.4. Sử dụng tín hiệu nào để phân tích
- 5.5. Khu vực màu vàng: tắt khu vực bằng cách nhấp vào
- 5.6. Nội dung hiển thị trên màn hình và trong bảng điều khiển
- 6. Các yếu tố kích hoạt: cảm biến bên ngoài trên đầu vào của camera
- 7. Đầu ra: bộ loại bỏ, đầu ra rời rạc của camera và TCP
- 7.1. Hướng dẫn: Thông tin liên hệ và kiểm tra bằng thiết bị đo
- 7.2. Khung OUTPUT: quy tắc cho khu vực
- 7.3. Gửi gói tin TCP cho robot hoặc PLC
- 7.4. Chuyển đổi tín hiệu từ camera
- 7.5. Cảnh báo bằng âm thanh: âm thanh riêng cho từng khu vực
- 7.6. Nhật ký hoạt động và cơ sở dữ liệu
- 8. Các chế độ và nhiệm vụ khác
- 9. Cài đặt, giao diện, yêu cầu và giấy phép
- 10. Danh sách kiểm tra ngắn gọn và tìm kiếm lỗi
Hướng dẫn sử dụng: * Phần 1 giải thích mục đích của phương pháp và kết quả mong đợi. * Các phần 3-5 hướng dẫn bạn từ một chương trình trống đến một chương trình kiểm tra hoạt động, hãy thực hiện theo trình tự. * Các phần 6-7 hướng dẫn bạn kết nối cảm biến, đầu ra và TCP. * Các phần 8-10 cung cấp các tính năng, cài đặt và danh sách kiểm tra khác.
1. Tại sao phương pháp engiAI và VÙNG-CẶP lại hiệu quả?
engiAI Ethernet System — là phần mềm kiểm tra trực quan cho dây chuyền sản xuất. Nó lấy hình ảnh từ camera công nghiệp hoặc thông thường, chia thành các khu vực, kiểm tra từng khu vực bằng mạng nơ-ron được huấn luyện và chuyển đổi kết quả thành hành động: tín hiệu đến đầu ra rời của camera, gói TCP cho robot hoặc PLC, hoặc ghi vào nhật ký. Phương pháp VÙNG-CẶP được thiết kế cho các sản phẩm có "đúng" vị trí ở mỗi khu vực: mạch in, lắp ráp, bộ phận trong giá đỡ, đóng gói với bố trí.
1.1. Phương pháp này mang lại lợi thế so với việc phân loại toàn bộ ảnh
Cách tiếp cận thông thường là sử dụng một mô hình với hai lớp phân loại "bình thường / bất thường" cho toàn bộ khung hoặc toàn bộ khu vực. Tuy nhiên, phương pháp này không hiệu quả: khoảng trống dưới cầu BR1 trong khu vực 2 là lỗi, trong khi khoảng trống tương tự ở một góc khác của bảng mạch là bình thường. Một cặp lớp phân loại như vậy không thể biểu diễn được. Một phương pháp khác là sử dụng một mô hình riêng cho từng chi tiết, điều này đòi hỏi hàng chục lần huấn luyện và hàng chục tệp tin trong bộ nhớ.
Phương pháp này được sử dụng như sau: chỉ có một mô hình, nhưng có nhiều lớp, tương ứng với số lượng vùng. "Vùng" là một hình chữ nhật bao quanh một chi tiết. "Lớp" là một thư mục chứa các hình ảnh mà mạng học. Mỗi vùng có một cặp: "zone_001" (vùng 1 bình thường, ví dụ: tụ C30) và "zone_001_anomaly" (vùng 1 lỗi); "zone_002" và "zone_002_anomaly" là cầu BR1. Khi kiểm tra vùng 1, chương trình chỉ xem xét cặp của nó, các phản hồi về vùng 2 không được sử dụng. Các lớp lỗi không bắt buộc: lỗi thay đổi hình dạng của vùng, và độ tin cậy của "bình thường" tự động giảm; nhưng với dữ liệu tổng hợp (phần 4.6), chúng có thể được tạo ra chỉ bằng một lần nhấn và đáng kể cải thiện độ tin cậy.

1.2. Tốc độ: AI chỉ xem xét các phần cần thiết
Mạng nơ-ron không nhận toàn bộ ảnh. Đối với mỗi vùng, chỉ cần cắt ra một hình chữ nhật, và chọn hai lớp để phân loại. Các vùng trong cùng một ảnh được coi là song song (lên đến 4 luồng), kết quả của tất cả các vùng được hiển thị trên màn hình cùng một lúc, thay vì từng vùng một.
- Tốc độ phân tích được xác định theo thời gian. Thanh trượt "Số lượng phân tích mỗi giây (AI)" trên tab Camera có nghĩa là thực hiện chính xác N phân tích mỗi giây, chứ không phải "mỗi N giây". Giới hạn là tần số của camera và thời gian suy luận.
- Sử dụng GPU mặc định. Quá trình suy luận diễn ra thông qua ONNX Runtime với CUDA; nếu không có card đồ họa NVIDIA, chương trình sẽ tự động chuyển sang sử dụng CPU và hiển thị thông tin này trong trạng thái (GPU (CUDA) hoặc CPU).
- Bộ đệm không chứa dữ liệu thừa. Bộ nhớ dành cho các đoạn trích được đánh dấu một lần trên mỗi dòng và được tái sử dụng; thời gian phân tích không thay đổi từ khung này sang khung khác.
- Mô hình cho bài toán cụ thể. Đối với VÙNG-CẶP, chương trình tự động đặt kích thước đầu vào là 128 px và sử dụng mạng YOLO11 kích thước "s": việc cắt vùng gần như không thay đổi tỷ lệ, và mạng có đủ dung lượng để xử lý hàng trăm cặp lớp.
- Dòng sản xuất tự động giúp tiết kiệm nhân lực. Nhân lực được chuyển sang giai đoạn xử lý bằng AI, chứ không phải giai đoạn tìm kiếm linh kiện; linh kiện được tìm kiếm và sắp xếp một lần, sau đó mới được cắt.
- Việc hiển thị không gây ảnh hưởng đến phân tích. Hình ảnh được vẽ lại không quá 25 lần mỗi giây và chỉ dựa trên khung hình mới từ camera, kích thước hình ảnh được thu nhỏ đến kích thước của hình ảnh trước khi hiển thị trên màn hình, trong khi nhật ký được ghi vào tệp bởi luồng nền. Giao diện vẫn hoạt động trơn tru với khung hình 8 megapixel và hàng trăm vùng.
Trên dòng trạng thái phía trên video, bạn có thể thấy các thông số thực tế: fps (số khung hình trên giây) và thời gian tính bằng mili giây của lần phân tích cuối cùng, cũng như Eff (hiệu suất), cho biết số lượng phân tích thực tế đã được thực hiện trong một giây.
1.3. Độ chính xác dự kiến: tính toán dựa trên camera của bạn
Chương trình không hứa hẹn "0,5 mm" một cách độc lập với máy ảnh và ống kính. Độ nhạy với sai số được xác định bởi số lượng pixel tương ứng với mỗi milimet của sản phẩm và giới hạn mà mô hình đã được huấn luyện. Điều này được tính toán trong hai dòng:
Độ dịch chuyển tối thiểu có thể nhận thấy ≈ 5 pixel chia cho (pixel/mm)
Số 5 px — giới hạn dưới của sai số tổng hợp trong cài đặt tiêu chuẩn (sai số bình thường là 0–2 px). Cài đặt mặc định được tính toán dựa trên 11 px/mm: ở tỷ lệ này, 0,5 mm tương ứng với 5–6 px, đây là mục tiêu đã được thống nhất trong quá trình phát triển. Hãy nhập các giá trị của bạn:
| Máy ảnh (chiều rộng khung hình) | Tiêu chí 100 mm | 200 mm | 300 mm | 400 mm |
|---|---|---|---|---|
| 3264 px (USB 8 MP, như trong ảnh) | 0,03 mm/px → sai số ≈ 0,15 mm | 0,06 → ≈ 0,3 mm | 0,09 → ≈ 0,45 mm | 0,12 → ≈ 0,6 mm |
| 2448 pixel (cảm biến 5MP của HIKROBOT) | 0,04 → ≈ 0,2 mm | 0,08 → ≈ 0,4 mm | 0,12 → ≈ 0,6 mm | 0,16 → ≈ 0,8 mm |
| 1920 pixel (Máy ảnh nhỏ SICK picoCam, HIKROBOT 2MP) | 0,05 → ≈ 0,25 mm | 0,10 → ≈ 0,5 mm | 0,16 → ≈ 0,8 mm | 0,21 → ≈ 1,0 mm |
1.4. Khởi động nhanh: cài đặt đã được thiết lập, khu vực và mẫu được chọn chỉ với vài cú nhấp chuột.
Phương pháp này được thiết kế để một kỹ sư không có kinh nghiệm về học máy có thể tạo ra một mô hình hoạt động trong một ca làm việc. Tất cả những gì có thể được chuẩn bị trước, đã được chuẩn bị và lưu trữ trong cơ sở dữ liệu của chương trình:
- Xác định vùng trong một phút. Trong trình chỉnh sửa ROI, kéo thanh định hình xung quanh một phần tử và chỉ định kích thước vùng (ví dụ: 256 pixel). Nếu có nhiều phần tử và chúng được sắp xếp đều, hãy kéo thanh định hình trên toàn bộ bảng—phần mềm sẽ tự động tính toán các hàng và cột của lưới.
- Dữ liệu mặc định và lỗi đã được cài đặt sẵn. Các nút "Mặc định", "Điều chỉnh vị trí" và "Màu sắc" cho phép chọn các cấu hình đã được thiết lập. Số lượng tệp, khung hình từ camera và thời gian dự kiến được hiển thị trước khi nhấn "Chụp".
- Các thông số huấn luyện được tự động thiết lập. Sau lần chụp ảnh đầu tiên theo vùng, chương trình đặt kích thước hình ảnh là 128, kích thước mô hình là s, số chu kỳ là 50, kích thước lô là 64, đồng thời tắt các phương pháp tăng cường, những phương pháp này xung đột với các lớp bất thường.
- Cảm biến được điều chỉnh bằng nút. "Tự động điều chỉnh cho AI (dựa trên khung hình)" tự động chọn tốc độ, độ sáng, dải màu và cân bằng trắng; đối với camera USB, có các chức năng "Tự động điều chỉnh theo khuôn hình" và "Cài đặt sẵn".
- Bộ cài đặt camera. Các cài đặt được chọn sẽ được lưu lại với tên và có thể chuyển đổi từ danh sách. Camera sẽ nhận và lưu lại các cài đặt này ngay lập tức.
- Một tệp ONNX là kết quả. Mô hình đã được huấn luyện sẽ được xuất ra tự động và ngay lập tức được giao cho việc kiểm tra, không cần thêm bước nào.
Toàn bộ quy trình: kết nối camera → tạo mô hình → đánh dấu vùng → xác định vùng căn chỉnh → "Chụp ảnh theo vùng" trên nhiều bo mạch hoạt động → "Phát hiện các điểm bất thường" → Huấn luyện mô hình AI → вкладка Inspect. Sau đó, cần gắn âm thanh, cổng và TCP cho các vùng. Để bắt đầu, cần: máy tính có Windows 10/11 (để kiểm tra nhanh – card đồ họa NVIDIA), camera, một bo mạch hoạt động và một lần kết nối internet để cài đặt môi trường học. Các bo mạch bị lỗi không cần thiết.
2. Giao diện của chương trình trong vòng một phút
Cửa sổ chính được chia thành hai phần. Phía bên trái là hình ảnh trực tiếp từ camera và thanh trạng thái phía trên. Phía bên phải là thanh điều khiển với các tab, nơi chứa tất cả các chức năng. Người dùng có thể kéo để thay đổi ranh giới giữa hai phần; chương trình ghi nhớ kích thước, vị trí của tất cả các cửa sổ và bố cục trong cơ sở dữ liệu của nó.

Các nút trên video
| Nút | Mở |
|---|---|
| ẨN VIDEO | Loại bỏ hình ảnh khỏi màn hình. Phân tích tiếp tục, chỉ tiết kiệm chi phí vẽ. |
| ĐẦU RA | Cửa sổ tham khảo: thông tin liên hệ của các đầu ra rời của camera HIKROBOT và SICK, kiểm tra bằng thiết bị đo, kết nối tải (phần 7.1). |
| CAMERA | Cửa sổ "Cài đặt camera kết nối": thêm, kết nối lại, xóa camera và xem tất cả các thông số được đọc từ phần cứng (phần 3.2). |
| CÁP THỜ | Kết nối cảm biến bên ngoài với đầu vào rời của camera theo sơ đồ và cách đấu dây (phần 6). |
| MÔ HÌNH CHUNG | Các bộ "cámara → mô hình" được gán cho toàn bộ hệ thống bằng một thao tác chọn (phần 8). |
| Bố cục (cột) | Số lượng gạch camera hiển thị trên một hàng; "■" - chế độ đơn (camera lớn), "Tự động" - dựa trên số lượng camera, "⛶" - tất cả các camera trên màn hình (Esc). |
| Hiển thị vùng ROI | Vẽ lưới các vùng lên trên video. |
Các tab bên phải
| Tab | Chức năng |
|---|---|
| Camera | Các thông số của camera đã chọn: tốc độ, tăng cường, màu sắc, độ phân giải, cài đặt tự động cho AI, bộ cài đặt đã lưu, tốc độ phân tích. Các ngưỡng AI không còn ở đây, chỉ ở tab "Kiểm tra". |
| OUTPUT | Bộ loại bỏ: quy tắc cho các vùng - gói TCP cho robot/PLC, đầu ra rời của camera và cảnh báo âm thanh, nhật ký hoạt động, cơ sở dữ liệu. |
| AI Model | Tạo mô hình: thư mục, lớp, lưới vùng, ảnh theo vùng, các bất thường của vùng, ảnh tham chiếu của bo mạch, cài đặt và khởi động huấn luyện. |
| Inspect | Thanh ghi: mô hình nào đang kiểm tra, khu vực kiểm tra và ngưỡng, băng tải hoạt động, tín hiệu chụp ảnh, khe cắm kiểm tra nhiều mô hình. |
| Settings | Ngôn ngữ giao diện (14 ngôn ngữ), mua bản quyền, lưu và tải cài đặt, ghi lại video. |
| Console | Lịch sử hoạt động: kết nối camera, quá trình huấn luyện, hoạt động của bộ loại bỏ, cảnh báo. Màn hình hiển thị 800-1000 dòng gần nhất, tất cả được ghi lại trong các tệp logs\engiai-*.log. |
Trạng thái
Trên các nút, hiển thị trạng thái của camera đang hoạt động: LIVE (Android): 3264×2448 [HD USB Camera] – loại, độ phân giải và tên; AI: WAITING hoặc AI: GPU (CUDA) – mô hình đang hoạt động trên phần cứng nào và thời gian phân tích cuối cùng; Net: tổng cộng … hoạt động … Mбит/s – tải lên mạng từ các camera GigE (xanh đến 40% băng thông, cam đến 70%, sau đó là đỏ). Dải Exp Load cho biết thời gian phơi sáng chiếm bao nhiêu phần của khoảng thời gian khung hình: nếu nó bị giới hạn sang phải, camera sẽ không thể duy trì tốc độ khung hình được chỉ định.
Mỗi khung hình có một phần mềm với tên, trạng thái "LIVE | AI:ON" và nút kết nối lại. Nhấp chuột phải vào khung hình sẽ mở menu khu vực, nhấp chuột phải và kéo sẽ hiển thị toàn cảnh từ khung hình phóng to.
3. Camera: kết nối và cài đặt
3.1. Các camera nào được hỗ trợ
| Loại | Cách kết nối | Cài đặt từ phần mềm |
|---|---|---|
| HIKROBOT MV-CS (GigE, USB3) | MVS SDK gốc. Chỉ mở được bằng số seri, thứ tự liệt kê không quan trọng. | Độ phân giải 6 μm, tăng cường (dB), FPS, độ phân giải (AOI), mức đen 0…4095, tất cả các nút GenICam (chế độ tự động, độ sáng, độ sắc nét, cân bằng trắng R/G/B, dịch chuyển số, lật, gói GigE). Các thông số được ghi trong UserSet1 của camera. Đầu vào rời rạc Line 0, đầu ra Line 1, GPIO Line 2. |
| SICK picoCam (IDS uEye, GigE) | Driver uEye. Camera phải hiển thị trong IDS Camera Manager với trạng thái "đã cài đặt đúng". Số seri được so sánh với camera vì DeviceID của uEye thay đổi mỗi khi khởi động. | Tăng cường, phạm vi 0…100, FPS, độ phân giải, mức độ đen 0…255, xung nhịp pixel, tăng cường tín hiệu, tăng cường phần cứng cho kênh R/G/B, dải tín hiệu phần cứng, bố trí Bayer. Các thông số được lưu vào bộ nhớ của camera. Đầu vào của bộ phát xung từ quang điện, đầu ra của Flash (150mA). |
| Máy ảnh web USB (trong danh sách này, có hệ điều hành Android) | DirectShow thông qua OpenCV, khác nhau về moniker, vì vậy hai camera giống nhau không bị nhầm lẫn. | Hỗ trợ độ phân giải lên đến 8K, FPS, tất cả các thuộc tính của trình điều khiển: độ sáng, độ tương phản, độ bão hòa, tông màu, độ sắc nét, dải màu, tăng cường, tốc độ (tự động), lấy nét (tự động), cân bằng trắng (tự động), bù sáng và các thông số khác. Không có cổng hoặc đầu ra rời, chỉ hỗ trợ TCP. |
| Camera IP RTSP | Liên kết có dạng `rtsp://admin:mật khẩu@192.168.1.64:554/… được thêm vào thủ công. | Tốc độ, tăng cường, độ phân giải và FPS được đặt trong giao diện web của chính camera. Trong phần mềm, có các khu vực, mô hình và TCP. |
Không có giới hạn về số lượng camera: các camera được sắp xếp theo lưới với bất kỳ số lượng nào; trên các thiết bị thực tế, đã hoạt động với 8 và 9 camera cùng lúc. Mỗi camera có các mô hình, khu vực, ngưỡng và tốc độ phân tích riêng.
3.2. Cửa sổ CAMERA: thêm, kết nối lại, xóa
Các tùy chọn dưới danh sách áp dụng cho camera đã chọn: Bật camera (nếu không, camera sẽ bị ngắt kết nối khỏi thiết bị và biến mất khỏi màn hình), Hiển thị video/khu vực (chỉ hiển thị hình ảnh, chức năng phân tích luôn hoạt động), Bật AI cho camera đã chọn. Nút Kết nối lại sẽ thực hiện việc ngắt kết nối và kết nối lại hoàn toàn, đồng thời khởi động lại luồng AI và tải lại các mô hình.
Phần bên phải của cửa sổ hiển thị tất cả các thông số của camera, được đọc từ phần cứng khi kết nối, bao gồm các nhóm và đơn vị đo lường. Các tùy chọn bao gồm: "Hiển thị thông số của", "Đọc lại từ camera", và "Sao chép vào bộ đệm". Đây chỉ là chế độ xem; để thay đổi các thông số, bạn có thể sử dụng tab "Camera".
3.3. Tab "CAMERA" cho HIKROBOT và SICK
Tab này hoạt động với camera, được đánh dấu bằng một đường viền màu xanh lam. Khi kết nối, chương trình không ghi bất kỳ dữ liệu nào vào camera; camera là nguồn thông tin chính xác, và các thanh trượt sẽ tự động điều chỉnh để phù hợp với các giá trị của camera. Chỉ khi bạn chủ động nhấn nút "Lưu cài đặt", các cài đặt mới được lưu lại.
Blok "Hikrobot: thông số camera (GenICam)"
Chỉ hiển thị những gì camera ghi lại. Các mục: Tự động phơi sáng (Tắt / Một lần / Liên tục), Tự động tăng cường, Phạm vi và chế độ phạm vi, Độ sắc nét, Màu sắc, Độ bão hòa, Tự động cân bằng trắng, Cân bằng trắng theo kênh, Chuyển đổi số, Mức đen được bật, Giới hạn FPS được bật, Lật ngang và dọc, GigE: kích thước gói, GigE: độ trễ giữa các gói, GigE: giới hạn băng thông, Ảnh thử nghiệm. Nút "Đọc lại thông số từ camera" sẽ thay đổi bảng.
Blok "MÀN HÌNH"
Cấu hình Bayer (Auto / BGGR / RGGB / GRBG / GBRG), Độ bão hòa 0…200 %, Gamma 0,30…3,00, Độ tương phản 50…200 %, nút reset. Xử lý phần mềm được áp dụng cho tất cả các khung hình: hiển thị, ghi lại, suy luận và ảnh để huấn luyện, do đó hình ảnh khi huấn luyện và khi kiểm tra là giống nhau. Đối với HIKROBOT, cấu hình được lấy từ định dạng pixel của camera, đối với các cảm biến màu SICK, cấu hình được lấy từ cảm biến và được điều chỉnh dựa trên khung hình đầu tiên.
| Tham số | Nó làm gì | Ảnh hưởng đến |
|---|---|---|
| Số lượng phân tích mỗi giây (AI) | Giới hạn trên của tốc độ kiểm tra, 1…200 | ít hơn – giảm tải cho card đồ họa; không phụ thuộc vào kết nối camera |
| Giới hạn AI | không được đặt trên tab Camera | giới hạn nhận diện vùng – chỉ trên tab Inspect (phần 5.2), một giới hạn cho mỗi camera |
| Exposure | thời gian phơi sáng | ngắn gọn – giảm thiểu tình trạng bị mờ của các vật thể chuyển động; không được phép bằng 0 |
| Gain / Gain boost | tăng cường tín hiệu của cảm biến | tăng độ sáng, nhưng cũng làm tăng nhiễu |
| Pixel clock (SICK) | tần số của cảm biến | thay đổi các khoảng FPS và thời gian phơi sáng, chúng sẽ được đọc lại |
| FPS | tần số khung hình trong chế độ tự do | không được sử dụng trong chế độ kích hoạt |
| Chiều rộng / Chiều cao | Kích thước khung hình (AOI) | Nếu khung hình nhỏ hơn, tần số và lưu lượng sẽ cao hơn |
3.4. Thẻ Camera cho camera USB/webcam
Đối với camera USB, thẻ này hiển thị khối "Camera USB: độ phân giải, FPS và thuộc tính". Các thuộc tính của trình điều khiển mà camera không cung cấp sẽ không hiển thị; giới hạn khung hình được xác định bởi phần mềm, vì DirectShow không cung cấp thông tin.
3.5. Cài đặt camera đã lưu (tập)
Khối "Cài đặt camera đã lưu" hiển thị cho USB, SICK và HIKROBOT. Sau khi điều chỉnh các thông số cho sản phẩm, hãy lưu chúng với tên: để sử dụng cho bo mạch hoặc ánh sáng khác, bạn có thể chọn một tập từ danh sách.
- Lưu dưới tên… — hiển thị các giá trị hiện tại từ camera và hỏi tên bộ. Nếu tên đã tồn tại, sẽ đề xuất thay thế.
- Chọn bộ cài đặt trong danh sách sẽ ngay lập tức ghi lại các thông số vào camera và lưu chúng: cho USB – vào cơ sở dữ liệu, cho SICK và HIKROBOT – vào tệp thông số và bộ nhớ của camera (UserSet1 / EEPROM). Sau đó, bảng điều khiển sẽ đọc lại các giá trị từ phần cứng và hiển thị số lượng thông số đã được chấp nhận và số lượng thông số bị lỗi.
- Lưu lại ghi đè các giá trị đã chọn bằng các giá trị hiện tại, Thay đổi tên và Xóa chỉ tác động đến bản ghi trong cơ sở dữ liệu, các thông số trên camera không thay đổi.
Bộ công cụ bao gồm: đối với USB, các thông số như độ phân giải, tốc độ khung hình (FPS), thuộc tính của trình điều khiển và các chế độ tự động; đối với SICK, các thông số như độ lợi, thời gian phơi sáng, tốc độ khung hình, mức đen, xung đồng hồ pixel, tăng độ lợi, cân bằng trắng (R/G/B), bảng gamma phần cứng và màu sắc phần mềm; đối với HIKROBOT, các thông số như độ lợi, thời gian phơi sáng, tốc độ khung hình, mức đen và tất cả các thành phần GenICam. Kích thước khung hình của các camera công nghiệp không được bao gồm trong bộ công cụ: việc thay đổi kích thước này sẽ khởi động lại quá trình thu hình. Các bộ công cụ này được sử dụng chung cho tất cả các camera cùng loại, vì vậy, trên một giá đỡ chứa các camera giống nhau, mỗi camera sẽ được sử dụng một bộ công cụ.
3.6. Mạng GigE và kết nối lại
- Kích thước gói GigE của HIKROBOT được tự động đặt tối ưu khi mở; bạn có thể chỉnh sửa thủ công trong khối GenICam. Các khung hình Jumbo 8164–9000 làm giảm tải, nếu có các khung hình bị gián đoạn, hãy đặt 1500 và tăng thời gian trễ giữa các gói.
- Dòng `Net` tính toán lượng tải từ mỗi camera dựa trên dữ liệu của chính nó (kích thước tải có ích × tần suất) và so sánh với lưu lượng mạng thực tế. Sự khác biệt đáng kể cho thấy có mất gói tin hoặc lưu lượng mạng không mong muốn. Các trình điều khiển ảo và bộ lọc NDIS (GigEVision, uEye, Npcap) đã được loại trừ khỏi việc tính toán.
- Nếu bạn có thể nhìn thấy camera nhưng tín hiệu không được truyền, hãy nhấn vào "Khởi động lại" (trong cửa sổ hoặc trên ô). Nguyên nhân thường là do băng thông của mạng hoặc USB bị giới hạn.
- Khi đóng khóa truy cập, thiết bị picoCam mất các cài đặt; nếu không có tập dữ liệu nào trong chính thiết bị, chương trình sẽ áp dụng tệp cài đặt và đề nghị người dùng nhấn "Lưu cài đặt" để ghi lại chúng vào thiết bị.
4. Mô hình VÙNG-CẶP: từ lưới đến mô hình đã huấn luyện
4.1. Cách thức hoạt động: một mô hình, một lớp cho mỗi khu vực
Mô hình VÙNG-CẶP là một mạng phân loại YOLO11 thông thường, với số lượng lớp tương ứng với số lượng vùng, cùng với các lớp bổ sung để phát hiện các trường hợp bất thường. Mỗi lớp tương ứng với một thư mục bên trong các thư mục `train` và `val`. Chương trình tự động tạo ra tất cả các thư mục; không cần phải tạo thủ công. Dưới đây là cấu trúc thư mục của mô hình sau khi đã được huấn luyện:



Các tệp real_…jpg là những hình ảnh chụp trực tiếp từ camera (được lưu trong cả tập train và tập val), syn_…jpg là dữ liệu tổng hợp, edit_…jpg là ảnh chụp từ trình chỉnh sửa vùng. Trong ví dụ, sau khi chụp nhiều bo mạch: zone_001 có 502 tệp trong tập train và 111 trong tập val, zone_001_anomaly có 680 và 144, zone_002 có 813 và 181, zone_002_anomaly có 340 và 60.
Chương trình tự động nhận dạng mô hình là "phần thanh toán" dựa trên sự hiện diện của các lớp loại zone_NNN. Số lớp là số duy nhất của khu vực trong lưới (1…N). Dựa trên điều này, quy tắc chính của phương pháp là:
4.2. Tạo mô hình
4.3. Gán các khu vực trên bo mạch

Các khu vực màu đỏ: loại bỏ khu vực khỏi tập dữ liệu tổng hợp bằng một cú nhấp chuột
Trên tab "Mô hình AI", nhấp vào vùng đã tạo bằng nút chuột trái trực tiếp trên video: vùng sẽ chuyển thành màu đỏ và không tham gia vào việc chụp ảnh theo vùng và phát hiện các điểm bất thường. Nhấp lại để khôi phục. Các bộ đếm tệp trong cửa sổ dữ liệu tổng hợp được tính toán lại ngay lập tức, và dòng chữ "tắt N" trên khung hình cho biết có bao nhiêu vùng đã tắt. Danh sách các vùng màu đỏ được lưu trữ theo camera và mô hình; trên tab "Kiểm tra", vùng đó vẫn là vùng bình thường (vùng màu vàng ở phần 5.5).
4.4. Ghi lại ảnh tham chiếu: khu vực căn chỉnh
Các khu vực kiểm tra được xác định dựa trên vị trí của một bảng mạch. Để có thể đặt một bảng mạch khác vào hệ thống với sự dịch chuyển và xoay, chương trình ghi lại các thông tin tham chiếu: một khung hình mẫu và vùng căn chỉnh - một khu vực trên bảng mạch chứa các chi tiết được sử dụng để tìm kiếm sản phẩm trong mỗi khung hình mới. Khi tìm thấy vùng này, chương trình sẽ chuyển các khu vực kiểm tra sang bảng mạch mới. Quá trình này được sử dụng trong chụp ảnh, tổng hợp dữ liệu và kiểm tra.


| Mô hình tích hợp | Khi nào nên chọn |
|---|---|
| (Đề xuất) Sử dụng phương tiện giao thông | Các thông số có thể được điều chỉnh đồng thời (di chuyển, xoay, thay đổi tỷ lệ); chỉ khi thông số kết quả cải thiện đáng kể thì mới được áp dụng. Độ chính xác trong một vùng điều chỉnh nhỏ là 1–2 pixel. |
| Cứng | Ống kính hướng thẳng từ trên xuống, tấm nền nằm phẳng. Đây là phương án ổn định nhất, đặc biệt khi vùng cần căn chỉnh nhỏ. |
| Tiềm năng | Ống kính hoặc bo mạch bị nghiêng. Cần một vùng lớn với các điểm trải dài trên toàn bộ chiều rộng, nếu không, phép hội tụ sẽ bị sai lệch. |
Nút "Ảnh tham chiếu với lưới" mở ra ảnh tham chiếu đã lưu với lưới và số thứ tự các khu vực (phần 4.8). Phần mềm kiểm tra xem kích thước có hợp lý hay không: diện tích từ 0,5 đến 2 lần diện tích ảnh tham chiếu, hình dạng là hình vuông, các điểm tựa phải chiếm ít nhất một phần tư diện tích trên mỗi trục — nếu không, kết quả sẽ bị loại bỏ và thông báo "phần mềm không tìm thấy" sẽ hiển thị trên bảng điều khiển.
4.5. Ảnh chụp theo khu vực: ảnh bình thường và dữ liệu tổng hợp
Nút TÙY CHỈ: chụp theo vùng thực hiện việc chính: chia khung hình thành các vùng, đưa từng vùng vào một lớp riêng zone_NNN và thêm dữ liệu tổng hợp thông thường. Dữ liệu tổng hợp thông thường là sự khác biệt trong quá trình chụp, chứ không phải là lỗi: vị trí thẻ khác, ánh sáng khác, cảm biến có tiếng ồn.

| Cài đặt | Nó làm gì và những cài đặt mặc định là gì |
|---|---|
| Các lựa chọn thay thế bằng vật liệu tổng hợp cho từng khu vực. | Bạn có thể tạo bao nhiêu file ảnh tổng hợp cho một mẫu? Nên sử dụng 20 – chỉ bao gồm ảnh tham khảo, tối đa là 500. |
| Ảnh theo thời gian: mỗi phiên bản từ khung hình mới của máy ảnh | Bao gồm, khoảng thời gian 800–1200ms (ít nhất là thời gian phơi sáng). Mỗi khung hình được lấy từ một khung hình thật: nhiễu, rung động và ánh sáng nhấp nháy thực tế thay vì được vẽ ra. |
| Mỗi phương án cũng có xác suất, được biểu diễn bằng phần trăm. | 20%. Tất cả các ảnh tham chiếu phải nằm trong thư mục "val" luôn: đối với Ultralytics, mỗi lớp phải có mặt trong cả hai thư mục. |
| Hướng dẫn bằng các sắc độ xám | Mẫu chung: màu sắc được loại bỏ bình thường, không có lỗi hoặc bất thường nào. Không thể trộn các tệp màu và xám trong cùng một mẫu, chương trình sẽ cảnh báo. |
| Độ dịch chuyển, pixel · đến đâu | Khung chuyển dịch di chuyển trên toàn bộ khung hình từ 0…2 px theo các hướng được đánh dấu (← → ↑ ↓); phần bị thiếu sẽ lấy từ khu vực khác trên bo mạch, và đường cắt vẫn giữ nguyên. Biểu tượng tất cả các hướng cho phép chọn hướng cho mỗi file, một hướng ngẫu nhiên sẽ chỉ có một file. |
| Góc, độ | Mặc định, tính năng này đã tắt: không có khả năng điều chỉnh theo vùng căn chỉnh, không có khả năng xoay, và việc bật tính năng này sẽ gây ra lỗi. Các tùy chọn "bên trái / bên phải", "tất cả các hướng / một hướng ngẫu nhiên" hoạt động tương tự như tính năng dịch chuyển. |
| Mức độ (%): giảm / tăng | Mặc định, tính năng này đã tắt. Hai dấu kiểm biểu thị hai hướng: giảm (<100) và tăng (>100, khu vực sẽ lấy các ô liền kề từ khung). Mỗi hướng được đánh dấu sẽ tạo ra một file riêng. |
| Độ sáng / Độ tương phản / Phạm vi | Giá trị ngẫu nhiên trong khoảng cho mỗi tùy chọn: độ sáng 88…112, độ tương phản 88…112%, phạm vi 98…102% (trong ảnh); trong phần "Điều chỉnh vị trí", độ sáng được mở rộng để tránh gây ra lỗi. |
| Độ ồn (sigma) / Hiệu ứng mờ | Độ nhạy của cảm biến: 3…8 mức, độ mờ nhẹ 0,4…0,8 px. |
| Cột "chung" | Khi có dấu kiểm, hình ảnh sẽ được thêm vào tệp chung cùng với các hình ảnh khác; nếu không, nó sẽ tạo ra một tệp riêng "hình tham chiếu + chỉ hình này". Càng có nhiều hình ảnh riêng, thì càng có nhiều tệp cho mỗi tùy chọn. |


4.6. Thu thập dữ liệu lỗi trong 2 lần nhấn: thành phần dịch chuyển cùng với đế
Dữ liệu tổng hợp được xây dựng dựa trên quá trình quan sát. Mô hình học tập tốt nhất khi được cung cấp thông tin không chỉ là hình ảnh của một vết bẩn, mà còn là chính đối tượng cần kiểm tra cùng với các thành phần khác trên bo mạch: đường in, đường dẫn, màu sắc và kết cấu của nền. Chương trình thu nhỏ vùng kiểm tra xuống kích thước của đối tượng, sau đó di chuyển hoặc xoay vùng này, đồng thời lấp đầy các cạnh bằng các pixel xung quanh. Kết quả là, đối tượng không còn ở đúng vị trí so với nền: chính xác như người kiểm tra nhìn thấy trong thực tế, với tiếng ồn, ánh sáng và bo mạch thực tế.
Thông thường và một vùng bất thường chỉ khác nhau ở vị trí của một thành phần so với đế. Tất cả các yếu tố khác đều giống nhau, vì vậy mạng lưới học cách liên kết "thành phần ↔ bo mạch", thay vì sự khác biệt về màu sắc hoặc độ sáng của một vùng.
2 lần nhấn
Không cần phải cấu hình thêm: không cần vẽ lỗi, cũng không cần tìm các bảng mạch bị lỗi. Tiếp theo, hãy TRAIN AI MODEL.
Trước và sau: chương trình đạt được điều gì




Thư mục các lỗi theo cách người dùng nhìn thấy
So sánh với các thư mục thông thường trong phần 4.5: sự khác biệt chỉ ở vị trí của chi tiết so với nền.


Đánh dấu chi tiết: tại sao vết xước lại được làm nổi bật và cách điều chỉnh
Trên các bộ phận, có đánh dấu – các chữ và các đường kẻ dày 1-2 px. Dấu này có thể khác nhau giữa các lô sản xuất: font chữ khác, nhãn trên tụ đảo ngược, một số ký hiệu bị mờ. Nếu có lỗi sản xuất "xước", nếu vẽ bằng đường kẻ tương tự, hệ thống sẽ không thể phân biệt được với đường kẻ đánh dấu và nhiễu từ cảm biến, và sẽ loại bỏ các bo mạch khác từ lô sản xuất khác.
Dữ liệu tổng hợp VÙNG-CẶP giải quyết vấn đề này từ cả hai phía. Thứ nhất, lỗi chính là sự dịch chuyển của phần tử, khiến nhãn đi kèm với thân, do đó nhãn không còn là dấu hiệu nhận biết: nó vẫn hiển thị giống nhau cả khi bình thường và khi có lỗi. Thứ hai, đường/vết chầy mặc định có độ dày (⅛ vùng, không nhỏ hơn 3px) và rõ ràng không giống với đường nhãn. Độ dày hiện được chỉ định rõ ràng: trường Độ dày đường, px (0 = tự động) áp dụng cho đường và dấu cộng.
Các lỗi vẽ (hình chữ nhật, hình tròn, đường, "khu vực bị thiếu", vết mờ và các loại khác) được nhóm lại trong nhóm có thể thu gọn Lỗi do vật liệu tổng hợp trên vùng cắt. Mặc định, nhóm này đã được thu gọn và tắt: lỗi chính trên bo mạch là sự lệch. Hãy bật nó để thực hiện các tác vụ cụ thể: khu vực bị ngập, giọt nước thừa, nhãn bị mờ.
| Tham số hình dạng | Định nghĩa: |
|---|---|
| Kích thước: từ … đến, % của vùng / px | Kích thước hoặc chiều dài của hình dạng. Theo phần trăm, từ cạnh nhỏ nhất của vùng (tương ứng với bất kỳ vùng nào); theo px, giống nhau trên tất cả các vùng, thuận tiện khi biết kích thước thực tế của vết bẩn theo pixel trên khung hình. |
| Lấp đầy | Đầy / viền / hỗn hợp (viền cũng được làm nổi bật). |
| Độ dày đường, px | Đường / vết xước và dấu cộng. 0 — tự động (làm nổi bật). Để đánh dấu chi tiết, không nên dưới 3 px. |
| Vị trí lỗi | Ở trung tâm, bên trái, bên phải, phía trên, phía dưới - đây là các vị trí có thể đặt quân cờ (với một chút sự ngẫu nhiên). Nếu bạn chọn tất cả các vị trí, hệ thống sẽ tạo một file riêng cho mỗi vị trí được chọn; nếu bạn chọn một vị trí ngẫu nhiên, hệ thống sẽ tạo một file duy nhất với vị trí được chọn là ngẫu nhiên trong số các vị trí đã chọn. Số lượng file sẽ được hiển thị ở phía dưới cửa sổ và sẽ tự động được cập nhật. |
| Màu sắc của các hình: 5 vị trí | Năm ô thay vì danh sách tên. Đánh dấu – ô được chọn, màu sắc được chọn ngẫu nhiên từ các ô đã đánh dấu (±12 theo kênh, để tránh chỉ có một màu). Nút mẫu – chọn màu từ bảng màu, 💧 ống hút – nhấp vào khung hình thực tế (bánh xe – điều chỉnh tiêu, nút chuột phải – điều chỉnh góc nhìn) và chọn màu từ chi tiết hoặc bảng mạch thực tế. Mặc định, hai ô đã được kích hoạt – một màu tối và một màu sáng, ba ô còn lại đã tắt. |
| Cột "chung" | Nếu hình bị lỗi được đánh dấu, nó sẽ được lưu vào một tệp chung cùng với các "hình chung" khác (ví dụ: vết xước trên một phần bị dịch chuyển). Nếu không đánh dấu, sẽ có một tệp riêng chứa "hình bình thường + chỉ hình bị lỗi này". Hình với "tất cả các vị trí" luôn là một tệp riêng. |
4.7. Các vùng bất thường: cửa sổ cài đặt
Nút PHỐI HỢP: các vùng chứa "anomalies" tạo ra các lớp zone_NNN_anomaly từ các vùng bình thường. Tất cả các vùng đều được chọn, ngoại trừ các vùng màu đỏ (các vùng bị tắt do nhấp chuột trong khung AI Model, phần 4.3). Các lớp "anomalies" không cần thiết ở mọi vùng: chỉ cần thêm chúng vào các vùng nơi có lỗi thực sự xảy ra, còn các vùng khác sẽ được mô hình kiểm tra bằng cách nhận diện.

| Cài đặt | Nó làm gì |
|---|---|
| Sao chép lên hình bị lỗi | Một giá trị duy nhất cho tất cả các loại: tạo bao nhiêu bản sao với các tham số ngẫu nhiên mới cho mỗi loại đã chọn (mặc định là 10). |
| ▸ Các lỗi tổng hợp trên vùng cắt | Nhóm mặc định: hình chữ nhật, hình chữ nhật nhỏ, hình tròn, hình elip, hình tam giác, hình số 8, đường/vết, hình thánh giá, khu vực bị thiếu, vùng bị mờ, vùng nhiễu, một phần của một khu vực khác. Các thông số của hình, vị trí và bảng màu – phần 4.6. |
| Di chuyển, px · vị trí · hình dạng | Lỗi chính của bo mạch. Khu vực (hình tròn hoặc hình vuông) dịch chuyển 5–12 px theo các hướng được chỉ ra: ← → ↑ ↓ và hai đường chéo ⤡ ⤢. mức độ theo chiều dọc / chiều ngang, ±% — kích thước của khu vực so với vùng: 0 — toàn bộ vùng, −30 — khu vực nhỏ hơn 30 % (chỉ phần tử được dịch chuyển, phần gốc vẫn giữ nguyên), +30 — khu vực lớn hơn vùng (bao gồm các phần tử lân cận từ khung). tất cả các hướng — theo từng hướng trong tệp. |
| Xoay, ° · hình dạng | Vùng (hình tròn hoặc hình vuông, cùng tỷ lệ ±%) xoay ngẫu nhiên trong phạm vi ở cả hai phía. |
| Mức độ (%): giảm / tăng | Vùng như một lỗi: giảm 60–85% hoặc tăng 120–160%. Mỗi cạnh đã chọn là một tệp riêng. Thường được tắt trên bo mạch. |
| "chung" cho di chuyển và xoay | Nếu cả hai ô đánh dấu đều được chọn, điều đó có nghĩa là một đối tượng trong một tệp: phép dịch chuyển và xoay được áp dụng bằng một phép biến đổi duy nhất (không phải theo thứ tự, nếu không sẽ tạo ra kết quả "lộn xộn"), tỷ lệ và hình dạng của vùng đều chung và được xác định trong phép dịch chuyển. |
| ▸ Các vùng nhỏ | Vùng được chia thành 2, 4 hoặc 9 phần, và trong mỗi phần, vùng được xoay hoặc di chuyển; hộp kiểm "từng vùng có ảnh riêng" cho mỗi phần. Cần thiết cho các vùng lớn với nhiều thành phần. |
| Ánh sáng và nhiễu trên mỗi tệp lỗi | Bật và bằng bình thường: lỗi nên khác về hình dạng, không phải về ánh sáng. |
| Ảnh theo thời gian / trong val | Mỗi bản sao từ khung hình mới của camera (800ms), 20% trong val, tệp đầu tiên của lớp trong val luôn có. |
4.8. Ảnh tham chiếu với các vùng: đinh tán và vùng chỉnh sửa
Nút "Ảnh tham chiếu với vùng" mở ảnh tham chiếu của bo mạch với lưới đã lưu. Tại đây, dữ liệu được tổng hợp mà không cần sử dụng camera: bánh xe để điều chỉnh zoom, nút chuột phải để điều chỉnh góc nhìn toàn cảnh, nút chuột trái để chọn vùng (Ctrl để thêm, kéo bằng chuột để định hình, Ctrl+A để chọn tất cả), nhấp đôi để mở trình chỉnh sửa vùng.
- Vòng đệm hàn cho các khu vực đã chọn… – cửa sổ "Vòng đệm hàn: kết nối giữa các đường dẫn". Chương trình tự động tìm các đường dẫn trong khu vực (đường dẫn theo tiêu chuẩn Ots, các dải sáng có độ rộng ≥ 2 px), đặt một giọt hàn vào khoảng trống giữa các đường dẫn, sử dụng màu sắc của các đường dẫn, có cạnh tối và bóng. Cài đặt: giữa các đường dẫn thẳng đứng hoặc nằm ngang, vòng đệm trên ảnh 1…3, kích thước 8…18% của khu vực, ảnh cho mỗi khu vực (5), nơi đặt – vào vùng bất thường hoặc vùng bình thường, ánh sáng trên bề mặt, trong val – ảnh mới với ánh sáng khác hoặc bản sao chính xác.
- Công cụ chỉnh sửa vùng: Cọ, Pipet, Màu, Sao chép vùng, Sao chép, Dấu, Vùng khuôn; bảng màu "đầu nối / bề mặt", "bảng mạch", "tô bóng / mặt nạ", trắng, đen; ô "Sao chép" và nút Tạo ảnh. Như vậy, lỗi chưa có trên đường dẫn được tạo ra: bề mặt bị lấp đầy, phần tử thừa, nhãn bị thiếu.
Các tệp của trình chỉnh sửa có tên `edit_…` và được đưa vào một vùng hoặc một bất thường của vùng đó. Trên tab "Inspect", cửa sổ tương tự chỉ được mở để xem.
4.9. Huấn luyện mô hình
Giao diện Cài đặt huấn luyện trong tab Mô hình AI sẽ tự động điền sau khi chụp ảnh theo vùng: Kích thước ảnh 128, Kích thước mô hình s, Số chu kỳ 50, Kích thước lô 64. Đây là các giá trị tương ứng với vùng 108–137 px. Đối với vùng 256 px, như trong ví dụ, hãy đặt Kích thước ảnh là 192 hoặc 256 – việc cắt sẽ không bị nén đáng kể (trong cửa sổ chính, các giá trị Epochs là 100 và Kích thước ảnh là 192). Kiểm tra các giá trị và nhấn HUẤN LƯỢN MÔ HÌNH AI.
| Tham số | Ý nghĩa | Cách chọn |
|---|---|---|
| Epochs | Mô hình sẽ xem toàn bộ tập dữ liệu bao nhiêu lần | Mặc định là 50; 100-150 nếu có nhiều lớp bất thường |
| Batch Size | Số lượng ảnh trong mỗi bước | 64; giảm nếu thiếu bộ nhớ video |
| Image Size | Kích thước của các vùng cắt, chia đều theo 32 | Kích thước vùng ước tính: 128 cho vùng 108-137px; 192-256 cho vùng 256px, như trong ví dụ |
| Model Size | n / s / m / l / x | s — tối ưu cho hàng trăm cặp lớp; n thiếu dung lượng, m và cao hơn — chậm hơn |
| Device | Phương pháp huấn luyện | 0 (GPU) với card đồ họa NVIDIA; nếu không có CUDA, chương trình sẽ tự chuyển sang CPU |
| Workers | Số lượng luồng xử lý dữ liệu | 12 (mặc định cho bộ xử lý đa nhân) |
5. Kiểm tra
Tất cả các thao tác được thực hiện trên tab "Inspect". Mô hình đã được huấn luyện, vì vậy chỉ cần kiểm tra các vùng, điều chỉnh ngưỡng, chọn nguồn tốc độ và, nếu bo mạch hoạt động ở bất kỳ vị trí nào, hãy kích hoạt chế độ hoạt động trực tiếp.

5.1. Chỉ định mô hình và kiểm tra các vùng
5.2. Cường độ nhận diện vùng
Đối với mỗi vùng, mạng lưới cung cấp xác suất cho tất cả các lớp, nhưng quyết định chỉ được đưa ra trong phạm vi một cặp. Tỷ lệ "bình thường" q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)) được nhân với một hệ số "độ tin cậy" - thể hiện mức độ mà cặp này thực sự được mạng lưới nhận diện (độ tin cậy cao khi đạt 10% trở lên). Điểm số cuối cùng, từ 0 đến 100%, được so sánh với một ngưỡng: nếu cao hơn ngưỡng, được đánh giá là bình thường, nếu thấp hơn ngưỡng, được đánh giá là bất thường.
Giá trị mặc định là 50%, được lưu trữ trong `board.json` cùng với mô hình và được áp dụng ngay lập tức, không cần khởi động lại. Nếu giá trị dưới 50%, mức độ "bình thường" sẽ tăng lên: 25% → ngưỡng cắt là 6%, 10% → 0,4%, 1% → gần như toàn bộ màu xanh; 99% chỉ cho phép đi qua các khu vực đáng tin cậy. Thang đo này được sử dụng để người điều khiển có thể phân biệt sự khác biệt giữa 5% và 99%, thay vì chỉ các khu vực màu đỏ.
5.3. Dòng xử lý liên tục: hoạt động ở bất kỳ vị trí nào
Gà lọi Hệ thống sản xuất linh hoạt: thanh toán bất kể tư thế nào Nó bao gồm việc tìm kiếm vùng căn chỉnh trước mỗi lần phân tích: khung hình được căn chỉnh với ảnh tham chiếu, các vùng được cắt ra từ hình ảnh đã căn chỉnh, và các đường viền của vùng căn chỉnh và các vùng được vẽ trên video (màu xanh lá cây biểu thị trạng thái bình thường, màu đỏ biểu thị bất thường). Khu vực.. thời gian, tính bằng mili giây Thiết lập tần suất kiểm tra tín hiệu (mặc định là 1000, trong ảnh là 2000). Chỉ báo bên cạnh hiển thị: màu xanh lá cây "bình thường - N điểm", màu đỏ "DỊCH VONG - N điểm", màu cam "không tìm thấy tín hiệu" hoặc "không có ảnh tham chiếu - hãy chụp ảnh". Kết quả được đưa ra dựa trên một lần phân tích duy nhất, không tích lũy.
Ảnh tham chiếu và vùng căn chỉnh được xác định bằng cùng một nút "Xác định ảnh tham chiếu", giống như khi chụp ảnh (phần 4.4); "Ảnh tham chiếu với vùng cho phép xem. Trên video, các đường viền vùng căn chỉnh và các điểm hỗ trợ màu xanh được vẽ, nơi thanh được căn chỉnh. Các vùng vượt ra ngoài khung hình sau khi căn chỉnh sẽ được bỏ qua với nhãn "BỎ QUA".
5.4. Dựa trên tín hiệu nào để phân tích
Nguồn tín hiệu luôn là một: khi thêm một tín hiệu mới, chương trình sẽ xóa tín hiệu cũ.
| Cách | Cách bật | Khi nào sử dụng |
|---|---|---|
| Theo camera | ký tự "Theo camera" | kiểm soát liên tục; tốc độ giới hạn bằng thanh trượt "Số lượng phân tích mỗi giây" trên tab Camera |
| Theo đồng hồ hẹn giờ | ký tự "Theo đồng hồ hẹn giờ" và khoảng thời gian, mili giây | kiểm soát thưa thớt, ví dụ một lần mỗi giây |
| Theo tín hiệu | chọn kết nối trong danh sách "Tín hiệu" và biên độ "phân tích khi tín hiệu dương" hoặc "phân tích khi tín hiệu âm" | Hệ thống với cảm biến trên đầu vào của camera: khung hình được chụp vào thời điểm sản phẩm đến – phương pháp chính xác nhất (phần 6) |
| GPU | Đánh dấu "GPU" | Bật mặc định; chuyển đổi sẽ khởi động lại mô hình |
| Phân tích độ xám | Đánh dấu "Phân tích độ xám" | Tự động bật cho các mô hình đã được huấn luyện bằng độ xám; các vùng được chuyển thành độ xám trước khi suy luận |
5.5. Khu vực màu vàng: tắt khu vực bằng cách nhấp
Trên đường, đôi khi cần tạm thời loại bỏ một số khu vực khỏi hệ thống kiểm soát: thành phần không được cài đặt trên lô này, khu vực bị chặn bởi thiết bị, đang trong quá trình kiểm tra. Để làm điều này, không cần phải chỉnh sửa lưới hoặc mô hình, các khu vực có thể tắt trực tiếp trên video, chỉ trên tab Inspect.
Chức năng của các vùng màu vàng được xác định bởi hộp kiểm chung "Các vùng màu vàng (tắt bằng cách nhấp chuột) sẽ không phát ra âm thanh" trong cửa sổ OUTPUT, trên tab "Âm thanh" (đã được bật theo mặc định):
| Đánh dấu | Hành vi của các khu vực màu vàng |
|---|---|
| Bật (mặc định) | Khu vực không được phân tích: vùng không được gửi đến mạng, nhãn OFF, không có âm thanh, không có gói TCP, không có kết quả từ camera. Trong quy trình thực tế, khu vực màu vàng không ảnh hưởng đến kết quả "bình thường / bất thường". |
| Tắt | Khung màu vàng chỉ còn lại để ghi chú: khu vực đang được phân tích và hoạt động như bình thường. Điều này rất tiện lợi để đánh dấu các khu vực cần kiểm tra mà không cần tắt chức năng giám sát. |
5.6. Những gì hiển thị trên màn hình và trong bảng điều khiển
- Kết quả đã được hiển thị cho khu vực; đường viền – màu của các vùng, khi kích hoạt, sẽ là màu đỏ. Khi có hơn 50 vùng, vùng bình thường chỉ hiển thị bằng đường viền màu xanh, các vùng bất thường và không chắc chắn sẽ hiển thị bằng các ký hiệu khác: nhiều ký hiệu trên mỗi khung hình gây khó khăn cho việc đọc và làm chậm quá trình vẽ. Các vùng màu vàng đã bị tắt bằng cách nhấp chuột (phần 5.5).
- "Phần phân tích theo kích hoạt" ở cuối tab hiển thị mỗi lần kích hoạt dưới dạng dòng: [hh:mm:ss.mmm] Camera cửa ra + KÍCH HOẠT 4ms | AI 12ms #57 và kết quả cho mỗi khu vực. Các dòng này không được lưu vào cơ sở dữ liệu.
- Nhấp chuột phải vào khu vực trên video: "Phân loại trong khu vực này → đặt tên là «…»" thay đổi tên phản hồi của mô hình cho khu vực đó (không sửa đổi mô hình, nhưng bộ lọc và nhật ký sẽ thấy tên mới); cũng ở đó là "Tạo bộ lọc cho khu vực này" và bộ quy tắc.
- Gà lọi Lưu trữ các hình ảnh kiểm tra và thư mục: các hình ảnh với các khu vực được vẽ sẽ được lưu trữ dưới dạng các tệp tin inspect_….jpgMỗi máy ảnh có các cài đặt riêng.
- Mỗi 10 phút, một khung hình từ quy trình sản xuất và danh sách các khu vực được lưu trữ sẽ được ghi vào thư mục con diag, đồng thời lưu giữ 20 khung hình gần nhất – để phân tích các trường hợp tranh chấp mà không cần mở rộng thư mục.
6. Các bộ kích hoạt: cảm biến bên ngoài trên đầu vào của camera
Chế độ chính cho dây chuyền: Camera chụp ảnh dựa trên tín hiệu điện từ cảm biến ở đầu vào rời của nó. Đây là thời điểm chụp ảnh chính xác nhất: sản phẩm luôn ở một vị trí cố định trong khung hình, và phân tích chỉ được thực hiện một lần cho từng sản phẩm. Phần mềm TRÌGGER thu thập kết nối "cảm biến → camera" và vẽ sơ đồ kết nối cho loại đầu nối đã chọn.


Sơ đồ kết nối các đầu
| Chân | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR — nguồn điện cho camera: 9-24V | GND — đất nối của camera |
| 2 | OPTO_IN — Đầu vào Line 0 (+), tín hiệu kích hoạt | VCC — nguồn điện của camera (12–24V) |
| 3 | GPIO — Line 2, đầu vào hoặc đầu ra | Đầu vào − — đầu vào của cảm biến quang điện |
| 4 | OPTO_OUT — đầu ra của đường dây 1 (+) | Đầu vào của cảm biến + — (+) |
| 5 | OPTO_GND — một loại cảm biến quang, có dây dẫn ngược | Flash + — đầu ra rời (âm) |
| 6 | GND — đất nối của camera | Flash − — đầu ra rời (dương) |
7. Đầu ra: bộ lọc, đầu ra rời của camera và TCP
Bộ điều khiển chuyển đổi kết quả kiểm tra thành hành động. Quy tắc được tạo trên một khu vực cụ thể (hoặc trên tất cả các khu vực của mô hình, lớp hoặc các khu vực đã đánh dấu) và kích hoạt khi mô hình phát hiện ra lớp được chỉ định trong khu vực đó. Có ba hành động: gửi gói TCP đến robot hoặc PLC, chuyển đổi trạng thái đầu ra kỹ thuật số của camera và phát âm thanh cảnh báo cho người vận hành. Mỗi lần kích hoạt đều được ghi lại trong nhật ký.
7.1. Hướng dẫn: Đầu ra - kết nối và kiểm tra bằng đồng hồ đo
Nút "THOÁT" trên video sẽ mở ra một cửa sổ hướng dẫn, nhưng cửa sổ này không thực hiện bất kỳ cài đặt nào: nó hiển thị các đầu ra, cách kiểm tra chúng bằng thiết bị đo, và cách kết nối tải.


- Đầu ra — "cổng khô" của cảm biến quang: nó không cung cấp điện áp riêng, chỉ đóng mạch. Cần nguồn điện bên ngoài.
- Kiểm tra bằng đồng hồ đo trong chế độ Ω: đầu ra TẮT — ngắt mạch (OL), ĐIỀN — hàng trăm Ohm. Còi không phát ra âm thanh trong cả hai trường hợp, hãy xem các con số. Nếu không có sự thay đổi — hãy đảo ngược các đầu dò, cảm biến quang có cực.
- Tải: +24V → đèn → chân "+", chân "-" → GND. Đối với HIKROBOT, mức tiêu thụ tối đa là 25mA, nếu vượt quá, hãy giảm nguồn hoặc sử dụng relay trung gian. Đối với SICK, mức tiêu thụ lớn, đèn 20-30mA có thể được kết nối trực tiếp.
7.2. Cửa sổ OUTPUT: quy tắc cho vùng
Nút OUTPUT trên thanh bên phải (hoặc nhấp chuột phải vào khu vực → "Tạo bộ loại bỏ cho khu vực này") sẽ mở cửa sổ "OUTPUT - Gửi dữ liệu TCP và đầu ra rời của camera". Ở bên trái, bạn sẽ thấy cây thư mục Camera → Mô hình AI → Phân loại → Khu vực với các khu vực được đánh dấu; ở bên phải, bạn sẽ thấy các tab Quy tắc khu vực, Lịch sử hoạt động, Cơ sở dữ liệu.

Một vùng có thể chứa nhiều quy tắc TCP (các cổng nhận khác nhau), tối đa một quy tắc đầu ra rời rạc cho mỗi nhóm, và tối đa một âm thanh cho mỗi nhóm. Quy tắc được lưu trữ trong cơ sở dữ liệu và hoạt động từ luồng suy luận: các quy tắc được lưu trong bộ nhớ, một tìm kiếm theo địa chỉ vùng trên mỗi khung hình, và các socket và SDK của camera được xử lý bởi một luồng riêng biệt, để phân tích không phải chờ đợi mạng.
7.3. Gửi gói TCP cho robot hoặc PLC
Chương trình hoạt động như một máy khách TCP: nó kết nối đến địa chỉ IP và cổng của máy chủ, duy trì kết nối và tái sử dụng nó. Khi kết nối bị gián đoạn, chương trình sẽ thử kết nối lại một lần và lặp lại quá trình. Dữ liệu được truyền đi ở định dạng UTF-8 và có ký tự CR+LF ở cuối mỗi dòng.
| Trường | Chức năng |
|---|---|
| Thời gian chờ kết nối, ms | Mặc định là 1000, từ 100...10000. |
| Thời gian chờ gửi quy tắc, ms | Thời gian tạm dừng tối thiểu giữa các lần gửi quy tắc tự động; 0 là không có thời gian tạm dừng. Ngay cả việc thay đổi lớp cũng cần thời gian tạm dừng này. |
| Lệnh | Dịch trực tiếp: "up" - gói "up". Cần một góc - thêm biến: "J6 {class}" → "J6 235". Trống - sử dụng mẫu "Dữ liệu". |
| Dữ liệu của bạn | Văn bản tùy ý, được sử dụng thay thế cho `{data}`. |
| Dữ liệu | Mẫu đơn giao hàng. Trống = «số và tên khu vực» ({zoneId} {zone}). Nhấn vào ô để thêm, nhấn lại để xóa; «Tất cả các trường» tạo một mẫu có cấu trúc. |
| Thay thế | Ý nghĩa | Thay thế | Ý nghĩa |
|---|---|---|---|
| {zoneId} | Số vùng (1, 2, 3...) | {camera} | Tên camera |
| {zone} | Tên vùng (có thể chỉnh sửa trong cơ sở dữ liệu) | {model} | Tên mô hình AI |
| {class} | Loại hình mà mô hình đã nhận | {time} | Thời gian (HH:MM:SS.ms) |
| {conf} | Mức độ tin cậy, % (dấu chấm là dấu phân cách) | {date} | Ngày (YYYY-MM-DD) |
| {data} | Văn bản từ "Dữ liệu của bạn" |
Ví dụ về mẫu cấu trúc: zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. Các số luôn ở định dạng nhất quán để tránh gây lỗi khi phân tích trên PLC.
- Kiểm tra kết nối chỉ mở socket và báo cáo "kết nối đã được thiết lập" hoặc "không có phản hồi sau N ms".
- Gửi thử nghiệm thực sự gửi một chuỗi ký tự; kết quả hiển thị ngay bên cạnh nút, chứ không phải trong một cửa sổ riêng.
- Gửi tin nhắn. Nếu không đánh dấu "lặp lại", quy tắc sẽ gửi một tin nhắn khi thay đổi lớp và tiếp tục gửi tin nhắn cho đến khi người nhận phản hồi bằng dòng "ok <tin nhắn>". Nếu đánh dấu, tin nhắn sẽ được gửi lại theo khoảng thời gian nhất định, cho đến khi lớp học vẫn còn.
- "Lệnh cuối cùng thắng": Nếu mô hình đã đưa ra nhiều kết quả trong khi người điều khiển đang bận, kết quả cuối cùng sẽ được thực hiện. Hàng đợi bị giới hạn 512 nhiệm vụ.
7.4. Đầu ra rời của camera

| Trường | Chức năng |
|---|---|
| Đầu ra | Phương pháp: tự động, ở SICK - tín hiệu Flash (mức liên tục) hoặc GPIO; ở HIKROBOT - UserOutputValue hoặc LineInverter (tín hiệu tắt). Các mẫu MV-CS020/016-10GC của UserOutput không có - chương trình sẽ tự chọn LineInverter. |
| Đường | Tín hiệu Flash / GPIO1…6 ở SICK; Line1 (đầu ra), Line2 (hai chiều) ở HIKROBOT; Line0 - chỉ đầu vào. |
| Mức | true / false / tắt. "tắt" - có quy tắc, nhưng đầu ra không được tác động. |
| Xung, ms (0 - giữ) | 0 - mức được giữ cho đến khi thay đổi lớp; nếu không, xung 10…5000 ms với sự đảo ngược. |
Các nút Bật/Tắt, Tắt, Tín hiệu được kiểm tra bằng máy đo hoặc đèn; Khả năng của camera thu thập thông tin từ tất cả các phương pháp và in báo cáo. Các thử nghiệm thủ công được ghi lại trong cùng một cuốn sổ.
7.5. Cảnh báo bằng âm thanh: âm thanh riêng cho mỗi khu vực
Loại quy tắc thứ ba là âm thanh từ máy tính với phần mềm. Người điều khiển không cần phải nhìn vào màn hình: khi có tín hiệu, họ sẽ nghe thấy khu vực nào đang gặp lỗi, và các âm thanh khác nhau ở các khu vực khác nhau sẽ cho biết chính xác vị trí. Âm thanh có thể được sử dụng với bất kỳ camera nào, bao gồm cả USB và RTSP, không có đầu ra riêng.
| Cách hoạt động | Cách hoạt động |
|---|---|
| Không có tùy chọn "lặp lại" | Âm thanh phát một lần khi trạng thái khu vực đã được xác nhận (sau khi "Xác nhận thay đổi trạng thái"). Khi trạng thái vẫn còn, sẽ không có âm thanh. |
| Với tùy chọn "lặp lại cho đến khi trạng thái còn" | Tín hiệu sẽ lặp lại sau "Khoảng thời gian lặp lại", nhưng không quá thời gian giữa các lần phát, cho đến khi khu vực vẫn còn ở trạng thái đã chỉ định. |
| Nhiều khu vực gặp lỗi cùng một lúc | Mỗi khu vực sẽ phát âm thanh riêng; các tín hiệu từ các khu vực khác nhau không bị át đi, chỉ tín hiệu từ một khu vực duy nhất bị át. |
| Lịch sử | Mỗi lần phát hiện sẽ được ghi lại trong "Nhật ký phát hiện" với dòng "Âm thanh «…»"; nếu tệp không được tìm thấy hoặc thiết bị âm thanh không hoạt động, dòng lỗi sẽ được hiển thị, và chương trình vẫn tiếp tục hoạt động. |
| Kiểm tra | Kiểm tra quy tắc này phát âm thanh ngay lập tức; Mô phỏng hoạt động của vùng phát âm thanh cùng với TCP và các cổng thông qua luồng chiến đấu. |
7.6. Nhật ký phát hiện và cơ sở dữ liệu
Tab "Nhật ký sự kiện" hiển thị 300 bản ghi gần đây nhất, được trình bày theo dòng với thông tin "HH:MM:SS.mmm ✔/✖ Camera · Model · Class · Zone → Hành động [thông báo]", và được cập nhật trực tiếp. Các nút "Cập nhật" và "Xóa nhật ký" có sẵn.

Thẻ "Cơ sở dữ liệu": chương trình lưu trữ tất cả trong tệp SQLite rejectors.db cùng với file exe – không có dịch vụ riêng, cổng không hoạt động, không cần cài đặt. Các bảng: settings (cài đặt), cameras (hồ sơ camera), camera_models (mô hình trên camera), zones (tên và hình dạng khu vực), rejectors (quy tắc), reject_log (lịch sử), camera_param_files (bản sao thông số camera), camera_presets (tập hợp cài đặt camera). "Lưu bản sao cơ sở dữ liệu…" tạo một bản chụp toàn bộ bằng lệnh VACUUM INTO trực tiếp trên cơ sở dữ liệu đang hoạt động; "Tải cơ sở dữ liệu từ bản sao…" khôi phục, trước đó lưu lại bản hiện tại. Bạn có thể xem cơ sở dữ liệu trong DBeaver mà không cần đóng chương trình; không nên ghi vào từ bên ngoài.
8. Các chế độ và nhiệm vụ khác
Các mô hình thông thường: normal / anomaly và bất kỳ lớp nào
Cùng một trình biên ROI cũng được sử dụng cho phân loại thông thường: viên thuốc, nắp, nhãn, chi tiết trong khay. Các lớp được xác định trong cuộc đối thoại "Mô hình AI mới" (mặc định là normal và anomaly, tên bằng chữ cái viết hoa), các vùng được đặt trên sản phẩm, nút Chụp ảnh với số lượng vòng tròn từ 1…50, chuỗi Tạo ảnh theo camera (khung/khung), hoặc theo encoder. Thanh dữ liệu tổng hợp cho AI: góc quay chính xác 90°/180°, quay vòng 360° với bước và phạm vi, gương, "các lớp theo độ" (mỗi góc thuộc một lớp - bộ loại bỏ sẽ gửi góc qua TCP), phạm vi độ sáng và độ tương phản. Huấn luyện với các tăng cường đầy đủ của Ultralytics. Cần thiết đặt ngưỡng độ tin cậy cho các mô hình này ở cùng vị trí với VÙNG-CẶP - trên tab Inspect.
Kiểm tra đa mô hình (các khe 1–20)
Một camera có thể chứa tối đa 20 mẫu: Thêm ONNX vào vị trí, sau đó ROI → Thêm lớp vào mô hình đã chọn — mỗi mẫu trong vị trí có vùng đánh dấu riêng, kết quả của tất cả các mẫu được hiển thị trên một khung hình.
Khi đa mô hình vẫn được áp dụng:
| Tình huống | Cách cấu hình |
|---|---|
| Các nhiệm vụ khác nhau trên một khung hình | VÙNG-CẶP kiểm tra bố cục và sự hiện diện của các yếu tố, trong khi mô hình thông thường ở khe thứ hai - đánh dấu, nhãn, màu đầu hoặc hướng khóa. Các vùng của mô hình thứ hai được đặt riêng thông qua "ROI → Thêm lớp vào mô hình đã chọn". |
| Sản phẩm không có lưới cố định | Viên thuốc, nắp, các bộ phận trong ngăn chứa: nhiều loại hình sản phẩm trong các mẫu thông thường. Các loại hình tương tự được phân loại vào các ngăn khác nhau để tránh trùng lặp. |
| Hai bo mạch khác nhau trong một khung | Hai mẫu VÙNG-CẶP trong các ngăn khác nhau, mỗi mẫu có ảnh tham chiếu và lưới riêng. Hệ thống dây chuyền sản xuất hoạt động với ảnh tham chiếu của mẫu chính. |
| Giai đoạn chuyển đổi | Mẫu cũ đã được huấn luyện vẫn còn trong ngăn, trong khi mẫu VÙNG-CẶP mới đang thu thập dữ liệu; cả hai đều hiển thị trên cùng một khung, các quy tắc phân loại được chuyển theo mức độ tin cậy. |
Các ngưỡng, tốc độ phân tích, vùng màu vàng và quy tắc loại bỏ áp dụng cho tất cả các mẫu camera. Nút "XÓA MẪU" làm sạch và dọn dẹp các khe, vì vậy nó yêu cầu xác nhận; "Xóa mẫu đã chọn" loại bỏ một mẫu khỏi khe, các tệp và vùng trong cơ sở dữ liệu vẫn còn.
Các mẫu chung
Nút MÔ HÌNH CHUNG lưu trữ bộ "cámara → mô hình" với tên: Tạo từ các mô hình hiện tại, Áp dụng cho tất cả các camera, Cập nhật từ các mô hình hiện tại, Thay đổi tên, Xóa bộ. Việc chuyển đổi từ tám camera sang một sản phẩm khác chỉ cần một thao tác. Việc xóa bộ chỉ loại bỏ nhóm: thư mục, ONNX, vùng và quy tắc vẫn còn. Các vùng thuộc về cặp "camera + mô hình": một mô hình trên tám camera - tám định vị độc lập.
Bộ mã hóa và bộ phân loại trên dây chuyền
Đối với các đường dẫn có bộ mã hóa trên cổng COM (115200, ESP32): kết nối KẾT NỐI BỘ MÃ HÓA, tự động kết nối, vị trí, bước chụp và điều chỉnh, Thiết lập giá trị 0 + CHỤP. Chụp ảnh để huấn luyện và phân tích có thể được thực hiện "dựa trên bộ mã hóa" - các khung hình đều nhau dọc theo đường đi của sản phẩm. Bộ loại bỏ cũ với độ trễ và chống spam gửi lệnh REJECT đến bộ điều khiển bộ mã hóa.
Ghi lại video và ảnh
Tab Cài đặt: BẮT ĐẦU GHI LẠI VIDEO từ camera đang hoạt động và lưu vào file record_ngày_giờ.avi (định dạng MJPG, tốc độ khung hình thực tế của camera). Ảnh dùng để huấn luyện có định dạng real_….jpg, ảnh dùng để kiểm tra có định dạng inspect_….jpg và có các vùng được đánh dấu.
9. Cài đặt, bảng điều khiển, yêu cầu và giấy phép
Settings
- LƯU VÀO TỆP / TẢI VÀO TỪ TỆP – tất cả các cài đặt (cámara, mô hình, quy tắc) ở định dạng JSON, rất tiện lợi khi muốn cài đặt lại hoặc chuyển sang máy tính khác. Nguồn gốc chính xác là cơ sở dữ liệu, JSON là phương án dự phòng khi cơ sở dữ liệu không khả dụng. Mỗi thay đổi cài đặt đều được lưu tự động.
- Xóa cài đặt mặc định — là một thao tác không thể hoàn tác: xóa cấu hình và bố cục cửa sổ.
- Ngôn ngữ giao diện: 14 ngôn ngữ; cửa sổ chính có thể chuyển đổi ngay lập tức, các cửa sổ khác sẽ hiển thị khi mở lần sau.
- Vị trí, kích thước và màn hình của tất cả các cửa sổ, vị trí của các dấu phân cách - đều được lưu trong cơ sở dữ liệu; khi tắt màn hình, cửa sổ sẽ trở lại khu vực hiển thị.
Console
Các dấu kiểm "Camera" và "Trigger" mặc định bị tắt và hiển thị các thông báo tương ứng (khi thông báo của camera ở chế độ "Trigger", chúng sẽ hiển thị trong "Trigger"); tất cả dữ liệu, bao gồm cả dữ liệu trước khi lọc, được ghi vào các tệp logs\engiai-*.log. Hệ thống được thiết kế để hoạt động trong nhiều tuần mà không cần sự can thiệp: màn hình hiển thị 800 dòng, và 1000 dòng cũ sẽ bị xóa; các dòng mới được thu thập theo nhóm 4 lần mỗi giây, thay vì một lần; chức năng tự động cuộn xuống được kích hoạt cho đến khi bạn tự cuộn lên; hệ thống không phát ra âm thanh. Việc thay đổi phân loại khu vực chỉ ghi tối đa 10 dòng mỗi giây (các dòng còn lại được tổng hợp trong một số), tệp nhật ký có dung lượng 20 MB, các tệp cũ hơn 14 ngày sẽ bị xóa khi khởi động, cơ sở dữ liệu lưu trữ 20.000 bản ghi gần đây nhất. Các lỗi chưa được xử lý được ghi trong crash.log, nguyên nhân gây ra việc tắt chương trình được ghi trong runtime.log bên cạnh file exe. Nếu có vấn đề xảy ra, hãy kiểm tra ở đây trước tiên.
Yêu cầu
| Thành phần | Yêu cầu |
|---|---|
| Hệ điều hành | Windows 10/11 x64. |
| Card đồ họa để kiểm tra | NVIDIA với trình điều khiển CUDA; thư viện CUDA 13 và cuDNN 9 đi kèm với phần mềm. Nếu không có card đồ họa, việc kiểm tra sẽ tự động trên bộ xử lý. |
| Hướng dẫn | Python 3 (kèm theo tùy chọn "Thêm python.exe vào PATH" khi cài đặt) và các gói ultralytics, onnx, onnxslim, onnxruntime – chương trình tự cài đặt chúng khi lần đầu sử dụng, cần kết nối internet. GPU để huấn luyện được xác định dựa trên PyTorch; nếu không có CUDA, quá trình huấn luyện sẽ diễn ra chậm hơn trên CPU, nhưng kết quả vẫn như nhau. |
| Máy ảnh SICK | Trình điều khiển IDS uEye; máy ảnh phải hiển thị trong IDS Camera Manager. |
| Máy ảnh HIKROBOT | Bộ công cụ MVS (thư viện đi kèm với phần mềm); cho GigE - card mạng hỗ trợ các khung hình lớn. |
Giấy phép và chế độ thử nghiệm
Khi khởi động, chương trình truy cập vào máy chủ cấp phép engi.live; chỉ gửi các mã định danh thiết bị và phiên bản, không có số serial và tên người dùng. Nếu không có máy chủ và quyền đã được lưu, chương trình sẽ hoạt động dựa trên bộ nhớ cache (cho các đường truyền không có kết nối internet). Trong chế độ dùng thử 20 phút, chương trình hiển thị "THỬ NGHIỆM MM:СС" trên thanh tiêu đề và trong ô nhập liệu, nút "MUA" trên tab Cài đặt mở trang mua. Khi có giấy phép, chức năng dùng thử sẽ không còn.
10. Danh sách kiểm tra ngắn và tìm kiếm lỗi
Danh sách kiểm tra từ đầu cho bo mạch
Nếu có vấn đề xảy ra
| Triệu chứng | Cần kiểm tra |
|---|---|
| Camera không xuất hiện trong danh sách | Nguồn điện và cáp; đối với SICK — IDS Camera Manager và IP từ mạng con của bộ điều hợp; đối với HIKROBOT, sau khi tắt, hãy chờ 25 giây và «Khởi động lại» |
| Hình ảnh tối, xám hoặc màu sắc sai | Camera → «Tự động điều chỉnh cho AI»; đối với SICK màu — bố trí Bayer và cân bằng trắng; đối với USB — «Các cài đặt tiêu chuẩn», sau đó «Xác nhận cài đặt» |
| Các khung hình bị gián đoạn, màu đỏ | GigE: kích thước gói 1500 hoặc jumbo trên card mạng, độ trễ giữa các gói; số FPS thấp hơn hoặc số khung hình ít hơn; card mạng riêng cho camera |
| "Không tìm thấy linh kiện" / hình ảnh bị bỏ qua | ảnh tham chiếu không được ghi nhận hoặc chụp dưới ánh sáng khác; ít điểm tham chiếu - chọn vùng căn chỉnh lớn hơn và có nhiều chi tiết; vùng bị ảnh hưởng bởi bàn hoặc băng tải; tăng thời gian tìm kiếm |
| Các vùng di chuyển sang một linh kiện khác | lin kiện được tìm kiếm theo các vùng kiểm tra: ghi nhận lại ảnh tham chiếu từ vùng căn chỉnh chi tiết của linh kiện xung quanh (phần 4.4); chế độ tự động |
| Có linh kiện bị lỗi từ lô khác | giao diện trên vỏ khác: thêm hình ảnh bình thường từ lô này; không tạo vết xước tổng hợp nhỏ hơn 3px (phần 4.6); kiểm tra xem lỗi là do dịch chuyển hay màu sắc |
| Các khu vực được đánh dấu NO_ZONE_CLASS | mạng thay đổi sau khi huấn luyện; khôi phục mạng hoặc tạo một mô hình mới và chụp lại |
| Tất cả các vùng đều màu đỏ trên linh kiện hoạt động | Một loại phí hoặc vị trí khác mà không có hệ thống băng tải; ngưỡng quá cao; hình ảnh được chụp dưới ánh sáng khác; hỗn hợp các tệp màu và xám |
| Mô hình không nhận biết sự thay đổi của đối tượng | Tính toán px/mm (phần 1.3): khi tỷ lệ nhỏ, sự thay đổi nhỏ hơn 5px; giảm phạm vi nhìn hoặc sử dụng máy ảnh có độ phân giải cao hơn; không mở rộng sự thay đổi bình thường |
| Quá trình học giảm hoặc rất chậm | Thiết bị = cpu, nếu không có card NVIDIA; giảm kích thước Batch; xem Console; kiểm tra xem Python có trong PATH hay không |
| Kiểm tra không hoạt động | đã chọn best.onnx chưa; nguồn điều khiển tốc độ (chế độ "theo khung hình" / bộ đếm thời gian / bộ kích hoạt) đã được bật chưa; nút "Tắt AI" chưa được nhấn; ô "AI đã bật" trong cài đặt của camera đã được đánh dấu chưa. |
| Quy tắc loại bỏ im lặng | "Tạo trên N vùng" đã được nhấn; hộp kiểm "Bật"; lớp quy tắc phù hợp với kết quả của mô hình (bình thường/không bình thường); để thoát, mức không phải "tắt"; các máy ảnh USB không có đầu ra, chỉ có TCP |
| Âm thanh không phát | quy tắc đã được tạo và thêm vào; tệp tin nằm trong thư mục sounds (hoặc sounds\custom); có khoảng lặng giữa các âm thanh không; khi không chọn "lặp lại", âm thanh chỉ phát khi thay đổi lớp; âm lượng Windows và thiết bị phát |
| Gói TCP được gửi một lần | Nếu không có lệnh "lặp lại", hệ thống sẽ chờ phản hồi "ok <gửi hàng>" từ người nhận; đánh dấu "lặp lại cho đến khi kết nối được" hoặc cấu hình phản hồi trên PLC. |
engiAI Ethernet System. Tên nút và trường được hiển thị theo cách tương ứng trong chương trình bằng ngôn ngữ của bạn (ảnh chụp màn hình - từ giao diện tiếng Nga). Ảnh chụp màn hình được thực hiện trên mô hình "model_4" (hai vùng 256x256: tụ C30 và cầu BR1), camera USB 3264x2448, mô hình được huấn luyện bằng màu xám. Phiên bản 3, tháng 9 năm 2026: ví dụ trên hai vùng, tạo thư mục mô hình, vùng căn chỉnh, dữ liệu tổng hợp "thành phần có nền" với hình ảnh "trước / sau", bảng màu và độ dày đường, vùng màu đỏ, bảng điều khiển.
