サーバ

2020年10月27日

COCO-FUNITで独自モデルの学習方法

COCO-FUNITのコードですが、Code (Coming Soon) だったのが公開されていたので、その方法です。
git clone https://github.com/nvlabs/imaginaire
cd imaginaire
インストールは、こうします
bash scripts/install.sh
ちょっと時間かかると思います。



pretrainモデルでの実行は、この様にします。
python inference.py --single_gpu --config configs/projects/coco_funit/mammals/base64_bs8_class305.yaml --output_dir projects/coco_funit/output/animal_faces
実行すれば、自動的にpretrainモデルをダウンロードすると思います。
# of samples 3
 0% 0/3 [00:00  File "inference.py", line 91, in
  main()
 File "inference.py", line 87, in main
  trainer.test(test_data_loader, args.output_dir, cfg.inference_args)
 File "imaginaire/imaginaire/trainers/base.py", line 683, in test
  for it, data in enumerate(tqdm(data_loader)):
 File "/usr/local/lib/python3.6/dist-packages/tqdm/std.py", line 1104, in __iter__
  for obj in iterable:
 File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py", line 363, in __next__
  data = self._next_data()
 File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py", line 989, in _next_data
  return self._process_data(data)
 File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/dataloader.py", line 1014, in _process_data
  data.reraise()
 File "/usr/local/lib/python3.6/dist-packages/torch/_utils.py", line 395, in reraise
  raise self.exc_type(msg)
AttributeError: Caught AttributeError in DataLoader worker process 0.
................
................
 File "imaginaire/imaginaire/utils/data.py", line 314, in _perform_paired_augmentation
  augmented = alb.ReplayCompose(
AttributeError: module 'albumentations' has no attribute 'ReplayCompose'
これらの原因は、albumentationsのバージョンです。
pip install -U albumentations
こうすれば良いと思います。

--single_gpu は必要です。省略すると、このようになると思います。
File "/usr/local/lib/python3.6/dist-packages/torch/distributed/rendezvous.py", line 148, in _env_rendezvous_handler
raise _env_error("RANK")
ValueError: Error initializing torch.distributed using env:// rendezvous: environment variable RANK expected, but not set


入力画像はimages_styleとimages_contentディレクトリに、 同じ番号のファイルとして配置します。
projects/coco_funit/test_data/animal_faces/images_style/0000.jpg
projects/coco_funit/test_data/animal_faces/images_content/0000.jpg
出力画像も同じ数として出力されます。
0001 (3)

やはり未学習ドメインのスタイルは転送出来ません。コンテンツの方だけ見ると、そうでも無い様に感じましたが...





続きを読む

tak_tak0 at 16:16コメント(0) この記事をクリップ!

2020年10月20日

pixel2Style2pixelでコンテンツ・スタイル転送の実装方法



pixel2Style2pixelのJupyter notebook はここにあります。
単に実行するだけならば、これで良いです。


しかしながら、StyleGANは、コンテンツとスタイルを制御した画像生成をする事が目的だったはずなので、そういう事をしたいと誰もが思うと思うのですが、そのような方法は示されていません。
なぜそう実装してないのでしょうか?
コンテンツ,スタイルを画像によってコントロール出来るべきであるのに




githubの方のコードで実行する方法ですが
git clone https://github.com/eladrich/pixel2style2pixel.git
cd pixel2style2pixel
inference.py等を実行する時に生じるエラーですが
 File "/usr/local/lib/python3.6/dist-packages/torch/utils/cpp_extension.py", line 1302, in verify_ninja_availability
  raise RuntimeError("Ninja is required to load C++ extensions")
RuntimeError: Ninja is required to load C++ extensions
ninjaのインストールは、こうします。
wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip
sudo unzip ninja-linux.zip -d /usr/local/bin/
sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force



 File "scripts/style_mixing.py", line 35, in run
  opts = ckpt['opts']
KeyError: 'opts'
これは、選択した学習モデルが不適だからです。
FFHQ StyleGAN、IR-SE50 Model、CurricularFace Backbone、MTCNN等では使えません。


UnboundLocalError Traceback (most recent call last)
<ipython-input-45-8441997b0eb7> in <module>()
   1 if experiment_type not in ["celebs_sketch_to_face", "celebs_seg_to_face"]:
   2 # input_image = original_image
----> 3 input_image = run_alignment(image_path)
   4 else:
   5 input_image = original_image

/content/pixel2style2pixel/scripts/align_all_parallel.py in get_landmark(filepath, predictor)
   42  shape = predictor(img, d)
   43
---> 44  t = list(shape.parts())
   45  a = []
   46  for tt in t:
UnboundLocalError: local variable 'shape' referenced before assignment
これはもしかして、顔認識が出来ないと、このエラーが生じるのでしょうか?

run_alignmentは、顔の矩形を切り出すためにあるので、省いても実行可能です。


続きを読む

tak_tak0 at 18:40コメント(0) この記事をクリップ!

2020年10月07日

日本語アクセント推定tdmelodicの実装方法


このコードですが、mecab辞書にアクセント情報を付与します。
mecab形態素解析をした時、同時にアクセントを出力します。
そのための辞書を構築するためのコードです。
git clone --depth 1 https://github.com/neologd/mecab-unidic-neologd/
git clone --depth 1 https://github.com/PKSHATechnology-Research/tdmelodic
unidicをダウンロードして、tdmelodicにコピーします。
wget https://unidic.ninjal.ac.jp/unidic_archive/cwj/2.1.2/unidic-mecab_kana-accent-2.1.2_src.zip
cp unidic-mecab_kana-accent-2.1.2_src.zip workspace/tdmelodic


実行には、これらもインストールが必要だと思います。
apt install mecab
apt install libmecab-dev
apt install mecab-ipadic-utf8
apt install python3-pip
pip3 install mecab-python3
pip3 install python-Levenshtein


unxz -k `ls mecab-unidic-neologd/seed/*.xz | tail -n 1`
NEologd辞書を展開してから、こうします。
python tdmelodic/script/neologd_patch.py \
--input `ls mecab-unidic-neologd/seed/mecab-unidic-user-dict-seed*.csv | tail -n 1` \
--output /tmp/neologd_modified.csv
こうなります。
100% 3384963/3384963 [00:38<00:00, 87596.82it/s]
Complete! Saved the converted file as ... /tmp/neologd_modified.csv


NEologd辞書からtdmelodicを作りますが、この時
python nn/convert_dic.py \
--input /tmp/neologd_modified.csv \
--output ~/workspace/tdmelodic_original.csv
パスを通しておかないといけません
  from nn.net import Net
ModuleNotFoundError: No module named 'nn'


その後、
UniDicのインストールですが、ファイル名が違ったのですが...?
mecab-unidic-neologd/libexec/install-mecab-unidic.sh



...こうして作ったmecab辞書を読み込んでアクセント推定します。
mecab -d `mecab-config --dicdir`/tdmelodic/

この辞書ですが、多分、 /usr/lib/x86_64-linux-gnu/mecab/dic/ とかのprefixが省略されていると思います。
実際にアクセスするパスは、 /usr/lib/x86_64-linux-gnu/mecab/dic/tdmelodic/ とかだと思います。




tak_tak0 at 11:36コメント(0) この記事をクリップ!
サイト内検索
にほんブログ村 科学ブログへ
にほんブログ村
adsense
Archives
amazon
blogchart
QRコード
QRコード
Recent Comments