GENZITSU / UsefulMaterials

34 stars 0 forks source link

weekly useful materials - 03/23 - #93

Open GENZITSU opened 2 years ago

GENZITSU commented 2 years ago

インターネットから集めたノイジーなデータでも綺麗に画像生成ができる?Self-Distilled StyleGAN について解説!

背景

StyleGANは綺麗な画像生成をするために画像の位置や姿勢を矯正した上でGANの学習を行っていたが、そのような画像を大量に用意するのは困難である。
訓練用の画像を収集するためにインターネット検索を活用することも可能だが、画像検索では犬という画像を検索しても多様な様式の画像やノイズになる画像も含まれるため、活用に課題があった。
Self-Distilled StyleGANでは学習に悪影響を与えるサンプルをモデル自身で排除できる機構self-filteringとマルチモーダルな画像様式に対応可能なmulti-modal based truncation trickを用いることで、インターネット画像からでも綺麗な画像生成を行えるGANの開発に成功した。

手法

self-filteringとは、VAEによる異常検知のように、画像を潜在変数にencodeした上でgeneratorによる画像生成を行い、再構成誤差がどの程度あるかで、ノイズとなるデータかどうかの判定を行うというもの。
今回の論文では、一度filteringを行った後の画像でStyleGAN2の学習を再度行っている。

スクリーンショット 2022-03-16 21 51 01

スクリーンショット 2022-03-16 21 51 06

スクリーンショット 2022-03-16 21 51 13

スクリーンショット 2022-03-16 21 57 17

multi-modal based truncation trickとは、GANの生成テクニックとして用いられてきたGlobal MeanへのTruncationではなく、潜在変数をいくつかのクラスタに分割した後、もっと近くにあるクラスタMeanへのTruncationを行う手法。

スクリーンショット 2022-03-16 21 54 39

本論文で提案されている Multi-Modal Based Truncation では Global Mean を用いた Truncation ではなく、サンプルされた潜在変数の近くのクラスタ中心を用いて Truncation を行います。論文ではどのデータセットにおいても 60000 のサンプルを抽出後、64クラスのクラスタリングを行ってクラスタ中心を設定しています。近さはユークリッド距離よりも perceptual distance の方がやや安定したらしいです。

スクリーンショット 2022-03-16 21 52 39

スクリーンショット 2022-03-16 21 55 28

コメント

GAN自体あまり詳しくなかったので勉強になった。
GANによる画像生成は多様性と画像の綺麗さのトレードオフであることが理解できてよかった。

出典

インターネットから集めたノイジーなデータでも綺麗に画像生成ができる?Self-Distilled StyleGAN について解説!
Self-Distilled StyleGAN: Towards Generation from Internet Photos
github
[DLHacks]StyleGANとBigGANのStyle mixing, morphing

GENZITSU commented 2 years ago

openSMILEを使った音声分類

音声特徴量を抽出することのできるライブラリopenSMILEの紹介記事
ライブラリ自体は商用での利用を認めていないので注意

特徴量の抽出は以下のように簡単に実施可能で、メルスペクトログラムに加えて、音声学に乗っ取った特徴量を複数抽出してくれる。

スクリーンショット 2022-03-16 22 05 03

以下ライセンス

openSMILE follows a dual-licensing model. Since the main goal of the project is widespread use of the software to facilitate research in the field of machine learning from audio-visual signals, the source code, and binaries are freely available for private, research, and educational use under an open-source license (see LICENSE). It is not allowed to use the open-source version of openSMILE for any sort of commercial product. Fundamental research in companies, for example, is permitted, but if a product is the result of the research, we require you to buy a commercial development license.

コメント

非商用なのが残念。
音声系の古典的な特徴量にいろいろ種類があるのも知らなかった。

出典

openSMILEを使った音声分類

GENZITSU commented 2 years ago

画像認識技術を用いたゴルフスイング解析サービス「GOLFAI」

ドコモが2020年3月にリリースしたゴルフスイング動画のクラウド解析サービスの技術詳細 / 開発プロセスがまとめられている資料。

本アプリではスマートフォンで解析した動画をクラウド姿勢推定, ヘッドの軌跡推定を行うことでユーザーに正しいスイングをフィードバックしてくれる。

スクリーンショット 2022-03-21 18 40 26 スクリーンショット 2022-03-21 18 41 54

技術詳細

本AIを作成するにあたっては、ゴルフクラブの種類や撮影場所を変えた役1,000本の動画(120FPS, FullHD, 20秒)を用いているとのこと。

姿勢推定に関しては、①人物検出→関節検出を行うTop-Downアプローチと②関節検出を行なったのちに関節を結ぶBotom-up アプローチのうち、後者のBotom-upを選択。

スクリーンショット 2022-03-21 18 44 16

検出したヘッドの軌跡は、アドレス, トップ, インパクト, フィニッシュの4ポジションの検出位置をルールベースつなぎ合わせることで実現。
検出したスイング点に関して体の角度などから評価を実施している。

スクリーンショット 2022-03-21 18 47 56 スクリーンショット 2022-03-21 18 49 23

開発プロセス

近年のサービス開発はいかに早く、優れたUI/UXを持つアプリを作るかが大事なので、開発プロセスも工夫したとのこと。

①UI/UXプロセスの内製化

外部のデザインベンダーを用いず、全ステークホルダーが参加したワークショップ形式で、UI/UXを検討したとのこと。
開発部門がここを担うことで、昨日と実装コストを鑑みた提案を行うことができたとのこと。 SketchProttを用いたプロトタイピングツールを用いて、約1ヶ月ほどで検討がおわったとのこと。

スクリーンショット 2022-03-21 18 52 48

コメント

技術の紹介だけでなく開発プロセスまで載せている珍しい資料。
開発と企画の橋渡し的な存在がいると良いものを早く作れるのはやはり真理なんだなと。
スイングポイントの検出に絞ってゴルフクラブを検出しているのも、この検討プロセスあってのことが気がする。
(普通なら前時刻検出しに行きそう)

出典

画像認識技術を用いたゴルフスイング解析サービス「GOLFAI」

GENZITSU commented 2 years ago

Docker Compose V2で変わったdocker-compose.ymlの書き方

2021年後半にリリースされたDocker ComposeのV2とV1の記法差異をまとめてくれている記事。
Compose Spec[1]に準拠しているのが特徴。

Compose Specは、クラウドやプラットフォームに依存しないコンテナベースのアプリケーションを定義するための、開発者向けの標準仕様です。

以下元記事からの貼り付け。

スクリーンショット 2022-03-21 19 29 40

スクリーンショット 2022-03-21 19 29 46

スクリーンショット 2022-03-21 19 29 51

スクリーンショット 2022-03-21 19 30 19

スクリーンショット 2022-03-21 19 30 30

スクリーンショット 2022-03-21 19 31 03

コメント

configs周りがかなり強化された印象。早めに乗り換えたい。

出典

Docker Compose V2で変わったdocker-compose.ymlの書き方

GENZITSU commented 2 years ago

icrawler

著名な検索エンジンからkeywordにマッチした画像を収集できるライブラリ。

It also provides built-in crawlers for popular image sites like Flickr and search engines such as Google, Bing and Baidu

# from https://github.com/hellock/icrawler

from icrawler.builtin import GoogleImageCrawler

google_crawler = GoogleImageCrawler(
    feeder_threads=1,
    parser_threads=2,
    downloader_threads=4,
    storage={'root_dir': 'your_image_dir'})
filters = dict(
    size='large',
    color='orange',
    license='commercial,modify',
    date=((2017, 1, 1), (2017, 11, 30)))
google_crawler.crawl(keyword='cat', filters=filters, max_num=1000, file_idx_offset=0)

コメント

撮ってくる画像の著作権までは気にしてなさそうなので注意。

出典

icrawler

GENZITSU commented 2 years ago

AIモデルから情報流出?学習データを復元する「Model Inversion Attack」を検証

AIモデルの出漁結果から学習データを復元する「Model Inversion Attack」がどれほど危険かを検証した記事。

スクリーンショット 2022-03-21 19 43 06

結論から言えば、この手法はモデル出力から勾配法を適用する必要があるので、APIベースのAIサービスには適応できず、なおかつ復元結果はかなり不安定なので、そこまでの危険性はなさそう。

ナイーブに真っ黒な画像から進めた場合の結果

スクリーンショット 2022-03-21 19 43 36

学習データの平均から進めた場合の結果

スクリーンショット 2022-03-21 19 44 15

結果わかる通り、この手法の実適応はかなり難しく、被害事例も確認されていない

実行結果を見てわかるとおり、Model Inversion Attackには不安定なところがありますし、まだ実際の攻撃被害事例のようなものは当チームの知る限り確認されていません

コメント

この手法は大したことないようだが、今後このシリーズ紹介されてくる手法はもっと強そうな奴が出てきそうな予感。

出典

AIモデルから情報流出?学習データを復元する「Model Inversion Attack」を検証

GENZITSU commented 2 years ago

日本語転移学習モデルにおける事前学習コーパスのフィルタリング

日本語転移学習モデルにおける事前学習コーパスのフィルタリングの有無が性能にどう寄与するかを検証した事例の紹介。
どうやら必ずしもフィルタをした方が良いというわけでもない模様。

検証データセット

• JCommonsenceQA: 常識推論タスク • JNLI: 文関係推論タスク • JSTS: 文類似性推定タスク

スクリーンショット 2022-03-21 20 10 49

スクリーンショット 2022-03-21 20 10 54

スクリーンショット 2022-03-21 20 10 59

スクリーンショット 2022-03-21 20 11 14

スクリーンショット 2022-03-21 20 11 21

スクリーンショット 2022-03-21 20 11 30

コメント

メモ

出典

日本語転移学習モデルにおける事前学習コーパスのフィルタリンク

GENZITSU commented 2 years ago

trimap

google-researchからtrimapというtriplets lossベースの次元削減手法のJAX実装がリリース。

TriMap is a dimensionality reduction method that uses triplet constraints to form a low-dimensional embedding of a set of points. The triplet constraints are of the form "point i is closer to point j than point k". The triplets are sampled from the high-dimensional representation of the points and a weighting scheme is used to reflect the importance of each triplet.

現状だとtransform単体でのembeddingができないので、やや不便な印象。

スクリーンショット 2022-03-21 20 23 45

スクリーンショット 2022-03-21 20 23 59

スクリーンショット 2022-03-21 20 24 11

論文の方にはパラメータごとの結果の比較が載っている。

スクリーンショット 2022-03-21 20 28 08

ロス関数はこんな感じ、高次元データ用のサンプル重み付スキームが導入されている。

スクリーンショット 2022-03-21 20 29 25

コメント

UMAPの方が便利そうだけど、メモ。

出典

trimap

TRIMAP: LARGE-SCALE DIMENSIONALITY REDUCTION USING TRIPLETS

GENZITSU commented 2 years ago

動画タイトルを用いたサムネイル画像の自動選択手法の提案

動画とタイトルを入力して良い感じのサムネイル画像を順位づけして自動選択する手法の提案論文 @NLP2022

CLIPとピーク検出をもとに以下のような画像の選択に成功している。

スクリーンショット 2022-03-21 20 36 48

スクリーンショット 2022-03-21 20 36 54

手法

スクリーンショット 2022-03-21 20 38 34

CLIPを用いることで、動画に対する教師データの作成を回避している。

ピーク検出手順

  1. CLIP スコアを時系列データとする
  2. CLIP スコアの移動平均を算出
  3. CLIP スコアの移動平均からピークを検出
  4. ピークの近傍からキーフレームを抽出

スクリーンショット 2022-03-21 20 39 53

ランキングモデル

複数のキーフレームに対し,より良い画像を順位付けするランキングモデルを構築する.このランキングモデルの学習データには,朝日新聞デジタルの記事に含まれる画像と,その表示順を利用する.

最終的な順位はCLIPの順位とランキングの順位をもとに以下のように決定

スクリーンショット 2022-03-21 20 42 04

コメント

CLIPの面白い活用事例。 単にCLIPスコアだけだと似たようなフレームばかり出てきそうだが、ピーク検出を一個挟むことでそれが回避されている。

出典

NLP2022告知 「動画タイトルを用いたサムネイル画像の自動選択手法の提案」

論文DLリンク

GENZITSU commented 2 years ago

[第4回 全国医療AIコンテスト] Kaggleから学んだ医療画像データ解析の取り組み方

医療コンペの取り組み方が紹介されているスライドなのだが、過去の上位解放が多数載っておりそっちが勉強になる。

以下気になったもの

スクリーンショット 2022-03-21 23 05 00

スクリーンショット 2022-03-21 23 05 23

スクリーンショット 2022-03-21 23 05 37

スクリーンショット 2022-03-21 23 05 45

スクリーンショット 2022-03-21 23 05 56

スクリーンショット 2022-03-21 23 06 13

コメント

メモ

出典

[第4回 全国医療AIコンテスト] Kaggleから学んだ医療画像データ解析の取り組み方

GENZITSU commented 2 years ago

日本語QAデータセットのまとめ

スクリーンショット 2022-03-21 23 08 48

コメント

メモ

出典

JapaneseQAdataset_taxonomy

GENZITSU commented 2 years ago

東大松尾研発AIベンチャーのACES、会議動画からAIで議事録を作成するサービス

AI(人工知能)開発ベンチャーのACESは2022年3月17日、営業支援AIツール「ACES Meet」の正式リリースを発表した。オンライン会議サービスの「Zoom」と連携し、会議の動画から話者ごとに会話を自動で書き起こし、議事録を作成する。1アカウント当たり月額7000円で提供する。

 2021年11月にβ版をリリースし、今回は「話者分離」「表情解析」および「Salesforce連携機能」を追加した。同社が特許を保有する喜びや困った際の表情の特徴点を抽出する「REsCUE」というアルゴリズムに加え、視線推定や顔向き推定など複数のアルゴリズムを組み合わせて、参加者の心理的状態の変化を時系列で把握できる。

コメント

めちゃくちゃ安い気がする笑

出典

東大松尾研発AIベンチャーのACES、会議動画からAIで議事録を作成するサービス

GENZITSU commented 2 years ago

全国医療AIコンテスト2022 上位解法まとめ

公開されてる上位10解法を見て、面白かったものだけピックアップ

コンペの概要

1st

スクリーンショット 2022-03-22 21 47 42

スクリーンショット 2022-03-22 21 48 58

スクリーンショット 2022-03-22 21 51 37

2nd

4th

# from https://www.kaggle.com/c/ai-medical-contest-2022/discussion/314111

transforms_train = albumentations.Compose([
            RandomResizedCrop(CFG.size, CFG.size, scale=(0.85, 1.0)),
            HorizontalFlip(p=0.5),
            ShiftScaleRotate(p=0.5, rotate_limit=15),
            HueSaturationValue(hue_shift_limit=5, sat_shift_limit=5, val_shift_limit=5, p=0.1),
            RandomBrightnessContrast(brightness_limit=(-0.1,0.1), contrast_limit=(-0.1, 0.1), p=0.5),
            CLAHE(clip_limit=(1,4), p=0.1),
            Cutout(max_h_size=int(CFG.size * 0.05), max_w_size=int(CFG.size * 0.05), num_holes=5, p=0.1),
            Normalize(
                mean=[0.485, 0.456, 0.406],
                std=[0.229, 0.224, 0.225],
            ),
            ToTensorV2(),
])
# from https://www.kaggle.com/c/ai-medical-contest-2022/discussion/314111

transforms_train = albumentations.Compose([
   albumentations.RandomResizedCrop(image_size, image_size, scale=(0.9, 1), p=1), 
   albumentations.HorizontalFlip(p=0.5),
   albumentations.ShiftScaleRotate(p=0.5),
   albumentations.HueSaturationValue(hue_shift_limit=10, sat_shift_limit=10, val_shift_limit=10, p=0.7),
   albumentations.RandomBrightnessContrast(brightness_limit=(-0.2,0.2), contrast_limit=(-0.2, 0.2), p=0.7),
   albumentations.CLAHE(clip_limit=(1,4), p=0.5),
   albumentations.OneOf([
       albumentations.OpticalDistortion(distort_limit=1.0),
       albumentations.GridDistortion(num_steps=5, distort_limit=1.),
       albumentations.ElasticTransform(alpha=3),
   ], p=0.2),
   albumentations.OneOf([
       albumentations.GaussNoise(var_limit=[10, 50]),
       albumentations.GaussianBlur(),
       albumentations.MotionBlur(),
       albumentations.MedianBlur(),
   ], p=0.2),
  albumentations.Resize(image_size, image_size),
  albumentations.OneOf([
      JpegCompression(),
      Downscale(scale_min=0.1, scale_max=0.15),
  ], p=0.2),
  IAAPiecewiseAffine(p=0.2),
  IAASharpen(p=0.2),
  albumentations.Cutout(max_h_size=int(image_size * 0.1), max_w_size=int(image_size * 0.1), num_holes=5, p=0.5),
  albumentations.Normalize(),
])

コメント

上位陣の精度はどっこいどっこいだったので、正直どの手法でも問題なさそう
勝敗に一番利いたのは実務でも大事な、リークの発見だったように思える。

出典