fukuyama6421
@fukuyama6421 (好孝 福山)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

CycleGANについての 

初心者です。

CycleGAN

CycleGANの学習させる画像のフォーマットはどうゆものですか?
png以外でもJpgでもできるのでしょうか。
よろしくお願いします。

0

1Answer

基本的にディープラーニングで画像使用する際は、画像をnumpyの配列にしたものを使用します。そのため一般的な画像ならjpgでもpngでも、読み込んでnumpyの配列に変換して使用することができます。

「ディープラーニング 画像 データセット」などで検索すると実際のコードが見れると思います。

0Like

Comments

  1. @fukuyama6421

    Questioner

    返信ありがとうございます。

    CycleGANを以下のコードでできました。
    ただPNG画像です。
    これをjpgで学習させるようにするにはどこをかえたらいいでしょうか?
    よろしくお願いします。


    import argparse
    import os

    parser = argparse.ArgumentParser(description='')
    #parser.add_argument('--dataset_dir', dest='dataset_dir', default='horse2zebra', help='path of the dataset')
    parser.add_argument('--dataset_dir', dest='dataset_dir', default='horse', help='path of the dataset')
    parser.add_argument('--epoch', dest='epoch', type=int, default=100, help='# of epoch')
    parser.add_argument('--epoch_step', dest='epoch_step', type=int, default=100, help='# of epoch to decay lr')
    parser.add_argument('--batch_size', dest='batch_size', type=int, default=1, help='# images in batch')
    parser.add_argument('--train_size', dest='train_size', type=int, default=1e8, help='# images used to train')
    parser.add_argument('--load_size', dest='load_size', type=int, default=286, help='scale images to this size')
    parser.add_argument('--fine_size', dest='fine_size', type=int, default=256, help='then crop to this size')
    parser.add_argument('--ngf', dest='ngf', type=int, default=64, help='# of gen filters in first conv layer')
    parser.add_argument('--ndf', dest='ndf', type=int, default=64, help='# of discri filters in first conv layer')
    #parser.add_argument('--input_nc', dest='input_nc', type=int, default=3, help='# of input image channels')
    parser.add_argument('--input_nc', dest='input_nc', type=int, default=3, help='# of input image channels')
    #parser.add_argument('--output_nc', dest='output_nc', type=int, default=3, help='# of output image channels')
    parser.add_argument('--output_nc', dest='output_nc', type=int, default=3, help='# of output image channels')
    parser.add_argument('--lr', dest='lr', type=float, default=0.0002, help='initial learning rate for adam')
    parser.add_argument('--beta1', dest='beta1', type=float, default=0.5, help='momentum term of adam')
    parser.add_argument('--which_direction', dest='which_direction', default='AtoB', help='AtoB or BtoA')
    parser.add_argument('--phase', dest='phase', default='train', help='train, test')
    parser.add_argument('--save_freq', dest='save_freq', type=int, default=1000, help='save a model every save_freq iterations')
    parser.add_argument('--print_freq', dest='print_freq', type=int, default=100, help='print the debug information every print_freq iterations')
    parser.add_argument('--continue_train', dest='continue_train', type=bool, default=False, help='if continue training, load the latest model: 1: true, 0: false')
    parser.add_argument('--checkpoint_dir', dest='checkpoint_dir', default='./checkpoint', help='models are saved here')
    parser.add_argument('--sample_dir', dest='sample_dir', default='./sample', help='sample are saved here')
    parser.add_argument('--test_dir', dest='test_dir', default='./test', help='test sample are saved here')
    parser.add_argument('--L1_lambda', dest='L1_lambda', type=float, default=10.0, help='weight on L1 term in objective')
    parser.add_argument('--use_resnet', dest='use_resnet', type=bool, default=True, help='generation network using reidule block')
    parser.add_argument('--use_lsgan', dest='use_lsgan', type=bool, default=True, help='gan loss defined in lsgan')
    parser.add_argument('--max_size', dest='max_size', type=int, default=50, help='max size of image pool, 0 means do not use image pool')

    args = parser.parse_args()

    def main(_):
    if not os.path.exists(args.checkpoint_dir):
    os.makedirs(args.checkpoint_dir)
    if not os.path.exists(args.sample_dir):
    os.makedirs(args.sample_dir)
    if not os.path.exists(args.test_dir):
    os.makedirs(args.test_dir)

    tfconfig = tf.ConfigProto(allow_soft_placement=True)
    tfconfig.gpu_options.allow_growth = True
    with tf.Session(config=tfconfig) as sess:
    model = cyclegan(sess, args)
    model.train(args) if args.phase == 'train' \
    else model.test(args)

    if __name__ == '__main__':
    tf.app.run()

    #git clone https://github.com/xhujoy/CycleGAN-tensorflow
    #cd CycleGAN-tensorflow
    #bash ./download_dataset.sh horse2zebra (bash ./download_dataset.sh dataset_name)
    #python main.py --dataset_dir=horse2zebra (python main.py --dataset_dir=/path/to/data/)
    #Models are saved to ./checkpoints/ (can be changed by passing --checkpoint_dir=your_dir).
    #python main.py --dataset_dir=CTC --phase=test --which_direction=AtoB (python main.py --dataset_dir=/path/to/data/ --phase=test --which_direction=AtoB/BtoA)
  2. cycleganについて触ったことはないので、詳しいことはわからないのですが、

    https://github.com/xhujoy/CycleGAN-tensorflow/blob/master/main.py

    このコードのことですね。
    いきなりコードを書かれてもわかりにくいのでurlを貼ってほしかったです。

    「cyclegan 使いかた」
    と検索したら出てきたサイトが以下です。

    https://qiita.com/harmegiddo/items/0f4799a531ce23aff40e

    こちらの方法でできそうです。
    おそらくpngでもjpgでもできると思いますが、256x256のサイズでないと動かないと思います。

    リサイズの方法については、
    「python 画像 リサイズ」
    などと検索すれば山ほど出てくると思います。

    ディープラーニングは今ブームになっているので、ネットには山ほど解説記事があります。
    おそらくご自分で調べられたほうがより詳しく知ることができるかと思います。
  3. @fukuyama6421

    Questioner

    詳しく教えていただいて、ありがとうございました。

Your answer might help someone💌