概要
ラズパイ4に Basler社カメラを接続するため OpenCV、Pylonドライバー、PyPylon(Pythonインタフェース) をインストールしました。明るさ等の変化は画像処理全般の結果に影響しますが、Webカメラ等は AutoFocus機能により、Focus対象が変わってしまうなどの二次的変化の影響も受けるので、画像処理用カメラの接続を確認しておきたいと思ったことが発端です。
結果
次の動画の通り接続を確認しました。使用したカメラは、Basler社 acA2500ー14um (USB3接続)です。
インストール手順
① python バーション確認、シンボリックリンク設定
先回、Raspberry Pi OS をインストールしましたが、同時にpython2.7 と python3.7がインストールされていました。ターミナルで “python –version” と入力しバージョン確認すると “2.7” の表示がされるので、シンボリックリンク設定を次のコマンドで変更しました。
cd /usr/bin #ディレクトリ変更
ls -l py* #シンボリックリンク確認(※1)
#正しく設定されている場合は下記不要
sudo unlink python #シンボリックリンク解除
sudo ln -s python3 python #シンボリックリンク再設定
sudo ln -s python3 py #シンボリックリンク追加設定
python --version #バージョン確認
※1:“ ls -l py* ”コマンドでリストから、リンクを確認します。
② PYTHON IDLE インストール
初期インストールで、“Thonny Phython IDE”というpythonの編集環境がインストールされていますが、ターミナルから使ったことがある “Phython IDLE” を下記コマンドでインストールしました。
sudo apt install idle-python3.7
③ OpenCVインストール
OpenCVインストール前に次のライブラリをインストールしています。OpenCVインストールに何度も失敗したので、追加していたら増えてしまいました。本当に必要なものはわかっていません。時間のある時に確認したいと思います。
sudo apt install libavutil56 libcairo-gobject2 libgtk-3-0 libqtgui4 libpango-1.0-0 libqtcore4 libavcodec58 libcairo2 libswscale5 libtiff5 libqt4-test libatk1.0-0 libavformat58 libgdk-pixbuf2.0-0 libilmbase23 libjasper1 libopenexr23 libpangocairo-1.0-0 libwebp6
sudo apt install libhdf5-dev
sudo apt install libatlas-base-dev
sudo apt install libjasper-dev
sudo apt install build-essential cmake pkg-config
sudo apt install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt install libxvidcore-dev libx264-dev
sudo apt install libatlas-base-dev gfortran
sudo apt install libhdf5-dev libhdf5-serial-dev libhdf5-103
sudo apt install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
sudo apt install python3-dev
sudo apt install libgtk2.0-dev
sudo apt install pkg-config
バージョン指定し、OpenCVをインストールしました。
“4.3.0.38”というバージョンを先にインストールしましたが、撮影出来なかったので、“4.1.0.25” にバージョンをもどしています。
sudo pip3 install opencv-python==4.1.0.25
④ pylonドライバーダウンロード
Basler社ソフトウエアダウンロードページで次の様に設定し、リストを絞り込みます。
(1)オペレーティングシステム:Linux ARM
(2)製品 :Basler ace
リストから、次のドライバーをダウンロードします。
【ダウンロードドライバー】
Linux ARM hard-float(32ビット)用pylon Camera Software Suite(バージョン6.2.0)
ダウンロードページは、次の様な感じです。
⑤ pylonドライバーインストール
ダウンロードしたpylonドライバーを解凍、インストールします。ダウンロードファイルがあるディレクトリに移動後、ディレクトリ作成し、作成したディレクトリ下にファイルを解凍します。
mkdir ./pylon_setup
tar -C ./pylon_setup -xzf ./pylon_6.2.0.21487_armhf_setup.tar.gz
インストール用ディレクトリを作成し、インストールファイルを解凍後、パーミッション設定します。
sudo mkdir /opt/pylon
sudo tar -C /opt/pylon -xzf ./pylon_setup/pylon_6.2.0.21487_armhf.tar.gz
sudo chmod 755 /opt/pylon
下記コマンドでインストールします。
sudo /opt/pylon/share/pylon/setup-usb.sh
インストール実行時のターミナル状態です。
インストール後、pylonViewer で接続を確認出来ます。次の実行ファイルを起動するとビューワーが開き、カメラとの接続を確認することが出来ます。
/opt/pylon/bin/pylonviewer
⑥ pypylonインストール
よく判りませんが、次ページに英語で書かれています。
https://pypi.org/project/pypylon/
https://github.com/basler/pypylon
私はバイナリーインストールするので、次のページからバイナリーファイルをダウンロードします。
https://github.com/basler/pypylon/releases
必要であれば、pip アップグレードを行った後、次のコマンドでダウンロードした pypylon をインストールします。
pip3 install pypylon-1.7.2-cp37-cp37m-manylinux_2_24_armv7l.whl
( pip アップグレード : pip3 install –upgrade pip )
⑦ 接続確認プログラム
接続確認用 python プログラムは 次ページからZIPファイルをダウンロードし、解凍したフォルダー内にあります。
次の “opencv.py” を起動し、撮影可能であることを確認します。
結果は本投稿の最初の動画の通りです。
【接続確認プログラム】pypylon-master/samples/opencv.py
まとめ
ラズパイは 最近あまり使っていなかったのですが、またいろいろ活用することを検討していきたいと思っています。