engiAI

  • Persyaratan
Windows 10/11 x64. Analisis CPU dan GPU – versi RTX 50+.

⬇ engiAI.rar (900 MB)

⬇ engiAI-ZONA-PARA-ID.pdf (5.4 MB)

⬇ engiAI-doc-new-ID.pdf (12 MB)

SICK IDS Camera Manager ⬇ ids-software-suite-win-4.96.1.zip (184 MB)

SICK IDS Camera Manager - link 2

Pendaftaran

Mengajukan permohonan untuk engiAI

EngiAI (engiAI Ethernet System) — program desktop untuk visi komputer yang digunakan untuk inspeksi dan sortir produk di jalur produksi. Program ini ditulis dalam C# (.NET 9, WinForms) dan dikompilasi menjadi satu file yang dapat dijalankan secara mandiri (AOT) di Windows x64.

⬇ engiAI Deskripsi.pdf (73 KB)
  • Apa yang dilakukan
Pengambilan gambar dari kamera: kamera industri Hikrobot (SDK), USB/DirectShow, IDS uEye, serta kamera Android melalui OpenCV. Beberapa kamera digunakan secara bersamaan.

Inspeksi berbasis AI: Jaringan saraf YOLO (ONNX Runtime / GPU-CUDA atau CPU) dapat mengenali objek dan cacat secara *real-time*.

Area ROI (Return on Investment): Area yang dapat dikonfigurasi untuk kontrol, dengan kelas dan aturan yang ditentukan, area yang diberi nama, dan katalog.

Pengabaian (Rejector): Berdasarkan hasil analisis AI, perangkat ini menghasilkan sinyal untuk output diskrit (memulihkan kesalahan), dengan pengaturan pin dan verifikasi menggunakan alat penguji.

Pemicu: pengambilan gambar berdasarkan sinyal eksternal (input diskrit, encoder).

Pelatihan model: kumpulan data, data sintetis (rotasi/cermin/kecerahan), pelatihan YOLO11 langsung dari program.

Penyimpanan: basis SQLite lokal (rejectors.db) – model, zona, log aktivasi, status kamera.

  • Perizinan
Versi: (uji coba / lisensi / larangan)

Tanpa lisensi – mode uji coba 20 menit; dengan lisensi – berfungsi tanpa batasan.

Terhubung ke perangkat keras, kontrol semua instance yang berjalan.

engiAI Ethernet System
ZONA-PASANGAN — pemeriksaan visual papan sirkuit dan perakitan

Antarmuka engiAI tersedia dalam bahasa Indonesia: nama tombol dan kolom dalam panduan ini ditulis sesuai tampilannya di program.

Inti dari inspeksi adalah identifikasi zona-zona, yaitu ZONA-PASANGAN. Pada papan sirkuit, terdapat zona-zona yang perlu diperiksa. Setiap zona memiliki pasangan kelas "normal/anomali" yang berbeda. Metode ini hanya diterapkan pada pasangan kelas tersebut. Dalam contoh panduan, terdapat dua zona: kapasitor C30 dan jembatan BR1; pada papan sirkuit yang sebenarnya, jumlah zona ini bisa ratusan, dan metode yang sama diterapkan.
Data sintetis – pergeseran otomatis elemen dari substrat. Program mengambil komponen beserta area di sekitar (garis, jalur, warna substrat), mengurangi area hingga ukuran komponen, dan kemudian memindahkannya atau memutarnya. Pembuatan data cacat untuk pelatihan hanya memerlukan dua kali klik, tanpa menggunakan satu papan yang rusak.
Panduan Pengguna: Cara menghubungkan kamera, menandai area, menentukan area penyelarasan, mengambil gambar normal dan anomali, melatih model, menjalankan inspeksi, dan menghubungkannya dengan sistem pemberitahuan: berupa suara, output digital dari kamera SICK dan HIKROBOT, serta transmisi TCP ke robot atau PLC.
Langkah 1Kamera
Langkah 2Jaringan Zona
Langkah 3Nilai normal dan anomali
Langkah 4Pelatihan
Langkah 5Inspeksi
Langkah 6Port dan TCP
Semua tangkapan layar diambil menggunakan program yang sedang berjalan: perangkat vtlift, kamera USB 3264×2448, model model_4 untuk dua zona 256×256 (kapasitor C30 dan jembatan BR1), yang dilatih dalam skala abu-abu. Program ini bekerja dengan kamera HIKROBOT (GigE dan USB3), SICK picoCam (uEye), kamera USB/web, dan kamera IP melalui RTSP. Edisi 3 — September 2026.

Isi

  1. 1. Mengapa metode engiAI dan ZONA-PASANGAN?
  2. 1.1. Apa keuntungan metode ini dibandingkan dengan klasifikasi seluruh bingkai?
  3. 1.2. Kecepatan: AI hanya memproses informasi yang relevan.
  4. 1.3. Tingkat akurasi yang diharapkan: Menghitung berdasarkan kamera yang digunakan
  5. 1.4. Memulai dengan Cepat: Pengaturan telah disiapkan, area dan model dapat dipilih hanya dengan beberapa klik.
  6. 2. Antarmuka program dapat dipelajari dalam waktu satu menit.
  7. 3. Kamera: Pemasangan dan Pengaturan
  8. 3.1. Kamera apa saja yang didukung
  9. 3.2. Jendela KAMERA: menambahkan, mengubah, menghapus
  10. 3.3. Tab "Camera" untuk HIKROBOT dan SICK
  11. 3.4. Tab "Kamera" untuk USB/kamera web
  12. 3.5. Pengaturan kamera yang tersimpan (paket)
  13. 3.6. Jaringan GigE dan koneksi ulang
  14. 4. Model ZONA-PASANGAN: dari kisi-kisi hingga model yang telah dilatih
  15. 4.1. Bagaimana cara kerjanya: satu model, satu kelas untuk setiap zona
  16. 4.2. Membuat model
  17. 4.3. Menandai area pembayaran
  18. 4.4. Catat referensi: area penyelarasan
  19. 4.5. Citra berdasarkan zona: normal dan data sintetisnya
  20. 4.6. Data sintetis untuk kerusakan akibat dua kali penekanan: elemen bergerak bersama dengan dasar
  21. 4.7. Anomali Zona: Opsi Pengaturan
  22. 4.8. Referensi dengan zona: pelat solder dan editor zona
  23. 4.9. Pelatihan Model
  24. 5. Pemeriksaan
  25. 5.1. Menentukan model dan memeriksa area
  26. 5.2. Batas Pengenalan Zona
  27. 5.3. Konveyor yang fleksibel: dapat digunakan dalam berbagai posisi
  28. 5.4. Berdasarkan sinyal apa yang akan dianalisis
  29. 5.5. Zona Kuning: Menonaktifkan zona dengan mengklik
  30. 5.6. Apa yang dapat dilihat di layar dan di konsol
  31. 6. Pemicu: sensor eksternal pada bagian masuk kamera
  32. 7. Pilihan keluaran: rejector, keluaran digital kamera, dan TCP
  33. 7.1. Panduan: Keluaran: Kontak dan Pengujian dengan Alat Uji
  34. 7.2. Jendela OUTPUT: aturan untuk zona
  35. 7.3. Mengirim paket TCP ke robot atau PLC
  36. 7.4. Keluaran kamera yang terpisah
  37. 7.5. Pemberitahuan suara: suara khusus untuk setiap zona
  38. 7.6. Log aktivitas dan basis data
  39. 8. Mode dan tugas lainnya
  40. 9. Pengaturan, konsol, persyaratan, dan lisensi
  41. 10. Daftar periksa singkat dan identifikasi masalah

Cara menggunakan panduan ini. Bagian 1 menjelaskan tujuan metode dan hasil yang diharapkan. Bagian 3–5 adalah langkah-langkah dari program kosong hingga inspeksi yang berfungsi, lakukan secara berurutan. Bagian 6–7 adalah tentang menghubungkan sensor, output, dan TCP. Bagian 8–10 adalah tentang fitur, pengaturan, dan daftar periksa lainnya.

1. Mengapa metode engiAI dan ZONA-PASANGAN?

engiAI Ethernet System — adalah program inspeksi visual untuk jalur produksi. Program ini mengambil gambar dari kamera industri atau kamera biasa, membaginya menjadi zona-zona, memeriksa setiap zona menggunakan jaringan saraf yang telah dilatih, dan mengubah hasilnya menjadi tindakan: sinyal ke output kamera, pengiriman TCP ke robot atau PLC, atau pencatatan dalam log. Metode ZONA-PASANGAN dirancang untuk produk di mana setiap bagian memiliki fungsi yang "benar": papan sirkuit, perakitan, kumpulan komponen dalam wadah, dan pengemasan dengan tata letak yang teratur.

1 model
untuk semua area pembayaran, bukan ratusan model terpisah
2 zona
Sebagai contoh, komponen-komponen tersebut adalah kapasitor C30 dan rangkaian BR1. Pada papan sirkuit, komponen-komponen ini dapat berjumlah ratusan.
≈5 px
pergeseran elemen yang ditetapkan untuk batas "normal / cacat"
2 kali
Dari gambar asli hingga gambar normal dan sintetis cacat untuk pelatihan

1.1. Apa yang diberikan oleh metode dibandingkan dengan klasifikasi seluruh gambar

Pendekatan yang umum adalah satu model dengan dua kelas, yaitu "normal / anomali", yang diterapkan pada seluruh gambar atau seluruh area secara bersamaan. Namun, pendekatan ini tidak berfungsi pada perangkat keras: area kosong di bawah jembatan BR1 di area 2 menunjukkan "cacat", sedangkan area kosong yang sama di sudut lain pada perangkat keras menunjukkan "normal". Satu set kelas tidak dapat mewakili kedua kondisi tersebut. Alternatif lainnya adalah model terpisah untuk setiap bagian, yang akan membutuhkan puluhan pelatihan dan puluhan file dalam memori.

ZONA-PASANGAN menyelesaikan masalah ini dengan cara: ada satu model, tetapi ada banyak kelas sesuai dengan jumlah zona. Zona adalah persegi panjang di sekitar satu komponen. Kelas adalah folder yang berisi gambar, di mana jaringan belajar. Setiap zona memiliki pasangan: zone_001 (zona normal 1, contoh: kapasitor C30) dan zone_001_anomaly (zona cacat 1); zone_002 dan zone_002_anomaly adalah jembatan BR1. Saat memeriksa zona 1, program hanya melihat pada pasangannya, jawaban untuk zona 2 tidak relevan. Kelas anomali bersifat opsional: cacat mengubah tampilan zona, dan kepercayaan pada zona "normal" berkurang secara otomatis; tetapi dengan data sintetis (bagian 4.6), mereka dapat dibuat dengan satu klik dan secara signifikan meningkatkan keandalan.

Contoh: Gambar asli dari papan: dua area – jembatan BR1 di atas kanan dan kapasitor C30 di bawah kiri, keduanya berwarna hijau dengan label "normal". Garis biru adalah batas area penyelarasan, titik-titik biru adalah titik referensi yang digunakan untuk menemukan papan dalam gambar.
Contoh: Gambar asli dari papan: dua area – jembatan BR1 di atas kanan dan kapasitor C30 di bawah kiri, keduanya berwarna hijau dengan label "normal". Garis biru adalah batas area penyelarasan, titik-titik biru adalah titik referensi yang digunakan untuk menemukan papan dalam gambar.
Penyelesaian dalam pasanganSaat memeriksa zona 17, hanya dua jalur dari jaringan yang diperiksa: "jalur normal zona 17" dan "anomali zona 17". Jalur-jalur lainnya yang ada dalam solusi tidak terlibat, sehingga zona-zona yang serupa di sekitarnya tidak memengaruhi hasil.
Zona yang tidak sesuai dengan standar tidak akan berfungsi seperti biasa Jika sebuah kelompok zona hanya mencapai kurang dari 10% dari total jaringan, zona tersebut dianggap "tidak terdeteksi": ini berarti zona tersebut menggunakan standar yang berbeda atau memiliki konfigurasi jaringan yang tidak sesuai. Zona seperti ini dianggap sebagai zona yang bermasalah, bukan "normal dengan kemungkinan tinggi".
Cacat sebanding dengan ukuran area Ukuran dan posisi cacat sintetis ditentukan dalam proporsi dari ukuran area. Pergeseran elemen sebesar setengah milimeter pada seluruh bingkai berukuran 8 megapiksel hampir tidak terlihat, tetapi di dalam area berukuran 128x128 piksel, pergeseran tersebut setara dengan 5-6 piksel, yang merupakan nilai yang signifikan.
Resolusi penuhGambar dengan ukuran 108–137 piksel dikirim ke jaringan 128×128 tanpa perlu penskalaan yang signifikan. Seluruh bingkai harus dikompres menjadi ukuran 128 piksel, yang akan menghilangkan detail dalam puluhan kali lipat.
Batasan target "normal / cacat"Data sintetis normal menghasilkan rentang 0–2 piksel, sedangkan data sintetis cacat menghasilkan pergeseran mulai dari 5 piksel. Jaringan belajar pada batasan ini, bukan pada perbedaan pencahayaan secara acak.
Hasil yang Ditargetkan Setiap zona memiliki alamat yang stabil (model, tabel, sel) dan nama. Aturan "rejector" dapat diterapkan pada zona mana pun: peringatan suara, pengiriman TCP dengan nomor zona, atau keluaran kamera yang terpisah.
Pemasangan di posisi apa punOperator menandai area penyelarasan pada gambar—bagian dari papan yang berisi komponen. Setiap gambar kemudian diselaraskan dengan referensi menggunakan titik-titik acuan tersebut, dan area inspeksi berada pada papan yang baru, meskipun papan tersebut telah diposisikan dengan posisi miring atau diputar, termasuk dengan sudut 180° (bagian 4.4).
cacat из самой платы Cacat yang disebabkan oleh kerusakan pada papan itu sendiri. Cacat ini bukan berupa noda yang digambar, melainkan elemen yang miring atau bergeser bersama dengan bagian dari papan. Model belajar hubungan "elemen ↔ papan", bukan warna noda tersebut. Proses ini dilakukan dalam dua langkah (bagian 4.6).
Informasi tentang anomali dilaporkan secara bertahapKelas-kelas yang rusak hanya ditambahkan di tempat-tempat di mana kerusakan benar-benar terjadi: sambungan solder, elemen yang hilang, pergeseran, goresan. Model dilatih ulang, tetapi jaringan tetap sama.

1.2. Kecepatan: AI hanya melihat potongan yang diperlukan

Jaringan saraf tidak pernah menerima seluruh gambar. Hanya bagian persegi panjang dari setiap area yang dipotong, dan nomor area dipilih dari dua kelas. Area dalam satu gambar dianggap secara paralel (hingga empat aliran), hasil dari semua area dikirim ke layar dalam satu paket, bukan untuk setiap area secara terpisah.

  • Kecepatan analisis ditentukan berdasarkan waktu. Pengaturan "Analisis per detik (AI)" di tab Camera berarti tepat N analisis per detik, bukan "setiap N-an frame". Batas atas adalah frekuensi kamera dan waktu inferensi.
  • GPU secara default. Proses inferensi dilakukan melalui ONNX Runtime dengan CUDA; jika tidak ada kartu grafis NVIDIA, program akan secara otomatis beralih ke prosesor dan mencatatnya dalam status (GPU (CUDA) atau CPU).
  • Penyimpanan tanpa sampah. Ruang penyimpanan untuk potongan-potongan tertentu dialokasikan sekali per aliran dan digunakan kembali; waktu analisis tidak berubah secara tiba-tiba dari satu frame ke frame lainnya.
  • Model untuk tugas tertentu. Untuk ZONA-PASANGAN, program secara otomatis menentukan ukuran input sebesar 128 px dan jaringan YOLO11 dengan ukuran "s": pemotongan area hampir tidak mengalami perubahan skala, dan jaringan memiliki kapasitas yang cukup untuk ratusan pasangan kelas.
  • Konveyor otomatis menghemat tenaga kerja. Tenaga kerja dialokasikan untuk tugas-tugas yang dilakukan oleh AI, bukan untuk pencarian komponen; komponen dicari dan disusun sekali, dan kemudian area-area tersebut dipotong.
  • Proses rendering tidak mengganggu analisis. Tile dirender tidak lebih dari 25 kali per detik, dan hanya berdasarkan frame baru dari kamera. Ukuran gambar dikurangi hingga ukuran tile sebelum ditampilkan di layar, sementara log ditulis oleh thread latar belakang. Antarmuka tetap responsif bahkan pada frame 8 megapixel dan ratusan area.

Pada bilah status di atas video, terdapat angka-angka sebenarnya: fps dan milidetik terakhir dari analisis, serta Eff – jumlah analisis yang benar-benar telah dilakukan dalam satu detik.

1.3. Seberapa akurat yang bisa diharapkan: kita menghitung menggunakan kamera kita sendiri

Program ini tidak menjamin pengukuran "0,5 mm" secara independen dari kamera dan lensa. Tingkat sensitivitas terhadap pergeseran ditentukan oleh jumlah piksel yang sesuai dengan satu milimeter pada produk, serta batas yang telah dipelajari oleh model tersebut. Ini dihitung dalam dua baris:

px/mm = lebar bingkai dalam piksel dibagi dengan lebar bidang pandang dalam milimeter
Pergeseran terkecil yang dapat dideteksi ≈ 5 piksel dibagi dengan (piksel/milimeter)

Angka 5 px adalah batas bawah pergeseran sintetis dalam pengaturan anomali yang direkomendasikan (dengan rentang normal 0–2 px). Pengaturan default dihitung untuk 11 px/mm: pada skala ini, 0,5 mm sama dengan 5–6 px, yang merupakan tujuan yang disepakati selama pengembangan. Silakan masukkan nilai Anda:

Kamera (ukuran bingkai)Diameter bidang pandang 100 mm200 mm300 mm400 mm
3264 piksel (USB 8MP, seperti pada gambar)0,03 мм/px → perpindahan ≈ 0,15 mm0,06 → ≈ 0,3 mm0,09 → ≈ 0,45 mm0,12 → ≈ 0,6 mm
2448 piksel (Kamera HIKROBOT 5MP)0,04 → ≈ 0,2 mm0,08 → ≈ 0,4 mm0,12 → ≈ 0,6 mm0,16 → ≈ 0,8 mm
1920 piksel (picoCam SICK, HIKROBOT 2 MP)0,05 → ≈ 0,25 mm0,10 → ≈ 0,5 mm0,16 → ≈ 0,8 mm0,21 → ≈ 1,0 mm
Penting. Ini adalah penilaian dari bawah untuk pergeseran elemen saat pencahayaan berubah secara tiba-tiba dan pencahayaan stabil. Batas sebenarnya dapat diperiksa menggunakan tombol "ZONA-PASANGAN: zona ↔ model" dan ambang batas pengenalan (bagian 5.2): setiap zona memiliki batas yang berbeda, sehingga juga tingkat keyakinan yang berbeda. Semakin kecil bidang pandang dan semakin banyak piksel pada kamera, semakin kecil cacat yang dapat dikenali oleh model.

1.4. Memulai dengan Cepat: Pengaturan telah disiapkan, area dan model dapat dipilih hanya dengan beberapa klik.

Metode ini dirancang agar seorang teknolog yang tidak memiliki pengalaman dalam pembelajaran mesin dapat memperoleh model yang berfungsi dalam satu shift kerja. Semua yang dapat dipersiapkan sebelumnya sudah tersedia dan disimpan dalam basis program:

  • Area per menit. Di editor ROI, tarik bingkai di sekitar elemen dan tentukan ukuran area (misalnya, 256 px). Jika ada banyak elemen yang berbaris rapi, tarik bingkai di seluruh area—program akan menghitung baris dan kolom secara otomatis.
  • Data sintetis normal dan cacat telah diatur sebelumnya. Tombol "Kembali ke Pengaturan Standar", "Pergeseran Elemen", dan "Warna dan Warna" memungkinkan pemilihan profil yang sudah jadi. Jumlah file, frame dari kamera, dan waktu yang diharapkan ditampilkan sebelum tombol "Ambil" ditekan.
  • Parameter pelatihan ditentukan secara otomatis. Setelah pengambilan gambar awal berdasarkan zona, program menetapkan Ukuran Gambar 128, Ukuran Model s, Epoch 50, Batch 64, dan menonaktifkan augmentasi selama pelatihan, yang bertentangan dengan kelas-kelas anomali.
  • Kamera disesuaikan menggunakan tombol. "Penyesuaian otomatis untuk AI (berdasarkan frame)" akan mengatur kecepatan rana, penguatan, gamut warna, dan keseimbangan putih. Untuk kamera USB, terdapat opsi "Penyesuaian otomatis sesuai format" dan "Tetapkan parameter".
  • Kumpulan pengaturan kamera. Pengaturan yang dipilih disimpan dengan nama tertentu dan dapat dipilih dari daftar. Kamera langsung menerima dan menyimpan pengaturan tersebut dalam memori internalnya.
  • Satu file ONNX sebagai hasil. Model yang telah dilatih diekspor secara otomatis dan langsung ditugaskan untuk diperiksa, tanpa langkah tambahan.

Seluruh proses: menghubungkan kamera → membuat model → menandai area → menentukan area penyelarasan → "Foto berdasarkan area" pada beberapa papan yang berfungsi → "Anomali area" → MELUAR MODEL AI → Tab Inspect. Selanjutnya, perlu menambahkan suara, output, dan TCP ke area tersebut. Apa yang dibutuhkan untuk memulai: komputer dengan Windows 10/11 (untuk inspeksi cepat - kartu grafis NVIDIA), kamera, satu papan yang berfungsi, dan satu kali koneksi internet untuk menginstal lingkungan pelatihan. Papan yang rusak tidak diperlukan.

2. Antarmuka program dapat dipelajari dalam waktu satu menit.

Jendela utama dibagi menjadi dua bagian. Di sebelah kiri terdapat video langsung dari kamera dan bilah status di atasnya. Di sebelah kanan terdapat panel dengan tab, yang berisi semua kontrol. Batas antara kedua bagian dapat digeser; ukuran, posisi semua jendela, dan tata letak program disimpan dalam basis datanya.

Jendela utama: di sebelah kiri, tampilan langsung dari papan dengan dua zona (keduanya berwarna hijau – "normal"), di sebelah kanan, tab "Inspect" dengan model model_4\best.onnx. Jalur produksi aktif, indikator "normal · 112 titik".
Jendela utama: di sebelah kiri, tampilan langsung dari papan dengan dua zona (keduanya berwarna hijau – "normal"), di sebelah kanan, tab "Inspect" dengan model model_4\best.onnx. Jalur produksi aktif, indikator "normal · 112 titik".

Tombol di atas video

TombolApa yang dibuka
Sembunyikan videoMenghapus gambar dari layar. Analisis hanya dilakukan, hanya proses menggambar yang dihemat.
KELUARANJendela referensi: kontak untuk saluran keluar kamera HIKROBOT dan SICK, pengujian dengan alat penguji, menghubungkan beban (bagian 7.1).
KAMERAJendela "Pengaturan kamera yang terhubung": menambahkan, menghubungkan kembali, menghapus kamera, dan melihat semua parameter yang dibaca dari perangkat keras (bagian 3.2).
TRIGGERMenghubungkan sensor eksternal ke saluran keluar kamera dengan diagram dan penomoran pin (bagian 6).
MODEL UMUMKumpulan "kamera → model" yang ditetapkan untuk seluruh stasiun dengan satu pilihan (bagian 8).
Tata Letak (kolom)Berapa banyak ubin kamera yang ditampilkan dalam satu baris; "■" — mode tunggal (kamera utama), "Auto" — berdasarkan jumlah kamera, "⛶" — kamera untuk seluruh monitor (tombol Esc).
Menampilkan Zona ROIMenggambar kisi zona di atas video.

Tab di sisi kanan

TabPenetapan
CameraParameter kamera yang dipilih: kecepatan rana, penguatan, warna, resolusi, pengaturan otomatis untuk AI, kumpulan pengaturan yang disimpan, kecepatan analisis. Batas AI tidak ada di sini — hanya di tab "Inspect".
OUTPUTrejector: aturan pada zona — pengiriman TCP ke robot/PLC, output kamera diskrit dan peringatan suara, log aktivasi, database.
AI ModelMembuat model: folder, kelas, kisi zona, tangkapan zona, anomali zona, referensi PCB, pengaturan dan memulai pelatihan.
InspectTab kerja: model mana yang melakukan inspeksi, area yang diperiksa, dan ambang batas, pita konveyor, sinyal apa yang digunakan untuk mengambil gambar, slot untuk inspeksi multi-model.
SettingsBahasa antarmuka (14 bahasa), pembelian lisensi, penyimpanan dan unggah pengaturan, perekaman video.
ConsoleLog kejadian: pemasangan kamera, jalannya pelatihan, aktivasi rejector, peringatan. Layar menampilkan 800-1000 baris terakhir, seluruhnya dicatat dalam file logs\engiai-*.log.

Baris status

Di atas tombol, ditampilkan status kamera yang aktif: LIVE (Android): 3264×2448 [Kamera USB HD] — jenis, resolusi, dan nama; AI: MENUNGGU atau AI: GPU (CUDA) — perangkat yang digunakan model dan berapa milidetik yang dibutuhkan untuk analisis terakhir; Jaringan: total … aktif … Mbps — beban jaringan dari kamera GigE (hijau hingga 40% bandwidth, oranye hingga 70%, dan seterusnya berwarna merah). Garis Muatan Eksp menunjukkan berapa bagian dari interval frame yang digunakan oleh waktu eksposur: jika waktu eksposur mencapai batas kanan, kamera tidak dapat mempertahankan frekuensi yang ditentukan.

Setiap kamera memiliki topi dengan nama, status "LIVE | AI:ON", dan tombol untuk menghubungkan kembali. Klik kanan pada bingkai membuka menu area, klik kanan dengan menyeret — tampilan panorama pada bingkai yang diperbesar.

3. Kamera: koneksi dan pengaturan

3.1. Kamera apa yang didukung

JenisCara menghubungkannyaApa yang dapat dikonfigurasi dari program
HIKROBOT MV-CS
(GigE, USB3)
MVS SDK asli. Hanya dapat dibuka dengan nomor seri, urutan daftar tidak penting.Resolusi 6 μm, peningkatan dalam dB, FPS (frame per second), resolusi (AOI), tingkat hitam 0…4095, semua fungsi GenICam (mode otomatis, gamma, ketajaman, keseimbangan putih R/G/B, pergeseran digital, pembalikan, paket GigE). Parameter ditulis dalam UserSet1 pada kamera itu sendiri. Input Line 0, output Line 1, GPIO Line 2.
SICK picoCam
(IDS uEye, GigE)
Driver uEye. Kamera harus terlihat di IDS Camera Manager dengan status "dikonfigurasi dengan benar". Nomor seri dibandingkan dengan kamera karena DeviceID pada uEye berubah setiap kali dijalankan.Penguatan, rentang 0…100, FPS, resolusi, tingkat hitam 0…255, frekuensi piksel, penguatan, penguatan perangkat untuk saluran R/G/B, rentang perangkat, tata letak Bayer. Parameter ditulis ke memori kamera. Input trigger pada optocoupler, output Flash (150 mA).
Kamera USB / web-kamera
(terdaftar di Android)
DirectShow melalui OpenCV, berbeda karena moniker, sehingga dua kamera yang sama tidak membingungkan.Dukungan hingga 8K, FPS, semua properti driver: kecerahan, kontras, saturasi, nada, ketajaman, gamut, peningkatan, kecepatan (otomatis), fokus (otomatis), keseimbangan putih (otomatis), kompensasi silau, dll. Tidak ada input dan output terpisah, hanya tersedia TCP.
Kamera IP RTSPTautan dengan format rtsp://admin:kata_sandi@192.168.1.64:554/… harus ditambahkan secara manual.Kecepatan, peningkatan, resolusi, dan FPS dapat diatur di antarmuka web kamera itu sendiri. Di dalam program, terdapat zona, model, dan TCP.

Tidak ada batasan jumlah kamera: kamera disusun dalam kisi dengan jumlah berapa pun; pada perangkat keras nyata, delapan dan sembilan kamera bekerja secara bersamaan. Setiap kamera memiliki model, zona, ambang batas, dan kecepatan analisisnya sendiri.

3.2. Jendela KAMERA: menambahkan, menghubungkan kembali, menghapus

1
Klik KAMERA di atas video. Jendela "Pengaturan Kamera Terhubung" akan muncul di seluruh layar (untuk menutup, tekan tombol Esc).
2
Klik + Tambahkan Kamera. Program akan memindai jaringan dan USB dan menampilkan semua perangkat yang ditemukan dalam satu daftar: Hikrobot … SN: … IP:, SICK … SN: … DeviceID:, Android …. Kamera SICK akan dipindai dalam waktu hingga 4 detik karena perangkat GigE tidak langsung muncul dalam driver. Kamera SICK yang sedang digunakan atau memiliki alamat yang salah akan ditandai dengan simbol ⚠ beserta alasannya.
3
Tandai kamera yang diperlukan dan klik "Tambahkan". Untuk menambahkan kamera IP, gunakan tombol "+ Kamera RTSP melalui tautan…". Selama kamera terhubung, akan muncul layar dengan tombol "Lewati Kamera".
4
Kamera akan muncul dalam daftar dengan baris yang berisi nama | tipe | nomor seri | LIVE atau OFFLINE | AI:ON | Disp:ON, dan rekaman videonya akan berada di bagian kiri jendela utama.

Tanda centang pada daftar berlaku untuk kamera yang dipilih: Kamera aktif (jika tidak, kamera akan dimatikan dari perangkat dan menghilang dari layar), Menampilkan video/zona (hanya menampilkan, analisis selalu berjalan), AI aktif untuk kamera yang dipilih. Tombol Hubungkan Kembali melakukan pemutusan dan koneksi penuh dengan memulai ulang aliran AI dan memuat ulang model.

Bagian kanan jendela menampilkan semua parameter kamera yang dibaca dari perangkat keras saat terhubung, beserta kelompok dan satuan pengukuran: "Parameter mana yang ingin ditampilkan", Membaca ulang dari kamera, Menyalin ke clipboard. Ini hanya untuk melihat: untuk mengubah parameter, Anda dapat melakukannya di tab "Kamera".

Penting. Kamera HIKROBOT menggunakan protokol GigE memiliki koneksi eksklusif. Setelah program ditutup secara tidak normal, kamera tetap terhubung hingga sinyal heartbeat hilang; program menunggu hingga 25 detik (10 percobaan) dan menampilkan pesan "kamera sedang digunakan oleh proses lain". Untuk SICK, jika alamat IP salah, program akan mencoba memperbaikinya sendiri sekali, jika alamat tersebut bukan dari subnet adaptor.

3.3. Tab Kamera untuk HIKROBOT dan SICK

Fitur ini bekerja dengan kamera yang memiliki bingkai berwarna biru. Program tidak mencatat apa pun ke dalam kamera saat terhubung: kamera adalah sumber kebenaran, sedangkan slider menyesuaikan nilai-nilainya. Pengaturan hanya dapat disimpan secara sadar menggunakan tombol "Simpan Parameter".

1
Di bagian bawah, masukkan Lebar (W) dan Tinggi (H) bingkai (atau pilih preset dari daftar, yang hanya berisi ukuran yang didukung oleh kamera ini), lalu klik APLIKASIKAN RESOLUSI. Biasanya, ukuran penuh dari kamera digunakan. Ukuran dibulatkan ke bawah sesuai dengan langkah AOI kamera.
2
Klik Otomatisasi untuk AI (berdasarkan frame). Program memilih pengaturan (prioritas) dan peningkatan (tidak lebih dari 40) sehingga persentil ke-99,5 kecerahan berada di antara 220…248 tanpa efek silau, kemudian mengatur gamut menjadi 1,50, saturasi menjadi 115%, kontras menjadi 105%, dan melakukan auto-balance putih. Kotak centang "otomatis" di samping mengaktifkan mode terus-menerus: pemeriksaan dan penyesuaian setiap 3 detik, jika cahaya berubah.
3
Jika diperlukan, atur secara manual: Exposure (pengaturan dalam mikrodetik, satuan dalam ms, hingga 1 detik), Gain, FPS, Level Hitam. Untuk SICK, pengaturan tambahan meliputi Pixel clock (menentukan batas FPS dan waktu eksposur minimum), Gain boost, Gama perangkat keras, WB Merah / Hijau / Biru.
4
Klik Simpan Parameter: file camera_params\<SN>.ini dan data yang disimpan dalam memori kamera – UserSet1 pada HIKROBOT (dengan pengaturan default), EEPROM pada SICK. Hasilnya ditampilkan pada tombol itu sendiri («✔ Tersimpan»). Untuk HIKROBOT, terdapat opsi Otomatis menyimpan ke kamera (UserSet1) setelah 5 detik setelah perubahan.

Blok "Hikrobot: parameter kamera (GenICam)"

Hanya informasi yang diberikan oleh kamera yang ditampilkan. Pilihan: Eksposur Otomatis (Off / Sekali / Berkelanjutan), Peningkatan Otomatis, Rentang dan Mode Rentang, Ketajaman, Warna, Saturasi, Keseimbangan Putih Otomatis, Keseimbangan Putih berdasarkan Saluran, Pergeseran Digital, Tingkat Hitam Aktif, Pembatasan FPS Aktif, Rotasi Horizontal dan Vertikal, GigE: Ukuran Paket, GigE: Penundaan Antar Paket, GigE: Batas Bandwidth, Gambar Uji. Tombol "Baca Ulang Parameter dari Kamera" mengubah tabel.

Blok "WARNA GAMBAR"

Tata Letak Bayer (Auto / BGGR / RGGB / GRBG / GBRG), Saturasi 0…200 %, Gamma 0,30…3,00, Kontras 50…200 %, tombol reset. Pemrosesan perangkat lunak diterapkan pada semua konsumen bingkai: tampilan, perekaman, inferensi, dan gambar untuk pelatihan, sehingga gambar saat pelatihan dan saat inspeksi sama. Untuk HIKROBOT, tata letak diambil dari format piksel kamera, untuk warna SICK — dari sensor dan disesuaikan dengan bingkai pertama.

ParameterApa yang dilakukanPengaruhnya
Analisis per detik (AI)batas atas kecepatan inspeksi, 1…200lebih rendah — beban pada kartu grafis berkurang; tidak bergantung pada koneksi kamera
Tingkat Kecerdasan Buatan (AI)tidak ditentukan pada tab "Kamera"batas deteksi area — hanya pada tab "Inspect" (bagian 5.2), satu untuk setiap kamera
Exposurewaktu eksposursingkatnya — mengurangi goresan pada produk yang bergerak; nilai nol tidak diperbolehkan
Gain / Gain boostpenguatan sinyal matriksmeningkatkan kecerahan, tetapi juga menambahkan noise
Pixel clock (SICK)frekuensi sensormengubah rentang FPS dan waktu eksposur, nilai-nilai ini dibaca ulang
FPSfrekuensi frame dalam mode bebastidak digunakan dalam mode trigger
Lebar / TinggiUkuran bingkai (AOI)Bingkai yang lebih kecil berarti frekuensi yang lebih tinggi dan lalu lintas yang lebih rendah
Penting. Ambil gambar untuk pelatihan dalam kondisi yang sama dengan yang akan digunakan oleh sistem: pencahayaan yang sama, kecepatan yang sama, posisi kamera yang sama. Setelah mengubah pengaturan gambar, program akan mengingatkan di konsol bahwa model perlu dilatih ulang dengan gambar-gambar baru.

3.4. Tab Kamera untuk USB/kamera web

Untuk kamera USB, tab menampilkan blok "Kamera USB: resolusi, FPS, dan properti". Properti driver yang tidak diberikan oleh kamera tidak ditampilkan; batas bingkai ditentukan oleh program karena DirectShow tidak memberikan informasi tentang rentang.

1
Persetujuan dan Terapkan. Tombol Periksa menampilkan ukuran standar mulai dari VGA hingga 8K, dan hanya menampilkan ukuran yang telah diterima oleh kamera. Baris "Format Kamera" menunjukkan ukuran dan FPS yang sebenarnya.
2
Biarkan pengaturan otomatis (auto exposure, auto focus, dan auto B/B) berfungsi, lalu tekan Simpan Parameter (matikan auto, simpan seperti semula): pengaturan otomatis akan dimatikan, dan program akan secara otomatis menentukan waktu pemaparan manual dengan tingkat kecerahan yang sama (driver akan memberikan waktu pemaparan terakhir yang ditentukan, bukan yang dipilih secara otomatis), serta nilai dan format akan disimpan dalam database dan diterapkan setiap kali kamera ini terhubung kembali.
3
Seri Di Bimbing AI: Pemilihan otomatis berdasarkan bentuk (20–60 detik, penyesuaian durasi dan kontras berdasarkan gambar asli, kriteria – ketajaman garis tanpa efek silau), Bentuk, tanpa warna, Bentuk, lembut, Kembali, Standar.
4
Nilai yang dimasukkan di kolom langsung masuk ke kamera, tanpa perlu menekan tombol Enter, dan kemudian segera disimpan ke dalam database. Tombol "Baca ulang properti dari kamera" menunjukkan bahwa kamera telah benar-benar menerima data tersebut.
Saran. Lebih baik menghilangkan saturasi warna pada gambar menggunakan fitur kamera, daripada menggunakan efek keseluruhan. Latih dengan warna abu-abu (pengaturan model secara keseluruhan): Pada tab "Kamera" (atau "Model AI", yang memiliki nama yang sama), pilih opsi "Latih dengan abu-abu". Dengan cara ini, gambar untuk pelatihan dan inspeksi akan berwarna abu-abu, sementara kamera akan tetap menghasilkan warna untuk operator. Model dalam contoh telah dilatih dengan warna abu-abu.

3.5. Pengaturan kamera yang disimpan (paket)

Blok "Pengaturan kamera yang disimpan" ditampilkan untuk USB, SICK, dan HIKROBOT. Setelah menyesuaikan parameter sesuai dengan produk, simpan pengaturan tersebut dengan nama tertentu: untuk papan atau pencahayaan lain, cukup pilih paket dari daftar.

  • Simpan sebagai… – membaca nilai saat ini dari kamera dan meminta nama perangkat. Jika nama sudah digunakan, menawarkan untuk mengganti nama.
  • Memilih konfigurasi dalam daftar langsung menulis parameter ke kamera dan menyimpannya: untuk USB – ke database, untuk SICK dan HIKROBOT – ke file parameter dan memori kamera (UserSet1 / EEPROM). Kemudian, panel membaca kembali nilai dari perangkat keras dan menampilkan berapa banyak parameter yang telah ditetapkan, dan berapa banyak yang tidak.
  • Simpan Ulang akan menimpa data yang dipilih dengan nilai-nilai saat ini, Ganti Nama dan Hapus hanya memengaruhi entri dalam database, sedangkan pengaturan pada kamera tidak berubah.

Isi dari setiap set: untuk USB – resolusi, FPS, properti driver, dan mode otomatis; untuk SICK – gain, waktu eksposur, FPS, tingkat hitam, clock piksel, peningkatan gain, keseimbangan putih R/G/B, gamut perangkat keras, dan warna perangkat lunak; untuk HIKROBOT – gain, waktu eksposur, FPS, tingkat hitam, dan semua node GenICam. Ukuran bingkai kamera industri tidak termasuk dalam set: mengubahnya akan memulai ulang perekaman. Set ini berlaku untuk semua jenis kamera, jadi satu set ditempatkan pada setiap kamera yang identik di stasiun.

3.6. Jaringan GigE dan koneksi ulang

  • Ukuran paket GigE HIKROBOT disetel secara otomatis menjadi optimal saat dibuka; secara manual, Anda dapat memperbaikinya di blok GenICam. Bingkai Jumbo 8164–9000 mengurangi beban, dan jika bingkai terputus, atur 1500 dan tingkatkan penundaan antar paket.
  • Baris `Net` menghitung beban dari setiap kamera berdasarkan data sendiri (ukuran muatan × frekuensi) dan membandingkannya dengan lalu lintas jaringan yang sebenarnya. Perbedaan yang signifikan menunjukkan hilangnya frame atau lalu lintas yang tidak diinginkan. Adaptor virtual dan filter NDIS (GigEVision, uEye, Npcap) tidak termasuk dalam perhitungan.
  • Jika kamera terlihat, tetapi aliran tidak berjalan, klik Hubungkan Kembali (di jendela KAMERA atau di tile). Biasanya penyebabnya adalah kapasitas jaringan atau USB yang terbatas.
  • PicoCam SICK kehilangan pengaturan saat deskriptor ditutup; jika tidak ada pengaturan dalam kamera itu sendiri, program menerapkan file parameter dan menawarkan untuk menekan "Simpan Parameter" untuk mencatatnya ke dalam kamera.

4. Model ZONA-PASANGAN: dari grid ke model terlatih

4.1. Bagaimana cara kerjanya: satu model, satu kelas untuk setiap zona

Model ZONA-PASANGAN adalah jaringan klasifikasi YOLO11 standar, yang memiliki jumlah kelas sebanyak jumlah zona, ditambah kelas-kelas opsional untuk mendeteksi anomali. Kelas adalah folder di dalam direktori `train` dan `val`. Program secara otomatis membuat semua folder; tidak perlu membuat folder secara manual. Berikut adalah contoh struktur folder model setelah pelatihan:

Folder model_4: train dan val — gambar, data.json — area, live_template — referensi papan, board.json — ambang batas, best.onnx — jaringan yang telah dilatih.
Folder model_4: train dan val — gambar, data.json — area, live_template — referensi papan, board.json — ambang batas, best.onnx — jaringan yang telah dilatih.
model_4\ train\ Gambar-gambar untuk keperluan pelatihan zone_001\ Zona normal 1 (C30): real_... dari kamera, syn_... data sintetis zone_001_anomaly\ Cacat zona 1: syn_…_combo1_d, _rotate1 … zone_002\ Zona normal 2 (BR1) zone_002_anomaly\ Cacat zona 2 val\ Sampel pengujian: Empat folder yang sama, yang akan terisi secara otomatis data.json zona: tabel, koordinat, ukuran, warna, aktif/nonaktif; kelas; slot live_template.png / .txt Referensi papan: bingkai, area penyelarasan, zona merah (zona yang dikecualikan) live_template_zones.png Referensi dengan area yang digambar dan nomor-nomor board.json ambang batas pengenalan zona ({ "threshold": 0.50 }) train_gray.txt Fitur "skala abu-abu" best.onnx model yang telah dilatih – model itulah yang ditugaskan untuk melakukan inspeksi runs\ diag\ *.cache Informasi terkait pekerjaan: Proses pembelajaran, gambar untuk analisis, data pelatihan
train: dua folder untuk setiap zona – normal dan anomali.
train: dua folder untuk setiap zona – normal dan anomali.
val: struktur yang sama, program mengisi sendiri saat pengambilan gambar.
val: struktur yang sama, program mengisi sendiri saat pengambilan gambar.

File real_…jpg — merupakan potongan langsung dari kamera (tercatat baik di train maupun val), syn_…jpg — data sintetis, edit_…jpg — hasil foto dari editor zona. Dalam contoh setelah pengambilan beberapa papan: zone_001 — 502 file di train dan 111 di val, zone_001_anomaly — 680 dan 144, zone_002 — 813 dan 181, zone_002_anomaly — 340 dan 60.

Satu lokasi penyimpanan. Seluruh penataan model – area inspeksi, area penyelarasan, kelas, dan slot – hanya berada di dalam folder model: data.json dan live_template.txt. Di dalam basis program, tidak ada lagi area, sehingga editor ROI di tab "AI Model" dan tab "Inspect" menampilkan area yang sama, dan folder model dapat disalin ke komputer lain secara keseluruhan tanpa kehilangan apa pun. Model-model lama akan dipindahkan secara otomatis saat dibuka untuk pertama kalinya.

Program mengenali model sebagai "area pembayaran" secara otomatis, berdasarkan keberadaan kelas-kelas seperti zone_NNN. Nomor kelas adalah nomor zona yang unik dalam jaringan (1…N). Dari sini, aturan utama metode tersebut adalah:

Penting. Zona merupakan bagian dari model. Setelah kelas diambil, zona tidak dapat diubah (ditambahkan, dihapus, atau diatur ulang): nomor zona akan tidak sesuai dengan kelas, dan zona-zona tersebut akan diberi label NO_ZONE_CLASS. Jika zona perlu diubah, buat model baru.

4.2. Membuat model

1
Klik tab "Model AI" dan klik "Buat Model AI Baru".
2
Tentukan direktori induk dan nama model (program menawarkan opsi model_N yang kosong). Daftar kelas bawaan berisi normal dan anomali; untuk ZONA-PASANGAN, kelas-kelas ini tidak diperlukan – kelas-kelas zona akan dibuat secara otomatis saat pengambilan gambar pertama berdasarkan zona. Anda dapat menghapusnya atau membiarkannya kosong: sebelum pelatihan, program akan menawarkan untuk menghapus kelas-kelas kosong.
3
Klik Buat Model. Folder train dan val akan muncul di dalam disk. Model akan terbuka untuk diedit (tetapi tidak akan otomatis dimuat). Jika model sudah ada, gunakan opsi Pilih Folder Model sebagai gantinya.

4.3. Menandai zona pada papan

1
Letakkan papan yang sudah diperbaiki dengan tepat di atas kamera, persis seperti papan tersebut akan berada di garis. Klik ROI → Tambahkan ke kelas (model pelatihan).
2
Dalam dialog "Mempertahankan ROI ke dalam Kelas", pilih salah satu kelas (ini tidak penting untuk pelabelan) atau masukkan nama baru dan klik OK + Buka ROI. Di sini, Anda akan melihat semua kelas zona yang dikelompokkan berdasarkan pola zone_###: mengklik grup akan memilihnya, klik kedua akan menghilangkan pemilihan; tombol Hapus Grup akan menghapus seluruh grup beserta gambar-gambarnya.
3
Akan muncul jendela "Pilih ROI". Tarik kotak di sekitar bagian yang ingin Anda pilih dengan tombol kiri mouse. Kotak akan menampilkan kolom "Ukuran Area, px": masukkan ukuran (yang akan otomatis disesuaikan dengan kelipatan 32, misalnya 256), lalu tekan Enter – kotak akan menjadi persegi yang rapi dengan keterangan ukuran. Ulangi langkah ini untuk setiap bagian yang ingin Anda periksa. Dalam contoh, ada dua area: di sekitar C30 dan di sekitar BR1.
4
Jika terdapat banyak detail dan semuanya sejajar, menggunakan pola lebih mudah: tarik bingkai sepanjang area dan masukkan ukuran zona – alat bantu akan menunjukkan berapa baris dan kolom yang dihasilkan. Atau, atur baris, kolom, lebar, dan tinggi sel dalam blok Pola Zona dan klik Buat Pola. Pola dapat dipindahkan dengan tepat ke produk menggunakan mouse.
5
Panel kanan menampilkan setiap area dengan ukuran dan tanda centang "aktif"; area yang tidak aktif tidak memberikan kelas, dan tabel yang tersembunyi sama sekali tidak berpartisipasi dalam inspeksi. Tombol Semua area ✓ / ✗, Warna, Hapus, Hapus SEMUA area. Tutup jendela dengan tombol Enter — area akan disimpan di data.json dan akan muncul di video dengan warna kuning.
Hasil penandaan pada tab AI Model: dua zona kuning pada bingkai langsung – BR1 di atas kanan dan C30 di bawah kiri. Di sebelah kanan terdapat tombol model ZONA-PASANGAN, centang "Tetapkan zona ke produk berdasarkan penanda", dan pengaturan pelatihan.
Hasil penandaan pada tab AI Model: dua zona kuning pada bingkai langsung – BR1 di atas kanan dan C30 di bawah kiri. Di sebelah kanan terdapat tombol model ZONA-PASANGAN, centang "Tetapkan zona ke produk berdasarkan penanda", dan pengaturan pelatihan.
Saran. Komponen harus menempati sebagian besar area, dan area di sekitarnya harus tetap memiliki sisa ruang untuk jalur, label, dan area lainnya. Inilah "dasar" yang kemudian digunakan dalam pembuatan data sintetis (bagian 4.6). Untuk papan dengan komponen 0603–1206 dengan resolusi 11 px/mm, ukuran 128 px berfungsi dengan baik; untuk kapasitor, sirkuit, dan port, ukuran 192–256 px, seperti pada contoh. Ukuran input jaringan (Image Size) kemudian disesuaikan kira-kira sama dengan ukuran area.

Zona merah: hapus zona dari data sintetis dengan satu klik

Pada tab "Model AI", klik dengan tombol kiri pada area yang sudah dibuat langsung pada video: area tersebut akan menjadi merah dan tidak akan termasuk dalam pengambilan gambar berdasarkan area dan anomali. Klik lagi akan mengembalikan area tersebut. Penghitung file di jendela data sintetis dihitung ulang secara otomatis, dan teks "mati N" di atas frame menunjukkan berapa banyak area yang dimatikan. Daftar area merah disimpan per kamera dan model; pada tab "Inspect", area yang sama tetap normal (dengan area kuningnya sendiri, lihat bagian 5.5).

4.4. Tetapkan referensi: area penyelarasan

Area inspeksi ditandai berdasarkan posisi papan sirkuit. Agar papan sirkuit lain dapat diposisikan dengan pergeseran dan rotasi pada jalur produksi, program menyimpan referensi: *frame* awal dan area penyelarasan—bagian dari papan sirkuit yang berisi detail yang digunakan untuk mencari posisi papan sirkuit pada setiap *frame* baru. Setelah menemukan area tersebut, program memindahkan area inspeksi ke papan sirkuit yang baru. Proses pengambilan gambar, data sintetis, dan inspeksi bekerja dengan cara ini.

Dua bentuk persegi panjang yang berbeda. Area inspeksi adalah area yang diperiksa oleh model (dengan warna hijau). Area penyelarasan adalah penanda yang digunakan untuk mencari komponen (dengan bingkai oranye). Titik referensi tidak boleh diletakkan di dalam area inspeksi: jika komponen dicari langsung pada kapasitor, kapasitor yang bergeser akan menarik area tersebut bersamaan, dan cacat akan menjadi tidak terlihat. Oleh karena itu, pada area penyelarasan, gunakan teknik seperti sablon, lubang, jalur, dan sirkuit terpadu di sekitarnya, tetapi hindari menggunakan meja dan jalur.
1
Pada tab "Model AI", centang opsi "Menetapkan area ke produk berdasarkan penanda" dan tentukan "periode pencarian, ms" (secara default 100). Letakkan papan di bawah kamera dan klik "Verifikasi referensi".
2
Sebuah jendela "Area Penyelarasan: Area yang Perlu Dicek" akan muncul dengan tampilan langsung dan area hijau untuk inspeksi. Seret bingkai tersebut ke area pada papan sirkuit dengan detail yang sesuai. Di sisi kanan, Anda akan melihat "Titik Referensi: N · Penyelarasan: Kaku / Perspektif": seharusnya ada ratusan titik, dan jika "area terlalu kecil", perluas bingkai tersebut. Bingkai baru akan menggantikan yang lama, dan tombol kanan akan menghapusnya.
3
Klik ✔ Cari area berdasarkan area yang dipilih. Tombol kedua ✔ Cari area berdasarkan zona inspeksi akan mencari area berdasarkan zona yang ditentukan – hanya jika tidak ada area lain di dekatnya. Jika kotak centang Tanyakan area penyelarasan setiap kali dicoret, penyesuaian berikutnya akan menggunakan area yang sama tanpa jendela.
4
Program tersebut menulis "referensi tercatat: Zona N, titik-titik K", dan menyimpan live_template.png dan live_template.txt (frame, area, zona merah). Kotak centang Tampilkan zona pengambilan gambar pada frame menggambar zona yang ditemukan pada video, sementara titik-titik referensi yang digunakan untuk penentuan pembayaran ditampilkan sebagai titik biru – dari sini terlihat apa yang menjadi dasar perhitungan program.
Area penyelarasan: bingkai oranye – area papan dengan detail (3000 titik referensi), hijau – area inspeksi C30 dan BR1, yang tidak termasuk dalam bingkai.
Area penyelarasan: bingkai oranye – area papan dengan detail (3000 titik referensi), hijau – area inspeksi C30 dan BR1, yang tidak termasuk dalam bingkai.
Gambar setelah penyesuaian: area ditemukan pada detailnya dan diberi label "normal", garis biru – batas area penyelarasan, titik biru – titik referensi yang sesuai pada detail papan (tidak termasuk dalam area tersebut).
Gambar setelah penyesuaian: area ditemukan pada detailnya dan diberi label "normal", garis biru – batas area penyelarasan, titik biru – titik referensi yang sesuai pada detail papan (tidak termasuk dalam area tersebut).
Model penyelarasanKapan memilih
Otomatis (disarankan)Papan diselaraskan secara kaku (geser, putar, skala); perspektif hanya terhubung jika terlihat lebih baik secara signifikan. Akurasi pada area penyelarasan kecil – 1–2 px.
KakuKamera melihat langsung dari atas, papan terletak datar. Pilihan yang paling stabil jika area penyelarasan kecil.
PerspektifKamera melihat dari sudut atau papan miring. Diperlukan area yang besar dengan titik di seluruh lebar, jika tidak, homografi akan "miring".

Tombol "referensi dengan zona" membuka referensi yang tersimpan dengan kisi dan nomor zona (bagian 4.8). Plat yang ditemukan diperiksa untuk memastikan masuk akal: luas antara 0,5 hingga 2 kali luas referensi, bentuk empat sisi yang melengkung, dan titik-titik penyangga harus menempati setidaknya seperempat area di setiap sumbu – jika tidak, hasilnya akan dibuang, dan pesan "plat tidak ditemukan" akan muncul di konsol.

Penting. Sebelumnya, area "penghasil" hanya ada dalam jumlah terbatas pada setiap frame – alasannya adalah karena pembayaran dilakukan berdasarkan area tersebut. Sekarang, daftarkan kembali referensi dengan area penyelarasan berdasarkan detail pada papan sirkuit: jumlah area yang ditemukan pada papan sirkuit dari panduan ini telah meningkat dari 46-51 menjadi 106-112 dari total 134.

4.5. Foto berdasarkan area: normal dan data sintetisnya

Tombol ZONA-PASANGAN: foto berdasarkan zona berfungsi untuk: membagi gambar menjadi zona, menyisipkan potongan dari setiap zona ke dalam kategori yang sesuai zone_NNN, dan menambahkan data sintetis normal. Data sintetis normal adalah variasi hasil pengambilan gambar, bukan cacat: posisi plat sedikit berbeda, cahaya sedikit berbeda, dan sensor menghasilkan suara.

Fitur "ZONA-PASANGAN: foto berdasarkan zona": jumlah opsi, foto berdasarkan waktu, persentase dalam val, pergeseran/rotasi/skala jendela zona pada seluruh gambar dengan pilihan "ke mana", pencahayaan dan noise, serta penghitung file akhir. Jendela dapat diperluas menggunakan mouse.
Fitur "ZONA-PASANGAN: foto berdasarkan zona": jumlah opsi, foto berdasarkan waktu, persentase dalam val, pergeseran/rotasi/skala jendela zona pada seluruh gambar dengan pilihan "ke mana", pencahayaan dan noise, serta penghitung file akhir. Jendela dapat diperluas menggunakan mouse.
PengaturanApa yang dilakukan dan apa yang harus diatur secara default
Untuk setiap zonaBerapa banyak file sintetis yang dapat dibuat untuk satu potongan. Direkomendasikan 20, 0 – hanya sebagai referensi, maksimum 500.
Gambar berdasarkan waktu: setiap varian dari bingkai kamera baruDiaktifkan, periode 800–1200 ms (tidak kurang dari waktu eksposur). Setiap varian diambil dari bingkai kamera yang baru: kebisingan sensor, getaran, dan pantulan cahaya yang sebenarnya, bukan yang digambar.
Setiap varian juga memiliki probabilitas, %20 %. Referensi selalu berada dalam val: setiap kelas di Ultralytics harus berada di kedua folder.
Melatih dalam skala abu-abuBendera model secara keseluruhan: warna dihapus dari normal, anomali, dan inspeksi. Tidak dapat mencampur file berwarna dan abu-abu dalam satu model, program akan memberikan peringatan.
Pergeseran, px · ke manaArea pergeseran bergerak sepanjang seluruh bingkai sebesar 0…2 px pada arah yang ditandai (← → ↑ ↓); bagian yang hilang diambil dari area pada papan lain, sehingga potongan tetap rapi. Tanda centang semua arah memberikan satu file untuk setiap arah, satu arah acak — satu file.
Rotasi, ° · ke manaSecara default, fitur ini dinonaktifkan: tidak ada rotasi, dan pengaturan area penyelarasan tidak memengaruhi. Opsi "kiri/kanan" dan "semua arah/arah acak" berfungsi seperti pada fitur pergeseran.
Skala, % · pengurangan / penambahanSecara default, fitur ini dinonaktifkan. Dua tanda centang mewakili dua opsi: pengurangan (<100) dan peningkatan (>100, area zona mengambil tetangga dari bingkai). Setiap opsi yang dipilih akan menghasilkan file yang berbeda.
Kecerahan / Kontras / GammaNilai acak dari rentang untuk setiap opsi: kecerahan 88…112, kontras 88…112 %, gamma 98…102 % (pada gambar); di profil "Pergeseran Elemen", kecerahan lebih lebar agar tidak menjadi indikator.
Noise (sigma) / Efek BuramUkuran butir sensor 3…8 tingkat, fokus ringan 0,4…0,8 px.
Kolom "umum"Dengan tanda centang, tampilan ini masuk ke dalam file umum bersama dengan yang lainnya; tanpa tanda centang, file terpisah "referensi + hanya tampilan ini" dibuat. Semakin banyak tampilan terpisah, semakin banyak file untuk setiap opsi.
1
Klik ZONA-PASANGAN: foto berdasarkan zona. Baris di bagian bawah dialog sebelumnya telah menentukan: "Untuk opsi: 1 file. Untuk zona: 21 di train, ≈5 di val. Total untuk satu foto ≈ 52 file. Foto dari kamera: 20, ≈16" (untuk dua zona).
2
Pilih profil: Secara Default (pergeseran 0–2 px, kecerahan ±5, kontras 95–105 %), Pergeseran Elemen (pergeseran 0–1 px, kecerahan −10…10) atau Warna dan Warna (pergeseran 0–2 px, kecerahan ±2, kontras dan gamut dinonaktifkan, sehingga warna tetap menjadi indikator).
3
Klik Hentikan. Proses pembuatan berjalan di latar belakang dengan jendela kemajuan "Zona 1/2 · File 26 · Frame 4/20" dan tombol pembatalan. Setelah selesai: "Selesai: 2 zona → kelas zone_001…zone_002, file: 52". Program langsung mengatur pengaturan pembelajaran berbayar: Ukuran Gambar 128, Ukuran Model s, Epoch 50, Batch 64 (bagian 4.9).
4
Ulangi pengambilan gambar menggunakan tombol yang sama pada beberapa papan yang berfungsi dengan baik. Untuk model yang akurat, diperlukan setidaknya 80 file per kategori, dan yang terpenting, beberapa contoh nyata (5-10 papan), bukan hanya satu gambar dengan ratusan variasi.
trainzone_001 — C30 standar dalam mode konduktor: real_... dengan kamera dan syn_..._n1...n20 dengan akhiran pergeseran (shiftd, shiftl, shiftr, shiftu). Teks selalu berada pada posisinya relatif terhadap dasar.
trainzone_001 — C30 standar dalam mode konduktor: real_... dengan kamera dan syn_..._n1...n20 dengan akhiran pergeseran (shiftd, shiftl, shiftr, shiftu). Teks selalu berada pada posisinya relatif terhadap dasar.
trainzone_002 — normal BR1: real_... dengan tiga lapisan dan variasi yang memungkinkan rotasi (rotl, rotr) dan pergeseran.
trainzone_002 — normal BR1: real_... dengan tiga lapisan dan variasi yang memungkinkan rotasi (rotl, rotr) dan pergeseran.

4.6. Data sintetis cacat dalam dua kali klik: elemen bergeser bersama dengan alas

Data sintetis dibangun berdasarkan pengamatan. Model belajar dengan sangat baik ketika diberi contoh cacat berupa bukan hanya noda yang digambar, tetapi juga elemen yang diperiksa bersama dengan elemen-elemen pada papan di sekitarnya: garis-garis sablon, jalur, warna, dan tekstur dasar. Program mengurangi ukuran area hingga ukuran elemen, kemudian memindahkan atau memutar area tersebut, sambil mengisi tepi dengan piksel-piksel dari area tersebut. Akibatnya, elemen tersebut tidak berada di posisi yang seharusnya relatif terhadap dasar: tepat seperti yang dilihat oleh pengontrol saat terjadi cacat sebenarnya, dengan suara sensor yang sebenarnya, cahaya yang sebenarnya, dan papan yang sebenarnya.

Zona "normal" dan zona "anomali" hanya berbeda dalam posisi elemen relatif terhadap dasar. Semua aspek lainnya sama, sehingga jaringan belajar tentang hubungan "elemen ↔ papan sirkuit," bukan tentang perbedaan warna atau intensitas cahaya.

Dua kali klik

1
ZONA-PASANGAN: foto berdasarkan zonaAmbil. Potongan normal dari setiap zona dengan 20 variasi pengambilan gambar (pergeseran jendela 0–2 px, pencahayaan, noise) masuk ke dalam kelas zone_NNN.
2
ZONA-PASANGAN: anomali zonaBuat. Pengaturan bawaan sudah mencakup kedua jenis pergeseran: pergeseran zona sebesar 5–12 px ke semua arah dan rotasi area elemen (70% zona, lingkaran) sebesar 15–180°. File-file tersebut masuk ke dalam kelas zone_NNN_anomaly.

Tidak perlu melakukan pengaturan lebih lanjut: tidak perlu menggambar cacat atau mencari papan yang rusak. Selanjutnya, LATIHKAN MODEL AI.

Sebelum dan sesudah: apa yang dicapai oleh program

SEBELUM: gambar hidup dari papan yang berfungsi dengan baik. Kedua area berwarna hijau — "normal".
SEBELUM: gambar hidup dari papan yang berfungsi dengan baik. Kedua area berwarna hijau — "normal".
SESUDAH: data sintetis dari folder anomali (C30 bergeser ke kanan-bawah, BR1 diputar). Kedua area berwarna merah — "anomali". Selain itu, papan akan terlihat saat cacat nyata pada garis.
SESUDAH: data sintetis dari folder anomali (C30 bergeser ke kanan-bawah, BR1 diputar). Kedua area berwarna merah — "anomali". Selain itu, papan akan terlihat saat cacat nyata pada garis.
Besar, area 1 (C30): di sebelah kiri normal dari kamera, di sebelah kanan data sintetis — bagian bersama alas bergeser ke bawah-kanan, tepi terisi oleh bagian dari gambar.
Besar, area 1 (C30): di sebelah kiri normal dari kamera, di sebelah kanan data sintetis — bagian bersama alas bergeser ke bawah-kanan, tepi terisi oleh bagian dari gambar.
Besar, area 2 (BR1): di sebelah kanan area bagian diputar 180° — area berada di tempat yang tepat, badan tidak menghadap ke arah yang benar.
Besar, area 2 (BR1): di sebelah kanan area bagian diputar 180° — area berada di tempat yang tepat, badan tidak menghadap ke arah yang benar.

Folder anomali seperti yang dilihat pengguna

Bandingkan dengan folder normal dari bagian 4.5: perbedaannya hanya pada posisi detail relatif terhadap dasar.

train\zone_001_anomaly — cacat C30. Dalam setiap salinan t000, t001… terdapat sembilan file: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur — area telah bergeser sebesar 5–12 px di delapan arah (d = bawah, u = atas, l = kiri, r = kanan), rotate1 — area kapasitor telah diputar.
train\zone_001_anomaly — cacat C30. Dalam setiap salinan t000, t001… terdapat sembilan file: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur — area telah bergeser sebesar 5–12 px di delapan arah (d = bawah, u = atas, l = kiri, r = kanan), rotate1 — area kapasitor telah diputar.
train\zone_002_anomaly — Cacat BR1: Badan utama terlepas dari posisi seharusnya dan bergerak ke delapan arah yang berbeda, serta berputar pada sudut acak. Tekstur papan dan area kontak adalah asli.
train\zone_002_anomaly — Cacat BR1: Badan utama terlepas dari posisi seharusnya dan bergerak ke delapan arah yang berbeda, serta berputar pada sudut acak. Tekstur papan dan area kontak adalah asli.
Cara membaca nama file. syn_<tanggal>_t003_combo1_dr.jpg — salinan 3, file umum, pergeseran ke kanan-bawah (d = bawah, r = kanan, u = atas, l = kiri); …_rotate1.jpg — rotasi area elemen; …_scale1_dn/_up — skala ke arah yang lebih kecil atau lebih besar; …_tl/_c/_br — lokasi area (sudut, pusat). Berdasarkan nama, kita dapat melihat jenis kesalahan yang ada dalam file, dan file yang tidak diperlukan dapat dihapus menggunakan tombol "Hapus data sintetis kelas (train + val)" di jendela area.

Penandaan detail: mengapa goresan terlihat "tebal" dan bagaimana cara mengaturnya

Pada bagian-bagian komponen terdapat tanda – tulisan dan garis setebal 1–2 px. Tanda ini berbeda dari satu batch ke batch berikutnya: jenis huruf berbeda, tulisan pada kapasitor dibalik, sebagian simbol dihapus. Jika cacat sintetis berupa "goresan" digambar dengan garis yang sama tipisnya, jaringan tidak akan dapat membedakannya dari garis tanda dan dari kebisingan sensor, dan akan mulai menolak papan yang baik dari batch komponen yang berbeda.

Data sintetis ZONA-PASANGAN menutup ini dari dua sisi. Pertama, cacat utama—pergeseran elemen—memindahkan penanda bersama dengan badan, sehingga tulisan tidak menjadi indikator: tulisan tersebut terlihat sama baik dalam kondisi normal maupun anomali. Kedua, garis/goresan yang digambar secara default tebal (⅛ zona, tidak kurang dari 3 px) dan jelas tidak menyerupai garis penanda. Ketebalan sekarang ditentukan secara eksplisit: bidang Ketebalan Garis, px (0 = otomatis) berlaku untuk garis dan tanda silang.

Cacat yang digambar (seperti persegi, lingkaran, garis, "elemen yang hilang", bintik buram, dan lainnya) dikelompokkan dalam grup yang dapat diklip ( Cacat sintetis di atas potongan). Secara default, grup ini sudah diklip dan dinonaktifkan: cacat utama pada papan adalah pergeseran. Aktifkan untuk tugas-tugas tertentu: area yang tergenang, tetesan berlebih, atau label yang terhapus.

Parameter bentukApa yang ditentukan
Ukuran: dari … hingga, % dari zona / pxUkuran atau panjang bentuk. Dalam persentase — dari sisi terkecil zona (sesuai dengan zona apa pun); dalam px — sama di semua zona, nyaman ketika ukuran cacat sebenarnya dalam piksel bingkai diketahui.
Pengisianpadat / garis / campuran (garis juga tebal).
Ketebalan garis, pxGaris / goresan dan tanda silang. 0 — otomatis (tebal). Untuk menandai detail, jangan gunakan di bawah 3 px.
Di mana cacatDi tengah, di kiri, di kanan, di atas, di bawah – tempat untuk meletakkan figur (dengan sedikit variasi acak). Centang pada "semua posisi" berarti akan ada file terpisah untuk setiap posisi yang dipilih; "satu acak" berarti hanya akan ada satu file, dengan posisi yang dipilih secara acak dari posisi yang dipilih. Penghitung file di bagian bawah jendela akan memperhitungkan hal ini secara otomatis.
Warna-warna bentuk: 5 slotLima slot daripada daftar nama. Tanda centang — slot tersebut aktif, warna diambil secara acak dari yang telah dipilih (±12 per saluran, untuk menghindari hanya satu warna). Tombol dengan contoh — memilih warna dari palet, 💧 pipet — klik pada gambar langsung dari kamera (roda — zoom, tombol kanan — panorama) dan mengambil warna dari detail atau papan yang sebenarnya. Secara default, dua slot sudah aktif — gelap dan terang, tiga slot lainnya tidak aktif.
Kolom "umum"Jenis cacat yang ditandai disimpan dalam file umum bersama dengan "file umum" lainnya (misalnya, goresan di atas elemen yang bergeser). Tanpa tanda centang, akan ada file terpisah "normal + hanya cacat ini". Jenis dengan "semua posisi" selalu terpisah.

4.7. Anomali Zona: jendela pengaturan

Tombol ZONA-PASANGAN: anomali zona menciptakan kelas zone_NNN_anomaly dari potongan normal. Semua zona diambil, kecuali yang berwarna merah (zona yang dinonaktifkan dengan klik pada gambar dalam Model AI, bagian 4.3). Kelas anomali tidak diperlukan di semua zona: tambahkan untuk zona di mana cacat benar-benar terjadi, dan zona lainnya akan diperiksa oleh model berdasarkan pengenalan.

Jendela "ZONA-PASANGAN: anomali zona": salinan ke cacat di atas; kelompok bentuk yang digambar yang dapat ditarik dengan parameter, lokasi, dan palet; pergeseran, rotasi, dan skala zona dengan bentuk area dan skala ±%; subzona; pencahayaan di atas cacat; tangkapan berdasarkan waktu dan val.
Jendela "ZONA-PASANGAN: anomali zona": salinan ke cacat di atas; kelompok bentuk yang digambar yang dapat ditarik dengan parameter, lokasi, dan palet; pergeseran, rotasi, dan skala zona dengan bentuk area dan skala ±%; subzona; pencahayaan di atas cacat; tangkapan berdasarkan waktu dan val. Jendela ini diperluas dengan mouse.
PengaturanApa yang dilakukan
Salinan ke cacatSatu angka untuk semua jenis: berapa banyak salinan dengan parameter acak baru yang akan dibuat untuk setiap jenis yang ditandai (secara default 10).
▸ Cacat sintetis di atas pemotonganKelompok default yang tersedia: persegi, persegi kecil, lingkaran, elips, segitiga, angka delapan, garis/goresan, salib, "elemen hilang", noda buram, perbaikan noise, bagian dari area lain. Parameter bentuk, lokasi, dan palet warna dijelaskan di bagian 4.6.
Pergeseran, px · ke mana · bentukCacat utama pada papan. Area (lingkaran atau persegi) bergeser sebesar 5–12 px ke arah yang ditentukan: ← → ↑ ↓ dan dua diagonal ⤡ ⤢. skala vertikal / horizontal, ±% — ukuran area relatif terhadap zona: 0 — seluruh zona, −30 — area 30% lebih kecil (hanya elemen yang bergeser, dasar tetap), +30 — area lebih besar dari zona (mengambil elemen dari bingkai). semua arah — untuk setiap sisi sesuai dengan file.
Rotasi, ° · bentukArea (lingkaran atau persegi, skala yang sama ±%) berputar pada sudut acak dari rentang ke kedua arah.
Skala, % · pengurangan / penambahanArea sebagai cacat: pengurangan 60–85% atau peningkatan 120–160%. Setiap sisi yang ditandai memiliki file sendiri. Biasanya dinonaktifkan pada papan.
«umum» untuk pergeseran dan rotasiJika kedua kotak centang tersebut dicentang, ini berarti satu elemen dalam satu file: pergeseran dan rotasi diterapkan dalam satu transformasi (bukan secara bergantian, jika tidak akan menghasilkan hasil yang tidak konsisten), skala area dan bentuk bersifat umum dan ditentukan pada pergeseran.
▸ Sub-areaArea dibagi menjadi 2, 4, atau 9 bagian, dan di dalam setiap bagian, area berputar atau digeser; centang «setiap sub-area memiliki foto sendiri» memberikan satu file per bagian. Diperlukan untuk area besar dengan beberapa elemen.
Pencahayaan dan noise di atas setiap file cacatDiaktifkan dan sama dengan normal: cacat harus berbeda dalam geometri, bukan dalam pencahayaan.
Foto berdasarkan waktu / di valSetiap salinan dari bingkai baru kamera (800 ms), 20% dalam val, file pertama dari kelas selalu ada dalam val.
1
Klik ZONA-PASANGAN: anomali zona. Hasilnya sudah dihitung sebelumnya: "Zona: 2 · pada salinan: 2 file · pada zona: 20 · total ≈ 40 (+ sebagian di val)". Dengan "semua arah", pergeseran file pada salinan menjadi sembilan, seperti pada folder di atas.
2
Pilih profil: Secara Default (pergeseran zona 5–12 px + rotasi area, bentuk, dan subzona dilipat dan dinonaktifkan), Pergeseran Elemen (hanya pergeseran 4–12 px, dengan pencahayaan seperti normal) atau Warna dan Cat (bentuk, "elemen hilang", warna dari palet, tanpa pergeseran). Perubahan yang Anda buat akan langsung disimpan setiap kali Anda menekan.
3
Klik Buat. Kelas zone_NNN_anomaly akan muncul di dalam struktur model. Cacat yang diambil dari gambar akan ditambahkan ke kelas yang sama melalui ROI → Tambahkan ke kelas.
Penting. Batas bawah pergeseran sintetis (5 px) berada tepat di atas rentang normal (0–2 px). Jangan memperluas normal hingga 5 px dan jangan mempersempit anomali hingga 2 px: batasnya akan hilang, dan model akan berfluktuasi pada papan yang sebenarnya. Jika Anda membutuhkan sensitivitas yang berbeda, ubah kedua batas secara konsisten dan hitung ulang dalam milimeter (bagian 1.3).

4.8. Referensi dengan zona: pelat penyolder dan editor zona

Tombol "referensi dengan zona" membuka referensi papan yang telah disimpan dengan kisi-kisi. Di sini, data sintetis dibuat tanpa menggunakan kamera: roda untuk zoom, tombol kanan untuk panorama, tombol kiri untuk memilih zona (Ctrl untuk menambahkan, drag-and-drop dengan kotak, Ctrl+A untuk semua), klik ganda untuk editor zona.

  • Kepingan solder untuk area yang dipilih… — jendela "Kepingan solder: hubungan pendek antara jalur". Program secara otomatis menemukan jalur dalam area (batas Ots, garis-garis terang dengan lebar ≥ 2 px), menempatkan tetesan solder di celah antara jalur-jalur yang berdekatan dengan warna jalur itu sendiri, dengan tepi gelap dan pantulan. Pengaturan: antara jalur vertikal atau horizontal, kepingan pada gambar 1…3, ukuran 8…18% area, gambar untuk area (5), tempat ditempatkan – di anomali atau di normal, pencahayaan permukaan, di val – gambar baru dengan pencahayaan yang berbeda atau salinan yang tepat.
  • Editor area: alat Kuas, Pipet, Noda Warna, Salin Area, Tempel, Stempel, Area pelat; palet "solder / area", "papan", "bayangan / masker", putih, hitam; kolom "Salin" dan tombol Buat gambar. Dengan cara ini, cacat yang belum ada pada garis dapat digambar: area yang terisi, elemen tambahan, label yang hilang.

File editor mendapatkan nama seperti `edit_…` dan ditempatkan di dalam zona atau anomali zona tersebut. Pada tab "Inspect", jendela yang sama hanya dibuka untuk tujuan tampilan.

4.9. Pelatihan model

Bagian "Pengaturan Pelatihan" di tab Model AI akan terisi secara otomatis setelah pengambilan gambar berdasarkan zona: Ukuran Gambar 128, Ukuran Model s, Epochs 50, Batch 64. Ini adalah nilai untuk zona 108–137 px. Untuk zona 256 px, seperti pada contoh, atur Ukuran Gambar menjadi 192 atau 256 – pemotongan akan hampir tidak terkompresi (nilai Epochs 100 dan Ukuran Gambar 192 berada di jendela utama). Periksa nilai-nilainya dan klik "TRAIN AI MODEL".

ParameterApa artinyaBagaimana memilih
EpochsBerapa kali model akan melihat seluruh kumpulan data50 untuk papan default; 100–150 jika ada banyak kelas anomali
Batch SizeBerapa banyak gambar dalam satu langkah64; jika memori video kurang, kurangi
Image SizeUkuran potongan, kelipatannya 32Ukuran zona kira-kira: 128 untuk zona 108–137 px; 192–256 untuk zona 256 px, seperti pada contoh
Model Sizen / s / m / l / xs — optimal untuk ratusan pasangan kelas; n tidak cukup kapasitas, m dan lebih tinggi — lebih lambat
Devicebagaimana cara melatih0 (GPU) dengan kartu grafis NVIDIA; tanpa CUDA, program akan secara otomatis beralih ke CPU
Workersjumlah thread untuk persiapan data12 secara default untuk prosesor multi-core
1
Sebelum memulai, program memeriksa: menawarkan untuk menghapus kelas kosong, folder tambahan di val, dan menemukan val di mana ia kosong. Saat pertama kali dijalankan, lingkungan pelatihan (Python 3, paket ultralytics, onnx, onnxslim, onnxruntime) diinstal — diperlukan internet dan beberapa menit.
2
Untuk model ZONA-PASANGAN, pelatihan dilakukan tanpa erasing, flip, crop, dan randaugment: augmentasi ini bertentangan dengan kelas anomali (zona yang terbalik adalah zona yang berbeda). Baris yang sesuai akan ditulis ke konsol.
3
Tombol berubah menjadi merah dengan tulisan "HENTI MODEL AI", dan lingkaran di sebelah kanan menunjukkan persentase berdasarkan era. Proses pelatihan dapat dilihat di konsol. Untuk dua zona dan 100 era pada kartu grafis, ini membutuhkan waktu sekitar 10–15 menit.
4
Setelah selesai, program mengekspor best.onnx ke direktori model dan langsung menetapkannya untuk inspeksi. Tombol Ekspor ONNX mengulangi proses ekspor tanpa perlu pelatihan ulang.
Saran. Pelatihan ulang setelah menambahkan cacat atau platform baru dilakukan dengan tombol yang sama: set data dilengkapi, lalu pilih "Latih Model AI" best.onnx Data sedang ditimpa ulang. Jangan sentuh kisi-kisi tersebut.

5. Inspeksi

Semua proses dilakukan pada tab "Inspect". Setelah pelatihan, model sudah ditetapkan; yang perlu dilakukan adalah memeriksa area, menetapkan ambang batas, memilih sumber kecepatan, dan jika pembayaran diterima dalam posisi apa pun, mengaktifkan jalur produksi otomatis.

Fungsi "Inspect" dalam penggunaan: model model_4\best.onnx, baris "Kategori Inspeksi: Papan - Zona 2, Tingkat Anomali 2. Zona N diselesaikan di dalam pasangan zone_N / zone_N_anomaly, ambang batas 50 %", jalur produksi aktif dengan periode 2000 ms dan indikator "normal · titik 112",
Fungsi "Inspect" dalam penggunaan: model model_4\best.onnx, baris "Kategori Inspeksi: PADA – zona 2, kategori anomali 2. Zona N diselesaikan di dalam pasangan zone_N / zone_N_anomaly, ambang batas 50 %", pita berjalan dengan periode 2000 ms dan indikator "normal · titik 112", di bagian bawah terdapat sumber kecepatan dan tanda "GPU", "Analisis Abu". Pada gambar, kedua zona berwarna hijau – "normal".

5.1. Menentukan model dan memeriksa zona

1
Jika model belum dipilih, klik PILIH MODEL ONNX UNTUK INSPEKSI dan tentukan best.onnx di dalam folder model. Baris "Kelas Inspeksi" akan menampilkan semua kelas; nama-nama diambil langsung dari file ONNX, sehingga nomor output pasti sesuai dengan nama.
2
Tekan ZONA-PASANGAN: zona ↔ model (periksa, ambang batas)Jendela menampilkan: "Zona dalam jaringan: 2 / Kelas" zone_NNN Dalam model: 2, jumlah kelas anomali: 2. "Setiap zona dalam grid memiliki kelasnya sendiri." Peringatan "Zona tanpa kelas dalam model" atau "Kelas tanpa zona dalam grid" menunjukkan bahwa grid telah dimodifikasi setelah proses pelatihan.
3
TIDAK MENGGUNAKAN AI sementara menonaktifkan analisis pada kamera ini, tanpa menghapus pengaturan (setiap kamera memiliki flag sendiri); HAPUS MODEL menghapus model dan slot sepenuhnya.

5.2. Ambang batas pengenalan zona

Untuk setiap zona, jaringan memberikan probabilitas untuk semua kelas, tetapi keputusan hanya diambil dalam sepasang data. Nilai "normal" dihitung sebagai p(zone_N) / (p(zone_N) + p(zone_N_anomaly)) dan dikalikan dengan faktor "tingkat kepercayaan" — yang menunjukkan seberapa besar kemungkinan pasangan data tersebut menghasilkan keluaran dari jaringan (tingkat kepercayaan penuh jika nilainya 10% atau lebih). Skor akhir, yang berkisar antara 0 hingga 100%, dibandingkan dengan ambang batas: jika nilainya lebih tinggi, maka dianggap "normal", jika lebih rendah, maka dianggap "anomali".

Nilai default adalah 50%, disimpan di board.json bersama dengan model, dan diterapkan langsung tanpa perlu memulai ulang. Jika di bawah 50%, ambang batas semakin menuju normal: 25% → pemblokiran 6%, 10% → 0,4%, 1% → hampir semua berwarna hijau; 99% hanya melewati area yang pasti. Skala ini diperlukan agar operator dapat melihat perbedaan antara 5% dan 99%, bukan hanya area berwarna merah.

Petunjuk. Tentukan ambang batas pada 10 papan yang diketahui berfungsi dengan baik: naikkan ambang batas tersebut hingga semua zona tetap berwarna hijau, lalu periksa pada papan yang diketahui memiliki cacat. Setiap 10 detik, program akan mencatat baris "\[ZONA-PASANGAN] … normal N, anomali M, ambang batas 0,50; nilai terburuk q: z17:0,31 …" ke konsol, yang menunjukkan zona mana yang paling dekat dengan batas.

5.3. Alur kerja dinamis: dapat bekerja dalam posisi apa pun

Galochka Konveyor Otomatis: Pencarian PCB di Setiap Posisi mencakup pencarian PCB berdasarkan area penyelarasan sebelum setiap analisis: bingkai disesuaikan dengan referensi, area dipotong dari gambar yang disesuaikan, dan batas area serta zona (hijau - normal, merah - anomali) digambar pada video. Kolom Periode, ms menentukan seberapa sering PCB dicari (default 1000, pada gambar 2000). Indikator di samping: hijau "normal · N titik", merah "ANOMALI · N titik", oranye "PCB tidak ditemukan" atau "tidak ada referensi - catat". Hasil diambil berdasarkan satu analisis, tanpa akumulasi.

referensi dan area penyelarasan dicatat menggunakan tombol "Catat referensi", sama seperti saat pengambilan gambar (bagian 4.4); "referensi dengan area membuka untuk dilihat. Pada video, batas area penyelarasan dan titik-titik penahan berwarna biru digambarkan, yang digunakan untuk menyelaraskan. Area yang melebar di luar tepi bingkai setelah penyelarasan, akan dilewati dengan label "LEWATI".

5.4. Berdasarkan sinyal apa untuk dianalisis

Sumber kecepatan selalu satu: saat menambahkan yang baru, program akan menghapus yang lama.

CaraCara mengaktifkanKapan digunakan
Berdasarkan kameraKotak centang "Berdasarkan kamera"Kontrol berkelanjutan; kecepatan dibatasi dengan kenop "Analisis per detik" di tab Kamera
Berdasarkan timerKotak centang "Berdasarkan timer" dan interval, msKontrol berkala, misalnya sekali per detik
Berdasarkan pemicuPilih koneksi dalam daftar "Pemicu" dan front "analisis + pada input" atau "–"Konveyor dengan sensor pada input kamera: bingkai diambil pada saat kedatangan produk – cara yang paling akurat (bagian 6)
GPUKotak centang «GPU»Diaktifkan secara default; mengubah pengaturan akan memuat ulang model
Analisis Abu-abuKotak centang «Analisis Abu-abu»Diaktifkan secara otomatis untuk model yang dilatih dalam mode abu-abu; potongan diubah menjadi abu-abu sebelum inferensi

5.5. Zona Kuning: Menonaktifkan zona dengan klik

Pada sebagian area, terkadang perlu untuk sementara waktu menghentikan kontrol: elemen tidak terpasang pada bagian ini, area tersebut ditutup oleh perangkat, sedang dalam proses debugging. Untuk ini, tidak perlu mengubah grid atau model, area tersebut dimatikan langsung pada video, hanya pada tab "Inspect".

1
Klik dengan tombol kiri pada area di dalam kamera: area tersebut akan menjadi kuning dan akan keluar dari analisis. Klik lagi akan mengaktifkannya kembali.
2
Grup zona: Tekan tombol kiri dan seret bingkai di atas papan sirkuit. Semua zona yang berada di dalam bingkai akan dinonaktifkan; jika semuanya sudah berwarna kuning, bingkai akan mengaktifkannya kembali. Ini juga berfungsi saat menggunakan scroll.
3
Daftar zona kuning disimpan dalam database berdasarkan kamera dan model, dan akan bertahan setelah program di-restart dan kamera di-hubungkan kembali. Baris «[Zona] … zona dinonaktifkan: N» akan ditampilkan di konsol.

Apa yang dilakukan oleh zona berwarna kuning, ditentukan oleh kotak centang umum "Zona berwarna kuning (dinonaktifkan dengan klik) tidak menghasilkan suara" di jendela OUTPUT pada tab "Suara" (diaktifkan secara default):

Kotak centangPerilaku zona kuning
Diaktifkan (secara default)Zona tidak dianalisis sama sekali: potongan tidak dikirim ke jaringan, label «OFF», tidak ada suara, tidak ada transmisi TCP, atau keluaran kamera. Dalam lingkungan produksi, zona kuning tidak memengaruhi hasil «normal / anomali».
DimatikanBingkai berwarna kuning hanya berfungsi sebagai catatan: area tersebut sedang dianalisis dan berfungsi seperti biasa. Ini sangat berguna untuk menandai area yang perlu diperiksa tanpa mengganggu proses kontrol.
Catatan. Aturan untuk menghapus "rejector" di zona berwarna kuning tidak perlu: begitu kotak centang diaktifkan, mereka tidak akan menghasilkan hasil, tetapi setelah kotak centang dinonaktifkan kembali, zona tersebut akan berfungsi kembali.

5.6. Apa yang dapat dilihat di layar dan di konsol

  • Hasil telah dicatat untuk setiap area; batas area ditandai dengan warna tabel area, dan ketika pemicu aktif, batas tersebut berwarna merah. Ketika ada lebih dari 50 area, batas normal hanya ditampilkan dengan garis hijau, sedangkan area yang tidak pasti dan anomali diberi label dengan garis yang berbeda. Jumlah banyak label pada setiap frame membuat gambar sulit dibaca dan membebani proses rendering. Area berwarna kuning dapat dinonaktifkan dengan mengklik (bagian 5.5).
  • Panel "Analisis Berdasarkan Pemicu" di bagian bawah tab menampilkan setiap aksi dalam format baris [jam:menit:detik.milidetik] Kamera Masuk + Pemicu 4 ms | AI 12 ms #57 dan hasilnya untuk setiap zona. Data ini tidak disimpan ke dalam database.
  • Klik kanan pada area pada video: "Deteksi kelas di area ini → anggap ini sebagai «…»" mengubah nama respons model untuk area tersebut (tetapi tidak mengubah model itu sendiri, tetapi rejector dan log akan melihat nama baru); di sana juga terdapat opsi "Buat rejector untuk area ini" dan penghitung aturan.
  • Centang opsi "Simpan hasil inspeksi" dan folder: File gambar dengan area yang ditandai akan disimpan dengan format inspect_….jpg. Pengaturan ini berbeda-beda untuk setiap kamera.
  • Setiap 10 menit, sebuah frame dari proses produksi dan daftar zona teks ditulis ke subfolder diag, dan 20 frame terakhir disimpan – untuk analisis kasus-kasus yang kontroversial tanpa perlu memperbesar folder.

6. Pemicu: sensor eksternal pada bagian masuk kamera

Mode utama untuk konveyor: kamera mengambil gambar berdasarkan sinyal listrik dari sensor pada input diskretnya. Ini adalah momen pengambilan gambar yang paling akurat: produk selalu berada di lokasi yang sama dalam setiap gambar, dan analisis dilakukan hanya sekali untuk setiap produk. Bagian TRIGGER mengumpulkan komunikasi "sensor → kamera" dan menggambar diagram koneksi sesuai dengan terminal yang dipilih.

Sakelar TRIGGER untuk HIKROBOT (6 pin): sensor PNP, sinyal ke pin 2, pin umum 5, diagram pin.
Sakelar TRIGGER untuk HIKROBOT (6 pin): sensor PNP, sinyal ke pin 2, pin umum 5, diagram pin.
Hal yang sama berlaku untuk SICK picoCam (6 pin): sinyal pada pin 4 (Trigger +), pin umum 3 (Trigger −).
Hal yang sama berlaku untuk SICK picoCam (6 pin): sinyal pada pin 4 (Trigger +), pin umum 3 (Trigger −).
1
Klik TRIGGER di atas video. Pilih Perangkat trigger (dalam daftar: sensor optik BAOLSEN QAF-Q2P, 4 kabel; sensor apa pun dengan output PNP atau NPN terhubung dengan cara yang sama), Konektor kamera (HIKROBOT 6 pin atau SICK picoCam 6 pin), Kamera (jenisnya), dan Jenis output sensor: PNP — sinyal mengaktifkan "plus" (kasus normal), NPN — mengaktifkan "minus", diperlukan resistor 1–4,7 kOhm pada +24 V.
2
Rakitlah diagram berdasarkan gambar: catu daya untuk sensor dan kamera dari satu sumber 24V, kabel sinyal sensor ke input kamera, kabel input kembali ke 0V. Kabel putih pada sensor adalah output kedua, dan tidak perlu dihubungkan.
3
Klik Buat Koneksi. Koneksi akan disimpan dalam database; koneksi yang sama tidak akan diduplikasi. Tombol Hapus Koneksi akan menghapus yang dipilih.
4
Pada tab "Inspect", pilih koneksi dari daftar "Trigger" dan bagian: "analisis + pada masukan" (frame pada saat tegangan 24V) atau "analisis - pada masukan". Program akan mengarahkan kamera ke mode trigger: pada HIKROBOT, TriggerMode = On, TriggerSource = Line0, pada SICK, kamera berhenti mengambil gambar, masuk ke mode, dan memulai ulang. Lingkaran di samping menunjukkan tingkat masukan.

Membuat lubang untuk konektor

PinHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR — Sumber daya untuk kamera 9–24 ВGND — catu daya kamera
2OPTO_IN — Input Line 0 (+), sinyal pemicuVCC — catu daya kamera 12–24 В
3GPIO — Line 2, input atau outputPemicu — Input trigger, optocoupler (−)
4OPTO_OUT — keluaran Garis 1 (+)Input Triger + — input opto-relay (+)
5OPTO_GND — opto-isolator umum, kabel pengembalianFlash + — output diskrit (+)
6GND — catu daya kameraFlash − — output diskrit (−)
Penting. Port "papa" pada kamera dan port "mama" pada kabel saling berpasangan. Satu-satunya penunjuk adalah kunci (lubang pada konektor); pada SICK, kunci berada di antara kontak 1 dan 6, dan ketika dipasang, akan mengarah ke kanan. Periksa kontak dari sisi yang Anda pegang. Kesalahan pada kontak berarti jalur yang terbakar: sumber daya dan keluaran berada di dekatnya. Konfirmasi pinout SICK dengan pengujian.
Petunjuk. Ambil gambar dari sisi "+", bukan dari sisi "down": pada perangkat nyata, penyebaran waktu gambar pada sisi "+" adalah 4,2 ms, sedangkan pada sisi "down" adalah 40,7 ms. Pemeriksaan sensor: kabel coklat dan biru selalu 24 V, ini adalah sumber daya; sinyal lihat antara kabel hitam dan biru, dengan menutupi cahaya. Jika tidak berubah, pasang resistor 2–10 kOhm dari hitam ke coklat; 24↔0 V pada saat ini berarti NPN.

7. Output: rejector, output diskrit kamera dan TCP

"Rejector" mengubah hasil inspeksi menjadi tindakan. Aturan dibuat pada area tertentu (atau langsung pada semua area model, kelas, atau area yang ditandai), dan akan aktif ketika model mendeteksi kelas yang ditentukan di area tersebut. Ada tiga tindakan yang dapat dilakukan: mengirimkan paket TCP ke robot atau PLC, mengubah status output digital kamera, dan memberikan peringatan suara kepada operator. Setiap tindakan yang terjadi akan dicatat dalam log.

7.1. Panduan OUTPUT: kontak dan pengujian dengan alat penguji

Tombol "KELUAR" di atas video membuka jendela bantuan yang tidak melakukan pengaturan apa pun: jendela tersebut menunjukkan pada kontak mana outputnya, bagaimana cara memverifikasinya dengan multimeter tanpa daya, dan bagaimana cara menghubungkan beban.

HIKROBOT — output Line 1 (optocoupler) pada pin 4 (+) dan 5 (−), arus maksimum 25 mA.
HIKROBOT — output Line 1 (optocoupler) pada pin 4 (+) dan 5 (−), arus maksimum 25 mA.
SICK picoCam — pin flash (optocoupler) pada pin 5 (+) dan 6 (−), 150 mA terus menerus.
SICK picoCam — pin flash (optocoupler) pada pin 5 (+) dan 6 (−), 150 mA terus menerus.
  • Output — "kontak kering" optocoupler: ia tidak memberikan tegangan sendiri, hanya menutup rangkaian. Membutuhkan sumber daya eksternal.
  • Pengujian dengan alat penguji dalam mode Ω: output MATI — putus (OL), NYALA — ratusan Ohm. Buzzer tidak berbunyi dalam kedua kasus, lihat angka. Jika tidak ada perubahan — balikkan probe, optocoupler bersifat polar.
  • Beban: +24 В → lampu → pin «+», pin «−» → GND. Untuk HIKROBOT 25 mA — batas: peralatan sinyal pada 27 mA sudah melebihi, kurangi daya atau pasang rel perantara. Untuk SICK, kapasitasnya besar, lampu 20–30 mA dapat dihubungkan langsung.

7.2. Jendela OUTPUT: aturan untuk zona

Tombol "OUTPUT" di panel kanan (atau klik kanan pada area → "Buat rejector untuk area ini") membuka jendela "OUTPUT — Paket TCP dan Output Digital Kamera". Di sebelah kiri, terdapat struktur "Kamera → Model AI → Kelas → Area" dengan tanda centang pada area; di sebelah kanan, terdapat tab "Aturan Area", "Log Aktivasi", dan "Database".

Jendela OUTPUT: pohon zona di sebelah kiri, daftar aturan zona, grup «Aturan», dan tab TCP dengan pengaturan.
Jendela OUTPUT: pohon zona di sebelah kiri, daftar aturan zona, grup «Aturan», dan tab TCP dengan pengaturan.
1
Pilih area di dalam pohon (judul di sebelah kanan akan menunjukkan jalur Kamera USB HD → model_5 → 1 → Area 1 (T1.C1)). Klik + TCP Baru, + Diskrit Baru, atau + Suara Baru.
2
Dalam grup "Aturan", pilih "Kelas AI". Jika ingin aturan ini berlaku, pilih opsi "anomali" atau "normal" (atau "*—semua kelas), centang opsi "Aktif". Jika perlu, gunakan opsi "Ulangi sampai kelas tetap berlaku" dengan interval pengulangan dan "Konfirmasi perubahan kelas, ms" (secara default: kelas baru harus tetap berlaku selama periode tertentu agar perubahan dapat dikenali).
3
Isi bagian TCP (bagian 7.3), Output Kamera (bagian 7.4), atau Audio (bagian 7.5).
4
Periksa rantai tanpa menunggu kesalahan: Periksa aturan ini (mengirim paket atau memberikan sinyal untuk keluar), Simulasikan aktivasi zona (memproses semua aturan zona melalui antrean tempur dengan fitur anti-noise dan log).
5
Klik Buat untuk 1 zona. Jika beberapa zona telah ditandai, tombol berubah menjadi Buat untuk N zona; pada node model, akan muncul "Simpan untuk seluruh model", dan pada node kelas, akan muncul "Simpan untuk kelas". Di bagian bawah: Aktifkan / Nonaktifkan / Hapus pada yang dipilih.

Satu zona dapat berisi beberapa aturan TCP (penerima yang berbeda), tidak lebih dari satu aturan output diskrit per kelas, dan tidak lebih dari satu suara per kelas. Aturan disimpan dalam database dan dijalankan dari aliran inferensi: aturan disimpan dalam memori, pencarian berdasarkan alamat zona dilakukan pada setiap frame, dan soket serta SDK kamera diakses oleh aliran-alur terpisah untuk memastikan analisis tidak bergantung pada jaringan.

7.3. Paket TCP untuk robot atau PLC

Program ini berfungsi sebagai klien TCP: terhubung ke alamat IP dan port penerima, menjaga koneksi tetap terbuka, dan menggunakannya kembali. Jika koneksi terputus, program akan mencoba untuk terhubung kembali dan mengirim ulang data sekali. Data yang dikirim akan dienkode dalam format UTF-8 dan diakhiri dengan karakter CR+LF.

BidangPenetapan
Waktu tunggu koneksi, ms1000 secara default, 100…10000.
Waktu tunggu pengiriman aturan otomatis, msJeda minimal antara pengiriman aturan otomatis; 0 — tanpa jeda. Bahkan perubahan kelas menunggu jeda ini.
PerintahKata-kata diterjemahkan secara harfiah: "up" – paket "up". Dibutuhkan sudut – tambahkan placeholder: "J6 {class}" → "J6 235". Kosong – menggunakan template "Data".
Data sendiriTeks acak, digunakan sebagai pengganti `{data}`.
DataTemplate pengiriman. Kosong = «nomor dan nama zona» ({zoneId} {zone}). Menekan pada bagian untuk mengisi akan menambahkannya, menekan berulang kali akan menghapusnya; «Semua bidang» akan membuat template yang terstruktur.
PenggantianArtiPenggantianArti
{zoneId}Nomor zona (1, 2, 3…){camera}Nama kamera
{zone}Nama zona (diedit dalam basis data){model}Nama model AI
{class}Kelas yang dilihat oleh model{time}Waktu HH:MM:SS.ms
{conf}Kepercayaan, % (titik sebagai pemisah){date}Tanggal dalam format YYYY-MM-DD
{data}Teks dari "Data Pribadi"

Contoh template terstruktur: zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. Angka selalu dalam format yang konsisten, sehingga "87,6" tidak mengganggu proses pemrosesan pada PLC.

  • Memeriksa koneksi hanya membuka soket dan memberikan pesan "koneksi berhasil" atau "tidak ada respons dalam N ms".
  • Mengirim tes benar-benar mengirimkan string; hasilnya ditampilkan di samping tombol, bukan di jendela.
  • Pengiriman. Jika tidak ada tanda centang "ulang", aturan ini mengirimkan satu paket saat kelas berubah, dan mengirimkannya berulang kali hingga penerima merespons dengan baris ok <paket>. Jika ada tanda centang, pengiriman akan diulang secara berkala selama kelas masih aktif.
  • "Perintah Terakhir Menang": Jika model berhasil memberikan beberapa hasil sebelum operator sibuk, perintah terakhir akan dieksekusi. Antrian dibatasi hingga 512 perintah.

7.4. Keluaran Kamera yang Terpisah

Tab "Keluaran Kamera": metode keluaran, saluran, level, pulsa, tombol verifikasi manual. Kamera USB tidak memiliki keluaran terpisah – hanya TCP yang tersedia.
Tab "Keluaran Kamera": metode keluaran, saluran, level, pulsa, tombol verifikasi manual. Kamera USB tidak memiliki keluaran terpisah – hanya TCP yang tersedia.
BidangPenetapan
KeluaranMetode: otomatis, pada SICK – pin Flash (level konstan) atau GPIO; pada HIKROBOT – UserOutputValue atau LineInverter (strobo mati). Model MV-CS020/016-10GC tidak memiliki UserOutput – program akan memilih LineInverter secara otomatis.
SaluranPin Flash / GPIO1…6 pada SICK; Line1 (keluaran), Line2 (dua arah) pada HIKROBOT; Line0 – hanya input.
Leveltrue / false / off. "off" – aturan ada, tetapi keluaran tidak terpengaruh.
Pulsa, ms (0 – tahan)0 – level dipertahankan hingga perubahan kelas; jika tidak, pulsa 10…5000 ms dengan reset.

Tombol "Aktifkan Output", "Nonaktifkan Output", dan "Impuls diperiksa menggunakan penguji atau lampu; "Kemampuan Kamera menanyakan semua metode dan mencetak laporan. Uji manual ditulis dalam jurnal yang sama.

Beberapa zona pada satu jalur. Jika ada beberapa zona yang terhubung ke satu pin, jalur tersebut dianggap sebagai logika "AND": hanya HIGH jika semua zona meminta HIGH, tetapi jika ada satu zona yang meminta LOW, jalur tersebut akan menjadi LOW. Ini dapat diuraikan dalam baris "zona pada jalur N, meminta LOW k → HIGH/LOW". Dengan demikian, satu jalur "komponen yang baik" dapat dirakit dari ratusan zona pada papan.
Penting. Pada SICK, pin flash memiliki fungsi yang sama, yaitu untuk output digital dan untuk lampu indikator. Jika pin ini digunakan untuk menghubungkan lampu, gunakan GPIO. Aturan anti-noise adalah 500 ms secara default (minimal 200), dan kejadian-kejadian yang tidak terdeteksi tidak dicatat dalam log.

7.5. Pemberitahuan Suara: Suara khusus untuk setiap zona

Jenis aturan ketiga adalah suara dari komputer dengan program. Operator tidak perlu melihat ke layar: dengan sinyal, ia mendengar bahwa zona tersebut telah mengalami kerusakan, dan suara yang berbeda di zona yang berbeda menunjukkan lokasi pastinya. Suara tersedia untuk semua kamera, termasuk USB dan RTSP, yang tidak memiliki output terpisah.

1
Pilih area di dalam pohon dan klik + Suara Baru. Di dalam grup "Aturan", tentukan kelas (misalnya, anomali) dan centang kotak Aktif.
2
Pada tab "Suara", pilih suara dari daftar. Ada sepuluh suara bawaan: suara pendek, suara ganda, suara tiga, nada rendah dan tinggi, nada naik dan turun, suara peringatan/siren, suara klakson panjang, lonceng. Tombol "Putar" akan memutar suara yang dipilih.
3
Suara sendiri: klik Unggah file Anda… dan pilih WAV, MP3, atau WMA. File akan disalin ke folder sounds\custom di dekat program (flash drive dapat dicolokkan), dan akan muncul dalam daftar dengan label "suara sendiri". Tombol Folder Suara akan membuka folder tersebut: file dapat ditempatkan di sana secara langsung.
4
Atur Jeda antara suara, ms antara 1000 hingga 10000. Selama periode ini, suara tidak akan diulang setelah sinyal, meskipun kelas zona telah berubah lagi: dengan jeda 10000 ms, operator hanya akan mendengar satu sinyal setiap 10 detik.
5
Klik Buat untuk 1 zona atau tandai zona dengan tanda centang dan buat aturan untuk semuanya sekaligus. Setiap zona memiliki suara yang berbeda: ulangi dengan sinyal yang berbeda untuk zona yang berbeda.
6
Kotak centang Area berwarna kuning (dinonaktifkan dengan klik) tidak menghasilkan suara diaktifkan secara default: area yang dinonaktifkan dengan mengklik pada tab "Inspect" (bagian 5.5) tidak menghasilkan suara dan tidak mengaktifkan TCP serta keluaran kamera di seluruh model.
Cara KerjanyaBagaimana cara kerjanya
Tanpa centang "ulang"Suara hanya sekali saat perubahan kelas zona telah dikonfirmasi (setelah "Konfirmasi perubahan kelas"). Selama kelas tetap, tidak ada suara.
Dengan centang "ulang sampai kelas tetap"Sinyal diulang melalui "Interval pengulangan", tetapi tidak lebih sering dari jeda antara suara, selama zona tetap dalam kelas yang ditentukan.
Beberapa zona dalam keadaan rusak secara bersamaanSetiap zona menghasilkan suaranya sendiri; sinyal dari zona yang berbeda tidak saling menutupi, hanya suara dari zona yang sama yang diulang.
LogSetiap kali terjadi kesalahan, akan tercatat dalam "Log Aktivasi" dengan baris "Suara «…»"; jika file tidak ditemukan atau perangkat audio mengalami masalah, baris dengan pesan kesalahan akan muncul, dan program akan terus berjalan.
PemeriksaanMemeriksa aturan ini langsung memutar suara; Mensimulasikan aktivasi zona memutar suara bersama dengan TCP dan keluaran melalui jalur tempur.
Saran. Pasang sirene atau sinyal ganda pada area yang paling penting (port, komponen daya), dan sinyal pendek pada area lainnya. Dengan begitu, satu bunyi akan memberikan informasi yang jelas, apakah harus segera berlari ke garis atau tidak. Aturan bunyi untuk seluruh model dibuat dengan memilih node atau kelas model di pohon: satu sinyal untuk setiap kerusakan.

7.6. Log Aktivasi dan Database

Tab "Log Aktivitas" menampilkan 300 catatan terbaru dalam format "HH:MM:SS.mmm ✔/✖ Kamera · Model · Kelas · Area → Tindakan [pesan]" dan diperbarui secara langsung. Tombol "Perbarui" dan "Hapus Log".

Tab "Database": lokasi penyimpanan, salinan, dan pemulihan database dalam satu file.
Tab "Database": lokasi penyimpanan, salinan, dan pemulihan database dalam satu file.

Tab Basis dataProgram ini menyimpan semua data dalam sebuah file SQLite rejectors.db Di samping file executable (exe), tidak ada layanan terpisah yang berjalan, dan port tidak aktif. Tidak perlu menginstal apa pun. Tabel-tabel yang ada meliputi: "settings" (pengaturan), "cameras" (profil kamera) camera_models (model pada kamera), zona (nama dan geometri zona), penolak (aturan) reject_log (majalah), camera_param_files (salinan parameter kamera), camera_presets (setelan konfigurasi kamera). Simpan salinan basis data... melakukan pencitraan lengkap dari tim VACUUM INTO langsung pada basis data yang sedang berjalan; Muat basis data dari salinan... Memulihkan data, dengan terlebih dahulu menyimpan versi data yang ada. Basis data dapat dilihat di DBeaver tanpa perlu menutup program; sebaiknya hindari melakukan perubahan atau penulisan data dari luar program.

8. Mode dan Tugas Lainnya

Model standar: normal / anomali dan semua kelas

Editor ROI yang sama juga digunakan untuk klasifikasi standar: tablet, tutup, label, dan komponen di dalam wadah. Kelas ditentukan dalam dialog "Model AI Baru" (secara default normal dan anomali, dengan nama dalam huruf Latin), zona ditetapkan pada produk, tombol "Buat Gambar" dengan jumlah lingkaran 1...50, seri "Buat Gambar" melalui kamera (frame/frame) atau encoder. Panel "Data Sintetis untuk AI": sudut yang tepat 90°/180°, putaran penuh 360° dengan langkah dan rentang, cermin, "kelas berdasarkan derajat" (setiap sudut ke kelas masing-masing — rejector mengirimkan sudut melalui TCP), rentang kecerahan dan kontras. Pelatihan menggunakan augmentasi Ultralytics yang lengkap. Ambang batas keyakinan untuk model-model ini ditentukan di tempat yang sama dengan ZONA-PASANGAN — di tab Inspect.

Inspeksi multi-model (slot 1–20)

Pada satu kamera, Anda dapat menampung hingga 20 model: Tambahkan ONNX ke slot, kemudian ROI → Tambahkan kelas ke model yang dipilih — setiap model dalam slot memiliki penandaan zona sendiri, dan hasil dari semua model ditampilkan pada satu bingkai.

Untuk ZONA-PASANGAN, slot biasanya tidak diperlukan. Satu model sudah mencakup seluruh papan: setiap zona memiliki pasangan kelas sendiri, sehingga "penggabungan kelas yang serupa", yang sebelumnya memerlukan beberapa model, tidak diperlukan lagi. Standar yang umum adalah satu model ZONA-PASANGAN pada papan, slot kosong.

Kapan multi-model diterapkan:

SituasiCara mengatur
Beberapa tugas pada satu frameZONA-PASANGAN memeriksa tata letak dan keberadaan elemen, sedangkan model standar pada slot kedua — pelabelan, stiker, warna port, atau arah kunci. Zona dari model kedua ditempatkan secara terpisah melalui "ROI → Tambahkan kelas ke model yang dipilih".
Produk tanpa kisi tetapTablet, tutup, dan komponen dalam wadah: beberapa kelas jenis produk dalam model standar. Kelas yang serupa dipisahkan dalam slot yang berbeda agar tidak saling tumpang tindih.
Dua papan yang berbeda dalam satu tampilanDua model ZONA-PASANGAN dalam slot yang berbeda, masing-masing memiliki referensi dan kisi sendiri. Sistem konveyor berfungsi dengan referensi model utama.
Periode transisiModel lama yang terlatih tetap berada dalam slot, sementara model ZONA-PASANGAN baru mengumpulkan statistik; keduanya terlihat dalam satu tampilan, aturan penolakan diterapkan sesuai dengan tingkat kepercayaan.

Batasan, kecepatan analisis, zona kuning, dan aturan rejector berlaku untuk semua model kamera. Tombol "HAPUS MODEL" membersihkan dan slot, sehingga meminta konfirmasi; "Hapus yang dipilih" menghapus satu model dari slot, serta file dan zona-nya dalam database tetap tersimpan.

Model umum

Tombol "MODEL UMUM" menyimpan kumpulan "kamera → model" dengan nama: "Buat dari model yang ada", "Terapkan ke semua kamera", "Perbarui dari yang ada", "Ganti nama", "Hapus kumpulan". Pemindahan stand dari delapan kamera ke produk lain hanya memerlukan satu pilihan. Menghapus kumpulan hanya menghilangkan pengelompokan: folder, ONNX, zona, dan aturan tetap. Zona tersebut dimiliki oleh pasangan "kamera + model": satu model pada delapan kamera menghasilkan delapan penandaan independen.

Encoder dan rejector di konveyor

Untuk jalur dengan encoder pada port COM (115200, ESP32): sambungkan HUBUNGKAN ENCODER, otomatis terhubung, posisi, ukuran gambar, dan koreksi, Atur nol + AMBIL GAMBAR. Pengambilan gambar untuk pelatihan dan analisis dapat dilakukan "menggunakan encoder" – bingkai seragam sepanjang jalur produk. Rejector lama dengan penundaan waktu dan anti-spam mengirim perintah REJECT ke pengendali encoder.

Perekaman video dan foto

Tab Pengaturan: MULAI PEMBIDANGAN VIDEO dari kamera aktif ke dalam file record_tanggal_waktu.avi (MJPG, *frame rate* kamera yang sebenarnya). Gambar untuk pelatihan — real_….jpg, gambar untuk inspeksi — inspect_….jpg dengan area yang ditandai.

9. Pengaturan, konsol, persyaratan, dan lisensi

Settings

  • SIMPAN KE FILE / IMPORT DARI FILE — semua pengaturan (kamera, model, aturan) dalam format JSON, sangat praktis sebelum instalasi ulang atau untuk memindahkan ke komputer lain. Sumber informasi yang terpercaya adalah basis data, JSON adalah cadangan jika basis data tidak dapat diakses. Setiap perubahan pengaturan akan disimpan secara otomatis.
  • MENGHAPUS PENGATURAN AWAL — bersifat permanen: menghapus konfigurasi dan tata letak jendela.
  • Bahasa antarmuka: 14 bahasa; jendela utama dapat diubah langsung, jendela lainnya dapat dibuka pada saat berikutnya.
  • Posisi, ukuran, dan tampilan semua jendela, posisi pembatas – dalam database; saat monitor dimatikan, jendela kembali ke area yang terlihat.

Console

Kotak centang "Kamera" dan "Pemicu" secara default dinonaktifkan dan menampilkan pesan yang sesuai (pesan kamera dalam mode pemicu masuk ke bagian "Pemicu"); semua pesan ditulis ke file logs\engiai-*.log sebelum penyaringan. Konsol dirancang untuk penggunaan selama beberapa minggu tanpa perlu perhatian: 800 baris ditampilkan di layar, dan 1000 baris lama dihapus; baris baru dikumpulkan dalam kelompok 4 kali per detik, bukan satu per satu; fungsi gulir otomatis ke bawah diaktifkan sampai Anda menggulir ke atas; konsol tidak menghasilkan suara. Perubahan zona ditulis tidak lebih dari 10 baris per detik (sisanya dikumpulkan dalam penghitung), file log dibagi menjadi 20 MB, file yang lebih tua dari 14 hari dihapus saat dijalankan, log kejadian disimpan dalam database dengan 20.000 catatan terakhir. Kesalahan yang belum ditangani — di crash.log, penyebab penutupan paksa — di runtime.log di sebelah file exe. Jika ada yang tidak berfungsi dengan benar, lihat bagian ini terlebih dahulu.

Persyaratan

KomponenPersyaratan
Sistem OperasiWindows 10/11 x64.
Kartu Grafis untuk InspeksiNVIDIA dengan driver CUDA; library CUDA 13 dan cuDNN 9 disertakan dengan program. Tanpa kartu grafis, inspeksi akan berjalan secara otomatis pada prosesor.
PelatihanPython 3 (dengan opsi "Tambahkan python.exe ke PATH" saat instalasi) dan paket ultralytics, onnx, onnxslim, onnxruntime — program akan menginstalnya secara otomatis saat pertama kali digunakan, diperlukan koneksi internet. GPU untuk pelatihan ditentukan oleh PyTorch; tanpa CUDA, pelatihan akan berjalan di CPU yang lebih lambat, hasilnya sama.
Kamera SICKDriver IDS uEye; kamera harus terlihat di IDS Camera Manager.
Kamera HIKROBOTSDK MVS (library disertakan dengan program); untuk GigE — kartu jaringan dengan dukungan untuk frame jumbo.

Lisensi dan Mode Uji Coba

Saat dijalankan, program mengakses server lisensi engi.live; hanya hash dari ID perangkat dan versi yang dikirim, tanpa nomor seri dan nama pengguna. Jika server tidak ada dan izin telah di-cache, program akan berfungsi berdasarkan cache (untuk jalur tanpa internet). Tanpa lisensi, mode uji coba 20 menit akan aktif: di judul jendela dan di bar "AI", akan ada hitungan "UJI MM:SS", tombol "BELI" di tab Pengaturan akan membuka halaman pembelian. Jika lisensi aktif, hitungan tidak akan aktif.

10. Daftar periksa singkat dan pencarian masalah

Daftar periksa untuk papan:

1
KAMERA → «+ Tambahkan kamera» → tandai kamera Anda → Tambahkan.
2
Tab Kamera: resolusi → «Otomatiskan untuk AI (berdasarkan bingkai)» (atau «Tetapkan parameter» di USB) → «Simpan parameter» → «Simpan sebagai…» kumpulan pengaturan. Jika diinginkan, «Latih dalam skala abu-abu».
3
Model AI → «Buat model AI baru» → nama.
4
«ROI → Tambahkan ke kelas (model pelatihan)» → bingkai di sekitar setiap bagian → ukuran area (misalnya, 256) → Enter. Untuk ratusan bagian yang serupa, bingkai di seluruh papan dan kisi.
5
Kotak centang «Tetapkan zona ke produk berdasarkan penanda» → «Tetapkan referensi» → lingkari bagian papan dengan bagian (bukan zona inspeksi) → «✔ Cari zona berdasarkan area yang dipilih».
6
«ZONA-PASANGAN: foto berdasarkan zona» → «Ambil». Ulangi pada 3–5 papan yang berfungsi dengan baik. Zona yang tidak perlu dimatikan terlebih dahulu dengan mengklik pada bingkai (merah).
7
«ZONA-PASANGAN: anomali zona» → «Buat»: pergeseran dan rotasi elemen bersama dengan dasar sudah termasuk. Jika diperlukan, gunakan "referensi dengan zona".
8
LATIHAN MODEL AI (Ukuran gambar 128, s, 50 epoch) → tunggu hingga 100% → best.onnx ditetapkan secara otomatis.
9
Periksa → «ZONA-PASANGAN: zona ↔ model» → periksa kesesuaian → ambang batas. Pilih "melalui kamera" atau pilih pemicu. Untuk papan yang bergerak, gunakan "Konveyor Hidup".
10
OUTPUT → pilih zona → aturan untuk kelas anomali (suara, TCP atau output kamera) → «Simulasikan aktivasi zona» → «Buat di N zona».

Jika terjadi kesalahan

GejalaHal yang perlu diperiksa
Kamera tidak muncul dalam daftardaya dan kabel; untuk SICK — IDS Camera Manager dan IP dari subnet adaptor; untuk HIKROBOT setelah penutupan darurat, tunggu hingga 25 detik dan "Hubungkan Kembali"
Gambar gelap, abu-abu, atau warna yang salahKamera → «Pengaturan otomatis untuk AI»; untuk SICK berwarna — tata letak Bayer dan keseimbangan putih; untuk USB — «Standar», lalu «Tetapkan Parameter»
Frame terputus, jaringan merahGigE: ukuran paket 1500 atau jumbo pada kartu jaringan, penundaan antar paket; FPS atau jumlah frame lebih rendah; kartu jaringan terpisah untuk kamera
"Kartu tidak ditemukan" / gambar terlewatReferensi tidak terdeteksi atau diambil dalam kondisi pencahayaan yang berbeda; sedikit titik referensi — ambil area penyelarasan yang lebih besar dan dengan detail; area terkena meja atau konveyor; perpanjang periode pencarian
Area-area bergerak ke kartu lainKartu dicari berdasarkan area inspeksi: pastikan referensi dengan area penyelarasan berdasarkan detail kartu di sekitarnya (bagian 4.4); model penyelarasan "Otomatis"
Kartu yang rusak dari batch lain tidak tersediaPelabelan pada casing berbeda: tambahkan gambar normal dari batch ini; jangan membuat goresan sintetis yang lebih tipis dari 3 px (bagian 4.6); periksa apakah cacatnya adalah pergeseran, bukan warna
Area yang ditandai dengan NO_ZONE_CLASSJaringan berubah setelah pelatihan; kembalikan jaringan atau buat model baru dan ambil gambar lagi
Semua area berwarna merah pada kartu yang baikpembayaran atau posisi lain tanpa konveyor aktif; ambang batas terlalu tinggi; foto diambil dengan pencahayaan yang berbeda; file berwarna dan abu-abu dicampur
Model tidak mendeteksi pergeseran elemenmenghitung px/mm (bagian 1.3): pada skala kecil, pergeseran kurang dari 5 px; mengurangi bidang pandang atau menggunakan kamera dengan resolusi yang lebih tinggi; jangan memperluas pergeseran normal
Pembelajaran menurun atau sangat lambatPerangkat = cpu, jika tidak ada kartu grafis NVIDIA; mengurangi ukuran Batch; melihat Konsol; memastikan Python ada di PATH
Inspeksi tidak berfungsiApakah best.onnx telah dipilih; Apakah sumber kecepatan (melalui kamera / timer / pemicu) telah diaktifkan; Apakah tombol "TIDAK MENGGUNAKAN AI" belum ditekan; Apakah kotak centang "AI Aktif" pada kamera telah dicentang
Aturan rejector diamapakah tombol "Buat di N zona" ditekan; centang "Aktif"; kelas aturan sesuai dengan jawaban model (anomali / normal); untuk keluar - tingkatnya bukan "off"; kamera USB tidak memiliki output, hanya TCP
Suara tidak dimainkanaturan telah dibuat dan dimasukkan; file berada di folder sounds (atau sounds\custom); apakah ada jeda antara suara; tanpa opsi "ulang", suara hanya diputar saat kelas berubah; volume Windows dan perangkat keluaran
Paket TCP dikirim hanya sekalitanpa opsi "mengulangi", sistem akan menunggu balasan "ok <paket>" dari penerima; centang opsi "ulangi hingga kelas aktif" atau atur balasan di sisi PLC.

engiAI Ethernet System. Nama tombol dan kolom sesuai dengan tampilan dalam program Anda dalam bahasa yang Anda gunakan (screenshot – dari antarmuka berbahasa Rusia). Screenshot diambil pada model "model_4" (dua zona 256x256: kapasitor C30 dan jembatan BR1), kamera USB 3264x2448, model dilatih dalam skala abu-abu. Edisi 3, September 2026: contoh pada dua zona, pembuatan folder model, area penyelarasan, data sintetis "elemen dengan dasar" dengan gambar "sebelum / sesudah", palet dan ketebalan garis, zona merah, konsol.