FP16/INT8量子化・パイプライン並列化で外観検査の推論速度を最大10倍に。Jetsonでのベンチマーク結果も公開。
製造ラインの外観検査では、ラインタクトに合わせたリアルタイム推論が必須です。PyTorchやONNXのままでは推論速度が不足し、外観検査のタクトに追いつかないケースが多発します。
NVIDIA TensorRTは、学習済みモデルをJetsonやGPU向けに最適化する推論エンジンです。FP16/INT8への量子化、レイヤー融合、カーネル自動選択により、外観検査の推論速度を最大10倍に高速化できます。
学習時のFP32(32ビット浮動小数点)をFP16(16ビット)に変換する最も手軽な最適化です。外観検査モデルの精度低下はほぼゼロで、推論速度は約2倍になります。Jetson AGX OrinはFP16演算に特化したTensorコアを搭載しており、外観検査との相性が抜群です。
さらに踏み込んだ最適化がINT8(8ビット整数)量子化です。キャリブレーションデータ(外観検査の代表的な画像100〜500枚)を使って、精度を維持しながら推論速度をFP32比で約4倍に向上させます。外観検査の良否判定のような二値分類タスクではINT8でも十分な精度が出ることが多いです。
外観検査の処理は「画像取得→前処理→推論→後処理→判定出力」の5段階で構成されます。これらを直列で実行すると、各ステージの待ち時間が累積します。TensorRTのCUDAストリームを活用し、前の画像の後処理と次の画像の前処理を並列実行することで、外観検査のスループットを2〜3倍に向上できます。
学習済みの外観検査モデルをONNX形式でエクスポートします。torch.onnx.exportで動的入力サイズに対応させておくと、後のバッチ処理で柔軟に対応できます。
trtexecコマンドまたはPython APIでONNXモデルをTensorRT Engineに変換します。FP16フラグ(--fp16)またはINT8フラグ(--int8 --calib)を指定して量子化レベルを選択。外観検査の要求精度とラインタクトのバランスで決定します。
INT8量子化を行う場合、外観検査の代表的な画像(良品・不良品を含む100〜500枚)をキャリブレーションデータとして用意します。データの偏りがあると量子化後の精度が低下するため、現場で実際に撮影した画像を使うことが重要です。
OpenCVで画像を取得し、CUDA上で前処理(リサイズ・正規化)→TensorRT Engine推論→後処理(NMS・閾値判定)→PLC出力のパイプラインを構築。CUDAストリームで各ステージを非同期実行します。
| モデル | FP32 | FP16 | INT8 | 用途 |
|---|---|---|---|---|
| YOLOv8n | 45 FPS | 120 FPS | 200 FPS | 外観検査(欠陥検出) |
| YOLOv8s | 30 FPS | 85 FPS | 150 FPS | 外観検査(多クラス分類) |
| ResNet50 | 80 FPS | 200 FPS | 350 FPS | 外観検査(良否分類) |
※Jetson AGX Orin 64GBでの実測値。外観検査の入力解像度640×640の場合。
INT8量子化の精度検証は必須。外観検査では見逃し(False Negative)が致命的です。量子化後は必ず実データで精度検証を行い、FP32と比較して検出率の低下が許容範囲内であることを確認してください。
TensorRT Engineはデバイス固有。開発用PCで構築したEngineはJetsonでは動作しません。必ずデプロイ先のJetson上でEngine構築を行ってください。
動的バッチサイズの活用。外観検査で複数カメラの画像を同時に処理する場合、動的バッチサイズを有効にすることでGPU使用率を最大化できます。
INT8量子化のキャリブレーションデータに良品画像ばかり使うと、不良品の検出精度が低下します。外観検査では見逃し(False Negative)が最も避けるべき事象です。キャリブレーションデータには必ず不良品画像を含め、実際の不良発生比率に近い構成にしてください。
TensorRTで推論を高速化しても、前処理(リサイズ・正規化)をCPUで実行していると、そこがボトルネックになります。外観検査のパイプライン全体を高速化するには、前処理もCUDA上で実行するか、NVIDIA DALI(Data Loading Library)を活用してGPU上で前処理を完結させることが重要です。
外観検査のAIモデルを再学習した後、TensorRT Engineの再構築を忘れるケースがあります。PyTorchのモデルを更新しただけでは、Jetson上で動作するTensorRT Engineは古いままです。CI/CDパイプラインにEngine構築ステップを組み込むことで、モデル更新と同時にEngine再構築が自動実行されるようにしましょう。
| ラインタクト | 必要FPS | 推奨最適化 | 備考 |
|---|---|---|---|
| 2秒以上 | 1〜10 FPS | FP16で十分 | 低速ラインや手動搬送 |
| 0.5〜2秒 | 10〜30 FPS | FP16推奨 | 一般的な製造ライン |
| 0.2〜0.5秒 | 30〜100 FPS | INT8推奨 | 高速包装ライン |
| 0.2秒以下 | 100+ FPS | INT8+軽量モデル | 超高速ラインは複数カメラ分散 |
NVIDIAは次世代Jetson(Jetson Thor)でBlackwell GPUを搭載予定で、AI演算性能は現行Orinの最大7.5倍に向上する見込みです。TensorRTも継続的にアップデートされており、新しいモデルアーキテクチャ(Transformer系など)への最適化が強化されています。
外観検査の現場では、より大規模なVLM(Vision Language Model)をエッジで動かすニーズが高まっています。TensorRTの進化により、従来はクラウドでしか動かせなかったVLMベースの外観検査がJetson上で完結する時代が近づいています。Nsightでは既にVLMをTensorRTで最適化し、Jetson上でラベル文字認識・照合を実現しています。
外観検査のTensorRT最適化は一度実装すれば終わりではなく、モデルの進化・デバイスの世代交代に合わせて継続的に改善していくものです。NsightはNVIDIA Inception認定パートナーとして、最新のTensorRT技術を外観検査に適用し続けます。
TensorRT最適化もNsightにお任せ:外観検査モデルのTensorRT最適化から、Jetsonへのデプロイ、PLC連携まで一貫対応。元キーエンスの検査ノウハウとエッジAI実装を組み合わせた、現場で動く外観検査を構築します。お問い合わせはこちら →
外観検査の推論速度でお困りの方、TensorRT最適化からPLC連携まで一貫サポートします。
無料サンプル検証を依頼する →