ARアプリ開発講座(ARKit3・CoreML2が1日ですべて丸わかり)
2017年にリリースされたiOS11より、拡張現実(AR)の「ARKit」と機械学習に関する機能「Core ML」が搭載され、話題を呼びました。現在はそれぞれバージョンがあがり、AR Kit2・CoreML2となって、さらに機能豊かなアプリが実装可能となっております。そして今年、とうとうARKit3が発表され盛り上がりを見せています。
そこで、1日でこれら全てが丸わかりできるプログラミング講習会を開催いたします。
目次
- 1 続々と市場投入されるスマートグラス
- 2 ARアプリってどんなものがあるの?
- 3 ARアプリの切り開く未来とは?
- 4 ARKitとは
- 5 Core MLとは
- 6 Visionとは
- 7 1日で「ARアプリ」と「機械学習」の基礎的なことが全てわかります
- 8 今回取り上げるサンプルアプリ・プログラム
- 9 【参加対象者】
- 10 【再受講制度】
- 11 【持ち物】ARKitに対応したMAC機種とiPhone機種について
- 12 【カリキュラム】
- 13 【講師紹介】
- 14 もっとも効率的なスキル習得「テックジム方式」とは?
- 15 【無料】ゼロからはじめるPython入門講座
- 16 【テックジム】Pythonコース・体験会(平日19:00-22:00)途中参加・途中退席OK
続々と市場投入されるスマートグラス
NTTドコモがMagicLeapとの提携、KDDIがnrealとの提携を発表しました。
そして、マイクロソフトはHololenz2を発売。
GoogleはGoogle Glassの新モデル「Glass Enterprise Edition 2」を法人向けに販売。
Oculusを傘下にもつFaceBookもARグラスを開発中という情報もあります。
そして、AppleはARkit3を公開。そろそろARグラスの量産を開始するのではないかと目されています。
まさに2020年が、スマートグラス・AR元年になろうとしています。
ARアプリってどんなものがあるの?
iPhoneXよりカメラのレンズが2台搭載されることとなり、アプリで採寸できるようになりました。これにより家具のシミュレーションなどもより正確にできるようになっています。
また、ネイルや化粧のシミュレーションアプリも登場しており、試着シーンにも欠かさぬ存在になりそうです。
さらに、iPhoneだけで3Dスキャンができるアプリが登場しており、3Dそのものが一般人にとっても身近なものになりそうです。
ARアプリの切り開く未来とは?
GoogleGlassのようなヘッドセットが普及すれば、見たものをすぐに調べられる「ARで検索」も当たり前になるでしょうし、AR空間上に落書きメモや順路などを残すこともできます。今までのスクリーンがスマホ画面から、リアル空間全体に変わることになりますので、大きなビジネスチャンスがアプリ開発者のもとに訪れるといっても過言ではありません。
先日、ポケモンGOの運営元ナイアンティックが、開発中の拡張現実プラットフォーム Niantic Real World Platform をプレビュー公開しました。ゲームだけでなく様々な用途に利用される基盤技術と位置づけており、独自のゲームやアプリの展開を望むサードパーティー開発者を募っているとのことで、ますますAR市場は加速しそうです。
ARKitとは
ARKitはiPhoneやiPad向けのARエクスペリエンスを開発するフレームワークで、カメラセンサーのデータと、Core Motionデータと総称されるデバイス内蔵の加速度計やジャイロスコープ、歩数記録計などと連携するフレームワークです。
Core MLとは
Core MLは、モバイルデバイス上で直接、学習モデルを実行できる「基本的な機械学習フレームワーク」です。
顔追跡や顔検出、ランドマーク検出、テキスト検出、長方形検出、バーコード検出、オブジェクト追跡などを使用すると、開発者は視覚的な機械学習を作成しアプリに実装することができます。
Core MLは単体で使うことも可能ですが、他フレームワークとの併用もサポートされており、画像解析には「Vision」、ゲームに利用する場合は「GameplayKit」を使うことができます。
Visionとは
コンピュータビジョンの機械学習機能を容易にAppに組み込むことができます。フェイストラッキング、顔検出、ランドマーク、テキスト検出、矩形検出、バーコード検出、オブジェクトトラッキング、画像レジストレーションなどの機能に対応しています。
1日で「ARアプリ」と「機械学習」の基礎的なことが全てわかります
今回は、このARkitとCoreMLをベースにARアプリのサンプルをあますところなく解説していき、その複数のサンプルプログラムを参考にオリジナルのアプリ(プロトタイプ版)を実装していただきます。
また、これらを使って、どんなアプリができるのか、どんなARアプリが人気なのかを紹介しつつ、アプリ企画の講座も用意しております。
たった1日で、ARや機械学習のiOSの全てがわかる講座となっております。
Appleは2020年に、ARにも仮想現実(VR)にも対応する強力なヘッドセットを開発中と噂されております。
未来を先回りして、その可能性にかけたいエンジニアの皆さま、ぜひご参加ください。
今回取り上げるサンプルアプリ・プログラム
サンプルアプリプログラムはAppleが配布しているものと、今回独自で用意したものを使い、それぞれについて解説していきます。
0)Swiftでアプリを作ってみる(Xcodeの使い方)
iOSアプリ開発初心者にはとっつきずらいSwiftですが、画面作成には欠かせないプログラミング言語です。ゼロからXCodeの使い方をレクチャーしていき、プログラムの構造を理解していただきます。
1)AR空間で3DオブジェクトをAR表示する(ARKit)
AR空間で3DオブジェクトをAR表示します。Blenderで作った3Dモデルやフリーの素材を入れ替えて自分だけのARアプリが作れます。
3Dオブジェクトでオリジナルアプリを制作したい方はあらかじめ、3Dオブジェクト(usdzファイル、daeファイル)をご用意ください。
2)カメラ画像からAR空間をマッピング。平面検知、物体名を判定する(ARKit)
壁、屋根、テーブル、床などを判定して表示するアプリを作ります。
3)平面へ3Dオブジェクトを配置させる(ARKit)
平面へ3Dオブジェクトを配置させるサンプルアプリ。自分の好きな場所に配置できる家具配置アプリなども作れます。
4)複数のユーザーでAR空間を共有する(ARKit)
AR空間を共有したゲームアプリなどが作れます。
焚き火を囲むような「バーチャルキャンプファイアー」なんていかがでしょうか?
5)空間認識データを保存。永続性のあるAR空間認識を実現する(ARKit)
空間認識データを保存することで、永続性のあるAR空間認識を実現させます。AR空間の検知をブレないようにするための仕組みがわかります。
緯度経度情報と紐付づけるようにすれば、上空に天空の城を配置したり皇居に江戸城を建てることもできます。
6)現実世界の鏡面反射を再現する(ARKit)
現実世界の鏡面反射を再現します。現実空間をマテリアルに投影して3Dオブジェクトを表示するようなアプリが作れます。
7)ユーザーの顔を認識する(Vision)
ユーザーと画面の3Dオブジェクトを連動させてるようなアプリが作ることができます。これを応用すれば笑顔などの表情をリアルタイム認識、みんなが笑顔になった瞬間に写真撮影するアプリも作ることができます。
8)静止画像の画像認識・物体分類(Vision , CoreML)
inception-v3という物体認識の既存モデルを使った物体分類アプリを作成します。
Visionフレームワークを使用して写真を事前処理し、コアMLモデルで分類します。
机、椅子といった一般的な物体(1000種類)を認識して一般名称を表示、認識率を計測することができます。
表示するテキストを翻訳すれば「指差し単語帳」ができますし、
認識率が何パーセント以上になれば「写真をとる」というようなトリガーを発動するアプリが考えられます。
9)カメラで空間を認識。学習モデルで検知したオブジェクト座標に3Dオブジェクトを配置(Vision,CoreML,ARKit)
カメラで空間を認識して、学習モデルで検知したオブジェクト座標に3Dオブジェクトを配置する。画像認識とARを組み合わせて、AR画像認識アプリが作れるようになります。
10)PlaygroundとCreateMLで学習モデルを作成する(CreateML)
PlaygroundとCreateMLで学習モデルを作成します。自分の学習モデルを作成することで「猫の種類認識アプリ」や「花の種類認識アプリ」など自分だけの画像認識アプリが作れるようになります。
また、ある看板や特定の人を見つけると反応するアプリや、スタンプラリーなども考えられます。
11)ライブキャプチャでの物体の認識(Vision , CoreML)
Core MLモデルをVisionに組み込んで作成します。ファインダーに映った物体の分類やその物体の座標をとることができます。
12)モーショントラッキング(ARKit3)
カメラで人間の動きを映し出すと、リアルタイムでその動きをキャプチャします。
13)ピーブルオクルージョン(ARKit3)
AR空間のなかにいる人間を認識し、3Dオブジェクトを隠してくれる機能。
これにより、人間と3Dオブジェクトが重なることを防ぎます。
※)実装時間や参加者のスキルレベルを考慮して、スピード調整させていただきますので、全てを網羅できない場合がございます。ただ、iOSアプリの上級者でも、独自で進んでいただけるようなカリキュラムにしております。
【参加対象者】
・iPhoneアプリを作ってみたいという方(学生、初心者エンジニアも歓迎)
・機械学習のアプリを実際に作ってみたい方
・ARアプリを実際に作ってみたい方
・この分野で仕事をとっていきたいという方
初心者の方には、サンプルプログラムを動かして、ちょっとした改変を楽しんでいただき、
上級者の方には、複数のサンプルプログラムを応用し、独自のアプリを実装していただきます。
【再受講制度】
「その日の講習で理解ができなかった。みんながいるところで一緒に開発したい。」という方のために、今回の当講座の参加者に限り、次回以降(隔月開催を予定)も無償参加できるようにいたします。(今は特に制限はございませんが、後になって回数制限や廃止になることがあります。)
【持ち物】ARKitに対応したMAC機種とiPhone機種について
開発実機:「OS Sierra 10.12.4」以上のアップルデバイス
・MacBook(Late 2009またはそれ以降)
・MacBook Pro(2010年半ば以降)
・MacBook Air(2010年後半以降)
・Mac mini(2010年半ば以降)
・iMac(2009年後半またはそれ以降)
・Mac Pro(2010年半ば以降)
検証端末:iPhone6S〜8,X,XSのいずれか
iOSのバージョンとMAXOSは最新版にしていただき、あらかじめXcodeをダウンロード、最新バージョンにしてください。
※貸し出しはございません。ARKitアプリはシミュレータで動かないため、iPhone6S以上をご用意ください。
【カリキュラム】
10:00-13:00 「サンプルプログラムの解説」
Xcodeの使い方の説明と10個のサンプルプログラムの解説。講義中もサンプルプログラムを改変することでアプリの作り方を学んでいただきます。
14:00-15:00 「ARアプリの企画講座」
実際にどんなARアプリが公開され、どんなARが人気なのかを学びます。その上でアプリ企画のポイントを詳しく解説します。午前で学んだサンプルアプリの、どのロジックをどのように使って、どんなアプリができるのかについても復習していただきます。
15:00-17:00 「オリジナルアプリの実装」
サンプルプログラムで学んだロジックを使い、新しくオリジナルアプリを制作していただきます。初心者はサンプルアプリに手を入れていく程度でも楽しいアプリケーションを作ることができますし、アプリ開発経験者は今までのスキルに今回学んでいただいたロジックを入れることで、さらに魅力的なアプリ開発体験ができることでしょう。
【講師紹介】
フリーランスのデジタルプロダクトデザイナー・ソフトウェアエンジニアとしてVR/ARコンテンツおよび画像認識アプリの開発に従事。WEB、ゲームからBtoBのアプリ開発まで実績多数。1児のパパ。
もっとも効率的なスキル習得「テックジム方式」とは?
「テックジム方式」とは、基礎知識なしでも、座学なしでプログラミングに専念できるように設計されたプログラミングのカリキュラムメソッドです。
優れたエンジニアの多くは、職業訓練学校や研修スクールで学ぶような学び方をしません。 作りたいものを作っていたら、自然に習得できているのです。そして、優れた指導者(メンターや師匠)との出会いがエンジニアとしてのプロフェッショナル性を高めます。
この自発性とプロフェッショナル性を兼ね備えたのが「テックジム方式」です。 授業を聞いたりテキストを読むことで失う時間を、純粋にプログラミング時間に向けることで、習得効率は飛躍的に向上し、モチベーションも維持できます。 その時点で知らなくていい知識や概念を可能な限り削ぎ落とし、知るべきタイミングが訪れた時にはすでに課題を通じて覚えているようなスキル習得の自動化を図ります。
講座で用いるサンプルソースや課題は、最も効率よく学べるように細部に渡って設計されています。 まるで魔法にかかったようにプログラミンスキルが習得できるのが「テックジム方式」の醍醐味です。
現在はPython基礎コースのみご用意しております。 こちらは初学者からプログラミング歴3年未満の方を対象にしたコースです。 今後は、機械学習やディープラーニング、AIなど、Pythonならではの特性を活かした専門性の高いコースをご用意していきます。
【無料】ゼロからはじめるPython入門講座
オープン講座では、講義&実習スタイルで、テックジムの自習教材を体験していただきつつ、Pythonの初歩を学んでいただきます。
【無料】ゼロから始めるPythonプログラミング入門講座(週4開催)
すでに何らかのプログラミングをやっている方や、 プログラミング学習への決意度が高い人は、 どんどんカリキュラムを進んでいける「Python基礎コース体験会」の方がオススメです。
どんなレベルからでも、自分のペースではじめられますし、テキストを受け取りにくるだけでもOKです。
【テックジム】Pythonコース・体験会(平日19:00-22:00)途中参加・途中退席OK
いつでも通える! どんなレベルでもOK!
ジム型プログラミング塾「テックジム:TechGYM」
いつでも参加でき、ずっとスキルを磨き続けることのできる「ジム」の要素が「TechGYM(テックジム)」の大きな特徴です。
月額2万円の「プログラミングライフ」をお楽しみください。
【東京本校の体験入学】自習で学ぶ高速プログラミング(平日19時-22時・土曜13時-19時)