妄想置き場 お問合せ

さくらレンタルサーバにOpenCVを導入しようとした話


【作成】2022/06/22

経緯:
イラストをアップロードして、キャラを石化/機械化/寄生済みに状態変化させるツール(これ)を作るため、さくらレンタルサーバにOpenCVを導入しようとした。

結論:
サーバにOpenCVを導入するんじゃなくて、OpenCV.jsを使用してフロント側で画像加工処理をした方がいいよね。
占有サーバならともかく共有サーバなのでサーバに負荷を掛けるのはアカン。(禁止事項にあたるのでどうなっても知らん)。


とりあえず一通りやったことを記す。

1.Python3 と Numpy をインストール

http://nabenavi.net/numpy_and_python3_to_sakura/を参照。

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をインストールする。

参考URL:
https://doitu.info/blog/448768ab50ca208f7648018a6a4ea9f1ef7b1311
https://aicam.jp/tech/opencv3/build-sakura
https://weba.matrix.jp/opencv4-5-1install/

# ソースダウンロード(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②)

# 下記を設定する。正直解ってない。他のサイト見た方いいよ(参考URL②)
# 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
makeをするとエラーが3回位出てきた。

1.malloc.hがどうたらこうたら
→stdlib.hに書き換える。(参考URL②)

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

3.導入できたけど共有サーバに負荷かけたら駄目よね

駄目よね。
詰まりまくって環境構築に2日も掛けたけど無駄になっちゃった。
OpenCV.jsというやつがあるんでそれを使ってフロント側で画像加工処理をすればよろし。
(最初からこれ使ってれば数時間でツール作れたやん...)
参考:https://dev.classmethod.jp/articles/using-opencvjs-with-javascript-and-nodejs/



TOP

Tweet

プライバシーポリシー | HOME | お問合せ
copyright © since 2019-2022 suikentsukai.