engiAI

  • 要件
Windows 10/11 (64bit)。CPUおよびGPUの分析 - RTX 50+ 相当のバージョン。

⬇ engiAI.rar (900 MB)

⬇ engiAI-ZONA-PARA-JA.pdf (5.9 MB)

⬇ engiAI-doc-new-JA.pdf (13 MB)

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

SICK IDS Camera Manager - link 2

登録

engiAIへの登録を希望される場合は、こちらからお申し込みください。

EngiAI (engiAI Ethernet System) - デスクトップ型の産業用検査および製品のラインでの不良品選別のための画像認識ソフトウェアです。C# (.NET 9, WinForms) で開発され、Windows x64 環境でスタンドアロンの AOT (Ahead-of-Time) 実行ファイルとして動作します。

⬇ engiAI 説明.pdf (41 KB)
  • どのような機能ですか
カメラからの映像取得: Hikrobot (SDK)、USB/DirectShow、IDS uEye、およびOpenCV経由のAndroidカメラなど。複数のカメラを同時に使用可能。

AI検査システム: YOLO(ONNX Runtime / GPU-CUDA または CPU)などのAIモデルは、リアルタイムで物体や欠陥を認識します。

ROI(投資対効果)領域: 設定可能な制御領域で、クラスやルールが定義された領域、カテゴリ化された領域。

リジェクター (Rejector): AIによって、不良信号を特定し、デジタル出力(エラークリア)を生成します。配線設定とテスターによる検証を行います。

トリガー: 外部信号による撮影 (デジタル入力、エンコーダー)。

モデルの学習: データセット、合成データ(回転、鏡像、明るさ調整)、YOLO11の直接学習(プログラム内)。

データストア: ローカルの SQLite データベース (rejectors.db) – モデル、領域、トリガーログ、カメラの状態。

  • ライセンス取得
単一の実行ファイル:モード (試用版 / ライセンス / 制限)

ライセンスなしの場合:20分間の試用版。ライセンスがある場合:制限なしで動作します。

ハードウェアへの対応、実行中のすべてのインスタンスの監視。

engiAI Ethernet System
ゾーン・ペア:プリント基板および組立品の視覚検査

engiAI のインターフェースは日本語に対応しています。本マニュアルのボタン名と項目名は、プログラムの表示どおりに記載しています。

検査の目的は、ゾーンごとの確認です。 回路板には、確認すべき各部品ごとにゾーンが定義されています。それぞれのゾーンに対して、「正常/異常」という2つのクラスが定義されており、その範囲内でのみ判断されます。上記の例では、C30コンデンサとBR1ブリッジという2つのゾーンが挙げられます。実際の回路板には、これらと同様に、数百ものゾーンが存在し、その確認方法は同じです。
合成データ:基盤上の要素を自動的に移動させる。 このプログラムは、基盤上の部品と周囲の回路(線、トレース、基盤の色)を一緒に取り、部品のサイズに縮小し、移動または回転させます。不良品を作成するには、2回のクリックで、単独の不良基盤は不要です。
ユーザーマニュアル:カメラの接続方法、領域の指定、位置合わせ領域の特定、正常・異常データの取得、モデルの学習、検査の実行、および検査結果をリジェクト(音声アラーム、SICKおよびHIKROBOTカメラからのデジタル出力、およびPLCまたはロボットへのTCP通信)と連携する方法
ステップ1カメラ
ステップ 2エリア分割ネットワーク
ステップ3正常値と異常値
ステップ4学習
第5段階検査
ステップ6出力とTCP
すべてのスクリーンショットは、動作中のプログラムから取得されました。プログラムは、vtliftのハードウェア、3264×2448解像度のUSBカメラ(モデルmodel_4)、2つの256×256ゾーン(C30コンデンサとBR1ブリッジ)を使用し、グレースケールで動作します。このプログラムは、HikroBOT(GigEおよびUSB3)、SICK picoCam(uEye)、USB/ウェブカメラ、およびRTSPに対応したIPカメラと連携します。バージョン3は2026年9月。

内容

  1. 1. engiAI とゾーン・ペアという手法について
  2. 1.1. この手法は、画像全体を分類する方法と比較して、どのようなメリットがあるのか
  3. 1.2. 速度: AIは必要な部分のみを抽出
  4. 1.3. 期待できる精度:自分のカメラで測定
  5. 1.4. 簡単な設定:必要な設定は完了し、エリアとモデルは数回のクリックで選択可能
  6. 2. プログラムのインターフェースを1分で作成
  7. 3. カメラ:接続と設定
  8. 3.1. 対応するカメラは?
  9. 3.2. カメラのウィンドウ:追加、再設定、削除
  10. 3.3 HIKROBOT および SICK 用の「カメラ」タブ
  11. 3.4. カメラ用(USB/ウェブカメラ)の設定
  12. 3.5. 保存されたカメラの設定(プリセット)
  13. 3.6. GigEネットワークと再接続
  14. 4. ゾーンペアモデル:グリッドから学習済みモデルへ
  15. 4.1. この方法の仕組み:1つのモデル、各エリアに対応するクラス
  16. 4.2. モデルを作成する
  17. 4.3. 支払い時に、対象となるエリアを特定する
  18. 4.4. 基準画像の特定: 位置合わせ領域
  19. 4.5. 領域ごとの画像:正常な画像とそれらの合成データ
  20. 4.6. 合成データの不良:要素が基盤と一緒に移動
  21. 4.7. 領域の異常: 設定ウィンドウ
  22. 4.8. 基準画像(領域指定付き):接合部の領域と領域編集
  23. 4.9 モデルの学習
  24. 5. 検査
  25. 5.1. モデルを選択し、領域を確認する
  26. 5.2. 認識可能な領域の閾値
  27. 5.3. 柔軟な搬送システム:どんな姿勢でも対応
  28. 5.4. どの信号を分析するか
  29. 5.5. 黄色のエリア:クリックでエリアを停止
  30. 5.6. 画面とコンソールで確認できる内容
  31. 6. トリガー:カメラの入力側に設置された外部センサー
  32. 7. 出力: リジェクター、カメラの個別出力、TCP
  33. 7.1. 参照情報:連絡先とテスターによる確認
  34. 7.2. 出力ウィンドウ:ゾーンごとのルール
  35. 7.3. TCPパケットをロボットまたはPLCに送信
  36. 7.4. カメラの離散的な出力
  37. 7.5. 音による通知: 各エリアごとに独自の音を設定
  38. 7.6. 動作記録とデータベース
  39. 8. その他のモードとタスク
  40. 9. 設定、コンソール、要件、およびライセンス
  41. 10. 短いチェックリストと不具合の特定

本書の使い方:第1章では、この手法の目的と期待される結果について説明しています。第3章~第5章は、空のプログラムから動作する検査システムへの移行手順を示しています。順番に実行してください。第6章~第7章は、センサー、出力、およびTCPへの接続に関する内容です。第8章~第10章は、その他の機能、設定、およびチェックリストに関する内容です。

1. engiAI とゾーン・ペアという手法について

engiAI Ethernet System - 生産ライン向けの視覚検査プログラムです。工業用または一般的なカメラからの映像を、特定の領域に分割し、それぞれの領域を学習済みのニューラルネットワークで検査します。検査結果を、カメラのデジタル出力への信号、ロボットまたはPLCへのTCP通信、またはログへの記録といったアクションに変換します。ゾーンペア法は、「それぞれの場所に固有の」製品(プリント基板、組み立て品、部品セット、パッケージングなど)に適した方法です。

1モデル
すべてのエリアに対応する、個別のモデルではなく、一つのモデルを使用する。
2つのエリア
例として、コンデンサ C30 と BR1 のブリッジ回路を示します。これらの部品は、基板上に数百個存在することがあります。
≈5 px
「正常/不良」の境界線が設定されている要素のオフセット
2回
生画像から、正常および合成された異常画像まで、学習用として使用する

1.1. この方法が、全体の画像分類と比較してどのような利点があるか

一般的なアプローチは、画像全体または特定の領域に対して、「正常/異常」という2つのクラスを適用する1つのモデルを使用することです。しかし、これはハードウェアでは機能しません。例えば、BR1の橋の下にある領域(ゾーン2)は「異常」と判定されますが、別の場所にある同じ領域は「正常」と判定されます。このような2つのクラスを1つのモデルで表現することはできません。もう一つの極端なアプローチは、各部品ごとに別のモデルを使用することです。これは、多数の学習と、メモリ内の多数のファイルが必要になります。

Zone-Pair方式では、モデルは一つですが、ゾーンの数だけクラスが存在します。ゾーンとは、ある部品を取り囲む長方形領域のことです。クラスとは、ニューラルネットワークが学習に使用する画像が格納されたフォルダのことです。各ゾーンには、対応するペアが割り当てられています。zone_001は正常ゾーン1(例:コンデンサC30)、zone_001_anomalyは異常ゾーン1です。zone_002zone_002_anomalyは、ブリッジ回路BR1に対応します。ゾーン1の検査時には、プログラムは対応するペアのみを参照し、ゾーン2に関する情報は使用されません。異常クラスは必須ではありません。異常が発生すると、ゾーンの形状が変化し、「正常」であるという確信度が低下します。しかし、合成データ(セクション4.6)を使用することで、これらのクラスを簡単に作成でき、信頼性を大幅に向上させることができます。

例:生画像から、2つの領域(BR1の橋と、C30のコンデンサ)が緑色で「normal」とラベル付けされている。青い線は、画像の領域の境界、青い点は、プラットフォームが画像内で認識されるための参照点を示しています。
例:生画像から、2つの領域(BR1の橋と、C30のコンデンサ)が緑色で「normal」とラベル付けされている。青い線は、画像の領域の境界、青い点は、プラットフォームが画像内で認識されるための参照点を示しています。
ペア内での判断ネットワークの17番エリアを評価する際、評価対象となるのは「正常な17番エリア」と「17番エリアの異常」の2つのみです。他の多数のクラスは評価に含まれないため、類似した隣接エリアが結果に影響を与えることはありません。
外部からの信号が正常に受信されないもし、あるエリアの信号受信率がネットワーク全体の10%を下回る場合、「エリアが認識されない」と判断されます。これは、別の信号や、ネットワーク構造が異なる場合に発生します。このようなエリアは「正常」ではなく、「不良」とみなされます。
欠陥の大きさは領域に比例します 合成された欠陥の大きさや位置は、領域のサイズに対する割合で指定されます。8メガピクセルの画像全体で、要素を0.5ミリメートルだけずらすと、ほとんど区別できません。しかし、128×128ピクセルの領域内では、これは5~6ピクセルに相当し、目に見える大きさです。
完全な許可 108~137ピクセルの領域の画像は、ほぼ元のサイズ(128×128)でネットワークに送信されます。全体を128ピクセルに圧縮すると、元の画像の細部が数十倍に失われます。
「正常/不良」の判定基準 合成データにおける「正常」のパターンは、0~2ピクセルの範囲にばらつきが見られます。一方、「不良」のパターンは、5ピクセル以上のずれが生じます。このネットワークは、ランダムな照明の変化ではなく、この明確な境界線を学習します。
`対象となる結果 各ゾーンには、一意のアドレス(モデル、テーブル、セルなど)と名前が割り当てられています。 各ゾーンに対して、独自のルールを設定できます。例えば、音声アラート、ゾーン番号を含むTCPパケットの送信、またはカメラのデジタル出力などが可能です。
どの姿勢でも測定可能 測定者は、画像上で測定対象領域(基板の部品部分)を特定します。その後、各フレームを基準画像と一致させ、測定領域が、基板が傾けられたり、回転されたり(180度など、4.4節参照)した場合でも、新しい基板上で測定できるようにします。
基板上の不良 合成的な欠陥とは、描かれた点ではなく、ずれたり回転したりした部品と、その部品が取り付けられている基板の一部を指します。このモデルは、「部品 ↔ 基板」の関係を学習しますが、点の色の学習は行いません。操作は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行で計算されます:

px/mm = (画像の幅(ピクセル単位)) ÷ (視野角(ミリメートル単位))
最小限で認識できるずれ: 約 5 ピクセル ÷ (ピクセル/ミリメートル)

「5px」は、推奨される異常値設定における合成スライスの下限値です(この設定では、正常値の範囲は0~2px)。デフォルト設定は11px/mmに基づいています。この設定では、0.5mmは5~6pxに相当し、これが開発時に決定された目標値です。ご自身の値を入力してください。

カメラ(画角)視野:100mm200mm300mm400mm
3264 ピクセル (USB 8メガピクセル、写真に示されているものと同じ)0.03 mm/ピクセル → ずれ ≈ 0.15 mm0.06 → 概ね 0.3 mm0.09 → 概ね 0.45 mm0.12 → 概ね 0.6 mm
2448 ピクセル (HIKROBOT 5MP)0.04 → 約 0.2 mm0.08 → 約 0.4 mm0.12 → 概ね 0.6 mm0.16 → 約 0.8 mm
1920 ピクセル (SICK picoCam, HIKROBOT 2MP)0.05 → 約 0.25 mm0.10 → 約 0.5 mm0.16 → 約 0.8 mm0.21 → 約 1.0 mm
重要です。 これは、急な動きと安定した照明下でのオブジェクトの移動に対する評価です。実際の境界は、「ゾーン・ペア: ゾーン ↔ モデル」ボタンと、閾値認識(第5.2節)を使用して確認します。各ゾーンにはそれぞれ異なる切り抜き領域があるため、認識の精度も異なります。カメラの視野が狭く、ピクセル数が多ければ多いほど、モデルが認識できるエラーは小さくなります。

1.4. 簡単な導入:設定は完了し、ゾーンとモデルを数回のクリックで設定

この方法は、機械学習の経験がない技術者が、1つのシフトで実用的なモデルを作成できるように設計されています。事前に設定できるものはすべて、プログラムのデータベースに保存されています。

  • 1分間の領域。 ROIエディタで、図形を特定の要素の周囲にドラッグして、領域のサイズ(例:256ピクセル)を指定します。要素が多数あり、均一に並んでいる場合は、図形を全体のレイアウト全体にドラッグすると、プログラムが自動的に行と列を計算します。
  • 合成データは、正常な状態と異常な状態のプリセットが用意されています。 「デフォルト」「要素のずれ」「色と塗料」といったボタンは、あらかじめ設定されたプロファイルを切り替えます。 「撮影」ボタンを押す前に、ファイル数、カメラからのフレーム数、および予想される処理時間などが表示されます。
  • 学習パラメータは自動的に設定されます。 最初の画像に基づいて、プログラムは以下のパラメータを設定します:画像サイズ 128、モデルサイズ s、エポック数 50、バッチサイズ 64。また、学習時には、異常クラスと競合するデータ拡張(オーグメンテーション)を無効にします。
  • カメラはボタンで設定します。 「AI(フレームごとの)自動設定」は、露出、ゲイン、カラーバランス、ホワイトバランスを自動で調整します。USBカメラには、「フォームごとの自動設定」と「パラメータの固定」の機能があります。
  • カメラの設定キット 予め設定されたパラメータは、特定の名前で保存され、リストから選択することで、カメラが即座にそれらを受け取り、自身の記憶に保存します。
  • 1つのONNXファイルが出力されます。 訓練されたモデルは自動的にエクスポートされ、すぐに検査に割り当てられます。追加の手順は必要ありません。

全体的な手順:カメラの接続 → モデルの作成 → 領域の特定 → 位置合わせ領域の固定 → 複数の正常な基板で「領域ごとの画像」の取得 → 「領域の異常」 → AIモデルのトレーニング → 「検査」タブ。その後、各領域に音、出力、TCPを割り当てる必要があります。 起動に必要なもの:Windows 10/11を搭載したコンピューター(高速検査にはNVIDIA製のグラフィックボード)、カメラ、正常な基板1つ、および学習環境のインストール用のインターネット接続。 故障した基板は不要です。

2. プログラムのインターフェースを1分で

メインウィンドウは2つの部分に分かれています。左側にはカメラからのライブ映像と、その上にあるステータスバーがあります。右側には、すべての操作を行うタブが配置されたパネルがあります。ウィンドウ間の境界線をドラッグすることで、ウィンドウのサイズ、位置、レイアウトをプログラムが記憶します。

メインウィンドウ:左側に、2つの領域(両方とも緑色の「正常」)を持つプリント基板のライブビューが表示されています。右側には、model_4\best.onnxモデルの「Inspect」タブが表示されています。ライブビューは有効で、「正常 · 112点」というインジケーターが表示されています。
メインウィンドウ:左側に、2つの領域(両方とも緑色の「正常」)を持つプリント基板のライブビューが表示されています。右側には、model_4\best.onnxモデルの「Inspect」タブが表示されています。ライブビューは有効で、「正常 · 112点」というインジケーターが表示されています。

ビデオ上のボタン

ボタン開く
ビデオを非表示にする画面上の画像を表示を停止します。描画のみを停止し、分析は継続します。
出力参照ウィンドウ: 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. カメラのウィンドウ:追加、再設定、削除

1
ビデオの上に表示されている「カメラ」というボタンをクリックしてください。すると、「接続されたカメラの設定」というウィンドウが全画面で表示されます(閉じるにはEscキーを押してください)。
2
+ カメラを追加」をクリックします。 プログラムはネットワークとUSBをスキャンし、見つかったすべてのデバイスを1つのリストに表示します:Hikrobot … SN: … IP: …, SICK … SN: … DeviceID: …, Android …。 SICKのカメラは、GigEデバイスがドライバーに認識されるまでに最大4秒かかるため、スキャンに時間がかかります。 使用中または誤ったアドレスが設定されているSICKデバイスには、その理由を示す記号⚠が表示されます。
3
必要なカメラを選択し、「追加」ボタンをクリックします。IPカメラは「+」ボタンで追加し、RTSPカメラはリンクから追加します。カメラが接続される間、カメラをスキップするためのボタンが付いた画面が表示されます。
4
カメラの情報は、"名前 | タイプ | シリアル番号 | LIVE または OFFLINE | AI:ON | Disp:ON"という形式でリストに表示され、その映像はメインウィンドウの左側に表示されます。

チェックボックスは、選択されたカメラに適用されます。カメラが起動しました。 または カメラがオンになっています(そうしないと、デバイスから切断され、画面から消えてしまいます)動画/エリアを表示する(これはあくまで描画に関するものであり、分析機能は常に動作します。)選択されたカメラでAI機能が有効になっていますボタン再接続するこれにより、AIストリームを再起動し、モデルを再読み込みすることで、完全な停止と再開が可能になります。

ウィンドウの右側には、接続時にハードウェアから読み取られたカメラのすべてのパラメータが表示されます。パラメータはグループ分けされており、単位も表示されます。「どのカメラのパラメータを表示するか」「カメラから再読み込み」「クリップボードにコピー」といった機能があります。これはあくまで表示機能であり、パラメータの変更は「カメラ」タブで行ってください。

重要. HIKROBOTのGigE対応カメラは、独自の接続方式を採用しています。プログラムが予期せぬ停止した場合、接続は維持され、ハートビートが失われるまで使用可能状態が続きます。プログラムは最大25秒(10回)の待機を行い、「カメラは別のプロセスによって使用されています」と表示します。SICKの場合、不正なIPアドレスが設定されている場合、プログラムは一度、アダプターのサブネット外のIPアドレスであれば、自動的に修正を試みます。

3.3. HIKROBOT および SICK 用の「カメラ」タブ

この機能は、青い枠で囲まれたカメラを使用します。プログラムは、カメラに何も記録しません。カメラは真実の源であり、スライダーはカメラの値に合わせて調整されます。設定の保存は、保存ボタンを押すことでのみ可能です。

1
下部のタブで、幅 (W)高さ (H) を指定してください (または、このカメラがサポートするサイズのみを含むリストからプリセットを選択)。その後、解像度を適用 をクリックしてください。通常は、カメラ全体の解像度を使用します。解像度は、カメラのAOI(自動解像度調整)のステップ数に応じて切り捨てられます。
2
AIによる自動調整」ボタンをクリックします(フレームごとに適用)。このプログラムは、画質を最適化するために、シャッタースピード(優先順位)とゲイン(最大40)を調整します。目標は、輝度の99.5パーセンタイルが、白飛びすることなく220~248の範囲に入るようにすることです。その後、ガンマを1.50、彩度を115%、コントラストを105%に設定し、自動ホワイトバランスを調整します。チェックボックスの「自動」にチェックを入れると、常に自動調整モードが有効になり、3秒ごとに光の変化を検出し、必要に応じて調整を行います。
3
必要に応じて、手動で調整してください: 露出 (マイクロ秒単位の調整、単位はms、最大1秒)、ゲインFPS黒レベル。SICKの場合は、さらに ピクセルクロック (FPSの上限と最小の露出時間を決定) 、ゲインブーストハードウェアの色域赤/緑/青の補正 を設定できます。
4
設定を保存」ボタンをクリックすると、ファイル "camera_params\<SN>.ini" に設定が保存され、カメラのメモリ(HIKROBOTの場合はUserSet1、デフォルト設定)、SICK社のEEPROMにも設定が記録されます。保存が完了すると、ボタンに「✔ 保存済み」と表示されます。HIKROBOTの場合、設定変更後5秒で自動的にカメラ(UserSet1)に設定が保存されるようにするチェックボックスがあります。

「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の範囲はプログラムによって設定されており、カメラから情報を取得できません。

1
許可適用確認 ボタンは、VGAから8Kまでの標準的な解像度を試し、カメラが承認したものをリストにのみ残します。 「カメラのフォーマット」の行には、実際の解像度とFPSが表示されます。
2
オートフォーカス、オート露出、オートブイッシュの設定を行い、その後 "パラメータを固定 (オート機能を停止し、現在の設定を保存)" をクリックします。これにより、オート機能が停止し、プログラムが同じ明るさになるように手動露出を自動的に調整します (オート機能が有効な場合、プログラムは最後に設定された手動露出を使用します)。値と形式はデータベースに保存され、このカメラを再度接続するたびに適用されます。
3
AIによる自動調整」: 「形状に合わせた自動調整」(20~60秒、ライブ映像で露出とコントラストを調整、基準は輪郭の鮮明さで、白飛びがないこと)、「形状のみ、色なし」、「形状、ソフト」、「元に戻す」、「標準
4
フィールドの値は、Enterキーを押す前に直接カメラから読み込まれ、すぐにデータベースに書き込まれます。"カメラからプロパティを再読み込み"というボタンは、カメラが実際にデータを読み込んだことを示します。
提案:AIのカラー調整は、カメラの彩度を調整するのではなく、全体的な設定で「グレースケールで学習」を有効にすることをお勧めします。これは「Camera」タブ(または「AI Model」タブの「グレースケールで学習」)にあります。そうすることで、学習用画像と検査画像はモノクロになり、カメラはオペレーターに対してはカラー表示を維持します。上記の例で使用されているモデルは、グレースケールで学習されています。

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`内のフォルダとして定義されます。プログラムはすべてのフォルダを自動的に作成します。手動で作成する必要はありません。学習後のモデルフォルダの例は以下のようになります。

フォルダ model_4: train と val — 画像データ、data.json — 領域、live_template — 基準画像、board.json — 閾値、best.onnx — 学習済みネットワーク。
フォルダ model_4: train と val — 画像データ、data.json — 領域、live_template — 基準画像、board.json — 閾値、best.onnx — 学習済みネットワーク。
model_4\ train\ 学習用の画像zone_001\ 正常範囲 1 (C30):real_… カメラから撮影された映像ですsyn_… 合成データzone_001_anomaly\ 不良地域:ゾーン1。syn_…_combo1_d, _rotate1 …zone_002\ 正常エリア2(BR1)zone_002_anomaly\ 不良地区 2 val\ 検証用データセット:同じ4つのフォルダを使用し、データは自動的に入力されますdata.jsonゾーン:テーブル、座標、サイズ、色、オン/オフの状態; クラス; スロットlive_template.png / .txt 基準画像プレート:フレーム、位置合わせ領域、赤色(除外)領域live_template_zones.png基準画像(描画された領域と番号が記載されている)board.json認識閾値(ゾーン):{ "threshold": 0.50 }train_gray.txt「グレースケール表示」機能best.onnx訓練されたモデルは、検査に使用されます runs\ diag\ *.cache サービス関連: 学習プロセス、分析用画像、学習済みモデルデータ
train: 各ゾーンごとに2つのフォルダ - 正常と異常。
train: 各ゾーンごとに2つのフォルダ - 正常と異常。
val: 同じ構造で、撮影時にプログラムが自動的にデータを入力します。
val: 同じ構造で、撮影時にプログラムが自動的にデータを入力します。

ファイルreal_…jpg- これは、実際にカメラで撮影された画像です(トレーニングデータと検証データの両方に含まれています)syn_…jpg- 合成データedit_…jpg- エディタ内のスクリーンショット。以下は、複数の基板を撮影した例です。zone_001- 学習データセットには502個のファイル、検証データセットには111個のファイルが含まれていますzone_001_anomaly- 680と144zone_002- 813番と181番zone_002_anomaly- 340と60。

1つのストレージ場所。 モデル内のすべてのレイアウト(検査領域、位置合わせ領域、クラス、スロットなど)は、モデルフォルダ内のdata.jsonlive_template.txtにのみ存在します。プログラムのデータベースには、これらの領域の情報は残っていません。そのため、「AI Model」タブと「Inspect」タブにあるROIエディタは同じ領域を表示し、モデルフォルダ全体を別のコンピューターにコピーしても、すべての情報が失われることはありません。古いモデルは、最初に開いたときに自動的にファイルに移行されます。

このプログラムは、`zone_NNN`という形式のクラスが存在する場合、自動的に「支払い」というモデルを認識します。クラスの番号は、グリッド内のゾーンの番号(1…N)に対応します。このことから、このメソッドの主要なルールは次のとおりです。

重要です。 ゾーンはモデルの一部です。授業の撮影後に、ゾーンを変更することはできません(テーブルを追加、削除、移動することはできません)。ゾーンの番号と授業の番号が一致しなくなるため、ゾーンにはNO_ZONE_CLASSというラベルが付けられます。ゾーンを変更する必要がある場合は、新しいモデルを作成してください。

4.2. モデルの作成

1
AIモデルのタブを開き、「新しいAIモデルを作成」ボタンをクリックしてください。
2
親フォルダとモデル名(プログラムは空のmodel_Nを提案します)を指定してください。デフォルトのクラスリストにはnormalanomalyが含まれています。ゾーンペアの場合は、これらのクラスは不要です。ゾーンごとにスナップショットを撮る際に、ゾーンのクラスが自動的に作成されます。これらのクラスを削除するか、空のままにすることも可能です。学習の前に、プログラムは空のクラスを削除するよう提案します。
3
モデルを作成」ボタンをクリックします。すると、ディスク上に「train」と「val」という名前のフォルダが作成され、モデルが編集のために開かれます(検査モードにはなりません)。もし既にモデルが存在する場合は、「モデルフォルダを選択」ボタンをクリックしてください。

4.3. 回路板上のゾーンの特定

1
カメラの前に、板を正確に、そのまま配置してください。その後、"ROI → クラスに登録 (学習モデル)" をクリックしてください。
2
「ROIの保持」ダイアログで、任意のクラスを選択します(ラベル付けには影響しません)。または、新しい名前を入力して「OK」をクリックし、「ROIを開く」をクリックします。その後、ここにすべてのROIクラスが表示され、テンプレート `zone_###` でグループ化されます。グループをクリックすると選択され、もう一度クリックすると選択が解除されます。「グループを削除」ボタンをクリックすると、そのグループ全体と、関連する画像が削除されます。
3
「ROI(関心領域)の指定」ウィンドウが開きます。左クリックで、検査対象の領域の周りに枠を描きます。すると、「領域サイズ (ピクセル)」というフィールドが表示されます。ここにサイズを入力します(32の倍数に自動的に調整されます。例:256)。Enterキーを押すと、枠が均一な正方形になり、そのサイズがラベルとして表示されます。これを、検査したいすべての領域に対して繰り返します。この例では、C30の周り、およびBR1の周りにそれぞれ領域が設定されています。
4
詳細が多く、均一な形状の場合、グリッドを使用するのが便利です。フレームを基板全体に広げ、グリッドのサイズを指定すると、グリッドの行数と列数が表示されます。また、`グリッドの定義`ブロックで、行数、列数、各セルの幅と高さ、そして`グリッドを作成`ボタンをクリックすることで、グリッドを作成できます。作成したグリッドは、マウスで正確に基板上に配置できます。
5
右側のパネルには、各ゾーンのテーブルが表示され、サイズと「有効」/「無効」のチェックボックスがあります。「無効」になっているゾーンはクラスを付与せず、「非表示」になっているテーブルは検査に一切参加しません。 「すべてのゾーン」のチェックボックス(✓/✗)、設定、削除、および「すべてのゾーンを削除」ボタンがあります。 Enterキーを押してウィンドウを閉じると、ゾーンがdata.jsonに保存され、ビデオ上に黄色で表示されます。
AI Modelタブでの結果: ライブ画像に2つの黄色いゾーン - BR1が右上に、C30が左下に表示されます。右側にはゾーンペアモデルのボタン、マーカーによる製品へのゾーンの固定、および学習設定があります。
AI Modelタブでの結果: ライブ画像に2つの黄色いゾーン - BR1が右上に、C30が左下に表示されます。右側にはゾーンペアモデルのボタン、マーカーによる製品へのゾーンの固定、および学習設定があります。
留意事項。 部品は、ある程度の領域を占める必要があり、周囲には配線、文字、パッドなどが残るべきです。この「ベース」部分が、後で合成データ(4.6節)で使用されます。0603~1206サイズの部品、および11px/mmの場合、128pxが適しています。コンデンサ、ジャンパ、コネクタの場合は、例のように192~256pxが適しています。ネットワーク入力サイズ(Image Size)は、領域のサイズとほぼ同じ値に設定します。

赤いゾーン: 合成データで1クリックでゾーンを削除

AIモデルのタブで、既に作成された領域を動画上で左クリックすると、その領域が赤色に変わり、領域ごとの画像生成や異常検出の対象から除外されます。もう一度クリックすると、元の状態に戻ります。合成データのウィンドウにあるファイル数は、すぐに再計算されます。また、フレームの上にある「オフ N」という表示は、無効になっている領域の数を表しています。赤色の領域の情報は、カメラとモデルごとに保存されます。インスペクトのタブでは、同じ領域が通常の(黄色い)領域として表示されます(詳細はセクション5.5を参照)。

4.4. 基準画像の固定: 位置合わせ領域

検査エリアは、基板の特定の配置に基づいて設定されます。ライン上で、別の基板をわずかにずらして回転させる必要がある場合、プログラムは以下の情報を記憶します。基準画像:実際の映像と、位置合わせ領域:基板上の特定の部品が含まれる領域。この領域は、各新しい映像で製品を特定するために使用されます。領域が特定されると、プログラムは新しい基板に検査エリアを転写します。これが、撮影、合成データ処理、および検査の仕組みです。

2つの異なる長方形。 検査領域は、モデルが検査する部分です(緑色)。 位置合わせ領域は、基板の位置を特定するためのマーカーで、オレンジ色の枠で示されています。 位置合わせ点は、検査領域の内部に配置されることはありません。もし、コンデンサ自体を基準に基板の位置を特定しようとすると、コンデンサがわずかにずれるだけで、そのずれが検査領域全体に影響し、不良箇所が隠れてしまう可能性があります。そのため、位置合わせ領域には、シルク印刷、穴、配線、および近隣のマイクロチップなどを配置し、テーブルやコンベアなどのものは配置しないようにします。
1
「AI モデル」タブで、製品のマーカーに基づいて領域を固定する にチェックを入れ、検索期間(ms) を設定します(デフォルトは 100)。 カメラの下に板を置き、「基準画像を取得」ボタンをクリックします。
2
「位置合わせ領域: どこを探すか」というウィンドウが表示され、ライブ画像と緑色の検査領域が表示されます。左クリックで、部品が記載されたプリント基板の領域を囲む枠をドラッグします。右側には、「基準点: N · 合わせ: 厳密 / 視覚的」と表示され、多数の点が表示されます。「点が少ない場合は、領域を広げて」と指示されます。新しい枠が古い枠を置き換えます。右クリックで枠を削除できます。
3
✔ 選択した領域に基づいて、領域を検索。2番目のボタン✔ 検査領域に基づいて領域を検索は、指定された領域内の領域のみを検索します。周囲に何も存在しない場合にのみ機能します。もし毎回、位置合わせ領域を尋ねるのチェックボックスがオフになっている場合、次の固定は元の領域をウィンドウなしで再利用します。
4
プログラムは「基準画像が記録されました。領域N、対応点1、点K」と表示し、live_template.pnglive_template.txt(フレーム、領域、赤い領域)を保存します。チェックボックス撮影領域をフレーム上に表示は、プログラムが特定した領域を動画上に表示し、支払いに関する基準となる点(点K)は青い点として表示されます。これにより、プログラムがどの点に「基づいているか」が確認できます。
ウィンドウ位置合わせ領域:オレンジ色の枠 – 部品に設けられた詳細(3000個の基準点)、緑色の部分 – C30およびBR1の検査領域で、これらは枠に含まれません。
ウィンドウ位置合わせ領域:オレンジ色の枠 – 部品に設けられた詳細(3000個の基準点)、緑色の部分 – C30およびBR1の検査領域で、これらは枠に含まれません。
固定後の画像:部品上で基準点が特定され、「正常」とラベル付けされています。青い線は位置合わせ領域の境界を示し、青い点は、部品上の対応する基準点(この領域には含まれません)を示します。
固定後の画像:部品上で基準点が特定され、「正常」とラベル付けされています。青い線は位置合わせ領域の境界を示し、青い点は、部品上の対応する基準点(この領域には含まれません)を示します。
位置合わせモデル選択するタイミング
自動(推奨)部品は厳密に位置合わせされます(移動、回転、拡大/縮小)。視点は、明らかに改善が見られる場合にのみ接続されます。小さな位置合わせ領域における精度は1~2ピクセルです。
厳密カメラは完全に上から見下ろすように、部品は水平に置かれます。位置合わせ領域が小さい場合に最も安定した方法です。
視点カメラは傾斜して、または部品が傾斜しています。幅全体に点がある、大きな領域が必要です。そうしないと、ホモグラフィーが歪んでしまいます。

"基準画像(領域付き)」ボタンを押すと、グリッドと領域番号が保存された基準画像が表示されます(4.8節を参照)。検出された基板は、合理的な範囲かどうかを確認します。面積が基準画像の0.5〜2倍、凸四角形、およびサポートポイントは、それぞれ軸あたり少なくとも1/4の領域を占める必要があります。そうでない場合、結果は無効となり、「基板が見つかりません」というメッセージが表示されます。

重要な点。 以前は、画面上に限られた領域のみが検出されることがありましたが、これは各領域に対して個別に支払いが行われていたためです。 現在の基準画像は、基板の各領域を詳細に照合して作成する必要があります。このガイドの基板で検出される領域の数は、46~51から134個の106~112個に増加しています。

4.5. 領域ごとの画像:正常とそれらの合成データ

ゾーンペア撮影:エリアごとの画像 の主な目的:ライブ画像をエリアごとに分割し、各エリアの切り抜きを対応するクラス zone_NNN に配置し、合成データを正常と判定します。「正常」とは、撮影のバラつきを指し、欠陥ではありません。例えば、基板の位置が少しずれている、光が少し違う、センサーがノイズを出すなどの状態です。

「ゾーンペア:領域ごとの画像」:画像の数、時間ごとの画像、valにおける割合、領域ウィンドウ全体を対象としたズーム/回転/拡大、選択範囲の指定、照明とノイズ、および最終的なファイルカウンター。ウィンドウはマウス操作で拡大・縮小できます。
「ゾーンペア:領域ごとの画像」:画像の数、時間ごとの画像、valにおける割合、領域ウィンドウ全体を対象としたズーム/回転/拡大、選択範囲の指定、照明とノイズ、および最終的なファイルカウンター。ウィンドウはマウス操作で拡大・縮小できます。
設定デフォルトでどのような機能が備わっているか、またどのような設定が推奨されるか
それぞれのエリアに対応した、合成素材の選択肢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。
「共通」列チェックを入れると、他の画像と一緒に共通ファイルに保存されます。チェックしない場合は、「基準画像 + このみの画像」という個別のファイルが作成されます。個数が多いほど、オプションごとにファイル数が増えます。
1
ゾーンペア: ゾーンごとの画像」をクリックします。 画面下部のテキストには、事前に「ファイル数: 1、ゾーン: 21 (訓練用)、約5 (検証用) の合計で約52ファイル」と表示されます。(2つのゾーンの場合)
2
プロファイルを選択してください:デフォルト(シフト量:0~2ピクセル、明るさ:±5、コントラスト:95~105%)、要素のずれ(シフト量:0~1ピクセル、明るさ:-10~10)、または色と彩度(シフト量:0~2ピクセル、明るさ:±2、コントラストとガンマはオフにし、色合いを特徴として維持)。
3
キャンセル」ボタンをクリックします。処理はバックグラウンドで実行され、進捗状況を示すウィンドウが表示されます。「ゾーン 1/2、ファイル 26、フレーム 4/20」といった情報と、「キャンセル」ボタンが表示されます。処理が完了すると、「完了:2つのゾーン → クラス zone_001…zone_002、ファイル数:52」というメッセージが表示されます。プログラムは自動的に、使用するボードに合わせた学習設定を行います。設定例:画像サイズ 128、モデルサイズ s、エポック数 50、バッチサイズ 64(セクション 4.9)。
4
同じボタンで、複数の異なる正常な基板の写真を繰り返し撮影します。確実なモデルの場合、少なくとも80個のファイル(1つのクラスあたり)が必要であり、最も重要なのは、1つの画像ではなく、複数の実際の基板(5~10枚)が必要です。
train\zone_001- 正常なC30コンポーネントが導体に存在します。real_… カメラから撮影された映像ですsyn_…_n1…n20 は、シフト操作を表す接尾辞(shiftd、shiftl、shiftr、shiftu)が付加されています。この表記は、常に基準位置に対して一定の位置に配置されます。
train\zone_001- 正常なC30コンポーネントが導体に存在します。real_… カメラから撮影された映像ですsyn_…_n1…n20 は、シフト操作を表す接尾辞(shiftd、shiftl、shiftr、shiftu)が付加されています。この表記は、常に基準位置に対して一定の位置に配置されます。
train\zone_002- 通常状態:BR1.real_… 3つの層を持つ構造と、わずかな回転(rotl、rotr)やシフトを組み合わせたバリエーション。
train\zone_002- 通常状態:BR1.real_… 3つの層を持つ構造と、わずかな回転(rotl、rotr)やシフトを組み合わせたバリエーション。

4.6. 合成データ:2回のクリックで、要素が基盤と一緒に移動

合成データを作成するための観察 このモデルは、不良箇所として、手書きで描かれたものではなく、検査対象の要素と、その周囲の基板の要素(シルク印刷、配線、基板の色とテクスチャ)を提示することで、特に効果的に学習します。プログラムは、検査対象の要素の領域を縮小し、その後その領域を移動または回転させ、周囲のピクセルで境界を埋めます。その結果、検査対象の要素は、実際の不良、センサーの実際のノイズ、実際の光、実際の基板の状態と、完全に一致した位置に配置されます。

正常なパターンと異常なパターンは、その要素の位置と基盤との関係のみが異なります。それ以外はすべて同じなので、ネットワークは「要素 ↔ 基盤」という関係性を学習するのではなく、汚れの濃さや照明の状況を学習します。

2回のクリック

1
領域ペア:領域ごとの写真撮影。 20種類の撮影バリエーション(ウィンドウの移動 0~2px、明るさ、ノイズ)で、各領域の切り抜きが zone_NNN に分類されます。
2
ゾーンペア:ゾーンの異常作成。 デフォルト設定には、両方の種類のオフセットが含まれています:ゾーンのオフセットを全方向に5~12px、および要素の領域の回転(領域の70%、円)を15~180°に設定。 ファイルはzone_NNN_anomalyのクラスに保存されます。

他に設定する必要はありません。不良の画像を生成したり、不良の基板を探したりする必要はありません。 次は、AIモデルのトレーニングを行います。

「前」と「後」:プログラムが何を実現しているか

「前」:正常な基盤の生の画像。両方の領域が緑色で「正常」です。
「前」:正常な基盤の生の画像。両方の領域が緑色で「正常」です。
「後」:異常領域に、異常データ(C30が右下へ、BR1が回転)を配置します。両方の領域が赤色で「異常」です。また、実際の異常が発生した場合の基盤の見た目も同様になります。
「後」:異常領域に、異常データ(C30が右下へ、BR1が回転)を配置します。両方の領域が赤色で「異常」です。また、実際の異常が発生した場合の基盤の見た目も同様になります。
拡大:領域1(C30):左側はカメラで正常、右側は合成データで、要素と基盤が下へ移動し、端は隣の画像から埋められています。
拡大:領域1(C30):左側はカメラで正常、右側は合成データで、要素と基盤が下へ移動し、端は隣の画像から埋められています。
拡大:領域2(BR1):右側の要素の領域が180度回転し、ベースがずれています。
拡大:領域2(BR1):右側の要素の領域が180度回転し、ベースがずれています。

ユーザーが認識する、異常箇所のフォルダ

4.5節の「正常」フォルダとの比較:違いは、部品の位置関係のみ。

train\zone_001_anomaly- 不良品(C30)。各コピー(t000、t001…)に、9つのファイルが含まれています。combo1_d_dl, _dr, _l, _r, _u, _ul, _ur:領域が上下左右、および斜め方向に5~12ピクセルずれています(d = 下、u = 上、l = 左、r = 右)。rotate1:コンデンサの領域が回転しています。
train\zone_001_anomaly- 不良品(C30)。各コピー(t000、t001…)に、9つのファイルが含まれています。combo1_d_dl, _dr, _l, _r, _u, _ul, _ur:領域が上下左右、および斜め方向に5~12ピクセルずれています(d = 下、u = 上、l = 左、r = 右)。rotate1:コンデンサの領域が回転しています。
トレイン\zone_002_anomaly - 故障したBR1: 本体は8つの側面すべてに移動し、ランダムな角度に傾いている。基板と配線は本物のような質感。
トレイン\zone_002_anomaly - 故障したBR1: 本体は8つの側面すべてに移動し、ランダムな角度に傾いている。基板と配線は本物のような質感。
ファイル名の読み方 syn_<日付>_t003_combo1_dr.jpg - 3番目のコピー、共通ファイル、下方向(d = down)、右方向(r = right)、上方向(u = up)、左方向(l = left)への移動; …_rotate1.jpg - 要素領域の回転; …_scale1_dn/_up - サイズを小さくまたは大きく変更; …_tl/_c/_br - 領域がいた場所(角、中心)。ファイル名から、どの欠陥があるか、また、ウィンドウ内の「合成データ(train + val)を削除」ボタンで不要なものを削除できます。

部品のマーキング:なぜ「太い」線が使われ、どのように設定するか

部品の表面には、1~2pxの幅の文字や線が刻印されています。これらの刻印は、ロットごとに異なり、異なるフォント、コンデンサ上の文字の向き、一部の記号が消えている場合があります。もし、合成的な欠陥である「傷」を同じ太さの線で描くと、回路はそれが刻印の線やセンサーのノイズと区別できなくなり、別のロットの部品から正常な基板を誤って廃棄する可能性があります。

合成データにおいて、ゾーンペアはこれを両方向から対処します。まず、主な問題である要素のずれは、マーキング自体も本体と一緒にずれるため、マーキングが正常状態と異常状態で同じように見えるという問題を引き起こします。次に、デフォルトで太い(⅛ゾーン、3px以下の幅)線/傷が、マーキングの線とは明らかに異なっています。現在は、線の太さを明示的に指定できます。線の太さ、px(0 = 自動)は、線と十字線に適用されます。

描かれた欠陥(長方形、円、線、「消失した要素」、ぼやけた斑点など)は、「カットアウト上の合成欠陥」という折りたたみグループにまとめられています。デフォルトでは折りたたまれており、無効になっています。特定の用途に合わせて有効にしてください:濡れた領域、余分な滴、消えかかったマーキングなど。

図形のパラメータ設定項目
サイズ:…から…まで、ゾーンの…% / px図形のサイズまたは長さ。ゾーンの小さい方の辺からの割合(どのゾーンにも適用)、またはピクセル単位で、実際の欠陥のサイズがわかっている場合に便利。
塗りつぶし塗りつぶし / 輪郭 / 混合(輪郭も太い)。
線の太さ:px線 / 傷と十字線。0 = 自動(太い)。部品のマーキングには、3px以下の値は使用しないでください。
欠陥の場所中央、左、右、上、下 - フィギュアを配置する場所(多少ランダムな配置)。「すべての位置」を選択した場合、チェックされたすべての場所にファイルが作成されます。一方、「ランダム」を選択した場合、1つのファイルが作成され、そのファイルはチェックされた場所の中からランダムに選択された場所に配置されます。ウィンドウの下部にあるファイルカウンターは、これらの状況を自動的に反映します。
図形の色の設定: 5つのスロット5つのスロットではなく、名前のリストではなく。チェックマークは、スロットが選択されていることを示し、色は選択されたものからランダムに選択されます(±12の範囲で、単一の色にならないように)。「サンプル」ボタンは、パレットから色を選択し、💧 ピペットは、カメラの実際のフレームをクリックして、実際のオブジェクトまたは回路基板の色を選択します。デフォルトでは、暗色と明る色の2つのスロットが有効になっており、残りの3つのスロットは無効になっています。
「共通」列特定された欠陥の情報は、他の「共通」の情報(例えば、ずれた要素の上にできた傷など)と一緒に、共通のファイルに保存されます。「チェック」を外すと、「正常 + このみの欠陥」という個別のファイルが作成されます。「すべての位置」の表示は常に個別のファイルになります。

4.7. 領域の異常: 設定ウィンドウ

ゾーンペア:異常なゾーンは、正常なゾーンからzone_NNN_anomalyというクラスを生成します。 ゾーンは、AIモデルの4.3のセクションでクリックでオフになっている赤いゾーンを除いたすべてのゾーンを使用します。 異常クラスは、実際に異常が発生するゾーンにのみ追加し、残りのゾーンについてはモデルが認識に基づいて検証します。

「領域ペア: 領域の異常」ウィンドウ: 欠陥の上に図形をコピー; パラメータ、場所、パレットを含む、展開可能な図形グループ; 領域のスライド、回転、および拡大(領域の形状と±%のスケール)、サブ領域、欠陥上の照明、時間とvalによるキャプチャ。
「領域ペア: 領域の異常」ウィンドウ: 欠陥の上に図形をコピー; パラメータ、場所、パレットを含む、展開可能な図形グループ; 領域のスライド、回転、および拡大(領域の形状と±%のスケール)、サブ領域、欠陥上の照明、時間とvalによるキャプチャ。 ウィンドウはマウスで拡大・縮小できます。
設定どのような機能ですか
欠陥の上にコピーすべての種類のための共通設定:指定された種類のそれぞれに対して、新しいランダムなパラメータでコピーをいくつ作成するか(デフォルトは10)。
▸ 穴あき部分における合成的な欠陥デフォルトで展開されるグループ:長方形、小さな長方形、円、楕円、三角形、八角形、線/傷、十字、`消えた要素`、ぼやけた斑、ノイズ補正、別の領域の断片。図形のパラメータ、位置、およびカラーパレットは、4.6節を参照。
スライド、ピクセル単位:方向、形状主要な欠陥:領域(円または四角形)が、指定された方向に5~12ピクセルずつずれています。方向は、左(←)、右(→)、上(↑)、下(↓)、および2つの対角線(⤡、⤢)です。垂直方向/水平方向のスケール:±% — 領域のサイズが、基準となる領域に対してどれだけ変化するかを示します。0は基準となる領域と同じサイズ、-30は領域が30%小さくなる(要素のみが移動し、ベースは固定)、+30は領域が基準となる領域よりも30%大きくなる(周囲の要素も含まれる)ことを意味します。各方向については、ファイル内で個別に指定されています。
回転、度:形状領域(円または正方形、同じスケール±%):ランダムな角度範囲の両方向に回転します。
スケール(%): 縮小/拡大領域を欠陥として扱う:60~85%の縮小または120~160%の拡大。各指定された側面はそれぞれ別のファイルになります。通常、基板にはオフになっています。
「スライド」と「回転」の共通設定もし両方のチェックボックスが選択されている場合、これは一つのファイル内の一つの要素を指します。この場合、移動と回転は、順番に適用するのではなく、一つの変換によって同時に行われます(順番に適用すると、結果が複雑になりすぎます)。領域のサイズと形状は共通であり、移動の設定によって決定されます。
▸ サブ領域領域は2、4、または9つの部分に分割され、それぞれの部分が回転またはスライドします。「各サブ領域ごとに異なる画像」のチェックを入れると、各部分ごとにファイルが作成されます。複数の要素を持つ大きな領域に適しています。
各欠陥画像の照明とノイズオンで正常:欠陥は形状の違いでなければなりません。
時間/valごとの画像新しいカメラのフレームごとにコピーを作成し(800ms)、valに20%を割り当てる。また、valクラスの最初のファイルは常に保存される。
1
`ゾーン・ペア: 異常のゾーン をクリックします。 結果は事前に計算済みです:「ゾーン: 2 · コピー先: 2ファイル · ゾーンあたり: 20 · 合計 ≈ 40 (+ val に含まれる部分)」 ファイルのコピー先での移動は、上記のフォルダと同様に9となります。
2
プロファイルを選択してください:デフォルト(ゾーンのずれ:5~12ピクセル、領域、図形、サブゾーンは折りたたまれ、無効)、要素のずれ(ずれのみ:4~12ピクセル、明るさは「通常」の状態と同じ)、または色と塗料(図形、要素の「消失」、パレットからの色、ずれなし)。 変更内容は、ウィンドウがすぐに記憶し、クリックするたびに適用されます。
3
「作成」ボタン(作成)をクリックします。すると、指定したクラス(zone_NNN_anomaly)がモデルツリーに表示されます。不良品を検出した場合、ROI(関心領域)を指定して、「クラスに追加」を選択し、同じクラスに分類してください。
重要です。 合成スライスの下限(5px)は、正常範囲(0~2px)のすぐ隣に位置しています。正常範囲を5pxに広げたり、異常値を2pxに狭めたりしないでください。その場合、境界線が不明瞭になり、実際の回路で不安定な動作を引き起こします。別の感度が必要な場合は、両方の境界値を同時に変更し、ミリメートル単位に変換してください(1.3節を参照)。

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 Sizen / s / m / l / xs は、数百組のクラスに対して最適な値です。n では容量が不足し、m 以上の値では処理速度が遅くなります。
Device学習に使用する0 (GPU) NVIDIA製のビデオカード; CUDAが利用できない場合、プログラムが自動的にCPUに切り替える
Workersデータ準備スレッド12 (デフォルト: マルチコアプロセッサ向け)
1
プログラムは起動前に、空のクラス、val内の不要なフォルダを削除する、およびval内の空の場所を特定します。初回起動時に、学習環境 (Python 3、ultralytics、onnx、onnxslim、onnxruntimeのパッケージ) がインストールされます。インターネット接続と数分間の時間が必要です。
2
ゾーン・ペアモデルの場合、erasing、flip、crop、randaugmentは不要です。これらのアウグメンテーションは、異常クラス (反転したゾーンは別のゾーン) と競合します。関連する文字列がコンソールに表示されます。
3
STOP AI MODEL」というボタンが赤色に点灯します。右側のリングは、各エポックにおける進捗率を示しています。学習の進行状況は、コンソール画面で確認できます。2つのゾーンで100エポックの学習を行う場合、グラフィックボードの性能にもよりますが、約10~15分程度かかります。
4
プログラムが完了すると、best.onnx がモデルフォルダのルートディレクトリにエクスポートされ、すぐに検査に使用されます。 "ONNXエクスポート" ボタンは、再学習なしでエクスポートを繰り返します。
アドバイス。不良データや新しいデータが追加された後、同じボタンを使って再学習を行います。これにより、データセットが更新され、AIモデルが再トレーニングされますbest.onnx書き換えられています。この際、グリッド部分は触らないでください。

5. 検査

すべての作業は「検査」タブで行います。モデルはすでに学習済みであり、残りの作業は、検出領域の調整、閾値の設定、テンポのソースの選択、そして、基板がどのような向きでも認識されるようにする場合は、ライブコンベア機能を有効にする、というものです。

「Inspect」タブでの作業:モデル model_4\best.onnx、行「検査クラス:プリント基板 - 領域 2、異常クラス 2。領域 N は zone_N / zone_N_anomaly のペア内で解決、閾値 50 %」、2000ms の周期を持つライブコンベア、および「正常 - 112 個」を示すインジケータ
「Inspect」タブでの操作:モデルmodel_4\best.onnx、行「検査クラス:基板 - 2エリア、異常クラス2。エリアNはzone_N / zone_N_anomalyの範囲内で解決、閾値50%」、2000msの周期を持つライブコンベア、および「正常 - 112点」を示すインジケータ、下部に速度と「GPU」、「グレースケール分析」のアイコンが表示。画面上部には両エリアが緑色で表示され、「正常」と表示。

5.1. モデルとゾーンを割り当て、確認する

1
モデルが指定されていない場合は、「選択」ボタンをクリックし、「検査用のONNXモデル」を選択してください。モデルのフォルダに`best.onnx`という名前のファイルがあることを確認してください。 「検査対象クラス」という欄には、すべてのクラスが表示されます。 これらのクラス名は、ONNXファイル自体から取得されるため、出力番号とクラス名が必ず一致します。
2
クリックしてくださいゾーンペア:ゾーン ↔ モデル (閾値を確認)ウィンドウに表示されている内容は以下の通りです:「グリッド内のゾーン数:2 / クラス数:」zone_NNNモデル:2、異常クラス数:2。各グリッド領域にはそれぞれ異なるクラスが割り当てられています。 「モデル内にクラスが定義されていない領域がある」または「グリッド内に領域が定義されていないクラスがある」という警告は、学習後にグリッドが変更されたことを意味します。
3
AIを使用しない」設定にすると、このカメラでのAI解析が一時的に停止されます。ただし、設定は削除されません(各カメラごとに設定フラグが異なります)。「モデルを削除する」オプションを選択すると、モデルと関連するスロットが完全に削除されます。

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%の差を、単に赤い範囲で表示するのではなく、オペレーターが明確に認識できるようにするためのものです。

アドバイス。 まず、確実に正常な10枚の基板で、閾値を徐々に上げていき、すべての領域が緑色で表示されるように調整します。その後、既知の不良基板でテストを行い、閾値を調整します。プログラムは、10秒ごとに「[領域ペア] … normal N, anomaly M, 閾値 0.50; 最悪のq: z17:0.31 …」という文字列をコンソールに出力します。これにより、どの領域が閾値に最も近いかを確認できます。

5.3. ライブパイプライン: どの姿勢でも動作

ガロチカ稼働中のコンベア:どの角度でも使用可能各解析の前に、位置合わせ領域の検索が行われます。フレームが基準画像と一致させられ、一致した画像から領域が切り出されます。ビデオには、位置合わせ領域と領域の境界線が描画されます(緑色は正常、赤色は異常)期間、ミリ秒この設定では、スキャン頻度(デフォルトは1000、画像では2000)を設定できます。隣にあるインジケーターは、緑色で「正常:N個の点」、赤色で「異常:N個の点」、オレンジ色で「基板が見つかりません」または「基準画像がありません - 記録してください」と表示されます。判定は、1回のスキャンごとに行われ、結果は累積されません。

基準画像と位置合わせ領域は、撮影時と同じ基準画像の固定ボタンで固定します(4.4節)。基準画像と領域を開いて表示します。動画には、位置合わせ領域の境界線と、基盤が一致した際の青いマーカーポイントが表示されます。調整後に画面外に出る領域は、スキップのラベルでマークされます。

5.4. どの信号で分析するか

速度ソースは常に1つ: 新しいものを読み込むと、以前のものを取り除きます。

方法起動方法適用するタイミング
カメラ「カメラ」のチェック連続監視:速度は「カメラ」タブの「1秒あたりの分析数」のスライダーで調整
タイマー「タイマー」のチェックと、ミリ秒単位のインターバル一定間隔での監視(例:1秒ごと)
トリガー「トリガー」リストから関連を選択し、「+」または「-」の入力に応じて分析カメラにセンサーを設置したコンベア:製品が到着した瞬間にフレームを撮影する - 最も正確な方法(第6章)
GPUチェックボックス「GPU」デフォルトで有効; チェックをオフにするとモデルが再起動
セグメント分析チェックボックス「セグメント分析」セグメントで学習されたモデルに対して、自動的に有効になります。推論前にセグメントがグレースケールに変換されます。

5.5. 黄色の領域: クリックで領域をオフにする

特定の領域については、一時的に制御から外す必要がある場合があります。その場合、該当する要素は特定のパーティに設定されておらず、領域は専用の機能によって保護されています。現在、動作確認を行っています。この操作には、グリッドやモデルの修正は不要で、領域はビデオ上で直接制御できます。操作は、"Inspect"というタブで行います。

1
カメラのタイル上の領域をクリック: 領域が黄色になり、分析から除外されます。再度クリックすると、領域が再び分析に含まれるようになります。
2
領域グループ: 左側のボタンを押しながら、ボード上の領域をドラッグします。ドラッグされた領域はすべてオフになります。すべての領域がすでに黄色だった場合、ドラッグ操作で再度有効になります。ホイールを拡大しても動作します。
3
黄色の領域のリストは、カメラとモデルごとにデータベースに保存され、プログラムの再起動やカメラの再接続時に更新されます。コンソールには「[領域] … 領域をオフ: N」という文字列が表示されます。

「黄色(クリックで無効化)のエリア」が何をするかは、OUTPUTウィンドウの「サウンド」タブにあるチェックボックス「黄色(クリックで無効化)のエリア」は、デフォルトで有効になっていますによって決定されます。

チェックボックス黄色の領域の動作
有効 (デフォルト)領域は分析されません: セグメントはネットワークに送信されず、OFFラベルが表示され、TCP通信もカメラからの出力もありません。ライブ環境では、黄色の領域は「正常/異常」という判断に影響を与えません。
オフ黄色の枠は、単に「分析中、通常の動作」というメモとして表示されます。これにより、監視を停止せずに、確認対象の領域を簡単にマークできます。
注意。 黄色のエリアでの「リジェクター」の設定を無効にする必要はありません。設定を有効にすると、設定が適用されず、設定を無効にすると、すぐに機能が復元されます。

5.6. 画面とコンソールで確認できること

  • 領域ごとに結果が表示されています。領域の境界線は、テーブルの領域の色で表示され、トリガーが作動すると赤色になります。50個以上の領域がある場合、正常な領域は緑色の境界線で表示され、異常や不確実な領域は、それぞれの領域ごとに多数のラベルが表示され、画像の見通しを妨げ、描画負荷を増加させていました。黄色い領域はクリックで非表示(5.5節参照)されます。
  • 画面下部の「トリガー分析」パネルには、各トリガーイベントが以下のように表示されます。[時間:分:秒.ミリ秒] カメラ入力 + トリガー 4ms | AI 12ms #57。各ゾーンの結果も表示されます。これらの情報はデータベースには保存されません。
  • ビデオ上の領域を右クリックすると、「この領域の検出クラス → …」と入力することで、その領域のモデルの応答名を変更できます(モデル自体は修正されませんが、リジェクトとログには新しい名前が表示されます)。また、「この領域のリジェクトを作成」と、ルールのカウンターも表示されます。
  • 検査画像の保存設定:描画された領域を含む画像は、ファイル名が "inspect_….jpg" の形式で保存されます。各カメラの設定は異なります。
  • 10分ごとに、diagというサブフォルダに、ライブラインの映像と、該当箇所のテキストリストが書き込まれ、過去20枚の画像が保存されます。これにより、フォルダのサイズが大きくなることなく、紛争が発生した場合の検証が可能になります。

6. トリガー:カメラ入力側の外部センサー

コンベアシステムにおける主な動作モードは、カメラがセンサーからの電気信号に基づいて、特定のタイミングで画像を撮影することです。これが最も正確な撮影タイミングであり、製品は常にフレーム内の同じ位置にあり、各製品に対して正確に1回だけ画像分析が行われます。 "トリガー" ウィンドウは、センサーとカメラの接続関係を収集し、選択されたコネクタに対応する接続図を表示します。

HIKROBOT用(6ピン)のトリガー窓: PNPセンサー、ピン2への信号、共通ピン5、配線図。
HIKROBOT用(6ピン)のトリガー窓: PNPセンサー、ピン2への信号、共通ピン5、配線図。
SICK picoCam用(6ピン):ピン4(トリガー+)への信号、ピン3(トリガー−)への共通ピン。
SICK picoCam用(6ピン):ピン4(トリガー+)への信号、ピン3(トリガー−)への共通ピン。
1
動画の上にある「トリガー」の項目をクリックします。次に、「トリガー機器」のリストから、光学センサー(例:BAOLSEN QAF-Q2P、4線式)、またはPNPまたはNPN出力を持つ任意のセンサーを選択します。また、「カメラコネクタ」として、HIKROBOTの6ピンまたはSICK picoCamの6ピンを選択し、「カメラ」の種類を指定し、「センサー出力タイプ」を「PNP」(通常はプラス信号)または「NPN」(マイナス信号。この場合は、1~4.7kΩの抵抗を+24Vに接続する必要があります)を選択します。
2
図に基づいて配線を作成してください:センサーとカメラの電源を24Vのブロックから供給し、センサーの信号線をカメラ入力に接続し、入力の逆線を0Vに接続します。センサーの白いワイヤーは、2番目の出力として使用され、接続は不要です。
3
接続を作成」ボタンをクリックすると、その接続情報がデータベースに保存されます。同じ接続情報は重複して保存されません。 「接続を削除」ボタンをクリックすると、選択された接続が削除されます。
4
Inspect」タブで、リストにある「Trigger」の中から関連するものを選択し、「入力側で+の分析」または「入力側で-の分析」というモードを選択します。これにより、カメラはトリガーモードに切り替わります。具体的には、HIKROBOTではTriggerMode = On、TriggerSource = Line0と設定され、SICKでは、キャプチャを停止し、モードを設定して再起動します。隣の円は、入力側のレベルを示します。

コネクタの配線

ピンHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR:カメラの電源は9~24Vです。GND - カメラの電源
2OPTO_IN — ライン0(プラス)への入力、トリガー信号VCC - カメラの電源 (12-24V)
3GPIO - ライン2、入力または出力トリガー − — トリガー入力、オプトカプラー (−)
4OPTO_OUT - 1号線(プラス)の出口。トリガー + — オプトトランジスタの入力端子 (+)
5OPTO_GND — 全方向の光を伝える配線Flash + - デジタル出力 (+)
6GND - カメラの電源Flash - - デジタル出力 (-)
重要です。 カメラ側の「パパ」端子とケーブル側の「ママ」端子は鏡像関係にあります。唯一の目安は、スライドの切り欠きです。SICKの場合、この切り欠きは1番と6番の間にあり、鏡面側に向いています。手で持っている側から端子を確認してください。端子の誤りは、電源と出力が隣接していることを意味します。SICKの配線は、実際に音を鳴らすことで確認してください。
アドバイス。 +方向からの撮影を、下降方向からの撮影ではなく行ってください。実際の装置では、+方向からのフレームのずれは4.2ms、下降方向からのずれは40.7msでした。センサーの確認:茶色と青の間の電圧は常に24Vで、これが電源です。信号は、黒と青の間の信号を参照し、光を遮断してください。もし変化しない場合は、黒から茶色の線に2~10kΩの抵抗を挿入してください。この場合、24V↔0VはNPNを示します。

7. 出力: リレー、カメラのデジタル出力、およびTCP

リジェクターは、検査の結果を具体的な行動に変換します。ルールは特定のエリア(またはモデル、クラス、または指定されたエリア全体)で設定され、モデルがそのエリアで指定されたクラスを認識した場合にトリガーされます。トリガーされるアクションは3種類あります。1つは、ロボットまたはPLCへのTCPパケット送信、2つ目はカメラのデジタル出力の切り替え、3つ目はオペレーターへの音声通知です。各トリガーはログに記録されます。

7.1. 出力に関する情報: 接触とテスターでの確認

ビデオ内の "EXIT" ボタンを押すと、設定を変更するウィンドウが表示されます。このウィンドウには、どの端子が使用されているか、電源なしでテスターで確認する方法、および負荷を接続する方法などが表示されます。

HIKROBOT - ライン1 (オプトカプラー) の出力: ピン4 (+) と 5 (−) に接続、最大電流 25mA。
HIKROBOT - ライン1 (オプトカプラー) の出力: ピン4 (+) と 5 (−) に接続、最大電流 25mA。
SICK picoCam - フラッシュピン (オプトカプラー) の出力: ピン5 (+) と 6 (−) に接続、150mA 連続。
SICK picoCam - フラッシュピン (オプトカプラー) の出力: ピン5 (+) と 6 (−) に接続、150mA 連続。
  • 出力 - オプトカプラーの「干渉スイッチ」: 自身の電圧は出力せず、単に回路を接続するだけ。外部電源が必要です。
  • テスターでのΩモードでの確認: 出力OFF - 接触不良 (OL)、ON - 数百Ω。 スピーカーは両方のケースで音が出ないため、数字を確認してください。何も変わらない場合は、テスターの針を逆向きにしてください。オプトカプラーは極性があります。
  • 負荷: +24V → ランプ → ピン「+」、ピン「−」→ GND。 HIKROBOT の場合、25mA の上限: 27mA の信号回路はすでに上限を超えているため、電源を下げたり、中間リレーを設置してください。 SICK の場合、20~30mA のランプは直接接続できます。

7.2. OUTPUT ウィンドウ: ゾーン設定

右側のパネルにある「OUTPUT」ボタン(または、領域を右クリックして「この領域のリジェクターを作成」を選択)をクリックすると、「OUTPUT - TCPパケットとカメラのデジタル出力」というウィンドウが開きます。左側には、カメラ → AIモデル → クラス → 領域というツリー構造が表示され、領域にはチェックマークが表示されます。右側には、「ゾーンルール」「動作履歴」「データベース」というタブがあります。

OUTPUT ウィンドウ: 左側のゾーンの木構造、ゾーンのルールリスト、「ルール」グループ、および TCP ウィンドウでの設定。
OUTPUT ウィンドウ: 左側のゾーンの木構造、ゾーンのルールリスト、「ルール」グループ、および TCP ウィンドウでの設定。
1
ツリー構造から領域を選択します(右側のタイトルには、選択されたパスが表示されます:HD USB カメラ → model_5 → 1 → 領域 1 (T1.C1))。+ 新しい TCP+ 新しいデジタル信号、または + 新しい音声 ボタンをクリックします。
2
グループ内で規則選択してくださいAIクラス(ゾーン・ペアの場合) 作動する条件は、..anomalyまたはnormal; *- 任意のクラス)、チェックマークオン状態. または 電源オン必要に応じて授業が終わるまで繰り返す繰り返し間隔とクラス変更の確認、承知いたしました(デフォルトでは1500: 新しいクラスは、交代が完了とみなされるために、連続してこれだけの期間維持される必要があります。)
3
TCPタブ(セクション7.3)、カメラ出力(セクション7.4)、または声(セクション7.5)のいずれかの設定を行ってください。
4
確認待ちの連鎖:このルールを確認します(パケットを送信するか、出力トリガーを発生させるか)。ゾーンの動作をシミュレートします(ゾーン内のすべてのルールを、アンチバウンス機能とログ機能を備えた処理キューで実行します)。
5
1つのエリアを作成」をクリックします。複数のエリアが選択されている場合は、ボタンが「Nつのエリアを作成」に変わります。「モデルのノード」では「モデル全体に保存」、「クラスのノード」では「クラスに保存」となります。下部には、「選択したエリアを有効/無効/削除」という項目があります。

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. カメラからの離散的な出力

「カメラ出力」タブ:出力方法、ライン、レベル、パルス、手動確認ボタン。USBカメラには離散的な出力は存在せず、TCPのみが利用可能です。
「カメラ出力」タブ:出力方法、ライン、レベル、パルス、手動確認ボタン。USBカメラには離散的な出力は存在せず、TCPのみが利用可能です。
フィールド設定
出力方法:自動(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パルス のボタンは、テスターまたはランプを使用してピンをテストします。 "カメラの機能 は、すべての方法を調査し、レポートを作成します。 手動でのテストは、同じ記録に記述されます。

複数のゾーンが1つの出力に接続される場合。 1つのピンに複数のゾーンが接続されている場合、その出力は論理的な「AND」として機能します。すべてのゾーンがHIGHを要求する場合のみ、出力はHIGHになります。1つでもゾーンがLOWを要求すると、出力はLOWになります。これは、ログに「N番の出力で、kつのゾーンがLOWを要求 → HIGH/LOW」と記録されます。したがって、1つの出力は、多数のゾーンが接続されたプリント基板から構成されます。
重要な点。 SICK の flash-ピンは、デジタル出力とバックライトの両方に使用できます。 脈波ランプを接続する場合は、GPIO を使用してください。 ノイズ対策として、デフォルトで 500ms の間隔で動作し、イベントが発生しない場合はログに記録されません。

7.5. 音による通知:各エリアごとに異なる音

第三の種類のルールは、コンピューター上でプログラムを使用した場合の音による通知です。オペレーターは画面を直接見る必要はありません。プログラムからの音で、特定のエリアが異常状態になっていることを認識し、異なるエリアからの音で、どのエリアが異常状態になっているかを特定できます。この音は、USBやRTSPなどの、個別の出力がないカメラにも対応しています。

1
ツリー内の領域を選択し、`新しいサウンド` をクリックします。 「ルール」グループで、クラス(例:`異常)を指定し、「有効」のチェックボックスにチェックを入れてください。
2
「サウンド」タブで、リストからを選択します。内蔵されている音は10種類あります。短い音、ダブル音、トリプル音、低音、高音、上昇音、下降音、アラーム音(サイレン)、長い音、チャイムなどです。「再生」ボタンを押すと、選択した音が再生されます。
3
自分の音:ファイルのアップロード をクリックし、WAV、MP3、またはWMAを選択します。ファイルはプログラムの近くにあるsounds\customフォルダにコピーされ、「自分の音」というラベルが付いたリストに表示されます(USBメモリは取り外しも可能です)。サウンドフォルダ をクリックすると、このフォルダが開きます。ファイルは直接ここに保存できます。
4
音と音の間隔を、1000msから10000msの間で設定します。この時間内に、信号を発した後、音は繰り返されません。ゾーンのクラスが変更されても、オペレーターは10秒間に1回程度しか信号を聞き取ることができません。
5
1つのエリアで作成」をクリックするか、チェックボックスでエリアを選択し、すべてのエリアに対してルールを作成します。各エリアには異なる音を設定し、別のエリアには別の音を設定します。
6
チェックボックス黄色の(クリックで無効化)領域は無音 が、デフォルトで「一時停止」領域が有効になっている: 検査タブ(5.5セクション)でクリックして無効化した領域は、モデル全体で音を出し、TCP接続やカメラの動作を停止させません。
動作仕組み
「繰り返し」のチェックボックスをオフにした場合異常状態になったエリアのクラスが確認された場合、一度だけ音が出ます(「クラス変更の確認」後)。クラスが維持されている間は、音が鳴りません。
「クラスが維持されている間、繰り返し」のチェックボックスをオンにした場合「繰り返し間隔」で信号が繰り返し再生されますが、音の再生間隔よりも多くは再生されません。エリアが指定されたクラスの状態を維持している間は、信号が繰り返し再生されます。
複数のエリアが同時に異常状態各エリアはそれぞれ異なる音を発します。異なるエリアからの信号は互いに消音しません。ただし、同じエリアからの信号は繰り返し再生されます。
ログ各試行は、「動作記録」に「サウンド「…」」という形式で記録されます。ファイルが見つからない場合や、オーディオデバイスが動作しない場合は、「エラー」という形式で記録され、プログラムは引き続き動作を続けます。
確認`このルールを確認する:すぐに音が再生されます。`ゾーンのトリガーをエミュレートする:音がTCPと出力ポートを通じて、実際の処理キューに送られます。
アドバイス。 最も重要な箇所(コネクタ、パワーコンポーネントなど)には、サイレンやトリプルアラームを使用し、残りの箇所には短い音を使用します。これにより、特定の音が鳴ると、すぐにラインに向かえば良いのかどうかを判断できます。モデル全体の音の割り当ては、モデルツリー内の特定のノードまたはクラスを選択することで行われます。

7.6. 動作記録とデータベース

動作履歴」タブでは、直近300件の動作記録が、時分秒.ミリ秒の形式(HH:MM:SS.mmm)で表示されます。✔/✖ のマークで状態が示され、カメラ、モデル、クラス、ゾーンなどの情報と、実行されたアクション([メッセージ]など)が表示されます。この情報はリアルタイムで更新されます。 「更新」ボタンと「クリア」ボタンがあります。

「データベース」タブ:データの保存場所、バックアップ、および1つのファイルでのデータベースの復元
「データベース」タブ:データの保存場所、バックアップ、および1つのファイルでのデータベースの復元

タブデータベースプログラムは、すべてのデータを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つのモデルで、すべての領域に対応できます。各領域には独自のペアのクラスが存在するため、「類似したクラスを統合する」という目的で以前は複数のモデルを用意していた必要はなくなります。標準的な構成は、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. 短いチェックリストと不具合の特定

ゼロからのカメラ用基板設定チェックリスト

1
カメラ → 「カメラを追加」 → 自分のカメラを選択 → 追加
2
カメラタブ:解像度 → 「AI(フレームごとの自動設定)」(または「USBでパラメータを固定」)→ 「パラメータを保存」→ 「[設定を保存]」で設定を保存。必要に応じて、「グレースケールで学習」
3
AIモデル → 「新しいAIモデルを作成」→ 名前
4
「ROI → 学習モデルにクラスとして追加」→ 各部品の周囲に枠 → 領域のサイズ(例:256)→ Enter。同じ部品が多数ある場合は、基板全体とグリッドに枠を設定。
5
「マーカーで製品に領域を固定」チェック → 「基準画像」を設定 → 該当する基板上の部品の領域をフレームで囲む(検査領域ではない)→ 「[指定された領域で領域を検索]」
6
「領域ペア:領域ごとの写真」→ 「撮影」。3~5枚の正常な基板で繰り返す。不要な領域は、フレーム上でクリックしてオフにする(赤色)。
7
「ゾーンペア:異常領域」→「作成」:要素とベースの移動と回転は、すでに設定されています。「基準画像にゾーンを設定」が必要な場合は、接合用ピンを配置します。
8
AIモデルの学習 (画像サイズ: 128x128, バッチサイズ: s, エポック数: 50) → 100%完了を待つ → best.onnx の値は自動的に設定されます。
9
検査→「ゾーンペア:ゾーン ↔ モデル」→一致を確認→閾値。「カメラ」またはトリガーを選択。「動的な基板の場合」→「ライブコンベア」を使用。
10
出力→ゾーンを選択→異常クラス(音、TCP、またはカメラからの出力)に対するルール→「ゾーンの動作をエミュレート」→「Nのゾーンで作成」

もし問題が発生した場合

症状確認すべきこと
カメラがリストに表示されない電源とケーブル: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つの領域での例、モデルのフォルダ作成、位置合わせ領域、画像「前/後」を含む「ベース要素」の合成データ、カラーパレットと線の太さ、赤い領域、コンソール。