笑顔でShoot!

導入
いただきました,その名前。今日,諸先生がたと立ち話した収穫として,「クソゲー連発案は有用であること」,「感情把握アプリは老人業界にも有用」などのこと。FaceAnalyzerはよく見るとWebGL未対応のようで,そうなるとOpenGLでやるしかない。WebGLだとブラウザ立ち上げるだけで,AffectiveComputing技術ベースのアプリが利用できる可能性がある。
善は急げでビルドしてみる・・・
OpenCV4Unityはサポートバージョンが上がっていたので,いっそUnity6にしてみるが・・・ビルドできず(泣)。マニュアルを読むと,バージョンによってWebGLのプラグインが異なるらしいので,2023.2.20にしてみる。ビルドは通るが公式DEMOより明らかに遅い!何故だ!!MultiThredとSIMDを有効にしてみる・・・「ブラウザはマルチスレッドをサポートしてません(FirefoxもChromeも)」で起動すらせず。SIMDのみにしてみる。無事に動作した! これで表情利用したWebGLアプリをリリースできそうだ。・・・動作が13fpsなのが気になる。解像度を320x240にすると22FPSに。もう少し速くなるといいんだけどなぁ。科学技術のげ限界っ!

遅い・・・
どうも純粋にCPUを使っており、かつシングルスレッドのためか、かなり遅い。Corei5_9600kで6.7FPSは衝撃の遅さだ(Ryzen7_6800Uの方が速い)。AIアプリの実行環境はPCネイティブ環境しかダメということか・・・。いっそAndroidに行くというのは?手持ちで一番速そうなHelioG99にAndroidネイティブアプリを入れてみると、19~22FPS程度。WebGLよりは速いけど、ちょっと・・・なぁ。

マルチスレッド対応の効果見られず
WebGLはUnity2022あたりからマルチスレッドに対応しているという。そこでマルチスレッド対応バージョンをビルドしてみた。ブラウザが「マルチスレッドに対応していません」と言う場合は,下記のヘッダを.htaccessで設置すれば動くようになる。アプリがロード中に止まるのはメモリ不足なので,使用可能メモリを倍にすればロードするようになる。結果として,フレームレート変わらねぇ・・(怒)。プログラムがマルチスレッド対応してないと意味ないということか?

<IfModule mod_headers.c>
    Header set Cross-Origin-Opener-Policy "same-origin"
    Header set Cross-Origin-Embedder-Policy "require-corp"
</IfModule>

コメントを残す