カメラアプリケーションのラピッドプロトタイピング
IDS peak と uEye+ カメラによるインタラクティブなプログラミング
Python は IoT (モノのインターネット) では非常に一般的なプログラミング言語です。このため、時間をかけて統合開発環境全体のセットアップを行うことなく、短いコードスニペットを作成してテストできます。インタラクティブなプログラミングにより、テストおよび試行フェーズの最適なインターフェースが生まれます。特に組み込みシステムと組み合わせる場合には、時間がかかるクロスコンパイルが必要となるため、Python の右に出るものはありません。
IDS peak により、uEye+ カメラアプリケーションをプログラミングする際に Python のメリットを活用できます。IDS 産業用カメラの多彩なカメラ機能をすばやくテストし、分析し、後で大規模なソフトウェアプロジェクトに使用するために準備できます。そこでこのテクニカルティップスでは、IDS peak Python インターフェースによる uEye+ カメラのプログラミングの詳細を説明します。
ここで使用した Python ソースコードのサンプルでは、カメラとインターフェースの基本的な操作方法を示しています。これらは「Jupyter Notebook」として設計され、uEye+ カメラを使用して、オープンソースの Web アプリケーションでテストし、ライブで再現できます。
Windows 10 PC を例として、Jupyter Notebook のインストールと使用方法を説明します。Python は複数のプラットフォームで使用でき、Jupyter Notebook はプラットフォームに依存しない Web アプリケーションなので、ソースコードサンプルを Linux で実行してテストすることもできます。
要件
Python
Python は、Jupyter Notebook のインストールおよび IDS peak プログラミングサンプルに対して、必要条件です 。
Python のダウンロードとインストール
インストールするPythonのバージョンは?
インストールした IDS peak の readme ファイルに、インストールする Python の互換バージョンに関する情報があります。
IDS peak マニュアルの " Creating project with PyCharm " の章に、お使いのオペレーティングシステムに適した readme ファイルへのリンクがあります。
Python を「すべてのユーザー」にインストールし、Python が "path" 変数に追加します。すると、コマンドプロンプト経由で Python を使用できるようになります。
追加の Python ライブラリ
ソースコードサンプルでは、画像処理とデータ視覚化に追加の Python ライブラリを使用しています。これらもインストールする必要があります。
- PIL - Python Imaging Library。画像処理機能で Python インタープリターを拡張します。
- matplotlib - Matplotlib は静止、アニメーション、インタラクティブな視覚化を Python で作成するための総合的なライブラリです。
- OpenCV - コンピュータービジョンライブラリ
- pyTorch - ディープラーニングフレームワーク
また、以下のコマンドでライブラリをインストールします。
pip install Pillow
pip install matplotlib
pip install opencv-python
pip install torch
IDS peak
uEye+ カメラの操作とプログラミングのため、IDS peak SDK (ソフトウェア開発キット) をインストールします。必要なすべてのライブラリとソフトウェアツールが含まれています。
IDS peak Software Development Kit
次に、PyPI.org でホストされている IDS peak API と IPL Python バインディングをインストールします。Python パッケージ向けのパッケージ管理プログラムの "pip" を使用するのが最も簡単で、PowerShell を管理者として使用します。
python -m pip install --upgrade pip
python -m pip install ids_peak_ipl
python -m pip install ids_peak
Jupyter Notebook
オープンソース Web アプリケーションのインストールも、pip を使用すると非常に簡単です。
pip install notebook
Jupyter Notebook の詳細については、以下をご覧ください。
Jupyter Notebook を使い始める

Jupyter Notebook のインストール
Jupyter のマニュアル
Jupyter Notebook の実行
次に、ソースコードサンプルを PC のフォルダーに展開します。
パッケージに含まれているのは 1 つのファイルで、Jupyter サンプル notebook だけです。
ids-peak-python-sample-jupyter.zip
Notebook Server
Powershell ウィンドウ (ユーザー権限で十分) を開き、Jupyter Notebook Server を起動します。
Powershell をフォルダーから開く
サンプル Notebook のインストールフォルダーでサーバーを直接起動すると、Notebook をすぐに使用できます。
PowerShell ウィンドウを特定のフォルダーから直接開くには、エクスプローラーでそのディレクトリに移動し、上部のパスバーに「powershell」と入力して、Enter を押して確定します。
PS C:\Users\ids\ids-peak-jupyter-notebooks> jupyter notebook
[I 12:12:45.115 NotebookApp] Serving notebooks from local directory: C:\Users\ids\ids-peak-jupyter-notebooks
[I 12:12:45.115 NotebookApp] The Jupyter Notebook is running at:
[I 12:12:45.115 NotebookApp] http://localhost:8888/?token=f8baad4df16a4b1436c59723cfcba540c4b5a923b3352120
[I 12:12:45.115 NotebookApp] or http://127.0.0.1:8888/?token=f8baad4df16a4b1436c59723cfcba540c4b5a923b3352120
[I 12:12:45.115 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Notebook サーバーが起動時にデフォルトの Web ブラウザーで開き、Web アプリケーションの URL (デフォルトは http://localhost:8888) など、少量の情報がシェルに出力されます。サーバーがブラウザーで開かれると、Notebook ダッシュボードが表示されます。ここには、Notebook が起動されたディレクトリ内の Notebook、ファイル、サブディレクトリが一覧されます。
Notebook の使用
サーバーで Notebook "ids-peak-python-sample-jupyter.jpynb" を開きます。
Notebook には注釈と説明が付けられています。これを実行して、要件に合わせてカスタマイズして保存することもできます。IDS peak Jupyter Notebook は、デバイスの検出とオープン、カメラ設定の調節、写真の撮影など、Python を使用した uEye+ カメラの基本的な操作を案内します。さらに、IDS peak IPL (Image Processing Library) で画像データを異なるデータ形式に変換して OpenCV の画像処理プロセスに使用する方法を紹介します。OpenCV で処理を進める方法も、一部の標準関数を使って示します。最後に、pyTorch などのディープラーニングフレームワークを使用すると、カメラ画像でシンプルな物体認識が即座に実現できることを示します。
IDS uEye+ カメラおよび IDS peak によるプログラミングの詳細については、弊社 Web サイトのナレッジベースにアクセスするか、システムコンサルタントにお問い合わせください。
ティップス: uEye+ ウェビナーのビデオ
IDS のウェビナービデオ「カメラアプリケーションのラピッドプロトタイピング」では、この Jupiter Notebook を使用した IDS peak Pyhton インターフェースによるプログラミングのデモンストレーションを紹介しています。
Dipl.-Ing. Heiko Seitz(工学修士 ハイコ・ザイツ)は2001年よりIDSで勤務しています。カメラソフトウェア分野での開発者としての経験を経て、現在はプロダクトマーケティングマネージャーとしてIDSの技術コミュニケーションを支援しています。彼の経験により、複雑な技術と実践的な知識伝達との間の隔たりを埋めています。例えば、技術記事、ウェビナー、あるいは講演などでその役割を果たしています。
Vision Channel
マシンビジョンに関するビデオとライブセッション
プロジェクト
プロジェクトにおいて、どのようなサポートが必要ですか?当社チームが適切なソリューションを見つけるお手伝いをします。
ニュースレタ
最新情報を入手するため、ぜひニュースレターにご登録ください。