今回はGo言語でOpenCVを利用するための環境構築についてです。
最近OpenCVネタが続いてしまっていますが、、、
OpenCV結構面白くてハマってしまっていますww。
詳解 OpenCV 3 ?コンピュータビジョンライブラリを使った画像処理・認識 新品価格 |
そろそろWebも進めたいのですが、まぁ両方やっていこうかな?w
で、本題ですがGo言語でのOpenCV利用のための環境構築を試してみたのでそれをまとめておきます!!
今後、サーバーサイドでGo言語使っていきたいな!!と思っているのでOpenCVもGo言語で使えたらいいな!と思い、試してみました。
ただ、結構ハマってしまい苦労した。。。
いくつかのサイトで手順紹介されているのですが、全くうまくいかず、、
3~4時間溶かしてしまいました泣。
また同じところで詰まるのは避けたいので、まとめておきます!!泣
■OpenCVインストール
pythonの場合には、
pip install opencv-python
を用いればよいのですが、Go言語の場合にはOpenCVをソースコードのビルドから実施しなければならないです。
gihubからソースコードをgetしてcmake、buildしてもよいのだが、、、
今回は下記の通り、シェルスクリプトを用います!!
シェルスクリプトだと少ないコマンドで実行可能なので、楽!!
まずはシェルスクリプトを取得。
wget --no-check-certificate https://raw.githubusercontent.com/milq/milq/master/scripts/bash/install-opencv.sh
その後、シェルスクリプトを実行してOpenCVをインストールまで実行!!
sudo chmod +x install-opencv.sh sudo ./install-opencv.sh
■GoCVインストール
Go言語でのOpenCVはGoCVというようです。
https://gocv.io/
このGoCVのインストール手順です。
まずインストールですが、こちらを実行。
go get -u -d gocv.io/x/gocv
ここで、pgkconfigにopencvのパスを通さなければならないため、
こちらを実行。
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
また、>||/usr/local/lib/pkgconfig||<配下にopencv4.pcがない場合には新規でopencv4.pcの作成が必要です。
opencv4.pcを新規作成の上、こちらを記載。
prefix=/usr/local exec_prefix=${prefix} includedir=${prefix}/include libdir=${exec_prefix}/lib Name: opencv4 Description: The opencv library Version: 4.0.0 Cflags: -I${includedir}/opencv4 Libs: -L${libdir} -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_calib3d -lopencv_ccalib -lopencv_core -lopencv_datasets -lopencv_dnn -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_features2d -lopencv_flann -lopencv_fuzzy -lopencv_gapi -lopencv_hfs -lopencv_highgui -lopencv_img_hash -lopencv_imgcodecs -lopencv_imgproc -lopencv_line_descriptor -lopencv_ml -lopencv_objdetect -lopencv_optflow -lopencv_phase_unwrapping -lopencv_photo -lopencv_plot -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_stitching -lopencv_structured_light -lopencv_superres -lopencv_surface_matching -lopencv_text -lopencv_tracking -lopencv_video -lopencv_videoio -lopencv_videostab -lopencv_xfeatures2d -lopencv_ximgproc -lopencv_xobjdetect -lopencv_xphoto
これでOK!!と思っていた時代が私にもありました泣。
これでサンプルソースを動かせばよいよ。ってこちらの参考に書いてあったので試しに実施してみたのですが、
GoCVを試すまでのお話 - Qiita
GOCVを使ってみた - Qiita
エラー。。。
バージョンを変えて再実施してみるも、、、
エラー。。。
どうやら、gocv内のファイルも>||make install<||しなければならないようです!!
Install on Ubuntu 18.04 failed · Issue #448 · hybridgroup/gocv · GitHub
早速、
cd $GOPATH/src/gocv.io/x/gocv make install
を実行!!
※もし$GOPATHが分からず、gocvがどこにあるか分からない場合には、
sudo find / -name "gocv"
を実行すればパスがわかります。
■サンプルプログラム実行
公式にてサンプルプログラムが用意されているのでありがたく使わせていただく。
git clone https://github.com/hybridgroup/gocv cd gocv go run ./cmd/version/main.go
実行した結果、gocvやopencvのバージョンが表示されればインストールは成功です!!
gocv version: 0.24.0 opencv lib version: 4.4.0
■最後に
案外苦労したけど、最後はうまくいったのでよしとします!!
サンプルプログラム内を確認すると、
こんなに種類があるので、色々試しに動かしてみようかな?と思います。
後、djangoで実施したストリーミングをgo言語版でも試してみようかな?とも考えております!!
出来れば、OpenCV使ったWebアプリとか作れたらいいな~~。何作ろうかな??
README.md basic-drawing caffe-classifier captest capwindow counter cuda dnn-detection dnn-pose-detection dnn-style-transfer faceblur facedetect facedetect-from-url find-chessboard find-circles find-lines hand-gestures hello img-similarity mjpeg-streamer motion-detect openvino saveimage savevideo showimage ssd-facedetect tf-classifier tracking version