背景
前のブログで紹介する モジュールを、会場の必要がある 変換モジュールの外観pytorchが。さて、私が想像 のように、各画像のコントラスト強調のために何かをして、他の変換方法が変更されないまま、まだランダムなプロセスを使用しています。pytorch
transforms
T.Normalise()
実装が使用され __call__
、以下のように、メカニズム:
-
PILから輸入ImageEnhance
-
-
クラスのコントラスト(オブジェクト):
-
デフ__init__ (自己、度):
-
self.degree =度
-
デフ__call__ (自己、IMG):
-
リターンのコントラスト(IMG、self.degree)
-
デフコントラスト(IMG、度):
-
enh_contrast = ImageEnhance.Contrast(IMG)
-
enh_contrast.enhance(度)
-
リターンIMG
上記定義新規データ変換方法:コントラスト、以下の方法を使用して、例としてのコードを開くために クラスChaojieDataset(データセット):
-
-
#2.defineデータセット
-
クラスChaojieDataset (データセット):
-
デフ__init__ (自己、label_list、トランスフォーム=なし、電車= Trueの場合、テスト= Falseの):
-
self.test =テスト
-
self.train =電車
-
IMGS = []
-
self.test場合:
-
インデックスの行label_list.iterrowsに():
-
imgs.append((行[ "ファイル名"]))
-
self.imgs = IMGS
-
そうしないと:
-
インデックスの行label_list.iterrowsに():
-
imgs.append((行[ "ファイル名"]、行[ "ラベル"]))
-
self.imgs = IMGS
-
変換場合ではありませんなし:
-
self.test場合やない電車:
-
self.transforms = T.Compose([
-
T.Resize((config.img_weight、config.img_height))、
-
T.ToTensor()
-
T.Normalize(平均= [ 0.485、0.456、0.406]、
-
STD = [ 0.229、0.224、0.225])])
-
そうしないと:
-
self.transforms = T.Compose([
-
T.Resize((config.img_weight、config.img_height))、
-
T.RandomRotation( 30)、
-
T.RandomHorizontalFlip()、
-
T.RandomVerticalFlip()、
-
T.RandomAffine( 45)、
-
コントラスト( 1.8)、追加するには、この中の## ##
-
T.ToTensor()
-
T.Normalize(平均= [ 0.485、0.456、0.406]、
-
STD = [ 0.229、0.224、0.225])])
-
そうしないと:
-
self.transforms =トランスフォーム
-
デフ__getitem__ (自己、インデックス):
-
self.test場合:
-
ファイル名= self.imgs [インデックス]
-
IMG = Image.open(ファイル名)
-
IMG = self.transforms(IMG)
-
IMG返し、ファイル名
-
そうしないと:
-
ファイル名、ラベル= self.imgs [インデックス]
-
IMG = Image.open(ファイル名)
-
IMG = self.transforms(IMG)
-
リターンIMG、ラベル
-
デフ__len__ (自己):
-
リターンでlen(self.imgs)
このように、各画像の正規化に加えて、およびテンソルに、しかし済コントラストの強調を持っている、もちろん、あなたはそれぞれがランダムにコントラストを高めるように選択、乱数を設定することができます。