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-api.js で璃奈ちゃんボードを作ってみたよ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
rch850
January 25, 2020
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
face-api.js で璃奈ちゃんボードを作ってみたよ
rch850
January 25, 2020
More Decks by rch850
See All by rch850
Security Hub と出会ってから 1年半が過ぎました
rch850
1
400
#2022年に学んで良かった技術
rch850
0
1.3k
いい感じにスピードアップするコンテストの紹介
rch850
0
470
†2020年に建つ墓標達†
rch850
0
120
大掃除中の困ったを解決しようとした話
rch850
0
480
もしかして頻尿
rch850
0
71
SVGのよさみを語る会
rch850
0
150
俺の git-review
rch850
0
160
おじいちゃんが無事に晩御飯を食べるためのリトライ処理
rch850
0
620
Other Decks in Programming
See All in Programming
CSC307 Lecture 17
javiergs
PRO
0
320
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
100
Webフレームワークの ベンチマークについて
yusukebe
0
170
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
290
dRuby over BLE
makicamel
2
380
AI 輔助遺留系統現代化的經驗分享
jame2408
1
790
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
140
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
Creating Composable Callables in Contemporary C++
rollbear
0
150
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
260
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
Into the Great Unknown - MozCon
thekraken
41
2.6k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Paper Plane
katiecoart
PRO
1
51k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Navigating Weather and Climate Data
rabernat
0
220
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Transcript
face-api.jsで 璃奈ちゃんボードを 作ってみたよ ふくもく会 その60 2020-01-25 @rch850
自己紹介 • りちゃ @rch850 です • 鯖江ではたらくエンジニアです • 最近見た映画はメイドインアビス
face-api.jsで 璃奈ちゃんボードを 作ってみたよ
face-api.js • https://github.com/justadudewhohacks/face-api.js/ • 顔の検出、認識ライブラリ (js) • ブラウザやサーバで動く • tensorflow.js
ベース
表情認識
機械学習なので • 類似品の clmtrackr との大きな違い • Mobilenet とか、知ってる人は知っている単語が出てくる • 使うネットワークに応じたモデルを読み込む必要がある
機械学習なので • モデルが要るってことは学習しなきゃだめ? • いろんな表情の写真を自分で撮り続けるのしんどい • これは clmtrackr に戻るしかないのか? •
モデルどっかにないの?
あるよ • 学習済みモデルがあります • face-api.js-models https://github.com/justadudewhohacks/face-api.js- models • 欧米系の顔じゃなきゃだめかと思ったけど、そうでもない
face-api.jsで 璃奈ちゃんボードを 作ってみたよ
璃奈ちゃんボードとは • 感情を表すのが苦手な天王寺璃奈ちゃんが、感情を表すため に使っているボード • 手書きだったり、デジタルだったりする •
face-api.jsで 璃奈ちゃんボードを 作ってみたよ
作ってみたよ • 動くやつ https://t68cv.csb.app/ • ソースコード https://codesandbox.io/s/face-api- rinachanboard-t68cv
モデルの読み込み faceapi.nets.faceExpressionNet .loadFromUri( "https://raw.githubusercontent.com/justadudewhohacks/face-api.js-models/master/face_expression/ face_expression_model-weights_manifest.json" ) .catch(err => console.log(err)); faceapi.nets.ssdMobilenetv1
.loadFromUri( "https://raw.githubusercontent.com/justadudewhohacks/face-api.js-models/master/ssd_mobilenetv1/ ssd_mobilenetv1_model-weights_manifest.json" ) .catch(err => console.error(err)); face-api.js-models というリポジトリがあって、そこに学習済みのモデルデータがある https://github.com/justadudewhohacks/face-api.js-models
表情検出 const result = await faceapi.detectSingleFace(video).withFaceExpressions(); const sortedArray = result.expressions.asSortedArray();
if (sortedArray[0].probability >= 0.5) { boardId = BoardExpressionMap[sortedArray[0].expression]; draw(RinaChanBoard[boardId]); } { "neutral": 0.9997411370277405, "happy": 0.00003564624421414919, "sad": 0.00003119324901490472, "angry": 0.0000033359387998643797, "fearful": 2.859609660177398e-9, "disgusted": 4.6088089789009246e-8, "surprised": 0.00018857289978768677 }
これから •表情を増やしたい →スクショを撮り続ける日々 •ちゃんと公開したい