超解像、画像の修復(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 libncurses-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.8 をインストール
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/versions/3.7.8/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
元画像は次の通り
出来た画像は次の通り