OpenCV
raspberyypi
IU233

Raspberry PI3 でソニーセミコンダクタソリューションズのIU233をOpenCV経由で動かす①

More than 1 year has passed since last update.

概要

今年のみんなのラズパイコンテスト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の動作確認

開封

IMG_2242.JPG

白黒カメラを使おうと思って応募したのですが,中にはカラーと白黒の二つのカメラも入っていました.
梱包されていたのは,

IU233N USB-EVBIU233N2-Zによる撮影

IMG_2318.jpg

windows10にUSBで接続して,動作確認.
IU233N2-Zを小っさいコネクタにはめ込んで,そのままMicro USBに差し込んだらwindows上で即認識.

USB カメラとして確認.作業的にはなにも無し
スクリーンショット 2017-08-01 11.11.29.png

適当な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()

結果
image.png

今回は動作確認のみなので,画像解像度やフレームレートは弄らず.

IU233N5-ZIU233N USB-EVBによるRaspberry PI3への接続

配線

こんな感じ
IMG_2319.JPG

動作確認

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用ライブラリのインストール

https://github.com/robidouille/robidouille/tree/master/raspicam_cv

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は消しました...