工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> モノのインターネットテクノロジー

オープンソースソフトウェアは、ロボットビジョン開発者の幅広いニーズを満たします


この記事は、視覚誘導ロボットに関するAspenCore特別プロジェクトの一部です。

ロボットビジョンアプリケーションは複雑な一連の要件をもたらす可能性がありますが、オープンソースライブラリはほぼすべてのニーズに対応するソリューションを提供する準備ができています。開発者は、基本的な画像処理やオブジェクト認識からモーションプランニングや衝突回避に至るまでのオープンソースパッケージを見つけることができます。それでも、開発者が高度なロボットシステムを実装するのに役立ついくつかの重要なオープンソース画像処理パッケージがあります。 (注:このレポートは、より基本的な画像ベースのアルゴリズムのライブラリに焦点を当てており、特にAIベースのロボットビジョン用のオープンソースソフトウェアは除外しています。)

ロボットビジョンソフトウェアに関する記事は、オープンソースコンピュータービジョンライブラリ(OpenCV)[ソース]を強調することに失敗することはありません。利用可能なオープンソースソフトウェアパッケージの中で、OpenCVはおそらく最も広く使用されており、機能が豊富です。 2,500を超えるアルゴリズムを実装するOpenCVディストリビューションは、一連のモジュールで画像処理要件に対応します。これには、特に次のものが含まれます。

C ++で記述されたOpenCVは、C ++、Python、Java、およびMatlabのインターフェイスで使用でき、Windows、Linux、Android、およびMacOSをサポートします。 OpenCVは、単一命令、複数データ(SIMD)命令セットのサポートに加えて、gpuモジュールを介して多くの機能にCUDAベースのGPUアクセラレーションを提供し、oclモジュールを介してOpenCLアクセラレーションを提供します。最近リリースされたOpenCV4.0は、人気のあるKinect Fusionアルゴリズムの実装を含む、多くのパフォーマンスの向上と機能をもたらします。

OpenCVは、その機能のために、ロボットの視覚ですばやく移動しようとしている開発者の忍耐力を超える学習曲線を必要とする場合があります。これらの開発者にとって、PythonベースのSimpleCV [ソース]が答えかもしれません。 SimpleCVはOpenCV上に構築されており、高度なロボットビジョン開発者が必要とする機能を提供しますが、経験の浅い開発者が単純なPython関数呼び出しで基本的なマシンビジョン関数を探索するのに役立つアクセス可能なフレームワークを提供します。たとえば、開発者は、SimpleCV Imageクラスの単純な組み込みメソッド(以下のリストのimg.binarize())を使用して画像のしきい値処理などの一般的に使用される関数をすばやく実装し、最終的に図1に示す結果を表示できます。

 from SimpleCV import Image、Color、Display#半分と半分のimage.def halfsies(left、right)を実行する関数を作成します。result=left#右側の画像を右側にトリミングします。 Crop =right.crop(right.width / 2.0,0、right.width / 2.0、right.height)#左側の画像に切り抜きを貼り付けます。 result =result.blit(crop、(left.width / 2,0))#結果を返します。 return result#imgur.img =Image( 'http://i.imgur.com/lfAeZ4n.png')#から画像をロードします。90#のしきい値を使用して画像を2値化し、結果を反転します。output=img.binarize( 90).invert()#並べて作成image.result =halfsies(img、output)#結果の画像を表示.result.show()#結果をfile.result.save( 'juniperbinary.png'に保存)


図1.上記のPythonコードの結果(出典:SimpleCV)

OpenCVとSimpleCVは、基本的な画像処理機能に加えて、ロボットシステムがオブジェクトを操作したり、物理環境内で安全に動作したりするために必要な、多数の高レベルの画像処理アルゴリズムを実装しています。これらの計算の多くで使用される基本的なデータ構造の1つは、点群です。これは、オブジェクトを表す多次元データポイントのコレクションです(図2)。カメラから取得したオブジェクトのポイントクラウドは、オブジェクトの識別、位置合わせ、フィッティングなどの基本的なロボット操作に使用されます。点群を操作するために、点群ライブラリ(PCL)[ソース]は、フィルタリング、フィッティング、キーポイント抽出、セグメンテーションなどのアルゴリズムを実装しています。


図2.基本的なトーラスの点群データセット。 (出典:ウィキメディアコモンズ/キエフ)


モノのインターネットテクノロジー

  1. IoTのソフトウェアアップデート:SOTAの紹介
  2. GEが12億ドルのIIoT企業を立ち上げる
  3. すべてがIoTに移行しています
  4. 古いものとIoTが出会う場所、SaaS統合
  5. SoftwareAGはIoTの未来を予測しています
  6. 産業分野では、信頼できるソフトウェアは安全を意味します
  7. TataExtolsIIoTのメリット
  8. IOTデバイスのソフトウェアテストの課題
  9. ERPソフトウェアを改善する必要がある10の兆候
  10. DevOpsを使用した組み込みソフトウェアの課題への対処
  11. IOT開発者向けのトップ7ポッドキャスト