Vb Vision

ルールベースと AI のハイブリッド検査を、ノーコードで。

開発環境と実行環境が一体になった画像処理コントローラです。カメラ・照明・PLC との接続から、現場の運転画面まで扱えます。処理を並べてつなぐだけで組み立てられ、コードは要りません。

Vb Vision の本体と、検査の処理を組み立てている画面

つまずくのは、作った後です

どちらを選んでも立ち上がります。差が出るのは、そのあとです。

既製品画像処理センサ、スマートカメラ専用開発ライブラリを組んで自分で作るVb Vision なら開発環境と実行環境が一体のコントローラ
仕様が変わる使える処理の幅に収まるかで決まるコードに戻って作り直す処理を差し替えて組み替えられる
判定が合わない途中の値が見えず、当てずっぽうになる見るための仕組みを自分で作る途中の画像と数値をその場で見られる
担当者が替わる設定の意図が残らない書いた人しか読めない組み立てが画面に並ぶので、後から読める

何ができるか

寸法を測る、位置を合わせる、欠けや傷を見つける、文字やコードを読む。外観検査で求められることの大半は、処理の組み合わせで実現できます。

  • 刃先の角度測定の例。刃物の先端角度を測る刃先の角度測定刃物の先端角度を測る
  • 穴位置の検査の例。円を推定して中心位置を出す穴位置の検査円を推定して中心位置を出す
  • 3 次元の高さ計測の例。3D カメラで段差や反りを測る3 次元の高さ計測3D カメラで段差や反りを測る
  • 個体管理の例。バーコードや 2 次元コードを読む個体管理バーコードや 2 次元コードを読む
  • チップの有無検査の例。見本と照合して部品の欠品を見つけるチップの有無検査見本と照合して部品の欠品を見つける
  • メータの読み取りの例。指針の位置を輪郭から読むメータの読み取り指針の位置を輪郭から読む
  • 形状の検査の例。境界を検出して形をたどる形状の検査境界を検出して形をたどる
  • ボトルの検査の例。液面やキャップの位置を輪郭から確認するボトルの検査液面やキャップの位置を輪郭から確認する
  • 粒の分類検査の例。個々の粒を切り分けて種別ごとに数える粒の分類検査個々の粒を切り分けて種別ごとに数える
  • ガラス管の外観検査の例。透明体の傷や異物を捉えるガラス管の外観検査透明体の傷や異物を捉える
  • 錠剤の検査の例。欠けや割れを外観から判定する錠剤の検査欠けや割れを外観から判定する
  • 位置決めの例。見本と照合して位置を合わせる位置決め見本と照合して位置を合わせる
  • 金属部品の形状検査の例。輪郭から欠けや変形を見る金属部品の形状検査輪郭から欠けや変形を見る
  • IC の位置決めの例。実装位置のずれを見本と照合して補正するIC の位置決め実装位置のずれを見本と照合して補正する
  • 寸法・形状の検査の例。輪郭をたどって寸法を測る寸法・形状の検査輪郭をたどって寸法を測る

組み立て方

フィルタを選んで並べ、調整し、運転画面を作るまで、同じ環境で行います。

  1. 組み立てる

    フィルタの一覧から選び、組み立てる画面に置いて、マウスでつなぐ流れフィルタを選ぶ画面に置くマウスでつなぐ
  2. 見ながら調整する

    しきい値の設定を変えながら、切り出される領域がどう変わるかを見ている画面しきい値を変えるその場で結果が変わる
  3. 運転画面を作る

    ガスケットの寸法検査の運転画面と、画面に置けるパーツの一覧運転画面を組むパーツを選ぶ現場でそのまま使える

ノーコードでも、処理の幅と速さは妥協しない

画像処理と検査のフィルタが約 1,000 種類あります。カメラ制御や通信まで含めた総数は約 3,700 種類です。ノーコードでも、コードベースのライブラリと処理速度は遜色ありません

フィルターVb Vision他社製品OpenCV 4.2
ネガポジ反転0.030 ms0.032 ms0.025 ms
画像の加算(ピクセル単位)0.029 ms0.047 ms0.036 ms
画像の減算(ピクセル単位)0.036 ms0.045 ms0.030 ms
RGB画像からHSV画像への変換(3 x UINT8)0.127 ms1.026 ms0.129 ms
ガウシアンフィルタ(3x3)0.031 ms0.035 ms0.037 ms
ガウシアンフィルタ(5x5)0.033 ms0.073 ms0.052 ms
ガウシアンフィルタ(21x21)0.311 ms0.355 ms0.240 ms
平滑化フィルタ(21x21)0.100 ms0.102 ms0.291 ms
画像収縮(3x3)0.030 ms0.035 ms0.050 ms
画像収縮(5x5)0.030 ms0.036 ms0.059 ms
輪郭検出(sum)0.032 ms0.035 ms
輪郭検出(hypot)0.034 ms0.040 ms
しきい値処理0.043 ms0.076 ms
領域分割(ラベリング)0.119 ms0.206 ms
画像の拡大・縮小0.131 ms0.108 ms0.052 ms

※ ベンチマークの結果は参考値であり、性能を保証するものではありません。測定条件やバラツキにより結果が異なる場合もあります。

結果だけでなく、途中まで見える

画像処理は、うまくいかない原因を追いにくい作業です。Vb Vision は途中の状態をそのまま見せます。

処理ごとの画像、輪郭や領域、数値や座標を確認できます。動作中でも、気になる箇所をすぐ開けます。

処理ごとの実行時間も自動で測ります。どの処理が全体の速度を決めているかが分かります。

読み込み中…
  1. ThresholdToRegion
  2. OpenRegion
  3. SplitRegionIntoBlobs

つまみを動かすと、その場で結果が変わります。

実機の画面を見る

AI とルールベースを組み合わせる

AI には怪しい場所を探させ、
合否の線引きはルールベースで行う。

AI を使った外観検査には、繰り返し指摘されてきた弱点があります。なぜその判定になったのかが分からないことです。判定はできても根拠が示せず、限度見本との突き合わせや客先への説明で行き詰まります。

AI は形の定まらない欠陥を、ルールベースは速く安定した判定を得意とします。Vb Vision は、AI が反応した箇所を面積や縦横比の基準で判定します。「どこに反応したか」「なぜ不合格か」が、数字で残ります。

樹脂カバーの表面。中央に汚れがある

使える AI の種類

検査の狙いに応じて 7 種類から選べ、組み合わせて使えます。学習用の画像に印を付ける道具も、同じ環境の中にあります。

異常検出の出力例
異常検出
良品だけで学習する。未知の不良にも反応する
特徴検出の出力例
特徴検出
塗って教える。手間と引き換えに精度が上がる
領域分割認識の出力例
領域分割認識
画素単位で塗り分ける。位置と種別を同時に出す
位置検出の出力例
位置検出
対象の位置を四角い枠で返す。学習は枠で囲むだけ
分類の出力例
分類
画像がどの種別かを判定する。学習はラベルを付けるだけ
ポイント検出の出力例
ポイント検出
特定の点の座標と種別を返す
文字認識の出力例
文字認識
印字や刻印を読み取る。先に場所を探して精度を上げる

現場の機器とつながる

カメラ、PLC、表示器、モータ。検査に要る機器をそのままつなげます。

検査ニーズに合ったカメラが選べる

カメラは、カラー判定、微細な外観検査、高速撮像、ラインスキャンなど、検査したい内容に合わせて、各社のカメラから適したものを選べます。

GigE Vision と GenTL に対応し、エリアカメラから 16K のラインカメラまで扱えます。Camera Link や CoaXPress といった高速インタフェースにも接続できます。

エリアセンサ、ラインセンサ、基板型など、形も大きさも異なる産業用カメラ

PLC や上位の機器と接続する

上位通信
CC-Link/EtherNet/IP/EtherCAT/PROFINET/Modbus TCP/OPC UA
シリアル
RS-232C/RS-485
PLC と表示器に、Vb Vision から信号を送る

モータに指令値を直接送る

搬送や位置決めのモータを、直接動かせます。画像から求めた位置や角度を、そのまま指令値にできます

ロボットシリンダー、XY ステージ、三軸ロボット、コンベアに対応します。

コントローラとドライバ、エンコーダを内蔵したステッピングモータの構成

光の当て方を変えて、見えにくいものを写す

傷や凹凸、刻印は、普通に照らすと汚れと見分けがつきません。照度差ステレオ法では、光を当てる方向を変えながら撮影します。

Vb Vision のフィルタが、複数の画像から形状画像を計算します。色ムラや汚れが消えて、検査に適した画像になります。

運転画面も同じ環境で作る

検査を組んでも、現場の人が操作する画面がなければ装置になりません。品種の切り替えやパラメータの設定、結果の表示を、パーツを置いて作れます。作った画面と検査の処理は、マウスでつなぐだけで連動します。

  • 自由なレイアウト
  • ロゴの表示
  • 測定値の表示
  • 設定値の調整
  • 検査領域の設定
  • レシピの切り替え
  • デバッグ表示
  • 画面ごとのパスワード
画面作成ツールの操作画面。左のパーツ一覧から選んだ部品を、右の運転画面へ置いていく

ラインナップ

検査の規模と、AI を使うかどうかで 3 系統に分かれます。開発環境を省いた実行専用の機種もあり、量産時のコストを抑えられます。

VB-1 シリーズの外観。放熱フィンを備えた小型の筐体VB-3 シリーズの外観。拡張スロットを備えた筐体VB-3AI シリーズの外観。GPU を搭載できる拡張スロットを備えた筐体
系統VB-1 シリーズエントリーモデルルールベース専用。カメラ 1〜2 台向けVB-3 シリーズ複数カメラ・高速モデルカメラを複数台つなぐ構成や、搬送が速い工程にVB-3AI シリーズAI 対応モデルAI 処理用の GPU を積んだ上位機
型式VB-1S0PROVB-3S2PROVB-3H4PROVB-3AIS2PRO-2000AVB-3AIH4PRO-4000A
CPUCore i5Core i5Core i9Core i5Core i9
メモリ8GB32GB64GB32GB64GB
ディスク容量64GB512GB1TB1TB2TB
USB3 x USB3.2(Gen2)1 x USB2.02 x USB3.2(Gen2)6 x USB3.2(Gen1)2 x USB3.2(Gen2)6 x USB3.2(Gen1)2 x USB3.2(Gen2)6 x USB3.2(Gen1)2 x USB3.2(Gen2)6 x USB3.2(Gen1)
イーサネット2 x 1GbE1 x 2.5GbE2 + 4 x 1GbE2 + 4 x 1GbE2 + 4 x 1GbE2 + 4 x 1GbE
シリアル42222
入出力入力8 / 出力8入力16 / 出力8入力16 / 出力8入力16 / 出力8入力16 / 出力8
AI機能NVIDIA RTX 2000Ada 16GBNVIDIA RTX 4000SFF Ada 20GB

全機種に共通の仕様

電源入力電圧範囲9〜 36VDC
消費電力最大:230W
寸法・重量外形寸法 (WxHxD)77 〜 163 x 192 x 230 mm
質量2.8 kg 〜 4kg
設置 / 取付VB3 Series : 据置 / 壁掛VB1 Series : DINレール
認証EMCCE/FCC Class A,CCC, BSMI
安全性CB/UL, CCC, BSMI
環境温度動作時 : -10 ~ 40 °C(70cm/秒 エアフロー時)非動作時 : -40 ~ 85 °C
湿度95% @ 40°C (結露無き事)
振動動作時 : 3Grms@5~500Hz,ランダム,1時間/軸非動作時 : 2G
衝撃動作時 : 20G,IEC-68-2-27,半正弦波,11ms非動作時 : 50G 11ms

拡張モジュール(オプション)

必要な接続や制御は、モジュールを足して増やせます。リモート I/O は EtherCAT と Modbus/TCP でつながります。

インタフェース
CoaXPress/10 Giga Ethernet/Camera Link/拡張 COM ポート/CC-Link
照明・制御
LED コントローラ/スマートリレー/LED 60W(外付け)/LED 120W(外付け)
リモート I/O
アナログ入出力/デジタル入出力/高速アナログ入力/温度入力/エンコーダ入力/高速カウンター

これまでの開発資産を活かす

標準のフィルタで足りないところは、C++ で書き足せます。新しいカメラ、特殊な機器との通信、自社のアルゴリズムを組み込めます。

自作のフィルタは、標準のものと同じように並べて使えます。積み上げた開発資産を捨てずに、組み立ての速さを取り込めます。

ユーザフィルタの例を見る(C++)
// しきい値で 2 値化するユーザフィルタの例
#include "UserFilter.h"
#include "AVL_Lite.h"

namespace avs
{
  class CustomThreshold : public UserFilter
  {
    avl::Image outImage;

  public:
    // フィルタの定義(名前・分類・入出力ポート)
    void Define() override
    {
      SetName(L"CustomThreshold");
      SetCategory(L"Image::Image Thresholding");
      SetTip(L"Binarizes 8-bit images");
      AddInput(L"inImage", L"Image", L"");
      AddInput(L"inThreshold", L"Integer<0, 255>", L"128");
      AddOutput(L"outImage", L"Image");
    }

    // フィルタの処理
    int Invoke() override
    {
      avl::Image inImage;
      int inThreshold;
      ReadInput(L"inImage", inImage);
      ReadInput(L"inThreshold", inThreshold);

      outImage.Reset(inImage, atl::NIL);
      for (int y = 0; y < inImage.Height(); ++y)
      {
        const atl::uint8* p = inImage.RowBegin<atl::uint8>(y);
        const atl::uint8* e = inImage.RowEnd<atl::uint8>(y);
        atl::uint8* q = outImage.RowBegin<atl::uint8>(y);

        while (p < e)
          (*q++) = (*p++) < inThreshold ? 0 : 255;

        ThrowIfCancelled();
      }

      WriteOutput(L"outImage", outImage);
      return INVOKE_NORMAL;
    }
  };
}

開発環境に、Vb Studio AI を足す

検査をする AI ではなく、検査を作る AI です。

検査の設計開発は、熟練者に頼むか、自分で試行錯誤するかでした。どちらにしても、立ち上げにも改造にも時間がかかります。

その設計開発を、Vb Studio AI が支援します。

Vb Studio AI を見る

お問い合わせ

製品の詳細や導入については、お気軽にお問い合わせください。