10月30日、18回目となる勉強会が開催されました。
テーマは「Lightning コンポーネント」、そして、IOSの「Create ML,Core ML」でした。
Lightningコンポーネント
Lightning には、Lightning コンポーネントフレームワークおよび開発者向けの魅力的なツールがいくつか用意されています。Lightning を使用すると、あらゆるデバイスに対応するアプリケーションを簡単に構築できます。
利用手順
・開発者コンソール
- [アカウント名] >[開発者コンソール]をクリックします。
- 開発者コンソールが起動する。
- メニューから、[File] > [New] > [Lightning Component]をクリックします
- ダイアログが表示されますので、NameとDescriptionに適当な内容を入力し[Submit]ボタンをクリックし,Lightningコンポーネントが生成されます。
発表では、社員によるLightningコンポネントを使ったいくつかのサンプルが紹介されました。
Map

ジオコーディングデータとGoogle Mapsからの地図画像を使用して、地図を表示します。地図画像はコンテナ内に表示され、オプションで場所のリストが表示されます。複数の場所が指定されている場合は、既定でリストが表示されます。リストで場所のタイトルを選択すると、その場所のマップ マーカーが有効になります。リストは、コンテナの幅に応じて、マップの横または下に表示されます。
File Upload

ユーザーが複数のファイルをアップロードする。ファイルアップローダには、ドラッグアンドドロップ機能とファイルタイプによるフィルタリング機能が含まれています。
createMLとCoreML
エッジAI
エッジAIとはクラウドAIと対置される概念で、AIモデルを使った処理を実際にデータを収集する機器に近いところで行う仕組みのことです。最近では、処理のみならず、AIモデルの作成までエッジで行える仕組みも出てきたようです。
エッジで処理を行うことで、このラグを無くし、リアルタイムでの判別が可能になるのです。その他にも、データを送受信しないことによる、セキュリティ面でのメリットも期待されます。
Create ML
Create MLは、X Code 11以降に付属しているAIモデル作成ツールです。

Xcodeの標準機能で、AIモデルを簡単に作成することができます。
Core ML
Core MLはiOSアプリにAIを組み込むための機能の総称です。
Visionを用いた、iOSアプリへのモデル搭載方法
まず、プロジェクトにモデルを追加する必要があります。これは簡単で、XCodeで該当するプロジェクトを開き、ファイルのツリーのところにモデルをドラッグ&ドロップするだけでできます。プロジェクトに追加したら、あとはコードで呼び出すだけです。 以下は、Visionを使ったモデルの利用手順です。
1、モデルを利用するためのURLを作成します。
let modelURL = Bundle.main.url(forResource: "test2 1", withExtension: "mlmodelc")
2、VNCoreMLModel(for:)でモデルを作成します。
let visionModel = try VNCoreMLModel(for: MLModel(contentsOf: modelURL))
3、VNCoreMLRequest(model:, completionHandler:)でリクエストを作成します。
let objectRecognition = VNCoreMLRequest(model: visionModel, completionHandler: { (request, error) in
// 完了時の処理
})
4、クラスのプロパティに3で作ったリクエストを配列として格納します。
self.mlRequest = [objectRecognition]
5、VNImageRequestHandler(ciImage:, orientation:, options:)でリクエストハンドラーを作成し、リクエストを実行します(ここで画像をセットします)。
let imageRequestHandler = VNImageRequestHandler(ciImage: self.imageToDiscrimination, orientation: .up, options: [:])
imageRequestHandler.perform(self.mlRequest)
外部のモデルの搭載方法
外部モデルをiOSアプリに搭載するためには、モデルを.mlmodelに変換する必要があります。モデルを変換するためには、pythonで変換プログラムを書く必要があります。
参照記事より、コードは以下の通りです。
import coremltools as ct
input = ct.ImageType(shape=(1, 513, 513, 3))
mlmodel = ct.convert('<変換したいファイル名>',inputs=[input])
mlmodel.save('./deeplabv3')