~~NOTOC~~ ====== お勉強 ====== * [[.:math:start|数学]] * [[.:math:logexp|対数指数チートシート]] ===== グラフィックス ===== ==== 2Dベクターグラフィックスについて ==== * [[.:vgc|Vector Graphics Complex]] * [[http://potrace.sourceforge.net/|Potrace]] ==== 用語 ==== | Barycentric Coordinates | 重心座標 | | Bresenham Algorithm | ブレゼンハムのアルゴリズム | ===== 動き解析 ===== * [[https://qiita.com/icoxfog417/items/357e6e495b7a40da14d8|Optical Flow]] 動作の追跡には大まかにトラッキングとフロー推定の2つがある. 目標物体の追跡をするTrackingと,画像の変化を解釈するフロー推定. フロー推定の中にも特徴点のみの追跡をするsparse型と,画像全域のピクセルを追跡するdense型がある. ===== ニューラルネット ===== ==== 基本事項 ==== * conv {{:study:conv_std1.jpg?400|}} {{:study:conv_std2.jpg?400|}} {{:study:conv_std3.jpg?400|}} {{:study:conv_tra1.jpg?400|}} ==== Transformer ==== === 章分け === * Attention * Self-Attention / Source Target Attention * Multi-Head Attention * Encoder / Decoder * BERT (Encoder) / GPT (Decoder) 画像関係で Self-Attention を使っていたので Attention についてはある程度わかっているつもりになっていた.\\ しかしながら「Transformer と Self-Attention 使っているモデルって何が違うの?」みたいな疑問があった.\\ ここでは Transformer を構成する要素を分解し,通常の Self-Attention を使用した画像系モデルであまり採用されていない Transformer を Transformer たらしめているものを理解する. === 概要 === まず始めに Transformer は Encoder と Decoder により構成されているということを把握しておく.\\ しかしながらこの片方を指して Transformer と呼ぶことが多くあるので注意する. (BERTはTransformer-Encoderのみ,GPTはTransformer-Decoderのみ) **パラダイム** まず始めに, Transformer は単語の列を扱う自然言語処理のモデルとして生まれたことが大きな違いである. 単語の列というのはつまり可変長の列であり,決まったサイズの長さの文章を扱うわけではない. これだけでは画像系とあまり違いがわからないかもしれない. 自然言語処理でも固定長文章しか扱えないモデルもあれば可変長も扱えるモデルもあるように, 画像系でも特定のサイズにリサイズしないと使えないモデルやサイズに依存しない全層畳み込みニューラルネット(Fully Convolutional Neural Network) がある. しかし,完全に列として扱うということは全層畳み込みモデルとは全然違う. 全層畳み込みモデルは,入力に依存して出力サイズが決まり,そのサイズの各箇所の値を求めるものである. つまり,画像変換であれば入力と同じサイズのキャンバスに色を埋めていく作業であるし,超解像であれば入力の縦横何倍かのキャンバスの各ピクセルの色を計算するものである. この手の画像変換と完全に列として扱うTransformerはパラダイムが違う. Transformer の Decoder 部分では列の途中まで計算された値から列の次の値を求めるし,列が左シフトしていくようなイメージである. つまり用意されたキャンバスを埋めると言うよりは横に系列を追加しつつ生成していくようなイメージである. さらに,画像変換系であればキャンバスのすべての値が並列に求まっていくのと違い,キャンバスをスキャンラインして逐次的に処理していくイメージである. **モデル構造** 上記のパラダイムの違いから Transformer は完全にそれぞれの単語を分けて処理しているということを理解しておく. 画像系では Self-Attention を用いて画素毎に分解して考える処理が入っても,畳み込み層を使って周辺画素をまとめて扱ってしまうことも多い. Transformer で言う MLP は各単語に対して適用しているのであり,全ての単語をまとめて扱っているわけではないことに注意.\\ つまり画像系で言えば畳み込み層は完全に排除したものである. VisionTransformer は各パッチをそれぞれ別の物として扱うため畳み込み層は使っていない. ただし VisionTransformer はTransformer-Encoder のみのモデルであり,その最後に全てのパッチを合算するための全結合が入る. そのため最後以外はパッチを完全に個別のものとして扱っているが,最終層により系列長は自由とはならない. **Source-Target Attention** Decoder 部分はなかなかに特殊であり,画像関係ではあまり使われていない. Image-GPT はこれを試しに使ってみたものである. Decoder の Source-Target Attention 部分は 系列の後ろに系列を逐次的に追加していく処理である. ==== アニメ系ビットマップ画像生成 ==== | [[.:psgan|PSGAN]] | DeNA,アニメキャラクターの生成. | | [[.:style2paint|Style2Paints]] | 自動着色 | ==== GAN ==== | | WGAN,WGAN-GP | | | SNGAN | | | SAGAN | | | Relativistic GAN | | | BigGAN | | | [[https://arxiv.org/abs/1812.04948|Style GAN]] | | | [[https://qiita.com/Phoeboooo/items/e34d75c1c005e15c9db7|SC-FEGAN]] (Face Editing Generative Adversarial Network) SN-patchGANを利用.| ===== ヒューマンインタラクション ===== ==== GUI ==== GUIパラダイム * WYSIWYG(What You See Is What You Get) * Results-Oriented UI [[https://modelessdesign.com/modelessandmodal/2009/11/10/conscious/|モーダル・モードレス]] * モーダル * モードレス ===== データ構造 ===== ==== データベース ==== * グラフデータベース [[https://github.com/neo4j|Neo4j]] * Maria DB, MySQLの後継 * RDBMS(Relational Database Management System)はテーブル?,\\ OODBMS(Object-Oriented Database Management System)はオブジェクト指向,\\ LDAP(Light weight Directory Access Protocol)はツリー構造 * RDF(Resource Description Framework)はXMLでグラフを表現?RDFa ==== ファイルシステム ==== * **Semantic File System**

ディレクトリやファイルにタグとかをつけたりできるらしい.

===== storyboarding ===== continuity(連続性)については海外でも同じように考えられていてイマジナリーラインを超えるのは良くない. 海外でも上手,下手の概念はあって,向きも日本と同じ. {{https://upload.wikimedia.org/wikipedia/commons/f/fa/Stage_Layout_Plan.jpg}}