engiAI
- 要件
- どのような機能ですか
- ライセンス取得
engiAI のインターフェースは日本語に対応しています。本マニュアルのボタン名と項目名は、プログラムの表示どおりに記載しています。
内容
- 1. engiAI とゾーン・ペアという手法について
- 1.1. この手法は、画像全体を分類する方法と比較して、どのようなメリットがあるのか
- 1.2. 速度: AIは必要な部分のみを抽出
- 1.3. 期待できる精度:自分のカメラで測定
- 1.4. 簡単な設定:必要な設定は完了し、エリアとモデルは数回のクリックで選択可能
- 2. プログラムのインターフェースを1分で作成
- 3. カメラ:接続と設定
- 3.1. 対応するカメラは?
- 3.2. カメラのウィンドウ:追加、再設定、削除
- 3.3 HIKROBOT および SICK 用の「カメラ」タブ
- 3.4. カメラ用(USB/ウェブカメラ)の設定
- 3.5. 保存されたカメラの設定(プリセット)
- 3.6. GigEネットワークと再接続
- 4. ゾーンペアモデル:グリッドから学習済みモデルへ
- 4.1. この方法の仕組み:1つのモデル、各エリアに対応するクラス
- 4.2. モデルを作成する
- 4.3. 支払い時に、対象となるエリアを特定する
- 4.4. 基準画像の特定: 位置合わせ領域
- 4.5. 領域ごとの画像:正常な画像とそれらの合成データ
- 4.6. 合成データの不良:要素が基盤と一緒に移動
- 4.7. 領域の異常: 設定ウィンドウ
- 4.8. 基準画像(領域指定付き):接合部の領域と領域編集
- 4.9 モデルの学習
- 5. 検査
- 5.1. モデルを選択し、領域を確認する
- 5.2. 認識可能な領域の閾値
- 5.3. 柔軟な搬送システム:どんな姿勢でも対応
- 5.4. どの信号を分析するか
- 5.5. 黄色のエリア:クリックでエリアを停止
- 5.6. 画面とコンソールで確認できる内容
- 6. トリガー:カメラの入力側に設置された外部センサー
- 7. 出力: リジェクター、カメラの個別出力、TCP
- 7.1. 参照情報:連絡先とテスターによる確認
- 7.2. 出力ウィンドウ:ゾーンごとのルール
- 7.3. TCPパケットをロボットまたはPLCに送信
- 7.4. カメラの離散的な出力
- 7.5. 音による通知: 各エリアごとに独自の音を設定
- 7.6. 動作記録とデータベース
- 8. その他のモードとタスク
- 9. 設定、コンソール、要件、およびライセンス
- 10. 短いチェックリストと不具合の特定
本書の使い方:第1章では、この手法の目的と期待される結果について説明しています。第3章~第5章は、空のプログラムから動作する検査システムへの移行手順を示しています。順番に実行してください。第6章~第7章は、センサー、出力、およびTCPへの接続に関する内容です。第8章~第10章は、その他の機能、設定、およびチェックリストに関する内容です。
1. engiAI とゾーン・ペアという手法について
engiAI Ethernet System - 生産ライン向けの視覚検査プログラムです。工業用または一般的なカメラからの映像を、特定の領域に分割し、それぞれの領域を学習済みのニューラルネットワークで検査します。検査結果を、カメラのデジタル出力への信号、ロボットまたはPLCへのTCP通信、またはログへの記録といったアクションに変換します。ゾーンペア法は、「それぞれの場所に固有の」製品(プリント基板、組み立て品、部品セット、パッケージングなど)に適した方法です。
1.1. この方法が、全体の画像分類と比較してどのような利点があるか
一般的なアプローチは、画像全体または特定の領域に対して、「正常/異常」という2つのクラスを適用する1つのモデルを使用することです。しかし、これはハードウェアでは機能しません。例えば、BR1の橋の下にある領域(ゾーン2)は「異常」と判定されますが、別の場所にある同じ領域は「正常」と判定されます。このような2つのクラスを1つのモデルで表現することはできません。もう一つの極端なアプローチは、各部品ごとに別のモデルを使用することです。これは、多数の学習と、メモリ内の多数のファイルが必要になります。
Zone-Pair方式では、モデルは一つですが、ゾーンの数だけクラスが存在します。ゾーンとは、ある部品を取り囲む長方形領域のことです。クラスとは、ニューラルネットワークが学習に使用する画像が格納されたフォルダのことです。各ゾーンには、対応するペアが割り当てられています。zone_001は正常ゾーン1(例:コンデンサC30)、zone_001_anomalyは異常ゾーン1です。zone_002とzone_002_anomalyは、ブリッジ回路BR1に対応します。ゾーン1の検査時には、プログラムは対応するペアのみを参照し、ゾーン2に関する情報は使用されません。異常クラスは必須ではありません。異常が発生すると、ゾーンの形状が変化し、「正常」であるという確信度が低下します。しかし、合成データ(セクション4.6)を使用することで、これらのクラスを簡単に作成でき、信頼性を大幅に向上させることができます。

1.2. 速度:AIは必要な部分だけを認識
ニューラルネットワークは、全体画像を受け取ることがありません。各領域に対して、その領域の長方形だけが切り出され、領域の番号は2つのクラスを選択します。1つの画像の領域は並行して(最大4つのスレッド)処理され、すべての領域の結果がまとめて1つのパックで表示されます。
- 分析の速度は時間に基づいて設定されます。 カメラタブにある「1秒あたりの分析回数(AI)」のスライダーは、正確に1秒間にN回の分析を行うことを意味し、「N個目のフレームごとに」分析を行うわけではありません。上限は、カメラのフレームレートと推論にかかる時間によって決まります。
- デフォルトでGPUを使用。 推論はONNX RuntimeとCUDAを使用して行われます。NVIDIA製のグラフィックボードがない場合、プログラムは自動的にCPUに切り替わり、その状況をステータスに記録します(GPU (CUDA)またはCPU)。
- 不要なデータを除去したバッファ。 重要なデータは一度だけストリームに割り当てられ、再利用されます。これにより、分析時間がフレームごとに変動することがなくなります。
- タスクに合わせたモデル ゾーン・ペアプログラムでは、入力サイズを128pxに自動設定し、YOLO11の「s」サイズのネットワークを使用します。これにより、領域の切り出しはほとんど拡大されず、数百のクラスペアに対して十分な容量をネットワークが提供できます。
- ライブコンベアは人員を節約できます。 コンベアは、AIによる部品の検索と整列作業を、通常の部品検索よりも効率的に行えます。部品は一度検索・整列され、その後でカット処理が行われます。
- 表示が分析を妨げません。 画面は1秒あたり最大25回まで再描画され、新しいカメラのフレームに基づいて、画面はタイルサイズに縮小され、その後、背景スレッドによってログがファイルに書き込まれます。8メガピクセルのフレームや多数の領域がある場合でも、インターフェースは応答性を維持します。
動画の上部にあるステータスバーには、実際の数値が表示されています。それは、fps(1秒あたりのフレーム数)と、最後の分析のミリ秒、そしてEff(1秒間に実際に完了した分析の数)です。
1.3. どの程度の精度を期待できるか:自分のカメラで確認
このプログラムは、カメラやレンズの種類に関わらず「0.5mm」の精度を保証するものではありません。 歪みの検出感度は、1mmあたりのピクセル数と、モデルが学習した境界線によって決まります。 これは以下の2行で計算されます:
最小限で認識できるずれ: 約 5 ピクセル ÷ (ピクセル/ミリメートル)
「5px」は、推奨される異常値設定における合成スライスの下限値です(この設定では、正常値の範囲は0~2px)。デフォルト設定は11px/mmに基づいています。この設定では、0.5mmは5~6pxに相当し、これが開発時に決定された目標値です。ご自身の値を入力してください。
| カメラ(画角) | 視野:100mm | 200mm | 300mm | 400mm |
|---|---|---|---|---|
| 3264 ピクセル (USB 8メガピクセル、写真に示されているものと同じ) | 0.03 mm/ピクセル → ずれ ≈ 0.15 mm | 0.06 → 概ね 0.3 mm | 0.09 → 概ね 0.45 mm | 0.12 → 概ね 0.6 mm |
| 2448 ピクセル (HIKROBOT 5MP) | 0.04 → 約 0.2 mm | 0.08 → 約 0.4 mm | 0.12 → 概ね 0.6 mm | 0.16 → 約 0.8 mm |
| 1920 ピクセル (SICK picoCam, HIKROBOT 2MP) | 0.05 → 約 0.25 mm | 0.10 → 約 0.5 mm | 0.16 → 約 0.8 mm | 0.21 → 約 1.0 mm |
1.4. 簡単な導入:設定は完了し、ゾーンとモデルを数回のクリックで設定
この方法は、機械学習の経験がない技術者が、1つのシフトで実用的なモデルを作成できるように設計されています。事前に設定できるものはすべて、プログラムのデータベースに保存されています。
- 1分間の領域。 ROIエディタで、図形を特定の要素の周囲にドラッグして、領域のサイズ(例:256ピクセル)を指定します。要素が多数あり、均一に並んでいる場合は、図形を全体のレイアウト全体にドラッグすると、プログラムが自動的に行と列を計算します。
- 合成データは、正常な状態と異常な状態のプリセットが用意されています。 「デフォルト」「要素のずれ」「色と塗料」といったボタンは、あらかじめ設定されたプロファイルを切り替えます。 「撮影」ボタンを押す前に、ファイル数、カメラからのフレーム数、および予想される処理時間などが表示されます。
- 学習パラメータは自動的に設定されます。 最初の画像に基づいて、プログラムは以下のパラメータを設定します:画像サイズ 128、モデルサイズ s、エポック数 50、バッチサイズ 64。また、学習時には、異常クラスと競合するデータ拡張(オーグメンテーション)を無効にします。
- カメラはボタンで設定します。 「AI(フレームごとの)自動設定」は、露出、ゲイン、カラーバランス、ホワイトバランスを自動で調整します。USBカメラには、「フォームごとの自動設定」と「パラメータの固定」の機能があります。
- カメラの設定キット 予め設定されたパラメータは、特定の名前で保存され、リストから選択することで、カメラが即座にそれらを受け取り、自身の記憶に保存します。
- 1つのONNXファイルが出力されます。 訓練されたモデルは自動的にエクスポートされ、すぐに検査に割り当てられます。追加の手順は必要ありません。
全体的な手順:カメラの接続 → モデルの作成 → 領域の特定 → 位置合わせ領域の固定 → 複数の正常な基板で「領域ごとの画像」の取得 → 「領域の異常」 → AIモデルのトレーニング → 「検査」タブ。その後、各領域に音、出力、TCPを割り当てる必要があります。 起動に必要なもの:Windows 10/11を搭載したコンピューター(高速検査にはNVIDIA製のグラフィックボード)、カメラ、正常な基板1つ、および学習環境のインストール用のインターネット接続。 故障した基板は不要です。
2. プログラムのインターフェースを1分で
メインウィンドウは2つの部分に分かれています。左側にはカメラからのライブ映像と、その上にあるステータスバーがあります。右側には、すべての操作を行うタブが配置されたパネルがあります。ウィンドウ間の境界線をドラッグすることで、ウィンドウのサイズ、位置、レイアウトをプログラムが記憶します。

ビデオ上のボタン
| ボタン | 開く |
|---|---|
| ビデオを非表示にする | 画面上の画像を表示を停止します。描画のみを停止し、分析は継続します。 |
| 出力 | 参照ウィンドウ: HIKROBOTおよびSICKのカメラのディスクリート出力の連絡先、テスターによる確認、負荷の接続(7.1節)。 |
| カメラ | 「接続されたカメラの設定」ウィンドウ: カメラの追加、再接続、削除、およびハードウェアから読み取られたすべてのパラメータの表示(3.2節)。 |
| トリガー | カメラのディスクリート入力への外部センサーの接続(回路図および配線図参照)(6節)。 |
| 共通モデル | 「カメラ → モデル」という名前のプリセットを、スタンド全体に一度の選択で割り当て(第8章)。 |
| レイアウト(列) | どの程度のカメラを1列に表示するか:「■」は単一モード(選択したカメラを拡大)、「自動」は、カメラの中からランダムに選択、「⛶」はモニター全体に表示(Escキー)。 |
| ROI(領域)を表示 | 動画上にグリッドを表示するかどうか。 |
右側のタブ
| タブ | 設定 |
|---|---|
| Camera | 選択したカメラのパラメータ:シャッタ速度、増幅、色、解像度、AI用の自動設定、保存された設定、分析速度。AIの閾値はここにはありません。Inspectタブのみで設定できます。 |
| OUTPUT | リジェクター:領域ごとのルール - ロボット/PLCへのTCP送信、カメラのデジタル出力、および音声アラート、イベントログ、データベース。 |
| AI Model | モデルの作成:フォルダ、クラス、領域グリッド、領域ごとの画像、領域の異常、基準画像、設定、および学習の開始。 |
| Inspect | 機能タブ:検査に使用するモデル、検査範囲、閾値、ライブカメラ、どの信号で映像を撮影するか、マルチモデル検査用のスロット。 |
| Settings | インターフェース言語(14言語)、ライセンスの購入、設定の保存と読み込み、ビデオの録画。 |
| Console | イベントログ:カメラの接続、トレーニングの進捗、リジェクターの動作、警告。画面には最後の800~1000行が保持され、すべての内容は logs\engiai-*.log に記録されます。 |
ステータスバー
ボタンの上には、現在アクティブになっているカメラの状態が表示されています。LIVE (Android): 3264×2448 [HD USB Camera]- タイプ、解像度、およびファイル名。AI: WAITINGまたはAI: GPU (CUDA)- モデルが使用した計算資源と、最後の分析にかかったミリ秒数。ネットワーク: 全体で…、アクティブな… Mbps- GigEカメラによるネットワークへの負荷状況(緑:リンク使用率40%以下、オレンジ:70%以下、赤:70%超)。 帯域幅Exp Loadこれは、シャッタースピードがフレームレートのどの部分を占めるかを示しており、もしシャッタースピードが右端に達すると、カメラは設定されたフレームレートを維持できなくなります。
各カメラのタイルには、名前、ステータス(LIVE | AI:ON)、および再接続ボタンが付いています。画面上の右クリックでゾーンメニューを開き、ドラッグ&ドロップで拡大された画面全体を表示できます。
3. カメラ:接続と設定
3.1. 対応するカメラの種類
| 種類 | 接続方法 | プログラムから設定できるもの |
|---|---|---|
| HIKROBOT MV-CS (GigE, USB3) | MVS SDK(ネイティブ)。シリアル番号で厳密に開く。リストの順番は関係ありません。 | 露出: 6 μs、感度 (dB)、フレームレート (FPS)、解像度 (AOI)、黒レベル: 0~4095、GenICam 全機能 (自動モード、ガンマ、シャープネス、白バランス (R/G/B)、デジタルシフト、反転、GigE パケット)。これらのパラメータは、カメラの UserSet1 に入力されます。 Line 0 のディジタル入力、Line 1 の出力、GPIO Line 2。 |
| SICK picoCam (IDS uEye, GigE) | uEye ドライバー。カメラが「正しく設定済み」というステータスで IDS Camera Manager に表示される必要があります。uEye の DeviceID は起動ごとに変わるので、シリアル番号はカメラと照合する必要があります。 | 露出、増強: 0~100 フレームレート (FPS) 解像度 黒レベル: 0~255 ピクセルクロック ゲインブースト Rチャンネルのハードウェア増強/G/Bセンサーの種類、感光素子のアレイ構造(ベイヤー配列など)、これらのパラメータはカメラのメモリに書き込まれます。オプトカプラのトリガー入力、フラッシュ出力(150mA)。 |
| USBウェブカメラ (リスト内:Android) | OpenCV を通じた DirectShow。moniker が異なるため、同じカメラが混同されることはありません。 | 8K、FPSに対応。ドライバのすべての設定(輝度、コントラスト、彩度、色合い、シャープネス、ガンマ、ブースト、露出(自動)、フォーカス(自動)、ホワイトバランス(自動)、ハイライト補正など)を調整可能。 物理的な入力/出力ポートは存在せず、TCPのみに対応。 |
| RTSP対応のIPカメラ | `rtsp://admin:パスワード@192.168.1.64:554/…` の形式のURLは、手動で追加する必要があります。 | 露出、シャッタースピード、絞り、およびFPSは、カメラ本体のウェブインターフェースで設定します。プログラムには、エリア、モデル、およびTCPの設定が含まれます。 |
カメラの数は厳密な制限はありません。タイルは格子状に配置され、任意の数のカメラを使用できます。実際の設置場所では、8台または9台のカメラが同時に稼働していました。各カメラは独自のモデル、エリア、閾値、および分析速度を持っています。
3.2. カメラのウィンドウ:追加、再設定、削除
チェックボックスは、選択されたカメラに適用されます。カメラが起動しました。 または カメラがオンになっています(そうしないと、デバイスから切断され、画面から消えてしまいます)動画/エリアを表示する(これはあくまで描画に関するものであり、分析機能は常に動作します。)選択されたカメラでAI機能が有効になっていますボタン再接続するこれにより、AIストリームを再起動し、モデルを再読み込みすることで、完全な停止と再開が可能になります。
ウィンドウの右側には、接続時にハードウェアから読み取られたカメラのすべてのパラメータが表示されます。パラメータはグループ分けされており、単位も表示されます。「どのカメラのパラメータを表示するか」「カメラから再読み込み」「クリップボードにコピー」といった機能があります。これはあくまで表示機能であり、パラメータの変更は「カメラ」タブで行ってください。
3.3. HIKROBOT および SICK 用の「カメラ」タブ
この機能は、青い枠で囲まれたカメラを使用します。プログラムは、カメラに何も記録しません。カメラは真実の源であり、スライダーはカメラの値に合わせて調整されます。設定の保存は、保存ボタンを押すことでのみ可能です。
「Hikrobot: カメラパラメータ (GenICam)」セクション
カメラで捉えられた映像のみが表示されます。項目:オート露出(オフ/一度/連続)、オートフォーカス、ガン、ガン設定、シャープネス、色合い、彩度、オートホワイトバランス、チャンネル別ホワイトバランス、デジタルシフト、黒レベルオン、FPS制限オン、水平・垂直回転、GigE:パケットサイズ、GigE:パケット間遅延、GigE:帯域制限、テスト画像。ボタンカメラの設定を再読み込みでテーブルが更新されます。
「色とイメージ」セクション
バイエール形式(Auto / BGGR / RGGB / GRBG / GBRG)、飽和度 0…200%、ガンマ 0.30…3.00、コントラスト 50…200%、リセットボタン。この設定は、すべての画像の処理(表示、録画、推論、および学習用画像)に適用されます。そのため、学習時と検査時には同じ画像が表示されます。HIKROBOTの場合、カメラのピクセル形式から設定を取得し、SICKのカラーカメラの場合は、センサーから取得し、最初の画像に基づいて調整します。
| パラメータ | どのような機能ですか | どのような要因に影響されるか |
|---|---|---|
| 1秒あたりの分析処理 | 検査速度の上限:1~200 | 低い設定ほど、ビデオカードへの負荷が軽減されます。カメラの接続状況に依存しません。 |
| AIの限界 | 「カメラ」タブには設定ができません。 | 「領域認識の閾値」は、検査タブ(第5.2節)にのみ設定可能で、カメラごとに1つずつ設定する必要があります。 |
| Exposure | 露出時間 | 要するに、可動部品への潤滑剤の使用量を減らすこと。ただし、完全に使用しないことは許されません。 |
| Gain / Gain boost | マトリックスの信号増幅 | 明るさを向上させるが、ノイズも増加させる |
| Pixel clock (SICK) | センサーの動作周波数 | FPS(1秒あたりのフレーム数)と露出時間を変更し、それらが再読み込みされます。 |
| FPS | フリーモードでのフレームレート | トリガーモードでは使用されません。 |
| 幅 / 高さ | フレームサイズ (AOI) | フレームが小さいほど、フレームレートとトラフィックは小さくなる |
3.4. カメラタブ (USB/ウェブカメラ用)
USBカメラの場合、このタブには「USBカメラ: 解像度、FPS、およびプロパティ」というブロックが表示されます。カメラから提供されないドライバーのプロパティは表示されません。また、DirectShowの範囲はプログラムによって設定されており、カメラから情報を取得できません。
3.5. 保存されたカメラ設定 (セット)
「保存されたカメラ設定」は、USB、SICK、およびHIKROBOT用で表示されます。製品に合わせてパラメータを設定し、名前を付けて保存します。別のボードや照明の場合、リストから適切なセットを選択するだけで済みます。
- `保存する…`:現在のカメラの設定値を読み込み、保存する名前を尋ねます。もし同じ名前が既に存在する場合、上書きするかどうかを確認します。
- リストから設定を選択 を選択すると、すぐに設定をカメラに書き込み、保存します。USBの場合はデータベースに、SICKおよびHIKROBOTの場合は設定ファイルとカメラのメモリ(UserSet1 / EEPROM)に保存します。その後、システムはハードウェアから設定値を読み取り、設定が適用された数と、適用されていない数を表示します。
- 再保存 は、選択した設定を現在の値で上書きします。名前の変更 と 削除 は、データベース内のデータのみに影響し、カメラの設定は変更されません。
セット内容:USBカメラの場合、解像度、フレームレート(FPS)、ドライバのプロパティ、および自動設定が含まれます。SICKカメラの場合、ゲイン、シャッタースピード、フレームレート、黒レベル、ピクセルクロック、ゲインブースト、ホワイトバランス(R/G/B)、ハードウェアガンマ補正、およびソフトウェアカラーが含まれます。HIKROBOTカメラの場合、ゲイン、シャッタースピード、フレームレート、黒レベル、およびGenICam規格に準拠したすべての機能が含まれます。産業用カメラのフレームサイズはセットに含まれていません。フレームサイズを変更すると、キャプチャが再起動されます。これらのセットは、同じ種類のすべてのカメラで共通で使用されます。そのため、同じ種類のカメラが設置されたブースでは、各カメラに1つのセットが使用されます。
3.6. GigEネットワークと再接続
- HIKROBOTのGigEパケットサイズは、開いたときに自動的に最適に設定されます。手動でGenICamブロックで調整することも可能です。大きなフレームサイズ (8164~9000) は負荷を軽減しますが、フレームが途切れる場合は、1500に設定し、パケット間の遅延を調整してください。
- `Net` は、各カメラからの負荷を、自身のデータ(有効なペイロード × 頻度)に基づいて計算し、実際のネットワークカードからの入ってくるトラフィックと比較します。大きな乖離は、フレームの損失や不要なトラフィックを示します。この計算から、VirtualアダプターやNDISフィルター(GigEVision、uEye、Npcapなど)の結果は除外されます。
- カメラが見えるのに、映像が途切れている場合は、再接続(カメラの画面またはタイルから)をクリックしてください。通常、原因はネットワークまたはUSBの帯域幅の問題です。
- SICK picoCam は、デスクリプタを閉じる際に設定を失います。カメラ自体に設定ファイルがない場合、プログラムは設定ファイルを読み込み、「設定を保存」ボタンを押すように促し、カメラに設定を保存します。
4. ゾーンペアモデル: グリッドから学習済みモデルへ
4.1. 方法の仕組み: 1つのモデル、各ゾーンごとにクラス
「ゾーン・ペア」モデルは、YOLO11という標準的な分類ネットワークであり、ゾーンの数だけクラスを持ち、さらに異常クラスをオプションで追加できます。クラスは、`train`と`val`内のフォルダとして定義されます。プログラムはすべてのフォルダを自動的に作成します。手動で作成する必要はありません。学習後のモデルフォルダの例は以下のようになります。



ファイルreal_…jpg- これは、実際にカメラで撮影された画像です(トレーニングデータと検証データの両方に含まれています)syn_…jpg- 合成データedit_…jpg- エディタ内のスクリーンショット。以下は、複数の基板を撮影した例です。zone_001- 学習データセットには502個のファイル、検証データセットには111個のファイルが含まれていますzone_001_anomaly- 680と144zone_002- 813番と181番zone_002_anomaly- 340と60。
このプログラムは、`zone_NNN`という形式のクラスが存在する場合、自動的に「支払い」というモデルを認識します。クラスの番号は、グリッド内のゾーンの番号(1…N)に対応します。このことから、このメソッドの主要なルールは次のとおりです。
4.2. モデルの作成
4.3. 回路板上のゾーンの特定

赤いゾーン: 合成データで1クリックでゾーンを削除
AIモデルのタブで、既に作成された領域を動画上で左クリックすると、その領域が赤色に変わり、領域ごとの画像生成や異常検出の対象から除外されます。もう一度クリックすると、元の状態に戻ります。合成データのウィンドウにあるファイル数は、すぐに再計算されます。また、フレームの上にある「オフ N」という表示は、無効になっている領域の数を表しています。赤色の領域の情報は、カメラとモデルごとに保存されます。インスペクトのタブでは、同じ領域が通常の(黄色い)領域として表示されます(詳細はセクション5.5を参照)。
4.4. 基準画像の固定: 位置合わせ領域
検査エリアは、基板の特定の配置に基づいて設定されます。ライン上で、別の基板をわずかにずらして回転させる必要がある場合、プログラムは以下の情報を記憶します。基準画像:実際の映像と、位置合わせ領域:基板上の特定の部品が含まれる領域。この領域は、各新しい映像で製品を特定するために使用されます。領域が特定されると、プログラムは新しい基板に検査エリアを転写します。これが、撮影、合成データ処理、および検査の仕組みです。


| 位置合わせモデル | 選択するタイミング |
|---|---|
| 自動(推奨) | 部品は厳密に位置合わせされます(移動、回転、拡大/縮小)。視点は、明らかに改善が見られる場合にのみ接続されます。小さな位置合わせ領域における精度は1~2ピクセルです。 |
| 厳密 | カメラは完全に上から見下ろすように、部品は水平に置かれます。位置合わせ領域が小さい場合に最も安定した方法です。 |
| 視点 | カメラは傾斜して、または部品が傾斜しています。幅全体に点がある、大きな領域が必要です。そうしないと、ホモグラフィーが歪んでしまいます。 |
"基準画像(領域付き)」ボタンを押すと、グリッドと領域番号が保存された基準画像が表示されます(4.8節を参照)。検出された基板は、合理的な範囲かどうかを確認します。面積が基準画像の0.5〜2倍、凸四角形、およびサポートポイントは、それぞれ軸あたり少なくとも1/4の領域を占める必要があります。そうでない場合、結果は無効となり、「基板が見つかりません」というメッセージが表示されます。
4.5. 領域ごとの画像:正常とそれらの合成データ
ゾーンペア撮影:エリアごとの画像 の主な目的:ライブ画像をエリアごとに分割し、各エリアの切り抜きを対応するクラス zone_NNN に配置し、合成データを正常と判定します。「正常」とは、撮影のバラつきを指し、欠陥ではありません。例えば、基板の位置が少しずれている、光が少し違う、センサーがノイズを出すなどの状態です。

| 設定 | デフォルトでどのような機能が備わっているか、またどのような設定が推奨されるか |
|---|---|
| それぞれのエリアに対応した、合成素材の選択肢 | 1つの画像に対して、いくつ程度の合成画像を生成するのが適切か。 基準画像のみであれば20、最大で500程度が推奨されます。 |
| 撮影された時間ごとの画像:カメラの新しいフレームごとに撮影された画像 | 収録期間:800~1200ms(最低でも)。各バージョンは、実際のセンサーのノイズ、振動、光のちらつきを捉えた、新しい生のフレームから取得されます。 |
| それぞれの選択肢についても、確率 (%) を示します。 | 20%。基準画像は常に「val」フォルダに含まれている必要があります。Ultralyticsでは、各クラスは両方のフォルダに存在する必要があります。 |
| グレースケール(白黒)で指導する | モデル全体の色の設定:正常、異常、検査の際に、色は削除されます。異なる色のファイルやグレーのファイルを同じモデルに設定することはできません。プログラムは警告を表示します。 |
| オフセット、ピクセル単位で | シフト領域のウィンドウは、指定された方向(← → ↑ ↓)に、1フレーム全体で0~2ピクセルずつ移動します。欠けてしまう部分は、隣接する領域から補完され、切り抜き部分は均一な状態が保たれます。すべての方向にチェックを入れると、各方向に1つずつファイルが生成されます。ランダムに選択した場合、1つのファイルが生成されます。 |
| 角度、° · どの方向へ | デフォルトではオフの状態: 位置合わせ領域で設定された画像に対して、回転は行われず、オンにすると不良画像との境界が曖昧になります。「左/右」「すべての方向/ランダム」といった、スライドと同様の操作が可能です。 |
| スケール(%): 縮小/拡大 | デフォルトではオフになっています。2つのチェックボックスは、それぞれ「減少 (<100)」と「増加 (>100)」に対応し、それぞれが隣接するピクセルを対象とします。各チェックボックスが選択されると、対応するファイルが作成されます。 |
| 明るさ/コントラスト/ガンマ | 各オプションごとに、指定された範囲からのランダムな値: 明るさ 88…112、コントラスト 88…112%、ガンマ 98…102% (画像の場合); プロファイル「要素のオフセット」では、明るさを広げて、誤認識を防ぎます。 |
| ノイズ(シグマ)/ ぼかし | センサーの粒度 3…8 段階、軽度のボケ 0.4…0.8 px。 |
| 「共通」列 | チェックを入れると、他の画像と一緒に共通ファイルに保存されます。チェックしない場合は、「基準画像 + このみの画像」という個別のファイルが作成されます。個数が多いほど、オプションごとにファイル数が増えます。 |


4.6. 合成データ:2回のクリックで、要素が基盤と一緒に移動
合成データを作成するための観察 このモデルは、不良箇所として、手書きで描かれたものではなく、検査対象の要素と、その周囲の基板の要素(シルク印刷、配線、基板の色とテクスチャ)を提示することで、特に効果的に学習します。プログラムは、検査対象の要素の領域を縮小し、その後その領域を移動または回転させ、周囲のピクセルで境界を埋めます。その結果、検査対象の要素は、実際の不良、センサーの実際のノイズ、実際の光、実際の基板の状態と、完全に一致した位置に配置されます。
正常なパターンと異常なパターンは、その要素の位置と基盤との関係のみが異なります。それ以外はすべて同じなので、ネットワークは「要素 ↔ 基盤」という関係性を学習するのではなく、汚れの濃さや照明の状況を学習します。
2回のクリック
他に設定する必要はありません。不良の画像を生成したり、不良の基板を探したりする必要はありません。 次は、AIモデルのトレーニングを行います。
「前」と「後」:プログラムが何を実現しているか




ユーザーが認識する、異常箇所のフォルダ
4.5節の「正常」フォルダとの比較:違いは、部品の位置関係のみ。


部品のマーキング:なぜ「太い」線が使われ、どのように設定するか
部品の表面には、1~2pxの幅の文字や線が刻印されています。これらの刻印は、ロットごとに異なり、異なるフォント、コンデンサ上の文字の向き、一部の記号が消えている場合があります。もし、合成的な欠陥である「傷」を同じ太さの線で描くと、回路はそれが刻印の線やセンサーのノイズと区別できなくなり、別のロットの部品から正常な基板を誤って廃棄する可能性があります。
合成データにおいて、ゾーンペアはこれを両方向から対処します。まず、主な問題である要素のずれは、マーキング自体も本体と一緒にずれるため、マーキングが正常状態と異常状態で同じように見えるという問題を引き起こします。次に、デフォルトで太い(⅛ゾーン、3px以下の幅)線/傷が、マーキングの線とは明らかに異なっています。現在は、線の太さを明示的に指定できます。線の太さ、px(0 = 自動)は、線と十字線に適用されます。
描かれた欠陥(長方形、円、線、「消失した要素」、ぼやけた斑点など)は、「カットアウト上の合成欠陥」という折りたたみグループにまとめられています。デフォルトでは折りたたまれており、無効になっています。特定の用途に合わせて有効にしてください:濡れた領域、余分な滴、消えかかったマーキングなど。
| 図形のパラメータ | 設定項目 |
|---|---|
| サイズ:…から…まで、ゾーンの…% / px | 図形のサイズまたは長さ。ゾーンの小さい方の辺からの割合(どのゾーンにも適用)、またはピクセル単位で、実際の欠陥のサイズがわかっている場合に便利。 |
| 塗りつぶし | 塗りつぶし / 輪郭 / 混合(輪郭も太い)。 |
| 線の太さ:px | 線 / 傷と十字線。0 = 自動(太い)。部品のマーキングには、3px以下の値は使用しないでください。 |
| 欠陥の場所 | 中央、左、右、上、下 - フィギュアを配置する場所(多少ランダムな配置)。「すべての位置」を選択した場合、チェックされたすべての場所にファイルが作成されます。一方、「ランダム」を選択した場合、1つのファイルが作成され、そのファイルはチェックされた場所の中からランダムに選択された場所に配置されます。ウィンドウの下部にあるファイルカウンターは、これらの状況を自動的に反映します。 |
| 図形の色の設定: 5つのスロット | 5つのスロットではなく、名前のリストではなく。チェックマークは、スロットが選択されていることを示し、色は選択されたものからランダムに選択されます(±12の範囲で、単一の色にならないように)。「サンプル」ボタンは、パレットから色を選択し、💧 ピペットは、カメラの実際のフレームをクリックして、実際のオブジェクトまたは回路基板の色を選択します。デフォルトでは、暗色と明る色の2つのスロットが有効になっており、残りの3つのスロットは無効になっています。 |
| 「共通」列 | 特定された欠陥の情報は、他の「共通」の情報(例えば、ずれた要素の上にできた傷など)と一緒に、共通のファイルに保存されます。「チェック」を外すと、「正常 + このみの欠陥」という個別のファイルが作成されます。「すべての位置」の表示は常に個別のファイルになります。 |
4.7. 領域の異常: 設定ウィンドウ
ゾーンペア:異常なゾーンは、正常なゾーンからzone_NNN_anomalyというクラスを生成します。 ゾーンは、AIモデルの4.3のセクションでクリックでオフになっている赤いゾーンを除いたすべてのゾーンを使用します。 異常クラスは、実際に異常が発生するゾーンにのみ追加し、残りのゾーンについてはモデルが認識に基づいて検証します。

| 設定 | どのような機能ですか |
|---|---|
| 欠陥の上にコピー | すべての種類のための共通設定:指定された種類のそれぞれに対して、新しいランダムなパラメータでコピーをいくつ作成するか(デフォルトは10)。 |
| ▸ 穴あき部分における合成的な欠陥 | デフォルトで展開されるグループ:長方形、小さな長方形、円、楕円、三角形、八角形、線/傷、十字、`消えた要素`、ぼやけた斑、ノイズ補正、別の領域の断片。図形のパラメータ、位置、およびカラーパレットは、4.6節を参照。 |
| スライド、ピクセル単位:方向、形状 | 主要な欠陥:領域(円または四角形)が、指定された方向に5~12ピクセルずつずれています。方向は、左(←)、右(→)、上(↑)、下(↓)、および2つの対角線(⤡、⤢)です。垂直方向/水平方向のスケール:±% — 領域のサイズが、基準となる領域に対してどれだけ変化するかを示します。0は基準となる領域と同じサイズ、-30は領域が30%小さくなる(要素のみが移動し、ベースは固定)、+30は領域が基準となる領域よりも30%大きくなる(周囲の要素も含まれる)ことを意味します。各方向については、ファイル内で個別に指定されています。 |
| 回転、度:形状 | 領域(円または正方形、同じスケール±%):ランダムな角度範囲の両方向に回転します。 |
| スケール(%): 縮小/拡大 | 領域を欠陥として扱う:60~85%の縮小または120~160%の拡大。各指定された側面はそれぞれ別のファイルになります。通常、基板にはオフになっています。 |
| 「スライド」と「回転」の共通設定 | もし両方のチェックボックスが選択されている場合、これは一つのファイル内の一つの要素を指します。この場合、移動と回転は、順番に適用するのではなく、一つの変換によって同時に行われます(順番に適用すると、結果が複雑になりすぎます)。領域のサイズと形状は共通であり、移動の設定によって決定されます。 |
| ▸ サブ領域 | 領域は2、4、または9つの部分に分割され、それぞれの部分が回転またはスライドします。「各サブ領域ごとに異なる画像」のチェックを入れると、各部分ごとにファイルが作成されます。複数の要素を持つ大きな領域に適しています。 |
| 各欠陥画像の照明とノイズ | オンで正常:欠陥は形状の違いでなければなりません。 |
| 時間/valごとの画像 | 新しいカメラのフレームごとにコピーを作成し(800ms)、valに20%を割り当てる。また、valクラスの最初のファイルは常に保存される。 |
4.8. 基準画像(領域指定付き):接合部の領域と領域編集
"基準画像(グリッド付き) をクリックすると、保存された基準画像がグリッドとともに表示されます。この機能では、カメラを使用せずに合成データを作成できます。ホイールはズーム、右クリックはパノラマ、左クリックは領域の選択(Ctrlキーで追加、ドラッグで範囲指定、Ctrl+Aで全て選択)、ダブルクリックは領域編集機能です。
- 選択した領域に適用する、リフロー剤… - 「リフロー剤: 経路間のショート」というウィンドウ。プログラムは、領域内の経路(オッツの閾値、幅が2px以上の明るい帯)を自動的に特定し、隣接する経路間の隙間に、経路の色、暗い縁、輝きを持つリフロー剤を配置します。設定: 縦または横の経路間、写真1~3の領域に適用、領域のサイズ(8~18%)、領域ごとに5枚の写真(配置場所: 異常箇所または正常箇所)、表面の照明、val: 異なる照明または正確なコピーを含む新しい写真。
- 領域エディタ: ツール:ブラシ、スポイト、カラーフィル、領域コピー、貼り付け、スタンプ、パターン領域。パレット:「はんだ付け領域 / パッド」、「基板」、「影 / マスク」、白、黒。 「コピー数」フィールドと「スナップショット作成」ボタン。 これを使って、まだ製造ラインに存在しない不良を再現します。例えば、パターンが印刷されていない領域、余分な部品、または欠落しているマーキングなどです。
エディタのファイルは、`edit_…`という名前で保存され、特定のゾーンまたはその異常に関連付けられます。 「検査」タブでは、同じウィンドウが表示されますが、これは表示のみに使用されます。
4.9. モデルの学習
AIモデルの学習設定は、最初の画像に基づいて自動的に入力されます。初期設定は、画像サイズ: 128、モデルサイズ: s、エポック数: 50、バッチサイズ: 64 です。これは、108~137ピクセルの範囲の領域に適用されます。例えば、256ピクセルの領域の場合は、画像サイズを192または256に設定すると、切り抜きがほとんど圧縮されません(メインウィンドウの画像では、エポック数が100、画像サイズが192に設定されています)。設定を確認し、「AIモデルの学習」ボタンをクリックしてください。
| パラメータ | これは何を意味するのか | どのように選ぶか |
|---|---|---|
| Epochs | モデルがデータセット全体を何回学習するか | デフォルトで50個、異常クラスが多い場合は100~150個 |
| Batch Size | 一度の手間で何枚の画像を表示できますか | 64; 映像メモリが不足している場合は、以下の設定を変更してください。 |
| Image Size | 切り抜きは、32を基準とした倍数でサイズを決定します。 | おおよそ、それぞれの領域のサイズは、108~137ピクセル領域の場合には128ピクセル、256ピクセル領域の場合には192~256ピクセルとします。 |
| Model Size | n / s / m / l / x | s は、数百組のクラスに対して最適な値です。n では容量が不足し、m 以上の値では処理速度が遅くなります。 |
| Device | 学習に使用する | 0 (GPU) NVIDIA製のビデオカード; CUDAが利用できない場合、プログラムが自動的にCPUに切り替える |
| Workers | データ準備スレッド | 12 (デフォルト: マルチコアプロセッサ向け) |
5. 検査
すべての作業は「検査」タブで行います。モデルはすでに学習済みであり、残りの作業は、検出領域の調整、閾値の設定、テンポのソースの選択、そして、基板がどのような向きでも認識されるようにする場合は、ライブコンベア機能を有効にする、というものです。

5.1. モデルとゾーンを割り当て、確認する
5.2. ゾーン認識の閾値
各ゾーンにおいて、ネットワークはすべてのクラスの確率を出力しますが、判断はペア内でのみ行われます。正常状態の確率 `q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly))` は、「認識度」に掛け合わされます。この「認識度」とは、そのペアがネットワークの出力経路をどの程度利用したかを示すもので、10%以上の場合に「完全な認識」とされます。最終的な評価値(0~100%)が閾値と比較され、閾値を超えた場合は `正常`、下回った場合は `異常` と判定されます。
デフォルトの閾値は50%で、モデルの近くにある`board.json`に保存され、すぐに適用されます。50%未満の場合、正常範囲がより明確に表示されます。25% → 6%でカット、10% → 0.4%、1% → ほぼ緑色になります。99%は、確実な範囲のみを通過します。この表示は、5%と99%の差を、単に赤い範囲で表示するのではなく、オペレーターが明確に認識できるようにするためのものです。
5.3. ライブパイプライン: どの姿勢でも動作
ガロチカ稼働中のコンベア:どの角度でも使用可能各解析の前に、位置合わせ領域の検索が行われます。フレームが基準画像と一致させられ、一致した画像から領域が切り出されます。ビデオには、位置合わせ領域と領域の境界線が描画されます(緑色は正常、赤色は異常)期間、ミリ秒この設定では、スキャン頻度(デフォルトは1000、画像では2000)を設定できます。隣にあるインジケーターは、緑色で「正常:N個の点」、赤色で「異常:N個の点」、オレンジ色で「基板が見つかりません」または「基準画像がありません - 記録してください」と表示されます。判定は、1回のスキャンごとに行われ、結果は累積されません。
基準画像と位置合わせ領域は、撮影時と同じ基準画像の固定ボタンで固定します(4.4節)。基準画像と領域を開いて表示します。動画には、位置合わせ領域の境界線と、基盤が一致した際の青いマーカーポイントが表示されます。調整後に画面外に出る領域は、スキップのラベルでマークされます。
5.4. どの信号で分析するか
速度ソースは常に1つ: 新しいものを読み込むと、以前のものを取り除きます。
| 方法 | 起動方法 | 適用するタイミング |
|---|---|---|
| カメラ | 「カメラ」のチェック | 連続監視:速度は「カメラ」タブの「1秒あたりの分析数」のスライダーで調整 |
| タイマー | 「タイマー」のチェックと、ミリ秒単位のインターバル | 一定間隔での監視(例:1秒ごと) |
| トリガー | 「トリガー」リストから関連を選択し、「+」または「-」の入力に応じて分析 | カメラにセンサーを設置したコンベア:製品が到着した瞬間にフレームを撮影する - 最も正確な方法(第6章) |
| GPU | チェックボックス「GPU」 | デフォルトで有効; チェックをオフにするとモデルが再起動 |
| セグメント分析 | チェックボックス「セグメント分析」 | セグメントで学習されたモデルに対して、自動的に有効になります。推論前にセグメントがグレースケールに変換されます。 |
5.5. 黄色の領域: クリックで領域をオフにする
特定の領域については、一時的に制御から外す必要がある場合があります。その場合、該当する要素は特定のパーティに設定されておらず、領域は専用の機能によって保護されています。現在、動作確認を行っています。この操作には、グリッドやモデルの修正は不要で、領域はビデオ上で直接制御できます。操作は、"Inspect"というタブで行います。
「黄色(クリックで無効化)のエリア」が何をするかは、OUTPUTウィンドウの「サウンド」タブにあるチェックボックス「黄色(クリックで無効化)のエリア」は、デフォルトで有効になっていますによって決定されます。
| チェックボックス | 黄色の領域の動作 |
|---|---|
| 有効 (デフォルト) | 領域は分析されません: セグメントはネットワークに送信されず、OFFラベルが表示され、TCP通信もカメラからの出力もありません。ライブ環境では、黄色の領域は「正常/異常」という判断に影響を与えません。 |
| オフ | 黄色の枠は、単に「分析中、通常の動作」というメモとして表示されます。これにより、監視を停止せずに、確認対象の領域を簡単にマークできます。 |
5.6. 画面とコンソールで確認できること
- 領域ごとに結果が表示されています。領域の境界線は、テーブルの領域の色で表示され、トリガーが作動すると赤色になります。50個以上の領域がある場合、正常な領域は緑色の境界線で表示され、異常や不確実な領域は、それぞれの領域ごとに多数のラベルが表示され、画像の見通しを妨げ、描画負荷を増加させていました。黄色い領域はクリックで非表示(5.5節参照)されます。
- 画面下部の「トリガー分析」パネルには、各トリガーイベントが以下のように表示されます。[時間:分:秒.ミリ秒] カメラ入力 + トリガー 4ms | AI 12ms #57。各ゾーンの結果も表示されます。これらの情報はデータベースには保存されません。
- ビデオ上の領域を右クリックすると、「この領域の検出クラス → …」と入力することで、その領域のモデルの応答名を変更できます(モデル自体は修正されませんが、リジェクトとログには新しい名前が表示されます)。また、「この領域のリジェクトを作成」と、ルールのカウンターも表示されます。
- 検査画像の保存設定:描画された領域を含む画像は、ファイル名が "inspect_….jpg" の形式で保存されます。各カメラの設定は異なります。
- 10分ごとに、diagというサブフォルダに、ライブラインの映像と、該当箇所のテキストリストが書き込まれ、過去20枚の画像が保存されます。これにより、フォルダのサイズが大きくなることなく、紛争が発生した場合の検証が可能になります。
6. トリガー:カメラ入力側の外部センサー
コンベアシステムにおける主な動作モードは、カメラがセンサーからの電気信号に基づいて、特定のタイミングで画像を撮影することです。これが最も正確な撮影タイミングであり、製品は常にフレーム内の同じ位置にあり、各製品に対して正確に1回だけ画像分析が行われます。 "トリガー" ウィンドウは、センサーとカメラの接続関係を収集し、選択されたコネクタに対応する接続図を表示します。


コネクタの配線
| ピン | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR:カメラの電源は9~24Vです。 | GND - カメラの電源 |
| 2 | OPTO_IN — ライン0(プラス)への入力、トリガー信号 | VCC - カメラの電源 (12-24V) |
| 3 | GPIO - ライン2、入力または出力 | トリガー − — トリガー入力、オプトカプラー (−) |
| 4 | OPTO_OUT - 1号線(プラス)の出口。 | トリガー + — オプトトランジスタの入力端子 (+) |
| 5 | OPTO_GND — 全方向の光を伝える配線 | Flash + - デジタル出力 (+) |
| 6 | GND - カメラの電源 | Flash - - デジタル出力 (-) |
7. 出力: リレー、カメラのデジタル出力、およびTCP
リジェクターは、検査の結果を具体的な行動に変換します。ルールは特定のエリア(またはモデル、クラス、または指定されたエリア全体)で設定され、モデルがそのエリアで指定されたクラスを認識した場合にトリガーされます。トリガーされるアクションは3種類あります。1つは、ロボットまたはPLCへのTCPパケット送信、2つ目はカメラのデジタル出力の切り替え、3つ目はオペレーターへの音声通知です。各トリガーはログに記録されます。
7.1. 出力に関する情報: 接触とテスターでの確認
ビデオ内の "EXIT" ボタンを押すと、設定を変更するウィンドウが表示されます。このウィンドウには、どの端子が使用されているか、電源なしでテスターで確認する方法、および負荷を接続する方法などが表示されます。


- 出力 - オプトカプラーの「干渉スイッチ」: 自身の電圧は出力せず、単に回路を接続するだけ。外部電源が必要です。
- テスターでのΩモードでの確認: 出力OFF - 接触不良 (OL)、ON - 数百Ω。 スピーカーは両方のケースで音が出ないため、数字を確認してください。何も変わらない場合は、テスターの針を逆向きにしてください。オプトカプラーは極性があります。
- 負荷: +24V → ランプ → ピン「+」、ピン「−」→ GND。 HIKROBOT の場合、25mA の上限: 27mA の信号回路はすでに上限を超えているため、電源を下げたり、中間リレーを設置してください。 SICK の場合、20~30mA のランプは直接接続できます。
7.2. OUTPUT ウィンドウ: ゾーン設定
右側のパネルにある「OUTPUT」ボタン(または、領域を右クリックして「この領域のリジェクターを作成」を選択)をクリックすると、「OUTPUT - TCPパケットとカメラのデジタル出力」というウィンドウが開きます。左側には、カメラ → AIモデル → クラス → 領域というツリー構造が表示され、領域にはチェックマークが表示されます。右側には、「ゾーンルール」「動作履歴」「データベース」というタブがあります。

1つのゾーンには、複数のTCPルール(異なる受信設定)、クラスごとに1つの離散出力ルール、およびクラスごとに1つの音を定義できます。ルールはデータベースに保存され、推論スレッドから実行されます。ゾーンの特定の場所にアクセスするたびに、ルールがメモリに読み込まれ、ソケットとカメラSDKは別の管理スレッドによって処理され、ネットワークへの依存をなくします。
7.3. ロボットまたはPLCへの TCP パケット
このプログラムはTCPクライアントとして動作します。受信側のIPアドレスとポート番号に接続し、接続を維持し、再利用します。接続が切れた場合は、一度のリトライと再接続を試みます。送信されるデータはUTF-8エンコーディングで、末尾にCR+LFが付加されます。
| フィールド | 設定 |
|---|---|
| 接続タイムアウト (ms) | デフォルト: 1000、100~10000 |
| AI 送信タイムアウト (ms) | 自動でルールを送信する間の最小遅延; 0 は遅延なし。 ゾーンの切り替えもこの遅延を待ちます。 |
| コマンド | 原文通りの表現: 「up」は「up」という荷物の意味です。クラス角が必要 - プレースホルダを追加: 「J6 {class}」→「J6 235」。空欄 - 「データ」テンプレートを使用。 |
| 自身のデータ | 任意のテキストで、`{data}` の部分を置き換えます。 |
| データ | テンプレートの形式:空白 = 「ゾーン番号と名前」({zoneId} {zone})。「追加」ボタンを押すと、該当の項目が追加されます。「削除」ボタンを押すと、該当の項目が削除されます。「すべて」ボタンを押すと、構造化されたテンプレートが適用されます。 |
| 設定 | 意味 | 設定 | 意味 |
|---|---|---|---|
| {zoneId} | ゾーン番号 (1, 2, 3…) | {camera} | カメラ名 |
| {zone} | ゾーン名 (データベースで編集可能) | {model} | AIモデル名 |
| {class} | モデルが見たクラス | {time} | 時間 (HH:MM:SS.ミリ秒) |
| {conf} | 確度 (%) (小数点を使用) | {date} | 日付 (YYYY-MM-DD) |
| {data} | 「自身のデータ」からのテキスト |
構造化されたテンプレートの例:`zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}。数値は常に一貫した形式で記述され、「87,6」のような形式がPLCでの解析を妨げないようにする。
- 接続を確認する は、単にソケットを開き、「接続が確立されました」または「Nms後に応答がありません」と報告するだけです。
- テスト送信 は実際に文字列を送信します。結果はボタンの近くに表示され、ウィンドウには表示されません。
- メッセージの送信。 「繰り返し」のチェックボックスがオフの場合、メッセージはクラスの変更時に1通送信され、受信者が ok <メッセージ> と応答するまで繰り返し送信されます。 チェックボックスがオンの場合、メッセージはクラスが維持されている間、一定の間隔で繰り返し送信されます。
- 「最後のコマンドが優先される」: モデルが、オペレーターが他の作業をしている間に複数の結果を出力した場合、最後の結果が実行されます。キューの最大数は512件です。
7.4. カメラからの離散的な出力

| フィールド | 設定 |
|---|---|
| 出力 | 方法:自動(SICKの場合はFlashピン(一定レベル)、GPIO;HIKROBOTの場合はUserOutputValueまたはLineInverter(ストロボオフ))。MV-CS020/016-10GCのUserOutputは、プログラムが自動的にLineInverterを選択します。 |
| ライン | SICKの場合はFlashピン/GPIO1~6、HIKROBOTの場合はLine1(出力)、Line2(双方向) |
| レベル | true/false/off。「off」はルールが設定されているが、出力は影響を受けません。 |
| パルス、ms(0は保持) | 0はレベルを維持し、クラスが変更されるまで。それ以外の場合は、10~5000msのパルスとリターンが発生します。 |
"出力ON、出力OFF、パルス のボタンは、テスターまたはランプを使用してピンをテストします。 "カメラの機能 は、すべての方法を調査し、レポートを作成します。 手動でのテストは、同じ記録に記述されます。
7.5. 音による通知:各エリアごとに異なる音
第三の種類のルールは、コンピューター上でプログラムを使用した場合の音による通知です。オペレーターは画面を直接見る必要はありません。プログラムからの音で、特定のエリアが異常状態になっていることを認識し、異なるエリアからの音で、どのエリアが異常状態になっているかを特定できます。この音は、USBやRTSPなどの、個別の出力がないカメラにも対応しています。
| 動作 | 仕組み |
|---|---|
| 「繰り返し」のチェックボックスをオフにした場合 | 異常状態になったエリアのクラスが確認された場合、一度だけ音が出ます(「クラス変更の確認」後)。クラスが維持されている間は、音が鳴りません。 |
| 「クラスが維持されている間、繰り返し」のチェックボックスをオンにした場合 | 「繰り返し間隔」で信号が繰り返し再生されますが、音の再生間隔よりも多くは再生されません。エリアが指定されたクラスの状態を維持している間は、信号が繰り返し再生されます。 |
| 複数のエリアが同時に異常状態 | 各エリアはそれぞれ異なる音を発します。異なるエリアからの信号は互いに消音しません。ただし、同じエリアからの信号は繰り返し再生されます。 |
| ログ | 各試行は、「動作記録」に「サウンド「…」」という形式で記録されます。ファイルが見つからない場合や、オーディオデバイスが動作しない場合は、「エラー」という形式で記録され、プログラムは引き続き動作を続けます。 |
| 確認 | `このルールを確認する:すぐに音が再生されます。`ゾーンのトリガーをエミュレートする:音がTCPと出力ポートを通じて、実際の処理キューに送られます。 |
7.6. 動作記録とデータベース
「動作履歴」タブでは、直近300件の動作記録が、時分秒.ミリ秒の形式(HH:MM:SS.mmm)で表示されます。✔/✖ のマークで状態が示され、カメラ、モデル、クラス、ゾーンなどの情報と、実行されたアクション([メッセージ]など)が表示されます。この情報はリアルタイムで更新されます。 「更新」ボタンと「クリア」ボタンがあります。

タブデータベースプログラムは、すべてのデータをSQLiteデータベースファイルに保存しますrejectors.dbexeファイルに付属する別のサービスはありません。ポートは機能していません。インストールする必要はありません。テーブルには、settings(設定)、cameras(カメラプロファイル)が含まれていますcamera_models(カメラに設置されるモデル)、ゾーン(ゾーンの名前と形状)、リジェクトルール(拒否条件)reject_log(雑誌)camera_param_files(カメラのパラメータ設定のコピー)camera_presets(カメラの設定群)。データベースのコピーを保存します…VACUUM INTO コマンドは、稼働中のデータベースに対して、データベース全体の状況を把握するためのスナップショットを作成します。バックアップからデータベースを読み込む…現在の状態を保持したまま、データベースを復元します。データベースはDBeaver内で確認できますが、外部から直接書き込むことは推奨されません。
8. その他のモードとタスク
一般的なモデル:正常/異常、およびすべてのクラス
同じROI(投資対効果)の仕組みは、通常の分類にも適用できます。例えば、錠剤、蓋、ラベル、およびパレット上の部品などを分類できます。クラスは、「新しいAIモデル」のダイアログで設定します(デフォルトでは「normal」と「anomaly」、名前は英字で記述)。対象製品に領域を設定し、「写真撮影」ボタン(円の数を1~50で指定)を使用して、カメラ(フレーム/秒)またはエンコーダーに基づいて、写真の生成を行います。パネル「AI用合成データ」では、正確な90度/180度の回転、360度の完全な回転(ステップと範囲を指定)、ミラー処理、および「角度ごとのクラス」(各角度を別のクラスとして扱う。リジェクターはTCP経由で角度を送信)の設定が可能です。また、輝度とコントラストの範囲も設定できます。学習は、Ultralyticsの完全な拡張機能を使用して行われます。これらのモデルの信頼度閾値は、ゾーンペアと同様に、「検査」タブで設定します。
複数のモデルによる検査(スロット1~20)
1つのカメラには最大20種類のモデルを搭載できます。まず、ONNXをスロットに追加し、次にROI → 選択したモデルにクラスを追加することで、各モデルのスロットには独自の領域の定義があり、すべてのモデルの結果が1つのフレームに表示されます。
多品種対応が実際に適用されるケース:
| 状況 | 設定方法 |
|---|---|
| 1つの画像に複数のタスクを配置する | ゾーン・ペアは、レイアウトと要素の有無を確認し、通常のモデルは2番目のスロットで、ラベル、ステッカー、コネクタの色、またはキーの向きなどを確認します。通常のモデルのゾーンは、「ROI → 選択したモデルにクラスを追加」という手順で個別に設定できます。 |
| 固定グリッドのない製品 | 錠剤、蓋、部品:通常のモデルにおける製品の種類によるいくつかのクラス。類似したクラスを異なるスロットに配置することで、混同を防ぎます。 |
| 異なるスロットに配置された2つのゾーンペア | 主要モデルの基準画像を使用し、それぞれのゾーンペアが独自のグリッドを持ちます。 |
| 移行期間 | 古い学習済みモデルは、新しいゾーンペアが統計を収集するまでスロットに残り、両者は1つの画面に表示されます。リジェクトのルールは、信頼性が高まるにつれて適用されます。 |
リジェクターの機能(閾値、分析速度、警告領域、およびルール)は、すべてのカメラモデルに適用されます。 "モデルを削除"ボタンは、スロットをクリアするため、確認を求めます。"選択したものを削除"ボタンは、スロットから1つのモデルを削除しますが、そのモデルのファイルや関連する設定はデータベースに残ります。
共通モデル
"共通モデル" のボタンは、以下の名前で「カメラ → モデル」のセットを保存します: "現在のモデルから作成", "すべてのカメラに適用", "現在のものから更新", "名前を変更", "セットを削除". 8台のカメラから別の製品への切り替えは、1つの選択で完了します。セットの削除は、フォルダ、ONNX、領域、およびルールのみを削除します。領域は「カメラ + モデル」のペアに属し、8台のカメラで1つのモデルを使用する場合、8つの独立したマーキングが作成されます。
コンベア上のエンコーダとリジェクト
COMポート(115200、ESP32)にエンコーダーが接続されている場合:接続設定項目 エンコーダー接続、自動接続、位置、スキャンステップと補正、ゼロ設定 + スキャン。 学習や分析のためのスキャンは、「エンコーダー基準」で行うことができ、これにより製品の移動経路に沿って均一なフレームを取得できます。 古いリジェクターは、遅延とスパム対策のために、エンコーダーコントローラーにREJECTコマンドを送信します。
ビデオおよび画像の記録
設定タブ:アクティブなカメラでビデオ録画を開始します。ファイル名は record_日付_時刻.avi (MJPG形式、カメラの実際のフレームレート)。トレーニング用の画像は real_….jpg、検査用の画像は inspect_….jpg で、それぞれ領域が描画されています。
9. 設定、コンソール、要件、およびライセンス
Settings
- ファイルを保存 / ファイルから読み込み - すべての設定(カメラ、モデル、ルールなど)をJSON形式で保存。再インストール時や別のコンピュータへの移行時に便利です。設定のバックアップとして、JSONファイルは、設定が利用できなくなった場合に備えるためのものです。設定の変更はすべて自動的に保存されます。
- 初期設定をリセット:設定とウィンドウ配置を完全に削除します。
- インターフェース言語:14言語;メインウィンドウはすぐに切り替わり、その他のウィンドウは次回開いたときに切り替わります。
- すべてのウィンドウの位置、サイズ、および分割バーの位置はデータベースに保存されます。モニターがオフになると、ウィンドウは表示領域に戻ります。
Console
「カメラ」と「トリガー」のチェックはデフォルトでオフになっており、対応するメッセージが表示されます(カメラのトリガーモードでは、メッセージは「トリガー」に表示されます)。すべてのデータ(フィルタリング前)はファイル logs\engiai-*.log に書き込まれます。このコンソールは、メンテナンスなしで数週間稼働できるように設計されています。画面には800行のデータが表示され、1000行の場合、古い200行は削除されます。新しい行は4回、1秒ごとにまとめて生成され、1行ずつではありません。下方向のスキャンは有効になっており、ユーザーが上方向にスクロールするまで続きます。コンソールには音は出力されません。ゾーンのクラス変更は、1秒あたり10行以下で記録されます(残りはカウンターにまとめられます)。ログファイルは20MBで、14日以上前のファイルは起動時に削除されます。ログの実行記録は、データベースに最後の20,000件の記録を保存します。未処理のエラーは、crash.log に、強制終了の原因は、runtime.log に記載されています(exeファイルと隣接)。もし何かが正常に動作していない場合は、まずここを確認してください。
要件
| 構成要素 | 要求 |
|---|---|
| オペレーティングシステム | Windows 10/11 x64. |
| 検査用のビデオカード | NVIDIA と CUDA ドライバ、CUDA 13 と cuDNN 9 はプログラムに同梱されています。ビデオカードがない場合、検査は自動的にCPUで行われます。 |
| 研修 | Python 3 (インストール時に「PATHにpython.exeを追加」のチェックボックスをオンにする) と、ultralytics、onnx、onnxslim、onnxruntimeのパッケージ。プログラムは、最初の学習時にこれらのパッケージを自動的にインストールします。インターネット接続が必要です。GPUはPyTorchによって自動的に認識され、CUDAが利用できない場合はCPU上で動作しますが、結果は同じです。 |
| SICK社のカメラ | uEye ドライバー; カメラが IDS Camera Manager で認識される必要があります。 |
| HIKROBOT製のカメラ | MVS SDK (開発キットはソフトウェアとともに提供されます)。GigEの場合は、 jumboフレームに対応したネットワークカードが必要です。 |
ライセンスと試用版
プログラム起動時に、engi.liveのライセンスサーバーにアクセスします。送信されるのは、ハードウェアの識別子とバージョンを示すハッシュ値のみで、シリアル番号やユーザー名は送信されません。ライセンスサーバーが存在しない場合、キャッシュされた情報が利用されます(インターネット接続がない環境でも動作します)。ライセンスがない場合は、20分間の試用期間が適用され、ウィンドウのタイトルバーとAI表示部に「テスト MM:SS」と表示されます。また、「設定」タブにある「購入」ボタンをクリックすると、購入ページが開きます。有効なライセンスが適用されている場合は、カウントダウン表示は行われません。
10. 短いチェックリストと不具合の特定
ゼロからのカメラ用基板設定チェックリスト
もし問題が発生した場合
| 症状 | 確認すべきこと |
|---|---|
| カメラがリストに表示されない | 電源とケーブル:SICKの場合は、IDS Camera ManagerとアダプターのサブネットからのIPアドレス、HikroBOTの場合は、緊急停止後に25秒待って「再接続」 |
| 画像が暗い、グレー、または色がおかしい | カメラ→「AI用自動設定」:カラーSICKの場合は、バイエール配列とホワイトバランス、USBの場合は「標準設定」→「パラメータを固定」 |
| 映像が途切れる、ネットワークが赤色 | GigE: パケットサイズは1500バイトまたは jumbo、ネットワークカード間の遅延; FPSが低下またはフレーム数が減少; カメラ専用のネットワークカード |
| 「カードが見つからない」/ 画像取得失敗 | 基準画像が記録されていない、または異なる照明で撮影された; 基準点の数が少ない場合、位置合わせ領域を拡大し、詳細な情報を追加; 領域にテーブルやコンベアが侵入; 検索期間を延長 |
| 領域が別のカードに移動 | カードは、検査領域に基づいて検索: 基準画像を、カードの周囲の詳細な位置合わせ領域とともに固定 (4.4節); 自動位置合わせモデル |
| 別の部品の正常なカードが不良品として除外 | 筐体には異なるマーキング: このバッチの正常な画像を記録; 3px以下の合成傷は作成しない (4.6節); 欠陥が位置ずれであるか、色であるかを検証 |
| NO_ZONE_CLASS と表示された領域 | 学習後にグリッドが変更; グリッドを復元するか、新しいモデルを作成し、再度撮影 |
| 正常なカードのすべての領域が赤色 | 別の支払い方法または別の位置、生体認証システムがない場合; 閾値が高すぎる; 写真は別の照明で撮影; 色とグレースケールを混在させたファイル |
| モデルが要素の移動を認識できない | ピクセル/ミリメートルを再計算 (1.3節): 非常に小さいスケールの場合、移動は5px未満; 視野を小さくするか、より高解像度のカメラを使用する; 正常な範囲内に移動を制限 |
| 学習が遅い、または非常に遅い | Device = cpu (NVIDIA製のビデオカードがない場合); バッチサイズを小さくする; コンソールを確認する; PythonがPATHに含まれているか確認 |
| 検査が機能しない | 選択されましたかbest.onnx; テンポソースの選択 (カメラ / タイマー / トリガー) ; 「AIを使用しない」ボタンが押されていないか ; カメラの設定で「AIを有効にする」チェックボックスがオンになっているか |
| 「Nゾーンで作成」というルールが動作しない | 「有効」のチェックボックスが押されているか確認; 規則のクラスがモデルの回答 (異常/正常) と一致するか確認; 終了するには、レベルが「オフ」になっていないことを確認; USBカメラには出力がない、TCPのみ |
| 音声が出ない | ルールが作成され、フォルダに保存されました(soundsフォルダ、またはsounds\customフォルダ)。音と音の間で一時停止が発生していませんか?「繰り返し再生」機能が有効な場合、音はクラスが切り替わる際にのみ再生されます。Windowsの音量と出力デバイスの設定を確認してください。 |
| TCPパケットは一度送信されます。 | 「繰り返し」機能を使用する場合、受信側から「ok <荷物>」という応答を待っています。また、「授業中まで繰り返す」というチェックをオンにするか、PLC側で応答を設定してください。 |
engiAI Ethernet System。ボタンやフィールドの名称は、お使いの言語で表示されているものと同じです(画面のキャプチャは、ロシア語のインターフェースのもの)。画面のキャプチャは、「model_4」モデル(2つの256×256の領域:C30コンデンサとBR1ブリッジ)で、USBカメラ(3264×2448)、グレースケールで学習されたモデルを使用しています。2026年9月版:2つの領域での例、モデルのフォルダ作成、位置合わせ領域、画像「前/後」を含む「ベース要素」の合成データ、カラーパレットと線の太さ、赤い領域、コンソール。
