【Python】PyTorch用画像処理ライブラリKorniaのインストール

【Python】PyTorch用画像処理ライブラリKorniaのインストール 機械学習

「画像を用いた機械学習を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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました