かやのんの誕生日を祝うために、KayanoAIを作ったよ!パート4~AI強化編~

AI
スポンサーリンク

茅野愛衣さん、お誕生日おめでとうございます!

どうも、タナシンです(・∀・)ノ

皆さん、本日は茅野愛衣さんの誕生日です!
茅野さんが何歳になられたかは、そろそろ数えなくても良いかなと思っています
めでたいってことがわかれば良いですね!

そして、毎年茅野さんを祝っている本ブログでは、もちろん今年もお祝いしていきます!

そして本ブログでは、茅野さんの誕生日になぜかAI(人工知能)に関する話をするという一風変わったお祝いの仕方をしています。
その名も

KayanoAI計画

です 笑
ここまでほぼ昨年と同じ定型文です 笑
気になる方は昨年の以下の記事をお読みください。

そして、今年このアプリに何をしたかというと

茅野さん検出AIのパワーアップ

です。
本当はいろいろ新しい技術を組み込む方を優先したかったのですが、ちょっと諸々間に合わなかったので、既存AIのパワーアップまでとなってしまいましたorz
そんな不甲斐ない私ですが、今年も茅野さんに関わるAIシステムで茅野さんをお祝いしたいと思います!

それではいってみましょう!

バージョンアップの内容

それではここからは昨年からバージョンアップした部分のお話をします。
今回やったことは2つあります。

  1. AIモデルをSSDからYolov5に変更
  2. AIの学習に利用する学習データの増量

です。
それでは、1つ1つ紹介してきます。

AIモデルの変更

まずは、AIモデルの変更についてです。
こちらについては昨年の記事でも少し触れています。

昨年までのKayanoAIは、茅野さんの顔を検出するためのモデルとして、SSDというモデルを利用していました。
ですが、それより高速かつ高精度に検出できるモデルとして、Yolov5というものがあります。
昨年はこのYolov5のモデルを構築するところまではできたのですが、このモデルをアプリに組み込む際にうまくいかず、挫折するという事態に陥りました。

ところが今回、その原因が追求でき、

見事Yolov5の導入に成功しました!

実際に解析結果をアプリ上で動作させている様子は以下になります。

KayanoAI with Yolov5

ちゃんと動いてるっしょ!

といっても、動画からだけではどのモデルが動いているかわかりませんよね……
一応、昨年の記事で、SSDとYolov5の比較画像を出していますので、そちらで差を感じていただければと思います……
何にしても、個人的にはより高速で精度の高いモデルを適用できたということで、一つレベルアップできたと思います!

学習データの増量

2つ目の話題は、学習データの増量です。

AIは一般的に、学習に利用するデータが多ければ多いほど高い精度を出しやすいです。
今まで作成してきた茅野さん検出AIは、かやのみ第0~58回のデータ、約500枚を利用してモデルを構築してきました。
しかし、それに限界を感じている部分もありました。

過去のAIモデルで限界を感じた例としては、以下のような動画です。

500枚で学習したモデル

何が問題かおわかりですね?
そうです。

茅野さん以外の人が茅野さんと認識されすぎ問題です!

さすがに性別が違ったり、特徴が大きく違う人であれば区別できるのですが、年代の近い女性が並ぶとあまり区別できていないというのが問題としてありました。
こちらを解決する方法の一つとして、より多くの茅野さん画像をAIに学習させることで、誤検出を減らそうというのが今回の取り組みです。

というわけで、早速かやのみの第0~132回の動画を利用して、1200枚程度の学習データを用意しました。
今までモデルで利用していた画像枚数の倍以上になります。
そして、この1200枚の画像を利用して再学習したAIモデルを利用して、同じ動画を解析すると以下のようになります。

1200枚で学習したモデル

誤検知減った!(^O^)/

まだちょいちょい大西さんと安野さんを誤検知しますが、かなりの確率で茅野さんだけを検知できるようになったと思います。
この結果からも、以下に学習に利用するデータの量がAIにとって重要かがわかりますね!
個人的には、ここまで改善するのかとちょっと感動しました。

もっと学習データを増やせば、より精度が上がるんじゃないの?というお言葉もあるかと思います。
私も同じように考えました。
ですが、ちょっとこれ以上の学習用データを作るのは大変だったので、今回はここまでとしました。
というのも、学習データを作る際は、アノテーションというラベル付け作業をするのですが、それが結構しんどいのです。
今回で言えば、かやのみ動画から抽出した全部の画像に対して、茅野さんの顔似該当する部分を四角い箱で囲うという作業をひたすらやります……
単調な作業なのですが、それゆえに気が狂いそうになります……
なので、今回は1200枚までで断念しました。

学習データをこれ以上増やさずに精度を上げる方法としては、すでに用意している画像に回転とか反転などの加工を加えて、学習用データを水増ししてAIを学習させるなどの方法もあります。
そのあたりも試してみようかと思いましたが、ちょっとそれなりに時間がかかるので一旦見送りました。
他にも手を出したい技術もあるので……

ただ、今回ちょっと気になることとして、解析プログラムを直接実行して動画を解析したときと、アプリに組み込んだAIモデルで解析した際で、結構精度が変わるという点です。
マシンスペックは同じですし、GPUも使っているので、環境的には同じはずなのですが……
もしかしたら、アプリ上では音声解析のAPIリクエストや字幕貼り付けなどの作業もいっぺんに実行しているため、マシンスペックの低下と解析精度の低下が起きているのかもしれません。
ここはちょっと検証を進めたいところです。

というわけで、以上、KayanoAIアプリの更新内容でした!

【おまけ】別のAIモデルでの解析

今回、実はYolov5以外の最新モデルも試してみました。
それがYoloXというものです。

YoloXはYolov5よりもあとに開発されたAIモデルであり、Yolov5より高速で高精度なモデルであるという噂がありました。
ただ、あまりネット上で試してみたという情報が多くなく、私自身半信半疑でした。
そこで、だったら自分で試してみようと思い、今回Yolov5に活用した学習用データを利用して、YoloXでもモデルを構築してみました。
その解析結果が以下になります。

YoloXで解析した場合

ちゃんと検出できているのですが、茅野さん度のパーセンテージが80%前後で推移していますね。
一方、Yolov5を利用した場合はどうなるかというと、以下のようになります。

Yolov5で解析した場合

茅野さん度が95%くらいで推移しているのがわかりますね。
もちろん他の人に対して茅野さん度95%と判定したら問題ですが、少なくとも茅野さん本人に対しては高い茅野さん度を出している方が精度が良いと言って良いと思っています。
そうなると今回の結果は、YoloXよりYolov5の方が良さそうと言える結果だったと思います。

また、今回YoloXを試していて不便だったのが、茅野さんが存在しない画像が混ざっていてはいけないという点でした。
どうやら、対応するラベルが何もない画像が含まれていると学習できないという縛りがあるようでした。
更に、YoloXは生成されるAIモデルのファイルがとてつもなく大きくなるみたいです。
Yolov5は軽いものを使うと14MBくらいでモデルのファイルを生成できるのですが、YoloXは1GB以上のファイル容量になりました。
さすがにそれは取り回しがしづらいということもあり、個人的にはYoloXは使えないという結論に達しています。

しかし、もしかしたらこれは今回のケースでたまたまそうなったというだけであって、必ずしもYolov5がYoloXより優れているというわけではないかもしれません。
なので、もし私がなにかうまくやれていないところがあれば、是非コメントを頂きたいところです。

教えて、エロい人!

以上、別モデルでの検証でした。

【おまけ】Stable Diffusion

皆さんは最近流行りの文章から画像を自動生成するAIはご存知しょうか?
『Stable Diffusion』や『Midjourney』というものです。
AI好きな私も例に漏れず、早速『Stable Diffusion』を試してみました。
私が試したものは英語にしか対応していませんが、文章を入れると自動でその文章に該当する画像を作ってくれます。
また、参考画像も併せて入力すると、その画像をベースにして、文章に合う画像を生成してくれます。
ここで皆さん気になりますよね?

『Stable Diffusion』は茅野さんを生成できるのか?

私試しました。
そして、見事挫折しましたorz
さすがに「Kayano Ai」ではただ女性が生成されるだけでした。
「日本の女性声優茅野愛衣」みたいな内容を記述しても、やはり茅野さんは生成されませんでした。
試しに茅野さんの画像を入力し、「眼鏡を掛けた茅野愛衣」みたいな感じで生成もしてみましたが、全く茅野さんと異なる眼鏡女性が生成されました。
こいつを使ったら簡単に『眼鏡をかけた茅野さん』を生成できるかと思ったのですが、そうはうまくいかないみたいですね……
イーロン・マスクは似た感じの人が生成できたのですが……
そんなわけで、使えそうでまだまだ課題がありそうな技術でした。
興味のある方は、NVIDIA GPUがあれば以下のサイトの手順で導入ができますので、試してみてくださいね!

画像生成AI「Stable Diffusion」をWindows環境にボタン1つでインストール可能&GUIで操作できる「NMKD Stable Diffusion GUI」がついに登場
入力した文字列から高精度な画像を生成できるAI・Stable Diffusionは2022年8月に無料で一般公開され、「基本的に出力した画像は商用・非商用を問わず、自由に利用できる」というライセンスで大きな話題となりました。しかし、Stable DiffusionをローカルなWindows環境に導入して使うには、Pyt...

以上、『Stable Diffusion』の検証でした。

まとめ

いかがだったでしょうか?

毎年恒例ですが、変なお祝いの仕方をしてしまっているなぁと我ながら思います。
こんなお祝いの仕方をされて、茅野さんもさぞ迷惑がっているのではないかと思います……
その罪滅ぼしではないですが、今年は事務所の方にささやかなお祝いをお送りしました。
初めて送るので、ちゃんと届いたか不安ですが……
届かなかったら帰ってくるだけだと思うので、まぁ良しとします 笑
ちなみに、送ったのはこの記事のサムネイル画像に写したものです。

また余談ですが、11月6日に茅野さんも登壇されるSAOのイベントがあります。
詳細は以下。

アニメ10周年記念イベント「ソードアート・オンライン -フルダイブ- 」2022年11月6日(日) 開催 | アニメ『ソードアート・オンライン』10周年プロジェクト
アニメ10周年記念 《SAO》の日を飾るメモリアルイベント「ソードアート・オンライン -フルダイブ- 」2022年11月6日(日) 開催!

今回私は運良くこちらに当選したので、茅野さんに会ってこようと思います!
まだまだ先ですが、イベントの様子は本ブログでもレポートしようと思いますので、お楽しみに。

さて、何はともあれ、今年も無事茅野さんをお祝いできました。
本当はもうちょっと新しいことに挑戦しようと思ったのですが、なかなか予定は未定というやつですね。
来年こそは、もうちょっと面白いことをしたいと思います!

というわけで、最後になりますが改めて

茅野さん、お誕生日おめでとうございました!

それでは、今回はこのへんで!
では、また次回(* ̄▽ ̄)ノ~~ マタネー♪

コメント