3Dプリンターで作ったお面でiPhone Xの顔認証を突破したい
9月12日のこと……新しいiPhoneには顔認証機能が採用される。そんな情報をAppleの発表を見て知った私は0.1秒もたたないうちにこう思った。
「じゃあ最新の3Dスキャン技術と最新のフルカラー3Dプリントで認証って突破できるのでは?」
そもそもこの「iPhone X」の顔認証は本体前側の上部にある赤外線カメラ、投光イルミネータ、ドットプロジェクタからなるTrueDepthカメラシステムで行っている。仕組みとしてはドットプロジェクタで3万以上の目に見えないドットを顔に投影し、それを赤外線カメラで撮影して立体形状を取得するというものらしい。
形状と色が再現できていればなんとなくごまかせるような気がしたので、ここで最近精度が良いフルカラーの3Dプリンターを発売したミマキエンジニアリングを思い出し今回の企画を立ち上げることになった。
さあ最新の技術で自分のお面を作るぞ!
ミマキエンジニアリングとは以前本社を見学しに行ったことがあり、その時以来のご縁で今回も3Dプリントで協力してもらう話になった。
「お久しぶりです。今回の企画では実際にスキャンした顔のデータをお面にして3Dプリントしたいと思っているのですが、お面ひとつあたりのコストってどれくらいなのでしょう?」 |
|
「◯万円くらいです」 |
|
「え(高い……!!! 4つくらいお面を出してもらおうと思ったけど、こんなに高いとは思わなかったので妥協して)2つ出力できませんか……?」 |
|
「分かりました。ではデータができましたらお送りください」 |
なんとあっさり快諾していただいたミマキエンジニアリングにはほんと頭が上がらない。
そして3Dプリントに必要なデータを作るために最先端の3Dスキャナーを扱っている会社を探しにいった。
1社目はDiGINELへ伺った。
DiGINELは3Dのコンサルティング、研究支援などをする会社なのだが、なんでも開発中の3Dスキャナーがあるらしい。その3Dスキャナーがこれだ。
85台のRaspberry Piに囲まれるような形状のその装置はそれぞれのRaspberry Piに付いているカメラモジュールで画像を撮影し、専用のソフトウェアで処理をすることで3Dスキャンができるというものだ。開発中ということでRaspberry Piの固定箇所などには3Dプリントで作られたパーツが使われていた。
所定の位置に立ったと思えば一瞬でスタッフの方が「終わりました」という。85台のカメラで一度に撮影しているので、スキャン自体は一瞬で終わるとのこと。これはタイミングさえ合わせればジャンプした瞬間や、すぐ動いてしまう赤ちゃんやペットなどのスキャンにも向いているようだ。
DiGINELでは全身の3Dスキャンをできたのだが、顔のスキャンに特化した3Dスキャナーがあるということで2社目のムトーフィギュアワールドもお邪魔することにした。こちらは顔を3Dスキャンして体や髪形などのテンプレートと組み合わせ、オリジナルのフィギュアが作れるサービスをしている会社だ。
この3Dスキャナーは顔のスキャンに特化しており、機材に顔をセットすると内側の複数台のカメラで撮影される。こちらでは私自身の顔をスキャンする。今回はお面のデータが必要だと伝えているので、後からデータを修正しやすいようにスキンヘッドのデータをいただいた。
ちなみにムトーにも全身の3Dスキャナーがありこちらは記念にスキャン。一眼レフを縦に4台並べた機材と回転する台座で一周ぐるっとスキャンする。
スキャンデータを基にお面データに変換していく
今回欲しいお面のデータは顔の表面だけなので、2人分のデータをお面に変換していく。使用するのは「FreeForm」と呼ばれる3Dのペンタブレットのようなものだ。
iPhone Xは瞳のトラッキングをしているということなので目の部分をくり抜いて全体を5mmの厚さで作っていく。既にとても気持ち悪いものを作ってしまった気分だ。おっさんの顔を複製するのに高額な機材を使っているので申し訳ない気持ちが出てきた。
いざ3Dプリント!!
データをミマキエンジニアリングに送ると、出力中の様子を写真で送ってくれた。サポート材と呼ばれる白い物体の中に、徐々にお面ができてきているのがわかる。なんとなく気持ちが悪い。
出力開始から30時間ほどたったころ、「サポート材の洗浄が完了したのでこれから東京に送ります。ちなみに顔にエタノールをぶっかけてブラシでゴシゴシしました」とミマキエンジニアリングの3Dプリンター担当の方から写真が届いた。何の恨みがあるというのか……。
そしていよいよお面が到着したのでお面を作った2人で検証する。ちなみに今回はiPhone Xの分までの予算が全くつかなかったので、予約開始時間に必死で予約をして15万円自腹を切ったらクレジットカードが止められてしまった。
実際にFaceIDを試してみる。
さて到着したダンボールを開けるとプチプチから出てくるお面、事前に写真で見ていたのだが現物を見ても、なお気持ち悪い。
まずは普通にお互いの顔をFaceIDに登録して、順番にお面でロック解除できるかを試してみる。FaceIDの登録はiPhone Xを正面に持ち、顔を上下左右へとぐるぐる回す。これを2回繰り返すと登録完了である。
そしてお面をiPhone Xに向けて、ロックがスッと……
スッと…………
スッ……
解除されない!!!!!?
何を間違ったか全く解除される気配がない……。2人のお面どちらとも惨敗である。
どうやらお面の厚みで目が内側に落ち込んでしまって認識されていないようである。そのため、泣く泣く妥協して、紙に目を印刷してそれを貼って再度挑戦してみたが、複合機の印刷でははっきりと目が印刷されずFaceIDが解除されることはなかった。
悔しいのでお面を登録して、顔でロック解除に挑戦する。
本来やりたかったことは“FaceIDを登録した人のお面をかぶった別の人がFaceIDを突破する”ということである。しかしどうにも諦め切れない私は、“お面をFaceIDに登録して自分の顔で解除できないか”という、できたところでなにになるか分からない検証を始めた。
FaceIDの登録画面を出し、お面を正面に持つ。そしてお面をぐるぐる回して登録完了である。絵面だけみるとどう考えても怪しい人になった。
そして自分の顔をiPhoneにかざし……スッ
ああああああ!!! やったああああ!!!
解除できたぞ!!!!
あの食い気味でロックが解除される感じがちゃんとできた!
実際のロック解除の様子は動画で確認してほしい。
結論
「3Dプリントだけでは無理だったけど、目の部分さえなんとかすれば突破できそうな感じにはなった!!」
今回は残念ながら100%成功とはいかなかった。しかし、アイトラッキングの画像処理の部分が原因で突破できなかったということが逆の検証で分かったので、3Dスキャンで撮影した精巧なデータと最新の高精細3Dプリンターの精度は実証できたのではないかと思う。
海外で成功した例は、目鼻口に2D印刷の紙を貼っていた上に、鼻はシリコンで作り直していたので、少なくとも鼻の再現精度においては完全なる勝利だ(と思いたい)
最後に、取材に同行していた越智さんが自分のお面を使って自宅のKinectの顔認証を試したところ、あっさり突破できたそうだ。3Dプリンターってやっぱりすごい!