exoファイルを使えば、立ち絵の設定をテンプレ化して何度でも使い回せる。キャラごと・表情ごとのexoパターンを作っておけば、配置も口パクも一瞬。拡張編集にドラッグ&ドロップするだけで、作業時間が爆速短縮。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 第3章 その55【Hysteresis Threshold⑥】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をScilabで実施。 基本的にはいままでのコードを再利用。 環境によってはメモリ不足に陥るのでJavaヒープメモリを調整する必要がある。
MATLAB,Python,Scilab,Julia比較 第3章 その54【Hysteresis Threshold⑤】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をPython(NumPy)で実施。 基本的にはいままでのコードを再利用。 追加分はHysteresis Thresholdの部分。
MATLAB,Python,Scilab,Julia比較 第3章 その53【Hysteresis Threshold④】
非極大値抑制にHysteresis Thresholdを加えた、Canny法による2値化をMATLABで実施。 基本的にはいままでのコードを再利用。 追加分はHysteresis Thresholdの部分。
【入門】Hysteresis Threshold【数値計算】
2値化手法として、Hysteresis Thresholdを使ってみる。 Hysteresis Thresholdを図解&判定方法を説明。 Hysteresis Thresholdを実施するための手順を確認。
MATLAB,Python,Scilab,Julia比較 第3章 その52【Hysteresis Threshold③】
Hysteresis Thresholdを実施するための手順を確認。 非極大値抑制にHysteresis Thresholdを加えただけ。 上記の手順はCanny法という名称がついている。 Wikipediaに記載されているCanny法について確認。
MATLAB,Python,Scilab,Julia比較 第3章 その51【Hysteresis Threshold②】
Hysteresis Thresholdの雰囲気をセンサ情報のヒス付き判定と関連させて説明。 Hysteresis Thresholdを図解で説明。 Hysteresis Thresholdの具体的な判定方法を説明。
MATLAB,Python,Scilab,Julia比較 第3章 その50【Hysteresis Threshold①】
非極大値抑制を掛けた後の画像はなんか暗い。 よって2値化して、線をはっきりくっきりせされば良い。 閾値で2値化するのが一番シンプルだが、必要な線が消えたり、不要な線が残ったりしやすい これに対して、Hysteresis Thresholdを使うと言い感じになる。
各ツール、各言語における論理インデックスサーチと線形インデックスサートの一覧表を作成。 SQLやコンテナライブラリにも似たような機能が実装されていることが多いので、仕様を確認しておくと楽ができる。
各ツール、各言語で論理インデックスサーチを実施。 基本的には似たり寄ったりの記述方法。
各ツール、各言語で線形インデックスサーチを確認。 基本的にはどの環境でも実施可能。 MATLABのfind相当の関数がwhereだったりfindallだったりする程度の差はある。
MATLABで線形インデックスサーチと論理インデックスサーチの挙動を確認。 基本的な考え方は配列の添え字指定のベクトル化。 線形の場合は、要素番号、論理の場合は、0or1のテーブル指定。
MATLAB,Python,Scilab,Julia比較 第3章 その49【インデックスサーチ⑤】
各ツール、各言語における論理インデックスサーチと線形インデックスサートの一覧表を作成。 SQLやコンテナライブラリにも似たような機能が実装されていることが多いので、仕様を確認しておくと楽ができる。
MATLAB,Python,Scilab,Julia比較 第3章 その48【インデックスサーチ④】
各ツール、各言語で論理インデックスサーチを実施。 基本的には似たり寄ったりの記述方法。
MATLAB,Python,Scilab,Julia比較 第3章 その47【インデックスサーチ③】
各ツール、各言語で線形インデックスサーチを確認。 基本的にはどの環境でも実施可能。 MATLABのfind相当の関数がwhereだったりfindallだったりする程度の差はある。
MATLAB,Python,Scilab,Julia比較 第3章 その46【インデックスサーチ②】
MATLABで論理インデックスサーチの挙動を確認。 評価式の結果が論理インデックスとなり、それを行列に渡すことで1、またはtrueの部分の要素の参照及び書き換えが可能。 find関数を使用すると評価式に該当する線形インデックスが取得できる。 これらはMATLAB以外の環境、言語でも使用できることが多い。
MATLAB,Python,Scilab,Julia比較 第3章 その45【インデックスサーチ①】
MATLABで線形インデックスサーチを実施。 基本的な考え方は配列の添え字指定のベクトル化。 様々な指定方法で行列内部データの参照、書き込みが可能となる。
Juliaで非極大値抑制を実施。 MATLABと同様の結果が得られた。 ピクセルの正規化の話と、"."によるブロードキャストは毎度な話。
Scilabで非極大値抑制を実施。 MATLABと同様の結果が得られた。 コードもほぼ一緒。 Scilabも線形&論理インデックスサーチが存在する。
Python(NumPy)で非極大値抑制を実施。 MATLABと同一の結果が得られた。 MATLABでは論理インデックスサーチを使用したが、ここではあえて線形インデックスサーチを使用。
MATLABで非極大値抑制を実施。 想定通りの結果が得られた。 論理インデックスサーチを利用している個所がある。 インデックスサーチについては別途説明。
MATLAB,Python,Scilab,Julia比較 第3章 その44【非極大値抑制⑨】
Juliaで非極大値抑制を実施。 MATLABと同様の結果が得られた。 ピクセルの正規化の話と、"."によるブロードキャストは毎度な話。
MATLAB,Python,Scilab,Julia比較 第3章 その43【非極大値抑制⑧】
Scilabで非極大値抑制を実施。 MATLABと同様の結果が得られた。 コードもほぼ一緒。 Scilabも線形&論理インデックスサーチが存在する。
MATLAB,Python,Scilab,Julia比較 第3章 その42【非極大値抑制⑦】
Python(NumPy)で非極大値抑制を実施。 MATLABと同一の結果が得られた。 MATLABでは論理インデックスサーチを使用したが、ここではあえて線形インデックスサーチを使用。
MATLAB,Python,Scilab,Julia比較 第3章 その41【非極大値抑制⑥】
MATLABで非極大値抑制を実施。 想定通りの結果が得られた。 論理インデックスサーチを利用している個所がある。 インデックスサーチについては別途説明。
非極大値抑制(Non-maximum suppression)について説明。 概念としてはシンプルだが、2次元平面で考える場合、どの方向から極大値を評価するが重要。 x方向、y方向の輝度勾配が分かっているので、勾配の方向はarctanで特定可能。
MATLAB,Python,Scilab,Julia比較 第3章 その40【非極大値抑制⑤】
非極大値抑制をプログラムで実現する手順を確認。 一個一個はそれほど複雑ではない。(はず) 勾配方向角度については、度数法で扱う。 プログラム的には弧度法の方が扱いやすいが、人間から見た分かり易さを重視。
MATLAB,Python,Scilab,Julia比較 第3章 その39【非極大値抑制④】
非極大値抑制を実現するための斜面の方向パターンについて説明。 arctan関数で細かい方向は特定できるが、基本は4パターンに丸められる。 判定ピクセルマスを5×5、7×7などにしてもっと細かくするパターンもある。
MATLAB,Python,Scilab,Julia比較 第3章 その38【非極大値抑制③】
非極大値抑制の「勾配の特定方法」について解説。 2次元平面で考えるためには勾配の方向が重要。 勾配の方向は、横、縦それぞ 実際にはarctan関数を使用する。 arctan関数はtan関数の逆関数。
MATLAB,Python,Scilab,Julia比較 第3章 その37【非極大値抑制②】
非極大値抑制の大雑把な雰囲気を確認。 図で確認。 2次元平面に実施す これも図で確認。 様々な方向から見た極大値を意識する必要がある。
MATLAB,Python,Scilab,Julia比較 第3章 その36【非極大値抑制①】
エッジ検出もっとシビアに行いたい。 非極大値抑制を使うといい感じになる。 同様の用語が物体検出器でも出てくるが別物。 具体的な話は順を追って説明する。
「ブログリーダー」を活用して、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の更新式を実現するためのプログラムフローを記載。 モーメンタムの部分を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。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 モーメンタムの動作イメージについて確認。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。