「画像を用いた機械学習をPythonで行いたい」
「PyTorchを使った画像処理を実行したい」
このような場合には、Korniaがオススメです。
この記事では、Korniaについて解説しています。
本記事の内容
- Korniaとは?
- Korniaのシステム要件
- Korniaのインストール
- Korniaの動作確認
それでは、上記に沿って解説していきます。
Korniaとは?
Korniaは、PyTorch用のコンピュータビジョンライブラリです。
簡単に言うと、画像処理を行うライブラリと言えます。
実際、Korniaは画像処理ライブラリであるOpenCVの影響を受けています。
OpenCVは、GPU利用前提では開発されていません。
そのため、GPUをPyTorchで利用した場合に不便なところがあります。
その不便を解消するために、Korniaは開発されたところもあるようです。
よって、PyTorchで画像処理を行うならKorniaと覚えておきましょう。
PyTorchに特化しているだけあって、簡単に利用できるようになっています。
上記のように、コードの一部分を変えるだけで様々な画像処理が実行できます。
以上、Korniaについて説明しました。
次は、Korniaのシステム要件を説明します。
Korniaのシステム要件
現時点(2022年8月)でのKorniaの最新バージョンは、0.6.6となります。
この最新バージョンは、2022年7月16日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下。
- Python 3.6
- Python 3.7
- Python 3.8
上記のサポート状況は、以下のPython公式開発サイクルからかなりズレています。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python 3.9以降の場合は、どうすればよいのでしょうか?
問題ありません。
Python 3.9でもPyton 3.10でも問題なく、Korniaをインストールできます。
重要であるのは、PyTorchがインストールされていることです。
このことが、Korniaのシステム要件で最も重要なことだと言えます。
現時点で最新版となるPyTorch 1.12のインストールは、次の記事で説明しています。
以上、Korniaのシステム要件を説明しました。
次は、Korniaのインストールを説明します。
Korniaのインストール
Korniaのインストールを行います。
まずは、現状のインストール済みパッケージを確認しておきます。
事前にGPU版のPytorch 1.12.1がインストールされた状態です。
> pip list Package Version ------------------ ------------ certifi 2022.6.15 charset-normalizer 2.1.0 idna 3.3 numpy 1.23.2 Pillow 9.2.0 pip 22.2.2 requests 2.28.1 setuptools 65.0.2 torch 1.12.1+cu113 torchaudio 0.12.1+cu113 torchvision 0.13.1+cu113 typing_extensions 4.3.0 urllib3 1.26.11 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Korniaのインストールです。
Korniaのインストールは、以下のコマンドとなります。
pip install kornia
Korniaのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。
> pip list Package Version ------------------ ------------ certifi 2022.6.15 charset-normalizer 2.1.0 idna 3.3 kornia 0.6.6 numpy 1.23.2 packaging 21.3 Pillow 9.2.0 pip 22.2.2 pyparsing 3.0.9 requests 2.28.1 setuptools 65.0.2 torch 1.12.1+cu113 torchaudio 0.12.1+cu113 torchvision 0.13.1+cu113 typing_extensions 4.3.0 urllib3 1.26.11 wheel 0.36.2
追加されたパッケージは、以下の3つのパッケージです。
Successfully installed kornia-0.6.6 packaging-21.3 pyparsing-3.0.9
以上、Korniaのインストールを説明しました。
次は、Korniaの動作確認を説明します。
Korniaの動作確認
Korniaの動作確認を行います。
そのためには、以下のライブラリが必要となります。
- OpenCV
- Matplotlib
OpenCVで処理していたことをKorniaでもできるということをアピールするコードになっています。
そして、Korniaを使えばより簡単にできるということも示すコードになります。
それぞれのインストールは、以下の記事で解説しています。
インストールに用いたコマンドは、以下となります。
pip install opencv-python pip install matplotlib
準備が整ったら、まずは画像を1枚ダウンロードしましょう。
以下のパスの画像をダウンロードして、保存します。
https://github.com/kornia/data/raw/main/arturito.jpg
そして、次のコードを実行します。
画像のパスは、各自の環境に合わせてください。
import cv2 from matplotlib import pyplot as plt import numpy as np import torch import torchvision import kornia as K img_path = "arturito.jpg" img_bgr: np.array = cv2.imread(img_path) # HxWxC / np.uint8 img_rgb: np.array = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) x_rgb: torch.tensor = torchvision.io.read_image(img_path) # CxHxW / torch.uint8 x_rgb = x_rgb.unsqueeze(0) # BxCxHxW x_bgr: torch.tensor = K.image_to_tensor(img_bgr) # CxHxW / torch.uint8 x_bgr = x_bgr.unsqueeze(0) # 1xCxHxW x_rgb: torch.tensor = K.color.bgr_to_rgb(x_bgr) # 1xCxHxW / torch.uint8 img_bgr: np.array = K.tensor_to_image(x_bgr) img_rgb: np.array = K.tensor_to_image(x_rgb) fig, axs = plt.subplots(1, 2, figsize=(32, 16)) axs = axs.ravel() axs[0].axis('off') axs[0].imshow(img_rgb) axs[1].axis('off') axs[1].imshow(img_bgr) plt.show()
上記コードを実行すると、次のような画像が表示されます。
コードの内容としては、以下のページをご覧ください。
Hello world: Planet Kornia – Kornia Tutorials documentation
https://kornia-tutorials.readthedocs.io/en/latest/hello_world_tutorial.html
上記ページは、Korniaの公式ドキュメントです。
簡単に言うと、上記サンプルコードはKorniaを使ってBGRをRGBに変換しています。
そして、変換前と変換後の対比を画像として表示します。
元画像を変更してみましょう。
コードで言えば、次の部分ですね。
img_path = "arturito.jpg"
もののけ姫の画像を利用したら、次のような結果になりました。
以上、Korniaの動作確認を説明しました。