
鋼帯の表面をフレームごとに調べ、その場で合否を判定します。
エッジデバイス上で完結する鋼材表面の欠陥検査:固定カメラがストリップまたは部品を監視し、フレームごとに OK/NG を判定して PLC と MES に同時送信する。reComputer J30 / J40(Orin)、または Hailo-8 オプション付き reComputer R2000 シリーズ(R2035-12)で動作する。
カメラ位置が固定され、照明が安定し、欠陥が画面内で十分な画素数を占めるライン。

冷間圧延ラインの出口、スリッター後の検査台。フレームごとの判定を排出やマーキングの工程につなぎます。

排出シリンダーと警報灯がすでにある旧ライン。判定を Modbus コイルに書き、PLC は従来どおり読み取ります。

新ラインの試作段階。まずラインの映像を記録し、その後にしきい値と欠陥の分類を決めます。
適さない条件:動いたり再フォーカスしたりするカメラ位置、照明の変動が大きい工程。精度は欠陥の分類によって差が大きいため、ライン規模を決める前に対象の分類で確認してください。
固定カメラが映像を取得し、検査ホスト(reComputer J30 / J40 シリーズ、または Hailo-8 を選択した reComputer R2000 シリーズ)が判定し、結果を既存の PLC と MES へ送ります。

ラインごとに必要なのは 3 つです。映像を出す固定カメラ、検出器と OK/NG 判定ルールを動かす 1 台のホスト、判定結果を受け取る側。検出、判定ルール、MQTT ブローカー、Modbus TCP サーバー、調整用ページはすべてこの 1 台のホスト上にあり、画像もフレームデータもラインの外へは出ません。
ストリップや部品に向けた RTSP カメラであれば機種を問いません。この設計が制約するのはカメラ機種ではなく、構図と照明です。
実測に使った入力は 10 FPS の合成動画であり、カメラのストリームではないため、ストリーム数を決める前に自前のソースで負荷試験してください。
ライン 1 本につき 1 台のホストが、検出器・OK/NG 判定ルール・3 つの出力すべてを担います。判定ロジックはどちらのホストでも同一で、違うのはアクセラレータとモデルの入手方法です。
| 検査ホスト | アクセラレータ | モデルの配布方法 | 実機で計測した項目 |
|---|---|---|---|
| reComputer J30 / J40(Orin Nano 8GB / Orin NX 16GB) | Orin GPU | 初回デプロイ時にデバイス上でビルド、実測 291 秒 | 精度、スループット、エンドツーエンドレイテンシ、マルチストリーム容量 |
| reComputer R2000 Series、Hailo-8 オプション(R2035-12) | Hailo-8 | デバイス外でコンパイル済み、デプロイ時にダウンロード | スループット、エンドツーエンドレイテンシ、精度 |
代替検出器を 2 種類から選べるのは Jetson のみで、Hailo-8 では既定の検出器が動作します。任意のアノマリースコア(既定オフ)を、判定結果を変えずに MQTT メッセージへ追加できます。
判定結果は PLC、MES、ローカルページに同時に届きます。PLC は Modbus TCP で読み取り、MES は MQTT で購読し、ブラウザはページを開きます。いずれも検査ホストに直接接続します。データインターフェースは下記の「何が得られるか」をご覧ください。
稼働後、ライン横の画面で見て操作するもの。
公開データセットにおけるエンジニアリングベンチマークです。データセットのライセンスは現在確認中です。
| ラインが得られるもの | 代表値 | 機器 |
|---|---|---|
| フレーム取得から Modbus コイル上の判定まで | 9.3 ms P50(9.5 ms P99) | reComputer J40 Series(J4012、Orin NX 16GB) |
| 欠陥検出精度(mAP50) | 0.7577 | reComputer J40 / J30 Series |
| 配布時しきい値での適合率と再現率 | P 0.765 / R 0.697 | reComputer J40 Series |
| ライン速度 10 FPS で 1 台が扱えるチャンネル数 | 8 | reComputer J40 Series |
同じ経路で reComputer J30 Series は 10.56 ms P50、Hailo-8 オプション付きの reComputer R2000 Series は 11.61 ms P50、mAP50 0.7091 です。
精度は欠陥クラスによって異なります(スクラッチ 0.97、クレージング 0.36)。全体の数値でラインを見積もる前に、対象となるクラスを確認してください。
検証画像はすべて欠陥を含むため、欠陥のないストリップでの誤報率は自社のライン画像で測定してください。機器ごとの実測データとテスト条件は エンジニアリング Wiki · 表面欠陥検査ソリューション を参照してください。
導入後、この 3 つのインターフェースが契約のすべてです。
| 種別 | 場所 | 内容 |
|---|---|---|
| Modbus TCP | ポート 502、ユニット 1、Coil 0/1 + HR 0〜7 | Coil 0 = NG、Coil 1 = OK。HR 0 は主要欠陥クラス、HR 1 は欠陥数、HR 2〜5 は主要な枠の座標 ×10000、HR 6〜7 はハートビート秒数 |
| MQTT | ポート 1883、<device-name>/inspection/<stream-id>/results | フレームごとに JSON 1 件:判定、理由、欠陥数、主要クラス、各処理時間、そしてクラス・スコア・位置を持つすべての枠 |
| HTTP | ポート 8080、/preview.mjpg /healthz /events /snapshot.jpg | 読み取り専用の立ち上げ用ページ:枠付きのライブプレビュー、ヘルスカウンタ、直近の判定 |
レジスタはコイルより先に書き込まれるため、コイルをトリガーにする PLC は対応するフレームの値を読めます。1 台で複数チャンネルを扱う場合、Modbus が運ぶのは最新の判定のみで、チャンネルごとの結果は MQTT から取得します。デバイス名とストリーム ID は導入時に設定するため、複数のラインで 1 つのブローカーを共有できます。枠の番号はフレーム単位で、フレームをまたいで同じ欠陥を追跡しません。任意の異常スコアは独立したフィールドで、判定を変えることはありません。
再利用できる単位は「鋼材欠陥の 6 クラス」ではなく、「カメラ → 検出器 → OK/NG ルール → Modbus + MQTT + 立ち上げ用ページ」というチェーンです。製品に紐づくのは検出器のクラスと重みだけで、それ以降はそのまま使えます。
| レイヤー | 移植時に必要な作業 |
|---|---|
| カメラの構図と照明のルール、固定画角の要件 | そのまま再利用 |
| 2 つのランタイム(Orin の TensorRT、Hailo-8 の INT8)とモデル配布 | そのまま再利用 |
| すべての検出器の背後で共通の後処理 | そのまま再利用 |
| OK/NG ルールとスコアのしきい値 | 書き直さず、再調整 |
| Modbus レジスタマップ、MQTT トピック、メッセージ検査 | そのまま再利用 |
| 任意の異常検知チャンネル | そのまま再利用。自社の OK 画像で再キャリブレーション |
| 検出器のクラスと重み | 自社の画像で再学習 |
適用範囲:ストリップ・シート・部品の表面欠陥で、PLC がライン速度の範囲内で OK/NG 信号に基づき動作する用途。
現場の状況をお聞かせください。ハードウェアはこちらで選び、その後データ接続と手順に進みます。
1 台のホストで何チャンネルのカメラを扱いますか?ラインの 1 か所が 1 チャンネルです。処理容量は Orin NX 16GB でのみ、チャンネルあたり 640² / 10 FPS で測定しています。
| 構成 | 役割 | 機材 | 数量 |
|---|---|---|---|
| IP カメラ + reComputer J30 / J40(Orin) | Inspection Host | reComputer J40 シリーズ(Jetson Orin NX) / reComputer J30 シリーズ(Jetson Orin Nano)(いずれか) | 1 |
| IP Camera | IP Camera | 1 | |
| IP カメラ + reComputer R2000(Hailo-8) | Inspection Host | reComputer Industrial R20 シリーズ | 1 |
| IP Camera | IP Camera | 1 |
| プリセット | 映像ソース | 検査ホスト | モデルの配布方法 |
|---|---|---|---|
| IP カメラ + reComputer J30 / J40(Orin) | 自前の RTSP カメラ | reComputer J40(Orin NX 16GB)または J30(Orin Nano 8GB) | 初回デプロイでデバイス上にビルド。Orin NX 16GB で実測 291 秒 |
| IP カメラ + reComputer R2000 Series(R2035-12、Hailo-8) | 自前の RTSP カメラ | Hailo-8 アクセラレータオプション付き reComputer R2000 Series(R2035-12) | デバイス外でコンパイルし、導入時にダウンロード |
データセットのライセンスが確認できるまでは使えません。検出器は NEU-DET の転載版で学習されており、原著者からの許諾の連鎖は現在確認中です。確認が取れるまで、重み、コンパイル済みモデル、検出オーバーレイは対外的な成果物に使用できません。
動きます。検出器、OK/NG 判定ルール、Modbus サーバー、MQTT ブローカー、コミッショニングページはすべて検査ホスト上で稼働します。判定に至る経路のどの部分も外部サービスを必要としません。
Modbus TCP、ポート 502、unit 1 経由です。Coil 0 = NG、Coil 1 = OK。HR 0〜7 には主欠陥クラス、欠陥数、主欠陥のボックス、ハートビートが入ります。レジスタはコイルより先に書き込まれるため、コイルをトリガーとして扱ってください。
290 枚の検証画像で、reComputer J40 シリーズは mAP50 0.7577、reComputer R2000 シリーズ(R2035-12、Hailo-8)は 0.7091 です。クラスごとでは scratches の 0.97 から crazing の 0.36 まで幅があります。このモデルが見ているのは 1 つのデータセット、1 種類の照明条件のみなので、実際のラインには自分の画像が必要です。
このデータセットでは測定できません。検証画像はすべて欠陥入りだからです。まず自分のラインを MQTT ストリームで記録し、そこから閾値を決めてください。
reComputer J40 シリーズ(J4012)で 640² / 10 FPS の各ストリームなら 8 路が安定動作し、12 路で低下し、24 路で失敗します。上限を超えたフレームはエラーなく破棄されます。複数ストリームは 1 つの Modbus レジスタブロックを共有するため、ストリームごとの結果は MQTT から取得します。
まずデフォルトの YOLOX-Tiny から始めてください。Jetson での実測タイミングと Hailo-8 ビルドの両方を持つ唯一の検出器です。D-FINE-S と RT-DETRv2-S は Jetson でのみ選択可能で、mAP50 は近い値です。Hailo-8 はどちらもサポートしていません。
そのフレームが無欠陥の参照画像とどれだけ異なって見えるかをスコア化するもので、判定を変えることのない独立フィールドとして出力されます。付属の評価では画像単位の結果はほぼランダムに近かったため、領域単位の信号として読んでください。有効化する前に、自分のカメラで撮った OK 画像で再キャリブレーションしてください。