【Python】Raspberry Pi + Python + OpenCVで監視カメラを作ってみた

2019.10.16

監視カメラを作ってみた

 

 

こんにちは、せんだです。

 

10月ということでようやく厳しい暑さも落ち着いてきましたね。

自転車通勤もやや快適になってきましたし、過ごしやすい季節になってきたのかなと。

 

さて、今回はRaspberry Pi、Python、OpenCVを使って監視カメラアプリを作ってみたいと思います!

お題目はこちら!

 

今回やること

  1. OpenCVのインストール
  2. Python+OpenCVでプログラム実装

 

環境

端末:Raspberry pi3

カメラ:お好みのWebカメラ

OS:Raspbian GNU/Linux 10 (buster)

Python: 3.7.3

 

 

では、早速やってみましょう!

 

 

OpenCVのインストール

まずはOpenCVのインストールからやります。ざっくり言ってしまうとPythonからWebカメラ経由で得た映像をキャプチャするのにOpenCVを利用します。

こちらのサイトが大変参考になりました。

1. ライブラリのインストール

OpevCVの利用に必要なライブラリをインストールします。

1
2
3
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev

 

2. opencv-pythonのインストール

pythonからOpenCVを利用する為のモジュールをインストールします。

1
$ sudo pip3 install opencv-python

 

3. Pythonから読み込んでみる

うまくインストールができていない場合はimportする時点でエラーが発生するので、とりあえずimportしてバージョン確認してみます。エラーが発生しなければ、OpenCVのインストールは完了です

1
2
3
4
5
6
7
$ python3
Python 3.7.3 (default, Apr  3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.3'

 

Python + OpenCVでカメラ機能を実装する

コードは以下の通りです。Enterを入力するとスクリプトが停止します。

main.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from datetime import datetime
import cv2, os

def main():

  current_dir = os.path.dirname(os.path.abspath(__file__)) + '/'

  cam = cv2.VideoCapture(0)
  if cam == None:
    return False

  while True:
    # カメラから映像を読み込む
    _, img = cam.read()

    # 保存先を設定
    shoot_time = datetime.now()
    image_file = current_dir + shoot_time.strftime('%Y%m%d_%H%M%S%f') +'.jpg'

    # 画像ファイルとして書き出す
    cv2.imwrite(image_file, img)

    # Enterキーを入力した際に撮影を終了する
    if cv2.waitKey(1) == 13: break

  # 事後処理
  cam.release()
  cv2.destroyAllWindows()

if __name__ == '__main__':
  main()

 

 

では、実行してみましょう!

スクリプトと同じディレクトリにキャプチャした画像ファイルが保存されていれば正常に動作しています。

1
2
3
4
5
6
7
8
$ python3 main.py
$ ls
20191004_150455968142.jpg
20191004_150456032067.jpg
20191004_150456321983.jpg
20191004_150456828986.jpg
20191004_150457327940.jpg
20191004_150457836103.jpg

 

 

まとめ

みなさんいかがでしたでしょうか?

実はこの実装をするにあたり、一番ハマったのはOpevCVのインストールでした。

何度かトライ&エラーを繰り返した後、結局OSをRaspbian Busterに入れ直してやっとこさという感じでした。

聞くところによると、ラズパイにOpenCVをインストールするのはハマる人が結構いるらしいです…

 

それでは、また!!


Top