ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Beyondにてインタビュー記事が公開されています(個人編)

ビジネスメディアのBeyondにて「xR(AR、VR、MR)の「ビジネス活用」最前線」というお題で全4回にわたりインタビュー記事を掲載していただきました。

blog.hololab.co.jp

  1. xR(AR、VR、MR)の「ビジネス活用」最前線 | Beyond(ビヨンド)
  2. ファーストラインワーカーの働き方改革は、xR(AR、VR、MR)で加速する | Beyond(ビヨンド)
  3. xR(AR、VR、MR)が起こす「現場の技術伝承」革命 | Beyond(ビヨンド)
  4. xR(AR、VR、MR)導入がもたらす「付加価値」と未来予測 | Beyond(ビヨンド)

一応会社ブログにはリンクだけまとめたんですが、個人的な思いというか考えてることは切り離した方がいいかなと思い、こちらにもまとめます。

HoloLens の業務利用の現状

第一回で「実際の導入を見据えた案件も少しずつ出始めています」としていますが、これはホロラボでの開発期間、契約期間からも実感しています。

2018年は長くても半年くらいのプロジェクトがいくつかでしたが、2019年は1年分の予算を確保していただき開発や調査にそれだけのコスト(時間、費用)をかける企業が増えてきました。プロジェクトはEnvisioning(導入) → PoC(概念実証) → Pilot(部分導入) →Deploy(実導入)と進んでいき、Pilot以降を見据えた取り組みが増えてきています。

去年あたりから、プロジェクト数の数字などを出すようにしています。これは外からあまり見えない実態みたいなものを出していきたいという気持ちがあります。HoloLensはいろいろなところで使われ始めています。とはいってもどのくらいの会社が使ってるの? どのくらいのプロジェクトが回ってるの?という数字が見えたほうがイメージしやすいのではと思っています。

例えば2018年の数字的なところはこちらです。2019年上半期もまとめてもらったので、どこかで出せるといいとは思ってるのですが、なかなか機会がなく。単純な数字でいうと、2019年半分で2018年一年分くらいにはなってます(プロジェクト数、売り上げなど)。

目的と手段

HoloLensの導入は手段であって目的ではありません。目的は業務の効率化であり、業務の効率化は線であって点ではありません。第二回で「自社の業務について「めちゃめちゃ考える」こと」と入れていますが、お客さん自身が自分たちの業務を考えること自体に意味があると感じています。実際にボトルネックはどこなのか?それはHoloLensでなければ解決できないのか?

MRPPのトレーニングで最初に言われたことは「Why? HoloLens?」でした。これは「なぜHoloLensでなければならないのか?」、「HoloLens以外の方法が最適ではないのか?」という問いに答えられるようにしなさいということです。これをお客さんとの会話の中で見つけ出さないといけません。なので、お客さんとの会話は大切で、もしHoloLens以外が最適であれば、HoloLens以外を選択するという提案をすることもあります。あくまでもぼくらの仕事はお客さんの業務の課題の解決なので。

業務課題の解決という意味では、点で見るとHoloLensが最適でも線で見るとHoloLens以外が最適なケースも往々にしてあります。ある業務ではHoloLensを使って改善ができるとしても、よくよくワークフローで話を聞くと、その前工程が実はボトルネックで、そこにはHoloLens以外の解決手段が適している場合があります。

なので仕様含めて丸投げされる場合は非常に厳しいですし効果も出にくいと考えています(これはHoloLensに限らないですが)。ぼくらは技術の提供はできますが、業務プロセスに関しては素人なので、そこはお客さん側でやってもらうこと。それをベースに技術的に解決することが自分たちの仕事と思っています。

とはいえ、多くのお客さんと話していると、課題は似ていたり、やりたいことが似ていることは多く、そういう共通項を見つけやすいことがお客さんと接している時間が長いことのメリットかなと思っています。

文化的な解決

最近ちょっと考えてるのが、デジタルトランスフォーメーションだったり出社だったりというのは、技術ではなく文化(気持ち)の面が大きく作用するのかなと思っています。

たとえばデジタルトランスフォーメーションで紙をなくすといった場合に、いままで紙でやり取りしていたものが一切なくなるとして、それで業務が回るのか?という心配が変化を阻害するのではないかと思っています。

人間は変化を恐れるものなので、先に不安があると変化しない方を選択します。であれば、技術的な解決と並行して、心理的な不安を取り除くというなことも必要なんだろうなとぼんやり考えています。それをしないと表面上の導入に過ぎず、時間が経つともとに戻ってしまい、本当の意味での変革にはならないと思っています。

VRデバイスの有効性

第三回にもありますが、個人的には今ビジネス向けVRをやりたいと思っています(諸々のリソースの関係でなかなか難しいのですが)。自分の中では昨今のスタンドアロンVRをVRとして見ていない節があり、HoloLensと同列に考えています。HoloLens、Mirage Solo、Oculus Go、Oculus Quest、それぞれ、性能、値段、機能によってメリット、デメリットがあり、それぞれ排他ではなく選択肢として考えると自分の中ではすっと入ってきたりします。HoloLens 2になり性能も似たようになったので性能的なひっかかりは少なくなると考えています。そういう意味ではWindows MR Immersiveのスタンドアロンが出てくれることを期待していたりします。

HoloLensは光学シースルーデバイスとして高性能ではありますが値段が高いことがとにかくネックになる。それに対してOculus Go、Oculus Questは10分の1程度に収まる。HoloLensでやっていることが必ずしもHoloLensでなくても良くてOculus Go、Oculus Questでも問題ない場合、単純にデバイス量で10倍は見込めます(ソフトウェアの費用は入れていませんが、そこは全体で調整すればいいのかなと思っています)。

第一回にある「米ウォルマートが従業員向けのVRトレーニングでOculus Goを17,000台購入」というのがありますが、ここまではいかなくてもまとまった台数の導入というのは非現実的なものではないかなと思っています。

MR DevDaysに参加して Azure Kinect DKのアプリ開発をしてきました

2019年5月2日、3日に レドモンドのマイクロソフト本社にてMR DevDaysというイベントが開催されました。 名前の通りMRに関する開発セッションやアプリ開発体験ができます。今回は2019年中に発売予定のAzure Kinect DKのアプリ開発を行ってきました。 セッションは下記ですが、英語は...なのでハンズオンラボにてアプリ開発を進めていました。

docs.microsoft.com

f:id:kaorun55:20190502123451j:plain

HoloLens 2編

blog.kaorun55.com

SDK

ちょうど公開されたようです。

github.com

雑感

  • 現状でSDKはCだけ。C#はcoming soon。
  • センサーSDKのみ、BodyTrakcing SDKはまだなさそう。
  • 点群はv2よりきれいかも(キワ部分のノイズが少ない)。
  • v2と違ってサービスがいないので、1PC1アプリで占有
  • 1PCに複数台接続は可能(とりあえず2台は確認)
  • Intel RealSense D435に近いハードウェア機能。差別化がどうなるか。
  • 当初のイメージと違い、Kinectハードウェア側での処理ではなく、従来通りPCで処理を行う

良くも悪くも今まで通り。Intel RealSense D435に近い印象。 現状ではCのSDKしかないので差別要因も不明。C#のSDKが出たらCognitiveとの連携などは簡単にできるようになるはず(ただ、それはRealSenseでもできるので、決定的な差別化要因にはならないと思う)。

単体であればIntel RealSense D435、複数台であれば日立LGのToFセンサーとの比較が必要になると思う。

電源について

セットされていた環境はUSB-C to Aのデータケーブルと、USBの電源ケーブルでした。USB-Cでバスパワーできないものどうなんだろう?と思ったので、HoloLens 2のUSB-Cケーブルを拝借してKinectに接続してみたところ、USB-Cケーブル1本のみで接続できました。

全体観について

Azure Kinect DKの全体観についてはこちらでまとめていますので合わせてどうぞ。

speakerdeck.com

MR DevDaysに参加して HoloLens 2のアプリ開発をしてきました

2019年5月2日、3日に レドモンドのマイクロソフト本社にてMR DevDaysというイベントが開催されました。 名前の通りMRに関する開発セッションやアプリ開発体験ができます。今回は2019年内に発売予定のHoloLens 2のアプリ開発を行ってきました。 セッションは下記ですが、英語は...なのでハンズオンラボにてアプリ開発を進めていました。

docs.microsoft.com

TL:DR

  • あくまでの開発中のHoloLens 2なので、製品版では変わることがあります。
  • ホロラボで開発したものを中心に4つほどHoloLens 2化。テストアプリとして新規に5つほどテストデプロイしました。
  • 総じて順当進化で良い。アイトラッキングは良い、ハンドトラッキングはもう少し良くなって欲しい。

f:id:kaorun55:20190502112909j:plain

目次

Kinect編

blog.kaorun55.com

注意事項

  • 今回はあくまでの開発中のHoloLens 2なので、製品版では変わることがあります
  • 必ずしも現行のHoloLensに比べてよくなってる部分ばかりではありません
  • 過度な期待はせず、製品が発売されたらぜひ自分の目と体で確かめてください

今回、MRCなど画面の投稿は禁止されているので、見た目については想像にて補完ください。

ハードウェア

確かにかぶりやすい。 フリップアップもじゃまにならず、そのままコードを書いているとつけてることを忘れるほど。ただ、前に出っ張るので、壁とかにあてそう。動く機構がついたので、全体的にはHoloLens 1よりも扱いに気を付けないといけない気がします。

f:id:kaorun55:20190502113219j:plain f:id:kaorun55:20190502113459j:plain

アプリ開発

ドキュメント

MRTK

github.com

ハンズオン資料

ここから

docs.microsoft.com

開発環境

開発環境はこちらを参照してください。 前提として、CPUが変わったのでアプリはARMまたはARM64でビルドしないと動作しません。エミュレーターはx86で動作環境がことなるのでネイティブプラグインなどは注意してください。

Getting your app ready for HoloLens 2 - Mixed Reality | Microsoft Docs

Unityは2018.3および2019.1がサポートされています。 Unity 2019.1を使用した場合の違いはARMおよびARM64でのビルドが可能(2018ではARMのみ可能)、LI2CPPビルドのみ可能(.NETビルドは不可)

項目 Unity 2018 Unity 2019
プラットフォーム ARM ARM, ARM64
対応ビルド .NET, IL2CPP LI2CPP

Visual Studioは2017が推奨されていますが、Visual Studio 2019でもビルド可能です。ARM64ビルドはVisual Studio 2019でのみ可能となります。

HoloLens 2での新機能

  • ハンドジェスチャー(人差し指先の認識、手の関節の認識)
  • アイトラッキング(目の追跡、光彩認証、IPDの自動調節)

調査事項

既存のHoloLens 1アプリをHoloLens 2で動作させる

既存のHoloLens 1アプリをHoloLens 2に移植する。 最初はかなり多いシナリオかと思います。今回はホロラボで開発したものを中心に4つほどHoloLens 2化しました。

開発時

  • Unity 2018/2019で開く(MRTKのエディタースクリプトなどがエラーになるのでエラーをなくす。今回はエディタースクリプトだけだったので削除して対応)
    • 既存のUnity 2017とVisual StudioでARMビルドすれば、そのまま動作する可能性あり(検証し忘れたので記録)
  • Vuforia は(現状)ARM用DLLがないので移植できないかも
  • Unityでビルド、VSでARM向けにビルド
  • HoloLens 2にデプロイ

実行時

  • HeadのGazeはHand Gazeに自動変換
    • 今後のアップデートでMRTK側でHand Gaze、もう一つ何か、従来のHead Gazeの3種類のうちから選択可能になるとのこと
  • 単純に処理性能と視野角が広がってるので、ポーティングするだけで、体験が改善するアプリは結構ありそう

x86エミュレーション

Lenovo C630のようなPCのWindows 10 on ARM環境では、x86(Win32)でビルドした実行ファイルがそのまま動作します。 これはWindows 10 on ARM環境でx86のエミューレーションを行っており、本来はCPUアーキテクチャが異なるため実行できないx86の実行ファイルをARM環境で動作させることができます。なお、x86エミュレーションは32bitアプリのみでx64のような64bitアプリのエミュレーションはできません。

この機能はHoloLens 2にはないようで、x86でビルドしたアプリの配置や、パッケージのインストールはエラートなります。 そのため、既存のHoloLens 1アプリをHoloLens 2で実行させる場合は、ARMでビルドをし直す必要があります。

性能について

おおよそ2倍ほど性能あがってる可能性があります。

  • HoloLens v1 で 7-9FPSほどで動作していたアプリがHoloLens v2 では 16-20FPS
  • HoloLens v1 で 30-40FPSほどで動作していたアプリがHoloLens v2 では 60FPS安定

アプリからのメモリ使用量

ARM(32bit)、ARM64(64bit)にかかわらず、アプリから使用できるメモリ量は2GBのようです。

  • HoloLens 1 - x86 → 900MB
  • HoloLens 2 - ARM32 → 2048MB
  • HoloLens 2 - ARM64 → 2048MB

所感

  • 付け心地はとてもいい。フリップアップも慣れると気にならない。
  • 性能向上が倍ほど見込めるのは意外だった(視野角が広がったのであまり期待してなかった)。
  • アイトラッキング、光彩認証など、目にかかわる部分は非常に良かった。
  • 半面、ハンドトラッキングは操作性に難あり(慣れの問題?)。近距離では指先のタッチ、中距離以降はGazeとAirTapなので操作が切り替わると混乱する。など
  • HoloLens 1アプリのポーティングもそれほど難しくない
  • HoloLens 2専用アプリについては、Hololens 1と別物として考えたほうが良い(UI/UX、視野角などが変わるので)

Twitterなどからもらった質問事項

ハンドトラッキングの範囲

このくらい

視線のスクロールについて

思った以上に自然にできた

ARM64でのビルド

Unity 2019 + MRTK v2 + ARM64でのビルドは一応実機動作まではOK

Depthへのアクセス

リサーチモードのみ

充電用のUSB-CはUSBホストを持っている?

持っているらしいけど、ドライバのインストールができないので、その制約がクリアできれば使えそう

Holographinc Remotingについて

現状、Hololens 2側のアプリがないためできない

MRC(Mixed Reality Capture)での録画

HoloLens 1と同様に可能

2018年のふりかえり

こっちのブログは1年間何も書いてませんでしたw

登壇含めて会社ブログの方には書いてたんですが、個人の活動は個人のブログの方に書いた方がいいかなぁと思ったりしました。

blog.hololab.co.jp

まぁ、会社運営も含めてやりながらいい方法を探していくしかないんですが。

ドメインも含めて変えようかな。

会社

今年のふりかえり

一年通しで無事終わりました。まぁ昨年も登記が1/18なのでほぼ1年ではあるんですが、11月決算なので年度としても丸一年ということで。

www.slideshare.net

今年どういう視点で仕事をしていたかというのは上記スライドを見てもらえればと思います。ホロラボはスタートアップではなくスモールビジネスなので、売り上げはきちんと立ってますがもうひと頑張りというところですね。そこには来年に向けての仕込みも入っているので、それがきちんと芽が出るかというのはドキドキではあります。

今年は人が増えて色々と規模も大きくなってきたのでだいぶバタバタしています。お金の規模、人の人数、仕事の規模とそれぞれステップが変わった感じがするので、それぞれをバランスするために考えることが多くてなかなか大変です。がそれも楽しかったりします(お金大事、人大事、仕事大事)。安直な言葉でいうと学びが多かったんですが、考えて実践してふりかえってをひたすら繰り返していました。伊藤さん含めてたくさんの人に助けてもらって、お客さん含めてたくさん迷惑をかけつつ、なんとか乗り切った感じです。まぁ実際にはこんなとことに書けることは上っ面でしかないのですがw

スライドにない部分で去年との変化としては、製造業系が増えた、いわゆる日本の大手メーカーが動いている、東京以外のお客さんが増えた。というところがあります。内容も検証段階とは言え1件1件がとても重い(ヘビーなほう)ので、実務メンバーには結構な負担になってる反面、それをこなす強力なメンバーに恵まれたという実感があります。こういうのはWebにあまり出ない部分なので、露出されるころにはだいぶ世界は変わった後なのかなと。そういう意味でTwitterやWebで見えてるHoloLens界隈の視界と、社内(というか自分かな)から見えるHoloLens界隈の視界はだいぶ違うんじゃないかなと思っています。

とりあえず2年間走ってふりかえって見ると、会社としての価値というものが意外といろいろなところに出始めてるとは感じています。といういう価値の部分をお金に換えて社員のみんなに還元できるとようにするのが今の自分の仕事なんだろうなとは思います。あとは立ち位置、期待値など面白い位置にいるのですが、そのぶん成果を出し続けないといけないので、それ自体も良くも悪くもなんでしょうね(当初のゆるふわな部分もあれば、そうでない部分もある)。

自分の仕事といえば、最近は雑談するのが仕事になってる面もあって、社員と雑談、お客さんと雑談などなど。どんなに技術が進歩しても対面での会話には勝てないと思うのは、そういうのがあったりします。0か1ではなく程度の問題なので、目的、用途、制約など、さまざまな条件には当然よるのですが。

来年に向けて

まぁどうなるか分からないので変わらず走りながら考えるしかないですね。仕込みはいろいろしてますが、どれが当たるかわからないので弾は多く作っておくくらいしかないですね。とはいえ、発散しつつも収束するようになってくるとは思うので、変わらず面白い立ち位置には居られるんじゃないかなと思ってます。

自分の仕事的にはオフロードを心がけてみます。もうちょっと手を動かせる時間を作りたいなと。定期的に社内で議題に出しつつ答えが出てないのですが、いまやってることは営業も、マネジメントも、もちろん開発も手を動かして技術を理解してないと難しいんじゃないかと思っています(自分がそうだからってことで解はないのですが)。とにかく知識と技術は更新しておかないと。

会社以外

平日が忙しすぎてCoder Dojoにすっかり行けなくなってしまいました。会社が落ち着くまではしょうがないかなぁと思ってます。。。

出張や打ち合わせが多くてあまり家にいられないのもちょっとなぁとは思いますが、これも会社が落ち着くまではしょうがないかぁと思ってます。。。

健康診断の結果もアレだったのですが、これも会社が落ち着くまではしょうがないかぁと思ってます(とりあえず平日の夜家にいるときのお酒はやめましたw)。。。

まぁ、しばらくは時間の大半は会社に振り分けですね。

2017年のふりかえり

今年はホロラボを立ち上げ、コミュニティも立ち上がって自分の手を離れ、メンバーも増え、マイクロソフトのMRパートナーにも認定され、しっかりとHoloLensで生活できました。ちょっと予想の斜め上を行き過ぎてますね。

半面、CoderDojoは当日参加以外のところまで手が回らなかったのが申し訳ないところです。

個人的には今年は会社と仕事を回すことが精いっぱいでアウトプットが少なかったです。とはいえ、ホロラボのメンバー含めて自分よりも細かくアウトプットを出す方が増えたので、やり方含めて考えないといけない時期なのかもです。

会社的には今年は助走のつもりで動いていました。おかげさまで2018年は年明け早々フルスロットルな感じです。強力なメンバーも順次増えていく予定で、会社としてもアウトプットも順次出していけると思います。

強力なメンバーに集まってもらうことができたので、来年は個人→グループ→チームにしていくことが自分の仕事になると思っています。向こう数年はまたプログラマーというロールから一旦はずれる時期になりそうです。

ということで、来年もよろしくお願いします。

今年のダイジェスト

www.naturalsoftware.jp

www.naturalsoftware.jp

coderdojochofu.hatenablog.jp

blog.hololab.co.jp

去年のふりかえり

www.naturalsoftware.jp

2017年にもっとも読まれた記事のランキング

id:shiba-yan さんが作った「2017 年の人気記事ランキング生成」というのがあるそうなので、2017年にもっとも読まれた記事のランキングを生成してみました。
結果が意外なので載せておきますw

1位がRealSenseなのと、9位にRedmineのBacklog Pluginの記事が入ってた(6年前)。

順位 ページ PV
1 Intel RealSense まとめ 8204
2 HoloLensまとめ 7278
3 Kinect for Windows SDK v2.0 でDepth(距離)データを取得する 6268
4 Kinect for Windows SDK v2.0 でBody(関節など)を取得する 5920
5 Intel RealSenseをMax OSやLinuxでも使える librealsense を使ってみた 4950
6 HoloLensアプリの開発を始めるまでの資料を作りました 4824
7 HoloLensの環境マッピング(Spatial Mapping)の使い方 4409
8 これから Kinect for Windows SDK を始めたい人へ 4336
9 RedmineのBacklogsプラグインを使ってみた 4334
10 Microsoft Kinect v2まとめ 3518

SpectatorViewのCalibrationアプリでカメラ画像が出ない問題について

SpectatorViewについて、しばらく見ない間にちゃんとリリースパッケージになってました。

github.com

HoloTooliitのバージョンやUNET対応などでパッケージが分かれているようです(UNET対応版の1.5.7.2は未検証です)。

f:id:kaorun55:20170820002715p:plain

f:id:kaorun55:20170820002719p:plain

1.5.7.0でCalibrationアプリでカメラ画像が出ないことがあります。 f:id:kaorun55:20170820002437p:plain

解決方法を教えてもらったので記録しておきます。

DeckLingManager.cppの72行目あたり

videoDisplayMode = bmdModeHD1080p5994

これを

videoDisplayMode = bmdModeHD1080i5994

にすると動作します。または「1080p」などに該当する部分を環境に合わせて変更します。

SpectatorViewの環境を作るときはGoPro HERO 5とBlackmagic Intensity Shuttle USB 3.0を使うことが多いのですが、Blackmagic Intensity Shuttle USB 3.0が1080pに対応しておらず1080iのみでしか出力できないためと思われます。リファレンスのIntensity Pro 4K Captureは1080pに対応しています。

Blackmagic Design キャプチャーカード Intensity Shuttle for USB 3.0 000856

Blackmagic Design キャプチャーカード Intensity Shuttle for USB 3.0 000856