Home About
Ubuntu , OpenCV , Node.js

opencv4nodejs インストール備忘録 / Ubuntu で使用 OpenCV をソースからインストール

本当は macOS で opencv4nodejs を 使いたいのだが、うまくいかない。 そこで、 Ubuntu 20.04 上で OpenCV 4.5.3 をソースからインストールした状態から opencv4nodejs をインストールして使うことができたので、その作業記録です。

なお、OpenCV を python から使うのであれば、普通に apt で入れたそれを使えばよい。(Ubuntuでの話)

$ sudo apt install python3-opencv

そして、hello.py などに

import cv2 as cv
print(cv.__version__)

これを python3 hello.py して作動確認する。

これと同じノリで Node.js から OpenCVを使うには、 opencv4nodejs がある。 ただ、macOS( catalina )でやってみた限り、うまく作動させられなかった。 Ubuntu 20.04 でも apt で入れた OpenCV に対してはうまくいかなかったのですが、 OpenCV をソースからインストールしたあと、それを使う形で opencv4nodejs を npm install したらうまくいきました。

手順1: cmake を入れる.

$ sudo apt install cmake

もちろん、環境によってはさらに、もろもろ入れる必要かもしれません。

手順2: opencv-4.5.3.tar.gz を github から入手.

$ tar xf opencv-4.5.3.tar.gz
$ cd  opencv-4.5.3
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
$ make

結構時間かかります。待ちます。高性能なCPUならば -j8 などのオプションをつけると速いらしいです。

$ sudo make install

これで完了です。

ちなみに、不要になった場合に削除したいときは、sudo make uninstall できます。なので、このインストール作業に使用したディレクトリはキープしておいたほうがよい。

いよいよ opencv4nodejs です。

手順1: プロジェクトの作成.

$ mkdir facedetection
$ cd facedetection
$ npm init -y

手順2: opencv4nodejs のインストール.

npm opencv4nodejs でインストールする前に、 先に入れておいた OpenCV を使う指定をします。

$ export OPENCV4NODEJS_DISABLE_AUTOBUILD=1; npm install opencv4nodejs --save

あとは、待つだけでインストールが完了します。 途中なんやかんやビルドされるので結構時間かかります。

うまく使えるか確認しましょう。 main.js を作成します。

const cv = require('opencv4nodejs');

const image = cv.imread('Lena.png');
const classifier = new cv.CascadeClassifier(cv.HAAR_FRONTALFACE_ALT2);

// detect faces
const { objects, numDetections } = classifier.detectMultiScale(image.bgrToGray());
console.log('faceRects:', objects);
console.log('confidences:', numDetections);

Lena.png がカレントディレクトリに必要なので、さきほどの OpenCV ソースあたりから見つけてコピーしておきます。

$ node main.js

これでコンソールに顔認識結果が出力されます。