GoCVを使ってみた
初めまして。
わたる と申します。
以前はqiitaで自身の備忘録も兼ねまして記事を投稿していたのですが、こちらに引っ越しいたしまして、まずはqiitaで書いた記事を幾つか転載しようかと思います。
初めに
最近ちょっとした機会があり、お勉強のためGo言語による OpenCVパッケージ「GoCV」を触ることがありましたので、導入と少しハマったところをまとめました。
[1]
環境- ホストOS:Windows 10
- VirtualBox:6.1.38
- ゲストOS:Ubuntu 18.04 LTS
goのセットアップ
sudo apt install -y golang
OpenCVのセットアップ
セットアップは下記の記事を参考にしました。
Ubuntu 18.04 ServerにOpenCV 4.1.0をソースからインストール(install-opencv.sh使用)
事前にインストールしていたOpenCVの削除
sudo apt autoremove libopencv-dev python-opencv
インストールシェルの取得
wget --no-check-certificate https://raw.githubusercontent.com/milq/milq/master/scripts/bash/install-opencv.sh
ファイルの編集
######################################
# INSTALL OPENCV ON UBUNTU OR DEBIAN #
######################################
# -------------------------------------------------------------------- |
# SCRIPT OPTIONS |
# ---------------------------------------------------------------------|
OPENCV_VERSION='4.5.1' # Version to be installed
OPENCV_CONTRIB='NO' # Install OpenCV's extra modules (YES/NO)
# -------------------------------------------------------------------- |
上記の「OPENCV_VERSION」と「OPENCV_CONTRIB」を必要に応じて編集。
インストール実行
chmod +x install-opencv.sh
./install-opencv.sh
そこそこ、時間がかかります。[2]
GoCVの導入
ようやく、本題。
以下のページを参考にさせていただきました。
GoCVを試すまでのお話
インストール
go get -u -d gocv.io/x/gocv
※あらかじめgitをインストールしていることが必要です。
サンプルプログラムの導入と実行
git clone https://github.com/hybridgroup/gocv
cd gocv
go run ./cmd/version/main.go
以下のようなgocvとopencvのバージョンが出たらOKです。
gocv version: 0.29.0
opencv lib version: 4.5.1
helloが走らなかった件
cmd配下にはほかにもいくつかありまして、例によって例のごとく「hello」という名前のパッケージもあったので、VirtualBoxで走らせているUbuntu 18.04の端末から立ち上げたのですが上手く立ち上がりませんでした。
ここからはGoCVというよりVirtualBoxのTIPSみたいな感じになりますが、結論から申しますと、helloはカメラを必要としていてVirtualBoxのホストイメージにカメラを認識する必要があり、以下の方法で解決しました。
Extension Packの導入
まずはExtension Packを導入します。[3]
下記がダウンロードページとなります。
Download VirtualBox
ここからお使いのVirtualBoxのバージョンに合うExtension Packをダウンロードしてインストールしてください。
デバイスの追加
設定はゲストOSを起動した状態でコマンドプロンプトを開け、Webカメラの追加設定をホストOS側のVBoxManager
を用いて行います。
ゲストOSが走っている状態で以下を実行します。
まずは VBoxManage.exe が居るディレクトリに移動。[4]
C:\Users\UserName>cd "\Program Files\Oracle\VirtualBox"
C:\Program Files\Oracle\VirtualBox>
実行中の仮想環境を表示。
C:\Program Files\Oracle\VirtualBox> VBoxManage.exe list runningvms
"Guest Name" {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}
接続中のカメラを表示
C:\Program Files\Oracle\VirtualBox> VBoxManage.exe list webcams
Video Input Devices: 1
.1 "Certain WebCam"
\\Camera Path
上記のカメラ「.1」をアタッチ。
C:\Program Files\Oracle\VirtualBox> VboxManage controlvm "Guest Name" webcam attach .1
以下のページを参考にしました。
VirtualBox上の仮想OSでWebカメラを使えるようにする
これでカメラが使え、helloパッケージ上の main.go を動作出来ました。
筆者近影
Discussion