概要
今年のみんなのラズパイコンテスト2017で,ソニーセミコンダクタソリューションズさんの「IU233」をお借りすることができました.
IU233をラズパイで動かす手順については,「ビジョンプロセッシング・コミュニティ」にて説明がなされているのですが,これを実際にプログラムに組み込んで使用するためにOpenCV上からアクセスすることを目指してトライしてみました.
目次
1 環境
2 IU233の動作確認
3 OpenCVインストール
1 環境
- Raspberry PI3 modelB
- Jessie (2017-07-05 : 8.0)
- IU233
- Python 3.4.2
- OpenCV 3.2.0
2 IU233の動作確認
開封
白黒カメラを使おうと思って応募したのですが,中にはカラーと白黒の二つのカメラも入っていました.
梱包されていたのは,
-
IU233N2-Z(カラー)
-
IU233N5-Z(白黒)
-
IU233N USB-EVB(上記カメラをUSB接続するための変換コネクタ)
-
IU233N RPi-EVB(上記カメラをフレキシブルケーブルに接続するための変換コネクタ)
-
フレキシブルケーブル(RaspBerry PIに接続するためのフレキシブルケーブル)
IU233N USB-EVB+IU233N2-Zによる撮影
windows10にUSBで接続して,動作確認.
IU233N2-Zを小っさいコネクタにはめ込んで,そのままMicro USBに差し込んだらwindows上で即認識.
適当なviewerがなかったので,Python + OpenCVでキャプチャ
import cv2
capture = cv2.VideoCapture(0)
if capture.isOpened() is False:
print("IO Error")
cv2.namedWindow("Capture", cv2.WINDOW_AUTOSIZE)
while True:
ret, image = capture.read()
if ret == False:
continue
cv2.imshow("Capture", image)
if cv2.waitKey(1) == 27:
cv2.imwrite("image.png", image)
break
cv2.destroyAllWindows()
今回は動作確認のみなので,画像解像度やフレームレートは弄らず.
IU233N5-Z+IU233N USB-EVBによるRaspberry PI3への接続
配線
動作確認
IU233用VPF画出し手順に従って動作確認.
※この部分について必要であれば追記します
3 OpenCVでの動作確認
OpenCVをRaspberry PIにインストール
いくつかのサイトを参考にインストール.
特に参考になったのは「OpenCV + Python3 on Raspberry Pi」.というかほぼその通り.
OpenCVにUSB接続で画像を表示
Raspberry PIのカメラモジュールをOpenCVに接続
raspicam_cvのインストール
必要なツール,ライブラリをインストール
sudo apt-get -y install build-essential cmake cmake-qt-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff5-dev libtiff4 libtiffxx0c2 libtiff-tools
sudo apt-get -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs libavcodec-dev libavcodec56 libavformat56 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine2-ffmpeg libxine2-dev libxine2-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev libgtk2.0-dev pkg-config
sudo apt-get install libswscale-dev
RasPi-CAM用ライブラリのインストール
Raspberry Pi userland libraryのインストール
sudo apt-get install gcc g++ libx11-dev libxt-dev libxext-dev libgraphicsmagick1-dev libcv-dev libhighgui-dev
mkdir -p ~/git/raspberrypi
cd ~/git/raspberrypi
git clone https://github.com/raspberrypi/userland.git
cd userland
./buildme
raspicam libraryのインストール
cd ~/git
git clone https://github.com/robidouille/robidouille.git
cd robidouille/raspicam_cv
mkdir objs
make
ところがここでエラー発生
raspicam_cvのmakeでエラーが...
原因は,フォルダ構成を上記の参考と異なる位置にしていてMakeFileのパスが異なっていたこと.
さらにraspicam_cvのgitの置き場を自分で変更していたので,そこを修正.
パスの変更
#CFLAGS_OPENCV = -I/usr/include/opencv
CFLAGS_OPENCV = -I/usr/local/include/opencv
OpenCV3用に opencv_legacy を削除
#LDFLAGS2_OPENCV = -lopencv_highgui -lopencv_core -lopencv_legacy ....
LDFLAGS2_OPENCV = -lopencv_highgui -lopencv_core ....
これで再度make
しかし,またエラーが発生.
いろいろ調べていくと(詳細をメモし忘れて不明...orz)CvRoundが見つからないなどのエラーが発生して,コンパイルできない.
これの原因で,OpenCV3.2で同様のエラーが起きているという事案を見つけて,今度はOpenCVを3.1へダウン.
最終的にraspicam_cvをMakefile書き換えてmake.
これでコンパイルが通った.
・
・
・
しかし...
GitHub: raspicam_cv make error (cvRound) #16によると,
Hi,
Change BUILD_TYPE=release in Makefile
Before, apply issue #15
とあり,その通りにMakeFileを設定して,OpenCV3.2をインストール & makeすると,コンパイルが通ってしまった....orz
あとで3.1は消しました...