Kornia 0.6 : Tutorials (基本) : 画像補正 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 10/21/2022 (v0.6.8)
* 本ページは、Kornia Tutorials の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
- Basic : Image Enhancement
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
クラスキャット 人工知能 研究開発支援サービス
◆ クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール。
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Kornia 0.6 : Tutorials (基本) : 画像補正
このチュートリアルでは、kornia.enhance からのコンポーネントを使用して画像特性を調整する方法を学習していきます。
%%capture
!pip install kornia
%%capture
!wget https://github.com/kornia/data/raw/main/ninja_turtles.jpg
import cv2
from matplotlib import pyplot as plt
import numpy as np
import torch
import torchvision
import kornia as K
/home/docs/checkouts/readthedocs.org/user_builds/kornia-tutorials/envs/latest/lib/python3.7/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html from .autonotebook import tqdm as notebook_tqdm
def imshow(input: torch.Tensor):
out: torch.Tensor = torchvision.utils.make_grid(input, nrow=2, padding=5)
out_np: np.ndarray = K.utils.tensor_to_image(out)
plt.imshow(out_np)
plt.axis('off')
plt.show()
画像を numpy.ndarray で表されたメモリにロードするために OpenCV を使用します。
img_bgr: np.ndarray = cv2.imread('ninja_turtles.jpg', cv2.IMREAD_COLOR)
numpy 配列を torch に変換します :
x_bgr: torch.Tensor = K.utils.image_to_tensor(img_bgr)
x_rgb: torch.Tensor = K.color.bgr_to_rgb(x_bgr)
バッチを作成して正規化します :
x_rgb = x_rgb.expand(4, -1, -1, -1) # 4xCxHxW
x_rgb = x_rgb.float() / 255.0
imshow(x_rgb)
輝度 (= brightness) の調整
x_out: torch.Tensor = K.enhance.adjust_brightness(
x_rgb, torch.linspace(0.2, 0.8, 4))
imshow(x_out)
コントラストの調整
x_out: torch.Tensor = K.enhance.adjust_contrast(
x_rgb, torch.linspace(0.5, 1., 4))
imshow(x_out)
彩度の調整
x_out: torch.Tensor = K.enhance.adjust_saturation(
x_rgb, torch.linspace(0., 1., 4))
imshow(x_out)
ガンマ補正
x_out: torch.Tensor = K.enhance.adjust_gamma(
x_rgb, torch.tensor([0.2, 0.4, 0.5, 0.6]))
imshow(x_out)
色相 (= Hue) を調整する
x_out: torch.Tensor = K.enhance.adjust_hue(
x_rgb, torch.linspace(0., 3.14159, 4))
imshow(x_out)
以上