研究プロジェクト向け画像認識(物体検出)アプリをフルスクラッチ開発
Table of Contents
期間 | 役割 | 規模 |
---|---|---|
2021年1月〜 | iOSエンジニア | iOS 1名 |
言語 | アーキテクチャ | FW・ツール等 |
---|---|---|
Swift | MVP | UIKit, Combine, SPM OSS: Firebase, SwiftLint |
CoreML(YOLOv3のモデルを組み込んだ物体認識)を組み込んだアプリ開発に従事。
Undoもサポートし、よりツールとして使いやすいものにした。
Haptic Feedbackも組み込みつつ、操作結果が感覚的にフィードバックされるようにした。
Undoもサポートし、よりツールとして使いやすいものにした。
Haptic Feedbackも組み込みつつ、操作結果が感覚的にフィードバックされるようにした。
担当した業務: アプリケーションのフルスクラッチ開発 #
-
難しかった部分
- 問題
- 物体認識結果のフレーム表示がずれ、カメラのプレビューにうまくオーバーレイしない
- 物体認識に渡すPixelBufferと、AVCaptureVidePreviewLayerのサイズが異なるため
- PixelBufferは4:3(640 x 480)、PreviewLayerは1:1でデザインが組まれていた
- UIKitとCoreGraphicの座標原点の違い
- Y座標の反転
- PixelBufferはOrientationを持たないため、VNImageRequestHandler(cvPixelBuffer:orientation:)に、画像の向きに合わせたorientationを渡す必要があった
- 物体認識に渡すPixelBufferと、AVCaptureVidePreviewLayerのサイズが異なるため
- 物体認識結果のフレーム表示がずれ、カメラのプレビューにうまくオーバーレイしない
- 解決
- トライ・アンド・エラーで解決、サポートする端末の向きを固定していたのも幸いした
- 撮影する画像サイズも固定していたのもある
- 問題
-
こだわった部分
- アノテーションの編集画面(教師データ作成の補助的機能)で、Haptic Feedbackを活用
- 課題
- アノテーションのオブジェクトが指に隠れるので、削除操作がされたかわかりにくい
- アプローチ
- Haptic Feedbackで、削除が正常に終了したことを軽いクリック感でフィードバック
- アノテーション追加時もHaptic Feedbackを使ったことで、操作の気持ちよさが得られた
- 課題
- アノテーションの編集画面(教師データ作成の補助的機能)で、Haptic Feedbackを活用
習得スキル #
- CoreML(YOLOv3のモデルを組み込んだ物体認識)
- カメラの基本的な実装
- UndoManagerの使用
- Firebase Storageの使用
開発で意識していたこと #
- 極力シンプルなUI
- アノテーションの編集操作をUndoできること
- 送信される情報の視覚的なフィードバック
- 位置情報(マップ表示させる)