「さくらのレンタルサーバ」でOpenCVを使用する
作成日時:2022-06-22
更新日時:2022-06-22
※「サーバ」と「サーバー」で表記ゆれがあるけれども、参照先の記述に準拠しているためである。
はじめに
「さくらのレンタルサーバ」上で画像加工をするWEBアプリを作りたかったので、一通り実装してみた。
その際のメモを記載する。
だが、共有サーバーに高負荷を掛けてはいけないので、やめておいた方がいい。
「さくらのレンタルサーバ」の禁止事項にあたる。
後述するが、私はサーバー上での画像加工はやめ、OpenCV.jsを使用し、フロント側で行うようにした。
1.Python3とNumpyをインストール
下記のサイトを参照。
さくらのレンタルサーバーにPython3とNumpyをインストールする | NABENAVI.net
Python3のインストール。
# ソースを取得
# https://www.python.org/ftp/python/ からインストールしたいバージョンを探す
wget https://www.python.org/ftp/python/x.x.x/Python-x.x.x.tgz
# 解凍
tar zxf Python-x.x.x.tgz
# ビルド + インストール
cd ./Python-x.x.x
./configure --prefix=(任意のインストール場所)
make
make install
# 動作確認。エラーにならなければ良し。パス通す必要があれば通せ
which python3
which pip3
Numpyのインストール。
# バージョン指定したければnumpy==x.x.x
pip3 install numpy
2.OpenCVをインストールする
下記のサイトを参照されたし。
- Python用にOpenCVをビルドする | doitu.info
- OpenCV3をさくらのレンタルサーバーでビルドする - AICam
- 【opencv】さくらのレンタルサーバーにopencv-4.5.1をインストール | レンサバ
# ソースをダウンロード(gitでも可)
# 1.opencv
wget https://github.com/opencv/opencv/archive/x.x.x.zip
# 2.opencv_contrib
wget https://github.com/opencv/opencv_contrib/archive/x.x.x.zip
# 上記を解凍
unzip XXX
# ビルド + インストール
cd 1で解凍したディレクトリ
mkdir build
cd build
## makeの設定(さくらレンタルサーバへのccmakeの導入は参考URL-2)
# 下記を設定する。正直解ってない。他のサイトを見た方がよい(参考URL-2)
# CMAKE_BUILD_TYPE=Release
# CMAKE_INSTALL_PREFIX=(出力先)
# WITH_FFMPEG=ON
# OPENCV_EXTRA_MODULES_PATH=(2.opencv_contribのパス)/modules
# PYTHON_EXECUTABLE=(Python3のインストールパス)/bin/pythonX.X
# PYTHON3_LIBRARY=(Python3のインストールパス)/lib/libpythonほにゃらら
# BUILD_EXAMPLES=ON
ccmake .. または cmake ..
# cmakeの結果、下記が出力されていれば大丈夫っぽい
-- Python 3:
-- Interpreter: PYTHON_EXECUTABLEの内容? (ver x.x.x)
-- Libraries: PYTHON3_LIBRARYの内容? (ver 3.7.3)
-- numpy: さっきインストールしたnumpyのパス
-- install path: インストール先
# ビルド + インストール
make
make install
以下、発生する可能性のあるエラーとその対処法。
1.malloc.hがどうたらこうたら。
→stdlib.hに書き換える。(参考URL-2)
2.memalignがどうたらこうたら。
// 書き換え
return memalign(iAlign, iSize);
↓
void *ptr;
posix_memalign(&ptr, iAlign, iSize);
return ptr;
// ファイルの先頭に下記を追加
# include <stdlib.h>
成功したらどこかにcv2.soが出来ているはずなので、そこにPYTHONPATHを通すか、PYTHONPATHの所にcv2.soを移動する。
動作確認。
下記でエラーにならなければ良し。
python3
>>> import cv2
個人的メモ(パス関連)
~/local/.cshrc:
setenv PYTHONPATH PATH
alias python python3
source .cshrc
rehash
OpenCV.jsの使用
目的のWEBアプリを作ることができたが、サーバーに負荷がかかりそうだった。
なのでOpenCV.jsを使用し、フロント側で画像加工をするようにした。