Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Face recognition for Luppet, for xR Tech Nagoya #4
Search
izm
August 30, 2019
3
7.4k
Face recognition for Luppet, for xR Tech Nagoya #4
izm
August 30, 2019
Tweet
Share
More Decks by izm
See All by izm
Haritoraのような安価なIMUモーキャプの特性と考慮点について
izm
1
11k
Unity Networking Libraries Overview2018
izm
4
5.3k
Unity MovieTexture (VR panorama) tips
izm
6
8.6k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Code Reviewing Like a Champion
maltzj
521
39k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
530
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Faster Mobile Websites
deanohume
305
30k
Thoughts on Productivity
jonyablonski
68
4.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Transcript
VTuber配信システム Luppetの顔認識の工夫 @izm
資料は後日アップロードします 撮影しなくて大丈夫!!!
誰? - twitter:@izm qiita,github:neon-izm - 愛知出身、元愛知の製造業R&Dエンジニア - 現SHOWROOM xR Lab
エンジニア - VTuberのおたく -
None
皆さんはどんな方? - 現役xR ソフトウェアエンジニアの人 - その他開発の仕事の人 - デザイン系の人 - 学生の人
今日は何もなければふんわり系の話をします 数式を出しません!
今日話したいこと
今日話したいこと - 気軽に作ってデモしたりTwitterに動画流そう - 技術デモでも最低限の見た目に気を使おう - デモから製品レベルまでには色んな工夫を実装するこ とになる(Luppetの話はここ)
Luppet - バストショット特化+ワンオペ配信を前提としたPC向け バーチャルキャラクター配信ソフトウェア - ねぎぽよし(同僚)の個人製作物で、izmは顔認識周りを 実装 - 個人VTuberの方から、法人利用まで様々な採用例 (テ
レ東さんとかも使ってくれた!)
None
Luppetの立ち位置 2D 3D 手軽 Facerig Luppet リッチ スタジオ収録 (MVN,Vive,Vicon) 3D配信のFacerigを目指す
Luppetの技術要素 - Unity製 - モデル読込…VRM - 頭の位置と目や口の認識 …WebCamera+Mic - 手の認識…
LeapMotion
組み合わせたら作れそう
組み合わせたら作れそう は大事 - 完全なる新規は少ないので、組み合わせを考える - 組み合わせて動いた時点でSNSに公開する
組み合わせてえいって作ってtwitterで動画公開する - PoC(コンセプト実証)とも言います - 面白く感じる人が多いかで、開発を進めるか判断します
ちょっと待った
ちゃんと意図が伝わる動画(PoC)になっていますか - 構成要素が過不足なく伝わる - 手抜き感を出さない - 十分に動画の尺が短い - カット編集はする
手抜き感を出さない - カメラが手ぶれしてる - カメラが斜めっている - 背景がゴミゴミしてる と一気に手抜き感が出る…
None
絵やサービスモックでも同じ - 絵は鉛筆書きでも良いから紙の色は補正しよう - スマホの影が映り込まないようにしよう - cssは最低でもtwitter bootstrapとかを当てよう - テスト文書に「あああああ」は止めよう
十分に動画の尺は短いですか - 撮って出しカット編集の無音で見てくれるのは10秒まで - 初手1秒以内にキービジュが出るように - 20秒越える無言動画を見てくれるのはトップカンファの 発表デモだけ
せっかく撮ったデモ動画が部屋の隅に映ってたゴミの山の せいで低品質なものだと思われるとつらすぎる せっかく作ったUnityのデモがデフォルト空のせいで低品質 なものだと思われるとつらすぎる
ここまでの結論 - 見せ方のプロじゃなくても、最低限の見た目を整えてか ら(身内以外の)人に見せるのは大事 - (身内には適当で良いから1秒でも早く見せよう)
余談:買っておこう簡単撮影機材 - 良いカメラのスマホ - デスクライト - スマホ用3脚
技術デモから 製品までの話
Luppetの顔認識を例に出します - 瞬きの検知 - 口の開きの検知
None
普通のWebカメラなので - 遠くに居て目がちょっと開いてる - 近くに居て目が閉じてる →同じピクセル値が返ってくる
普通のWebカメラなので - 認識結果が暴れて高速瞬きになることがある(初期の Live2D+iPhone Xのトラッキングデモなど) - 口の形は千差万別、目の大きさも人間によって異なる
人の個人差を吸収する - トラッキング中、常に目の開度のリミットを更新し続ける (直近で一番長時間の目の開き具合を、目の基準値と する) - 口の開き具合(横と縦、口角の上がり角など)も同様 - 既存ライブラリには入っていないので自作
目閉じ、目開き判定 カメラが認識した上瞼の画素(x,y)pixelと下瞼の画素 (x,y)pixelの間が - とある値以上だったら目は全開 - とある値以下だったら目は全閉 半目になると可愛くないので…
とある値(目閉じ、目開き判定のしきい値)の決め方 - 世の中には目がパッチリしてる人と目がパッチリしてい ない人がいる - 設定スライダ???正気???
例:目開き判定のしきい値 の決め方 - 人類のデフォルトは目開きなので、じーっとしてたら目 が開くようにする
例:目開き判定のしきい値 の決め方 目閉じや、口認識なども同じ感じ に作ってます。 半目も出来るけど、大体目閉じ と目開きはパキっとなる
この辺の話は - ヒステリシス制御 - AutoGainControl みたいな仕組みが古典制御であり、製造業時代の知識が 生かせました。 なんでも勉強しておくと意外と別分野で役に立ちます
Webカメラ性能差を吸収する - 性能が低いカメラでは検出精度が暴れる →検出した目や口の開き具合をLowPassFilterを掛けて滑 らかに補正する
頭の位置と向きの補正 ガクガク移動すると可愛くないので頭の位置と向きも LowPassFilterを掛けて滑らかに移動させる
こんなにやるの?
やる
現在の世の中の「製品」は高品質前提 - 小機能は許されても低品質は許されない - 低品質で出してアップデートするまでの間、ユーザは 待ってくれない - 製品は最初から高品質で出す必要がある
あるある - ネタが被った - 睡眠時間削って作ったのに全然バズらない - 作ってて面白さが分からなくなってきた
それでも作った人に残るもの - 組み合わせたら出来そう、だけじゃなくて組み合わ せて作ってコンセプト動画を出した - 面倒くさい事まで含めてゴリゴリ製品レベルまで作 りこんだ経験値
経験値は裏切らない - 意識高いツイートや社会を斬ってるだけでは身につか ない筋肉が付く - CGじゃなくて動くデモを作るのは、筋肉が付く - 筋肉は裏切らない
本日のまとめ3点 - 気軽に作ってデモしたりTwitterに動画流そう - 技術デモでも最低限の見た目に気を使おう - デモから製品レベルまでには色んな工夫を実装するこ とになる
Happy Hacking! 続きはこの後の自由セッションや(あるとしたら)二次会に
余談 弊社は副業可です :)