11
1

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 1 year has passed since last update.

CycloneVSoCにOpenCVを組み込んでUSBカメラの映像をLinux Desktopに表示する

Last updated at Posted at 2020-11-30

#CycloneVSoCにOpenCVを組み込んでUSBカメラの映像をLinux Desktopに表示する
##はじめに
Cyclone V SoCをつかった基板でAIの開発をする際、カメラ映像の取り込みはベースとなるので、自分への忘却録としても手順を記載したいと思います。

##開発環境(Linux)

  • クロスコンパイル環境: VirtualBox グラフィカルユーザーインターフェースバージョン 6.1.14 r140239 (Qt5.6.2)
  • ゲストOS:Ubuntu18.04lts
  • FPGAコンパイル環境:Quartus Prime Version 18.1.1 build 646

##Linux Desktopの構築
こちらのサイトの7.6.2項までを参考に、Cyclone V SoCにLinux Desktopのインストールをします。
https://rocketboards.org/foswiki/Projects/OpenVINOForSoCFPGA

手順は上記サイトを参考に、下記の変更を加えています。

  • ツールチェーン:gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
  • Linuxカーネル: socfpga-5.4.45-lts
  • rootfs:linaro-stretch-developer-20170706-43.tar.gz

##OpenCVのインストール
下記公式サイトを参考にインストールを進めていきます。
https://docs.opencv.org/4.4.0/d7/d9f/tutorial_linux_install.html

###ツールのインストール

$ sudo apt-get install build-essential
$ sudo sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb5-dev libjpeg-dev libpng-dev libtiff-dev  libdc1394-22-dev

公式には、libtbb-devが指定してありましたが、パッケージが見つからなかったので代わりにlibtbb5-devを、libjasper-devは見つからなかったので省略します。

###GitからOpenCVをチェックアウト

$ git clone https://github.com/opencv/opencv.git
$ git clone https://github.com/opencv/opencv_contrib.git

###OpenCVのビルド

$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
$ make -j2

###OpenCVのインストール

$ sudo make install

正常にインストールされているか確認します。Pythonのインタラクティブコンソールを使えば確認できると思います。

$ Python3
>>> import cv2
>>>

エラーが出ずにプロンプト>>>が返ってくれば正常にインストールされていると思います。

##Pythonプログラム

preview.py
#!/usr/bin/env python3

import cv2

cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('preview', frame)
    key = cv2.waitKey(1)
    if key == 27:  # ESC 
        break

cap.release()
cv2.destroyAllWindows()

##実行
下記でプログラムを実行すれば、カメラの映像がWindowに表示されます。

$ python3 preview.py
11
1
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
11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?