Face recognition for Luppet, for xR Tech Nagoya #4
by
izm
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
VTuber配信システム Luppetの顔認識の工夫 @izm
Slide 2
Slide 2 text
資料は後日アップロードします 撮影しなくて大丈夫!!!
Slide 3
Slide 3 text
誰? - twitter:@izm qiita,github:neon-izm - 愛知出身、元愛知の製造業R&Dエンジニア - 現SHOWROOM xR Lab エンジニア - VTuberのおたく -
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
皆さんはどんな方? - 現役xR ソフトウェアエンジニアの人 - その他開発の仕事の人 - デザイン系の人 - 学生の人 今日は何もなければふんわり系の話をします 数式を出しません!
Slide 6
Slide 6 text
今日話したいこと
Slide 7
Slide 7 text
今日話したいこと - 気軽に作ってデモしたりTwitterに動画流そう - 技術デモでも最低限の見た目に気を使おう - デモから製品レベルまでには色んな工夫を実装するこ とになる(Luppetの話はここ)
Slide 8
Slide 8 text
Luppet - バストショット特化+ワンオペ配信を前提としたPC向け バーチャルキャラクター配信ソフトウェア - ねぎぽよし(同僚)の個人製作物で、izmは顔認識周りを 実装 - 個人VTuberの方から、法人利用まで様々な採用例 (テ レ東さんとかも使ってくれた!)
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
Luppetの立ち位置 2D 3D 手軽 Facerig Luppet リッチ スタジオ収録 (MVN,Vive,Vicon) 3D配信のFacerigを目指す
Slide 11
Slide 11 text
Luppetの技術要素 - Unity製 - モデル読込…VRM - 頭の位置と目や口の認識 …WebCamera+Mic - 手の認識… LeapMotion
Slide 12
Slide 12 text
組み合わせたら作れそう
Slide 13
Slide 13 text
組み合わせたら作れそう は大事 - 完全なる新規は少ないので、組み合わせを考える - 組み合わせて動いた時点でSNSに公開する
Slide 14
Slide 14 text
組み合わせてえいって作ってtwitterで動画公開する - PoC(コンセプト実証)とも言います - 面白く感じる人が多いかで、開発を進めるか判断します
Slide 15
Slide 15 text
ちょっと待った
Slide 16
Slide 16 text
ちゃんと意図が伝わる動画(PoC)になっていますか - 構成要素が過不足なく伝わる - 手抜き感を出さない - 十分に動画の尺が短い - カット編集はする
Slide 17
Slide 17 text
手抜き感を出さない - カメラが手ぶれしてる - カメラが斜めっている - 背景がゴミゴミしてる と一気に手抜き感が出る…
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
絵やサービスモックでも同じ - 絵は鉛筆書きでも良いから紙の色は補正しよう - スマホの影が映り込まないようにしよう - cssは最低でもtwitter bootstrapとかを当てよう - テスト文書に「あああああ」は止めよう
Slide 20
Slide 20 text
十分に動画の尺は短いですか - 撮って出しカット編集の無音で見てくれるのは10秒まで - 初手1秒以内にキービジュが出るように - 20秒越える無言動画を見てくれるのはトップカンファの 発表デモだけ
Slide 21
Slide 21 text
せっかく撮ったデモ動画が部屋の隅に映ってたゴミの山の せいで低品質なものだと思われるとつらすぎる せっかく作ったUnityのデモがデフォルト空のせいで低品質 なものだと思われるとつらすぎる
Slide 22
Slide 22 text
ここまでの結論 - 見せ方のプロじゃなくても、最低限の見た目を整えてか ら(身内以外の)人に見せるのは大事 - (身内には適当で良いから1秒でも早く見せよう)
Slide 23
Slide 23 text
余談:買っておこう簡単撮影機材 - 良いカメラのスマホ - デスクライト - スマホ用3脚
Slide 24
Slide 24 text
技術デモから 製品までの話
Slide 25
Slide 25 text
Luppetの顔認識を例に出します - 瞬きの検知 - 口の開きの検知
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
普通のWebカメラなので - 遠くに居て目がちょっと開いてる - 近くに居て目が閉じてる →同じピクセル値が返ってくる
Slide 28
Slide 28 text
普通のWebカメラなので - 認識結果が暴れて高速瞬きになることがある(初期の Live2D+iPhone Xのトラッキングデモなど) - 口の形は千差万別、目の大きさも人間によって異なる
Slide 29
Slide 29 text
人の個人差を吸収する - トラッキング中、常に目の開度のリミットを更新し続ける (直近で一番長時間の目の開き具合を、目の基準値と する) - 口の開き具合(横と縦、口角の上がり角など)も同様 - 既存ライブラリには入っていないので自作
Slide 30
Slide 30 text
目閉じ、目開き判定 カメラが認識した上瞼の画素(x,y)pixelと下瞼の画素 (x,y)pixelの間が - とある値以上だったら目は全開 - とある値以下だったら目は全閉 半目になると可愛くないので…
Slide 31
Slide 31 text
とある値(目閉じ、目開き判定のしきい値)の決め方 - 世の中には目がパッチリしてる人と目がパッチリしてい ない人がいる - 設定スライダ???正気???
Slide 32
Slide 32 text
例:目開き判定のしきい値 の決め方 - 人類のデフォルトは目開きなので、じーっとしてたら目 が開くようにする
Slide 33
Slide 33 text
例:目開き判定のしきい値 の決め方 目閉じや、口認識なども同じ感じ に作ってます。 半目も出来るけど、大体目閉じ と目開きはパキっとなる
Slide 34
Slide 34 text
この辺の話は - ヒステリシス制御 - AutoGainControl みたいな仕組みが古典制御であり、製造業時代の知識が 生かせました。 なんでも勉強しておくと意外と別分野で役に立ちます
Slide 35
Slide 35 text
Webカメラ性能差を吸収する - 性能が低いカメラでは検出精度が暴れる →検出した目や口の開き具合をLowPassFilterを掛けて滑 らかに補正する
Slide 36
Slide 36 text
頭の位置と向きの補正 ガクガク移動すると可愛くないので頭の位置と向きも LowPassFilterを掛けて滑らかに移動させる
Slide 37
Slide 37 text
こんなにやるの?
Slide 38
Slide 38 text
やる
Slide 39
Slide 39 text
現在の世の中の「製品」は高品質前提 - 小機能は許されても低品質は許されない - 低品質で出してアップデートするまでの間、ユーザは 待ってくれない - 製品は最初から高品質で出す必要がある
Slide 40
Slide 40 text
あるある - ネタが被った - 睡眠時間削って作ったのに全然バズらない - 作ってて面白さが分からなくなってきた
Slide 41
Slide 41 text
それでも作った人に残るもの - 組み合わせたら出来そう、だけじゃなくて組み合わ せて作ってコンセプト動画を出した - 面倒くさい事まで含めてゴリゴリ製品レベルまで作 りこんだ経験値
Slide 42
Slide 42 text
経験値は裏切らない - 意識高いツイートや社会を斬ってるだけでは身につか ない筋肉が付く - CGじゃなくて動くデモを作るのは、筋肉が付く - 筋肉は裏切らない
Slide 43
Slide 43 text
本日のまとめ3点 - 気軽に作ってデモしたりTwitterに動画流そう - 技術デモでも最低限の見た目に気を使おう - デモから製品レベルまでには色んな工夫を実装するこ とになる
Slide 44
Slide 44 text
Happy Hacking! 続きはこの後の自由セッションや(あるとしたら)二次会に
Slide 45
Slide 45 text
余談 弊社は副業可です :)