5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

らずぱい: OpenCV+MMALのサンプル(rpi-mmal-opencv-modetect)

Last updated at Posted at 2016-07-06

概要

  • らずぱいのCSIでつながってるカメラは、MMAL(Multi-Media Abstraction Layer)というAPIで使うらしい。
  • OpenCVと一緒に組み合わせると、なかなか、いいフレームレートでなんかできそう?
  • とりあえず、詳しいことはいいから、↓のサンプルを試す。
  • https://github.com/sodnpoo/rpi-mmal-opencv-modetect
    OpenCVの動体検出と組み合わせてる。

環境

  • Raspberry Pi 3
  • らずぱい Camera V1 (OmniVision CMOS 5MP OV5647)
  • らずぱい Camera V2 (Sony CMOS 8MP IMX219)
  • 2016-05-27-raspbian-jessie.img
  • sudo raspi-configでカメラ使えるようにしとく

手順

  1. sudo raspi-config
    でカメラ使えるようにしとく.GPU_MEMも多めにしとく?

  2. sudo apt-get install cmake libopencv-dev git

  3. READMEに沿って。そのままだとエラー出るので、ちょいとパッチを当てる。

mkdir -p /home/pi/src/raspberrypi
cd /home/pi/src/raspberrypi
git clone --depth 1 https://github.com/raspberrypi/userland.git
make -C /opt/vc/src/hello_pi/libs/vgfont
git clone https://github.com/sodnpoo/rpi-mmal-opencv-modetect
cd rpi-mmal-opencv-modetect


3. vi ./opencv_modect.c
パッチ

    ```c:opencv_modect.c
...
# include <opencv2/core/core_c.h>
//コメントアウト-#include <opencv2/objdetect/objdetect.hpp>
# include <opencv2/highgui/highgui_c.h>
//コメントアウト-#include <opencv2/imgproc/imgproc.hpp>
//コメントアウト-#include <opencv2/video/video.hpp>
# include <opencv2/imgproc/imgproc_c.h>  //追加.
...
  1. ビルド

mkdir build
cd build
cmake ../
make


5. `./mmal_opencv_modect > video.h264`<br>実行。<br>物体の動きを検出すると、標準出力に h264のストリームを出力、メッセージは標準エラー出力.
`video.h264`は、VLCとかで再生できる

    ```shell-session:実行例
pi@raspberrypi:~/src/raspberrypi/rpi-mmal-opencv-modetect/build$ ./mmal_opencv_modect > video.h264 
VIDEO_WIDTH : 1280
VIDEO_HEIGHT: 720
VIDEO_FPS   : 30
camera video buffer_size = 2764800
camera video buffer_num = 2
camera created
encoder input buffer_size = 1382400
encoder input buffer_num = 2
encoder output buffer_size = 65536
encoder output buffer_num = 1
encoder input pool has been created
encoder output pool has been created
encoder has been created
FPS: OpenCV = 26.93, Video = 30.56
MOTION DETECTED (28)
MOTION DETECTED (712)
KEYFRAME (1467786643:1)
MOTION DETECTED (1530)
MOTION DETECTED (1578)
MOTION DETECTED (2419)
MOTION DETECTED (2361)
MOTION DETECTED (2976)
MOTION DETECTED (1767)
MOTION DETECTED (2269)
MOTION DETECTED (1598)
MOTION DETECTED (987)
MOTION DETECTED (536)
MOTION DETECTED (367)
MOTION DETECTED (458)
MOTION DETECTED (422)
MOTION DETECTED (350)
MOTION DETECTED (1063)
FPS: OpenCV = 28.38, Video = 30.28
FPS: OpenCV = 28.90, Video = 30.19
FPS: OpenCV = 29.17, Video = 30.14
FPS: OpenCV = 29.34, Video = 30.11
^C
130 pi@raspberrypi:~/src/raspberrypi/rpi-mmal-opencv-modetect/build$

=> いい感じのフレームレート

その他

オプション

  • -r : rotation(0, 90, 180, 270)
  • -w : width (default 1280)
  • -h : height (default 720)
  • -f : fps (default 30)
  • -s : still filename -- //every 60 secondsというのがあるので、60秒毎??

vlcで rtspできるんじゃね?(>>[メモ] らずぱいカメラ VLCでストリーミング)

  • らずぱい
    ./mmal_opencv_modect | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
  • Windowsで、VLC立ち上げて、Media>OpenNetworkStream> rtsp://らずぱいIP:8554[Play]
  • カメラを動かして、h264を吐き出させると、画像が出る。
  • 前と同様、3秒ぐらいの遅延
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?