exoファイルを使えば、立ち絵の設定をテンプレ化して何度でも使い回せる。キャラごと・表情ごとのexoパターンを作っておけば、配置も口パクも一瞬。拡張編集にドラッグ&ドロップするだけで、作業時間が爆速短縮。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 第3章 その72【アフィン変換⑯】
アフィン変換のプログラミングに向けてを再確認。 画像と同一形状の2次元配列に変換元座標配列を生成。 変換元の座標系-1~1をピクセル位置に変換。 元画像と変換元座標を元に変換先へコピー。
MATLAB,Python,Scilab,Julia比較 第3章 その71【アフィン変換⑮】
アフィン変換のプログラムの流れを確認。 中心を0とした座標系の生成。 3次元ベクトル配列の生成。 アフィン変換を一括で行うため。
各種アフィン変換とアフィン行列の説明。 回転行列について説明。 動く点Pで回転移動の雰囲気を察する。 cos,sinを使って直交座標へ。 基本ベクトルの変化を元に回転のイメージを得る。 x軸、y軸の回転を合わせて行列へ。
アフィン変換後にまだら模様になる問題がある。 まだら模様対策のシンプルなやつを確認。 アフィン逆変換を使う。 アフィン逆変換は、アフィン変換の式を変形しただけ。 アフィン行列が逆行列になる。
MATLAB,Python,Scilab,Julia比較 第3章 その70【アフィン変換⑭】
回転行列概要をWikipediaより引用。 動く点Pで回転移動の雰囲気を察する。 cos,sinを使って直交座標へ。 基本ベクトルの変化を元に回転のイメージを得る。 x軸、y軸の回転を合わ これが回転行列。
MATLAB,Python,Scilab,Julia比較 第3章 その69【アフィン変換⑬】
各種アフィン変換とアフィン行列の説明。 伸縮、移動、回転、剪断。 回転は回転行列を使ってるので少しわかりにくい。 よって、別途説明。
MATLAB,Python,Scilab,Julia比較 第3章 その68【アフィン変換⑫】
まだら模様対策のシンプルなやつを確認。 アフィン逆変換を使う。 アフィン逆変換は、アフィン変換 アフィン行列が逆行列になる。
MATLAB,Python,Scilab,Julia比較 第3章 その67【アフィン変換⑪】
アフィン変換後にまだら模様になる問題がある。 発生原因は、変換元のピクセルだけでは変換先ピクセルを埋めきれないとき。 一般的な補間方法があるが、もっとシンプルな方法を採用する予定。
【入門】アフィン変換と畳み込みニューラルネットワーク【数値計算】
余談として畳み込みニューラルネットワークと畳み込み演算、アフィン変換の関連性を説明。 畳み込み層と畳み込み演算は割とそのまんまでわかりやすい。 アフィン変換の同次座標系の全結合層の数式を比較。 全結合層は別名でアフィン層。
世の中にAI実装検定B級の問題集が存在しないようなので、サクッと作ってみた。 とりあえず77問ほど放り込んでる。 AI実装検定B級のまとめ記事はこちら 解説動画とか そのうち作ります。 学習用書籍 問題 AI実装検定B級 まとめ
世の中にAI実装検定B級の問題集が存在しないようなので、サクッと作ってみた。 とりあえず77問ほど放り込んでる。 AI実装検定B級のまとめ記事はこちら 解説動画とか そのうち作ります。 学習用書籍 問題 AI実装検定B級 まとめ
AI実装検定B級に合格しました。 合格率、テキスト、勉強時間、試験日について解説。 なぜか問題集も作った。
MATLAB,Python,Scilab,Julia比較 第3章 その66【アフィン変換⑩】
ニューロンを複数並べたときの数式を書きだした。 それとアフィン変換の同次座標系の数式を比較。 全結合層は別名でアフィン層。
MATLAB,Python,Scilab,Julia比較 第3章 その65【アフィン変換⑨】
余談として畳み込みニューラルネットワークと畳み込み演算、アフィン変換の関連性を説明。 畳み込み層と畳み込み演算は割とそのまんまでわかりやすい。 全結合層の前にニューロン1個の演算を数式で表現。
キャンパス拡張をJuliaで実施。 手順としてはMATLABと一緒。 だいたい0~1の正規化が他のツール、言語の差異になりやすいが、今回は関係ない。
キャンパス拡張をScilabで実施。 手順としてはMATLABと一緒。 メモリ不足になることがあるため、画像を小さめにしておいた方が良い。
キャンパス拡張をPython(NumPy)で実施。 手順としてはMATLABと一緒。 黒空間を作る際にuint8の型で作成。 保存時にキャストしてもOK。
キャンパス拡張をMATLABで実施。 元画像のサイズを元に指定ピクセル分大き目の黒空間を作成。 その黒空間の真ん中に元画像をコピー。
MATLAB,Python,Scilab,Julia比較 第3章 その64【アフィン変換⑧】
キャンパス拡張をJuliaで実施。 手順としてはMATLABと一緒。 だいたい0~1の正規化が他のツール、言語の差異になりやすいが、今回は関係ない。
MATLAB,Python,Scilab,Julia比較 第3章 その63【アフィン変換⑦】
キャンパス拡張をScilabで実施。 手順としてはMATLABと一緒。 メモリ不足になることがあるため、画像を小さめにしておいた方が良い。
MATLAB,Python,Scilab,Julia比較 第3章 その62【アフィン変換⑥】
キャンパス拡張をPython(NumPy)で実施。 手順としてはMATLABと一緒。 黒空間を作る際にuint8の 保存時にキャストしてもOK。
MATLAB,Python,Scilab,Julia比較 第3章 その61【アフィン変換⑤】
キャンパス拡張をMATLABで実施。 元画像のサイズを元に指定ピクセル分大き目の黒空間を作成。 その黒空間の真ん中に元画像をコピー。
座標変換の代表的な手法としてアフィン変換がある。 アニメーションgifでアフィン変換のイメージを見てみた。 アフィン変換を実施する上での問題を確認。 空間不足問題とまだら模様問題。
MATLAB,Python,Scilab,Julia比較 第3章 その60【アフィン変換④】
アフィン変換を実施する上での問題を確認。 空間不足問題とまだら模様問題。 空間不足問題に対しては、キャンパス拡張にて対策。 まだら模様問題は、別途原因と対策を説明予定。
MATLAB,Python,Scilab,Julia比較 第3章 その59【アフィン変換③】
アフィン変換の数式の変形して同次座標系へ。 この表現の方が、他の座標変換の時に生きる。 このままやるといろいろ問題が起きる。 空間不足。 変換先が満遍なくならない。
MATLAB,Python,Scilab,Julia比較 第3章 その58【アフィン変換②】
アフィン変換でなにができるのかを確認。 伸縮、移動、回転、剪断が可能。 アニメーションgifでアフィン変換のイメージを見てみた。 数式的な解釈の確認。
MATLAB,Python,Scilab,Julia比較 第3章 その57【アフィン変換①】
画像処理は、特徴を抽出する畳み込みとは別に座標を変換するものもある。 座標変換の代表的な手法としてアフィン変換がある。 アフィン変換は現座標を元に直線的に変換先を決定する手法。
MATLAB,Python,Scilab,Julia比較 第3章 その57【アフィン変換①】
画像処理は、特徴を抽出する畳み込みとは別に座標を変換するものもある。 座標変換の代表的な手法としてアフィン変換がある。 アフィン変換は現座標を元に直線的に変換先を決定する手法。
【入門】Hysteresis Threshold(Julia)【数値計算】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をJuliaで実施。 環境依存はあるかもしれないが、処理としてはMATLABよりも高速。 JITコンパイル後はネイティブコードで動作するため。
【入門】Hysteresis Threshold(Scilab)【数値計算】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をScilabで実施。 基本的にはいままでのコードを再利用。 環境によってはメモリ不足に陥るのでJavaヒープメモリを調整する必要がある。
【入門】Hysteresis Threshold(Python)【数値計算】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をPython(NumPy)で実施。 基本的にはいままでのコードを再利用。 追加分はHysteresis Thresholdの部分。
【入門】Hysteresis Threshold(MATLAB)【数値計算】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をMATLABで実施。 基本的にはいままでのコードを再利用。 追加分はHysteresis Thresholdの部分。
MATLAB,Python,Scilab,Julia比較 第3章 その56【Hysteresis Threshold⑦】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をJuliaで実施。 環境依存はあるかもしれないが、処理としてはMATLABよりも高速。 JITコンパイル後はネイティブコードで動作するため。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
exoファイルを使えば、立ち絵の設定をテンプレ化して何度でも使い回せる。キャラごと・表情ごとのexoパターンを作っておけば、配置も口パクも一瞬。拡張編集にドラッグ&ドロップするだけで、作業時間が爆速短縮。
G検定まとめ記事はこちらはじめに結構昔にG検定向けの動画で、「JDLAジェネラリスト検定(G検定)さっくり対策(究極カンペの作り方)カンペを見なくても問題が解ける自分の作り方。」というのを公開しているのだが、これに対しての問い合わせがちょく...
動画作成関連のバックナンバー用ページ。立ち絵を作ったり、動画作ったり、アイキャッチ画像作ったりなどを掲載していく。
画像認識の全体像を因果関係図で整理し、AlexNetを起点に各モデルの進化をたどる。一般物体認識から物体検出・セグメンテーション・姿勢推定まで、各カテゴリの代表モデルと技術を解説。モデル同士の構造的なつながりや技術的背景を踏まえ、因果関係をもとに体系的に理解を深めていく。
究極カンペの作り方についての問い合わせが増えている。G検定の評判を確認し、ネガティブな意見を問題提起として捉える。勉強のステージを定義し、語彙力と因果関係の把握が重要であることを説明。
フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
MATLAB,Python,Scilab,Julia比較するシリーズの第4章。第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。第5章はフーリエ解析学から高速フーリエの話がメインとなる。
立ち絵の配置: PSDファイルをAviUtlに配置し、画面サイズやフレームレートを設定。のっぺらぼう化: 目と口を消して、アニメーション効果を追加。アニメーション効果: 目パチと口パクの設定を行い、リップシンクを調整。
フーリエ変換を定義。フーリエの積分公式の一部を抜き出す。逆フーリエ変換を定義。フーリエの積分公式にフーリエ変換を代入するだけ。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。区分求積法とリーマン積分について。フーリエの積分公式を導出した。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。さらにそこに加えて、AivisSpeechのアイコン画像を...
PSDToolKitプラグインの導入の仕方を説明。PSDファイルを探してGIMPで内容を確認。GIMPで瞬き用、口パク用のレイヤー編集。
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
区分求積法とリーマン積分について。離散と連続の分け目。フーリエの積分公式を導出した。演算したはずなのに変化しない。つまり変換、逆変換が成立することを示している。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。よって、一般的な表現に書き換える必要がある。
角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。ω=nπ/Lを使用して変換するだけ。これにより少し数式がシンプルになった。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。ほぼ独自に作成したが、Anneliの画像自体はAivisS...
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。変換を想定した式に変換。複素指数関数との積と積分、総和を経由すると元に関数に戻るというイメージが重要。
AviUtlのセットアップと拡張編集Pluginの導入を行った。mp4ファイルの入力と出力の方法を説明。アニメーションgifの対応方法を説明。
もう一個試す予定の最適化アルゴリズムAdamへ至る系譜を説明予定。 AdaGradについて説明。 更新式をモーメンタムと比較。 RMSpropについて説明。 AdaGradの完了版であるため、AdaGradと更新式を比較。
Adamの更新式を実現するためのプログラムフローを記載。 モーメンタムの部分をAdamに差し替えただけ。 学習率は0.001とかなり小さめの値に設定。 これにより収束は遅くなる。 かわりに特殊な最適解が得られるのでそれを確認する。
各最適化アルゴリズムの依存関係を記載。 1次の勾配で勢いをつけて、2次の勾配で抑制するというのが全体を通しての共通点。 Adamが1次の勾配と2次の勾配を合わせたアルゴリズムとなる。
最適化アルゴリズムAdamについて説明。 モーメンタムとRMSpropの合わせ技。 1次の勾配と、2次の勾配の指数移動平均を使用する。
AdaDeltaについて説明。 RMSpropの拡張版に当たる。 学習率というハイパーパラメータ無しで動作する。 最終的な学習率は1近傍になるため振動しやすいらしい。
RMSpropについて説明。 AdaGradの完了版であるため、AdaGradと更新式を比較。 AdaGradでは2次の勾配の累積だったものが、2次の勾配の指数移動平均に。 これにより、極小値近辺やプラトーになっても更新を続けられる。
AdaGradについて説明。 更新式をモーメンタムと比較。 更新幅は、最初は大きく、徐々に小さくなり、最終的には学習が進まなくなる欠点を抱えている。
もう一個試す予定の最適化アルゴリズムへ至る系譜を説明予定。 プログラム化して試すのはAdamだが、それに至るアルゴリズムを数式レベルで確認。 Adam以降の最適化アルゴリズムもあるが、基本はAdamベースでクリッピングが入ってる感じ。
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。