超解像,画像の修復(alexjc/neural-enhance,Python 3.7,Theano,Lasagne, scipy 1.1.0, pillow を使用)(Ubuntu 上)
【概要】
alexjc/neural-enhance は、ディープラーニングを用いて画像を超解像・修復するソフトウェアである。このリポジトリは2021年1月にアーカイブされ、開発が終了している(新規のissueやpull requestは受け付けていない)。動作には Python 3.7、Theano、Lasagne、scipy 1.1.0、pillow を用いる。手順の要点: Ubuntu を利用し、Python 3.7 の隔離された環境(Ubuntu では ~/theanopy37)を作成して、その中に Theano, Lasagne, scipy 1.1.0, pillow をインストールする。【目次】
第1章 前準備
Python 3.7 のインストール
Ubuntu での pyenv を用いた Python 3.7 のインストールについては,このページの下で説明している.
Git のインストール
端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install git
NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7, NVIDIA cuDNN v8.4.1 のインストール(Ubuntu 上)
Ubuntu での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7, NVIDIA cuDNN v8.4.1 のインストール: 別ページ »で説明
Python の隔離された環境の新規作成
Ubuntu では,運用を簡単にする(バージョン指定のもの間違ってアップデートしないなど)のために,venv を用いて,Python の仮想環境を作ることにする.
- 今から作成するPython の仮想環境の名前と、Pythonのバージョンを決めておく
- Python の仮想環境の名前: theanopy37
- 使用するPythonのバージョン: 3.7
前もって Python バージョン 3.7 をインストールしておくこと - Python 3.7 の準備
Ubuntu の場合
Ubuntu を使用する場合は,次のように操作する.
次の手順により,システム Python とは別に,pyenv を用いて Python 3.7 をインストールし,そこに venv をインストールする.
- pyenv のインストールと設定
図などの入った詳しい説明は別ページ.
# パッケージリストの情報を更新 sudo apt update sudo apt -y install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev cd /tmp curl https://pyenv.run | bash echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bashrc echo 'if [ -d "${PYENV_ROOT}" ]; then' >> ~/.bashrc echo ' export PATH=${PYENV_ROOT}/bin:$PATH' >> ~/.bashrc echo ' eval "$(pyenv init -)"' >> ~/.bashrc echo ' eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc echo 'fi' >> ~/.bashrc exec $SHELL -l - 次のコマンドにより,pyenv を用いて Python 3.7.7 をインストール
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.8
- pyenv のインストールと設定
- Ubuntu では端末を開く.
- venv を用いて,Python 3.7 が動くPython の仮想環境を作る.
Ubuntu の場合
Ubuntu を使用する場合は,次のように操作する.
下の例では,Python の仮想環境のためのディレクトリを ~/theanopy37に作成している.
pyenv shell 3.7.8 python -m venv ~/theanopy37
第2章 このページで説明のために使用する画像
画像ファイル fruits.jpg, home.jpg のダウンロード
画像ファイル fruits.jpg, home.jpg のダウンロードは,
Windows で管理者権限でコマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
次のコマンドを実行する.
mkdir c:\image
cd c:\image
curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg
curl -L https://github.com/opencv/opencv/blob/master/samples/data/home.jpg?raw=true -o home.jpg
上のコマンドが実行できないときは, 別ページを参考にダウンロードを行う.
第3章 画像の拡張(alexjc/neural-enhance,Python 3.7,Theano,Lasagne, scipy 1.1.0, pillow を使用)(Ubuntu 上)
- Ubuntu では端末を開く.
- venv のPython の仮想環境を有効化する
Ubuntu の場合
Ubuntu を使用する場合は,次のように操作する.
source ~/theanopy37/bin/activate
- alexjc/neural-enhance のダウンロード
Ubuntu での手順を下に示す.このリポジトリは開発が終了しアーカイブされているため、内容はクローン時点のまま更新されない。
cd ~/theanopy37 rm -rf neural-enhance
git clone https://github.com/alexjc/neural-enhance cd neural-enhance
- 前提ソフトウェアのインストール
# パッケージリストの情報を更新 sudo apt update sudo apt -y install libblas-dev libopenblas-dev libatlas-base-dev sudo apt -y install gcc g++ gfortran build-essential git wget libopenblas-dev python3-dev python3-pip python3-nose python3-numpy python3-scipy - Theano,Lasagne のインストール
python -m pip install -U --no-user https://github.com/Theano/Theano/archive/master.zip python -m pip install -U --no-user https://github.com/Lasagne/Lasagne/archive/master.zip - 前提パッケージのインストール
python -m pip install --no-user scipy==1.1.0 pillow python -m pip install --no-user -r requirements.txt
- .so ファイルの確認
ls -al ~/.pyenv/version/3.7.7/lib
- ne1x-photo-repair-0.3.pkl.bz2 ne2x-photo-default-0.3.pkl.bz2 の入手
画面の指示により, https://github.com/alexjc/neural-enhance/releases を開く
ファイルは,~/theanopy37/neural-enhanceに置く.
- Python プログラムの実行
まず,ズームレベル2に設定して実行する。
「fruits.jpg」のところは,画像ファイル名を指定すること
python enhance.py --type=photo --zoom=2 fruits.jpg
元画像は次の通り
出来た画像は次の通り
次に,画像修復を実行する。
「fruits.jpg」のところは,画像ファイル名を指定すること
python enhance.py --type=photo --model=repair --zoom=1 fruits.jpg
元画像は次の通り
出来た画像は次の通り