RoboDKは、コンピュータビジョンシステムのシミュレーション、開発、導入のための多くのユーティリティを提供します。RoboDKでは、2Dおよび3Dカメラのシミュレーションを行い、コンピュータビジョンアルゴリズムの開発やトレーニングを行うことができます。また、実際の2Dおよび3Dカメラを統合することもできます。
この文書では、カメラをシミュレートするためのいくつかの手順を説明します。
注:APIドキュメントのセクションhttps://robodk.com/doc/en/PythonAPI/examples.html#camera-2d。
シミュレートされたカメラでは、カメラが見ているものを見ることができます。センサーサイズ、ピクセルサイズ、視野などのカメラパラメータを指定すると、カメラのシミュレーション表示を見ることができます。カメラをロボットに取り付けたり、固定したりすることができます。
カメラを追加するには、カメラをアンカーポイントに取り付けて位置を決める必要があります。これは通常、参照フレームを使って行います。
1.Program➔ Add-in Reference Frame を選択して、新しい座標系を作成します。詳しくは、「はじめに」 セ ク シ ョ ン をだ 参照してくさい。
2.XYZ 座標はカメラの位置、Z+ 軸は目標方向、Y+ 軸は下方向を表します。
3.Connect➔ Simulate 2D camera を選択し、参照フレームを選択します。
これでアンカーポイントにデフォルトのカメラが取り付けられました。
カメラのプレビュー・ウィンドウでは、カメラに表示される画像を確認できます。このウィンドウは、新しいカメラが追加されると自動的に開きます。
カメラのプレビュー・ウィンドウを再度開くには、ツリーでカメラ項目をダブルクリックします。ツリーで右クリックし、[ カメラの表示 ] を選択することもできます。デフォルトでは、プレビュー・ウィンドウはサイズ変更、最小化、または閉じることができます(その他のオプションについては、次のセクションを参照)。
プレビュー・ウィンドウを開くと、カメラのワークスペースも 3D 環境に表示されます。カメラを右クリックし、[ カメラのワークスペースを表示 ] を選択すると、カメラのワークスペースを表示しないようにできます。
カメラ設定では、カメラのパラメータをカスタマイズして、RoboDKのシミュレーション環境でカメラをリアルに表示させることができます。
カメラの設定を編集するには、ツリー上でカメラを右クリックし、カメラ設定を選択します。RoboDKでは、新しく追加されたカメラのデフォルト設定は以下のようになっています:
●カメラアンカー名を提供(フレーム1)
●Focal length (mm):焦点距離、単位はミリメートル(5.00)。レンズの仮想光学中心と仮想カメラのイメージセンサー間の距離です。この値を変更すると、ピクセルサイズに影響します。
●Pixel size (μm): ピクセルサイズ、単位はμm (2.481)。この値を変更すると、視野に影響します。
●Field of view (deg): 視野 (FOV)、単位は度 (30.0)。カメラで認識できる領域の大きさに影響します。この値を変更すると、ピクセルサイズに影響します。
●ワーキングディスタンス(mm):作動距離、単位はミリメートル(2000.0)。これはカメラが周囲を認識できる距離で、この距離を超えた物体は画像の一部にはなりません。
●固定センサーサイズ:チェックを外すと、カメラのセンサーサイズ(または解像度)はカメラのプレビューウィンドウのサイズで設定されます。
●カメラのセンサーサイズ:固定センサーサイズの場合、カメラの幅と高さをピクセル単位で指定します。プレビューウィンドウのサイズを変更しても、サイズには影響しません。
●ウィンドウのサイズ変更を許可します:センサーサイズに影響を与えることなく、ユーザーがプレビューウィンドウのサイズを変更できるようにします。例えば、解像度を4Kに保ったまま、ウィンドウを720pにリサイズできます。
●パースビュー:チェックを外すと、カメラが正投影カメラになり、パースペクティブがなくなります。
●表示タイプ:カラー、グレースケール、深度など、カメラの表示タイプを決定します。ビューの種類によって、関連するデータに応じて出力画像が変わります。
●ドッキングビュー:プレビューウィンドウをツールバーにドラッグできるようにします。
●光の色を設定します:デフォルトのライトカラーを独自のカラー(環境光、拡散光、鏡面光)で上書きします。背景色には影響せず、Colorビュータイプでのみ使用できます。
●背景色:無限遠の未知の色。カメラセンサーからワーキングディスタンスまで物体がない場合に使用される色です。
APIを使用して、すべてのビュータイプのカメラ画像にアクセスできます。例えば、カラー画像(8ビット)、グレースケール画像(8ビット)、デプスマップ(8ビットまたは32ビット)をディスクファイルまたはプレーンデータとして取得できます。
シミュレートされたカメラのデータにアクセスすることで、サードパーティの画像ライブラリや独自のライブラリを使って、外部からデータを処理することができます。
RoboDKは独自の画像処理ライブラリを提供していませんし、ライブラリとも連携していませんが、Python APIは2Dおよび3Dの画像データを処理するサンプルコードを提供しています。以下のトピックをカバーしています:
●画像データを取得し、ライブストリームとして表示します。
●チェスボードパターンを使ったピンホールカメラのキャリブレーション。
●サポートされているパターンを使用してカメラの姿勢を推定します。
●シミュレートされたカメラ画像を拡張現実用のハードウェアカメラフィードに適用します。
●バーコードやQRコードの読み取り
●ブロブ、参照画像、表面積、輪郭、画像モーメントなどの特徴を検出します。
●深度マップの取得、点群への処理、メッシュの再構築、3Dライブストリームの作成。
Python API のサンプルにアクセスするには、次のリンクをたどってください: https://robodk.com/doc/en/PythonAPI/examples.html.
ハンドアイキャリブレーションは、ロボットのフランジまたはツールに対するカメラの位置を較正するプロセスです。
RoboDK では、手によるキャリブレーションのプロセスをシミュレートすることができます。同じ手順で、ロボットのフランジやツールに対して実際のカメラを較正することができます。
Python 用 RoboDK API のサンプルセクションhttps://robodk.com/doc/en/PythonAPI/examples.html#camera-hand-eye-calibration に完全なサンプルがあります。
このセクションでは、コンピュータ・ビジョンと製造工程を統合するためのいくつかの例を紹介します。
コンピュータ・ビジョンを統合したほとんどの例では、コンピュータ・ビジョン・アルゴリズムの可能性を最大限に引き出すために、いくつかのコーディングが必要です。
RoboDKの模擬カメラを使って、QRコード、EAN-13、UPC-A 1次元バーコードなどのバーコードを自動的に読み取ることができます。
RoboDKにバーコード画像をドラッグ&ドロップして、バーコードを指す新しいシミュレートカメラを作成することができます。
RoboDK Python API セクションhttps://robodk.com/doc/en/PythonAPI/examples.html#qr-codes-and-barcodes にサンプルがあります。
RoboDKのシミュレーションカメラを使って、物体の位置(2Dポーズ)を推定することができます。
サンプルは RoboDK API のサンプルセクションhttps://robodk.com/doc/en/PythonAPI/examples.html#object-detection 。 にあります