8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iPhoneでYOLOを動かしてみたい

Posted at

#はじめに
初めまして、普段はFPGAや組み込みソフト関係の仕事をしている社会人3年目です。
ずっとQiitaで記事を書こうと思いながら半年が過ぎてしまいました。
ついにやる気が起きたので、自分の学習用にこれから投稿を継続していこうと思います。
業務や自分の趣味で機械学習やフロント系のスキルも身に付いていきたいです。
#今回は
勉強の息抜きをしたいなーと思って、お手軽にリアルタイム物体認識の実装とアウトプットできる題材はないかな思い周りを見渡すと、
~~「そう、iPhoneならね。」と聞こえてきた気がして、~~丁度よくiPhoneがあったのでYOLOを実装してみようと思いました。
とは言っても、iosは全くの初心者で何もわからないため、先人の知恵を借りながらXcodeでiPhoneへデプロイする流れをなぞっていきます。
具体的にはgit hubで公開されている、Tiny-YOLO v2のswiftプロジェクトを手持ちのiPhoneで実行します。
#Xcodeのインストール
Xcodeはすでにインストールしてあったのですが放置していたため、アップデートする必要がありました。(今回のプロジェクトはversion:9以降が必要でした。)
未インストールの場合はApp Storeからインストールをすれば良いと思います。
アップデートの場合、App Storeからがうまくいかなかったら一度Xcodeをアンインストールしてから、Mac developerから直接アーカイブをダウンロードするのが早いと思います。
僕はうまくいかずにこの方法で再インストールしました。
#プロジェクトのセットアップ
まず、適当なディレクトリへプロジェクトをクローンします。

ターミナル
git clone https://github.com/hollance/YOLO-CoreML-MPSNNGraph.git

TinyYOLO-CoreMLフォルダ内のTinyYOLO-CoreML.xcodeprojをダブルクリックして開きます。

続いてiPhoneで実機でバッグを行う為のセットアップを行います。
Apple IDが必要になりますが、ここでは趣味程度なので自分のIDのまま進めます。

1.Xcodeから「Preferences...」を開き
スクリーンショット 2020-01-26 22.53.44.png
スクリーンショット 2020-01-26 23.06.08.png
Accountsタブの「+」を押して「Apple ID」を選択します。
Apple IDとパスワードを求められるので、普段使用している物を入力するとApple IDが追加されると思います。
2.「Manage Certificates...」を開き、
スクリーンショット 2020-01-26 23.15.45.png
「+」タブを開き「iOS Development」を選択してDoneを押し、証明書を作成します。
3.プロジェクトを選択した状態で
スクリーンショット 2020-01-26 23.26.03.png
「Signing & Capabilities」からTermを、登録したApple IDへ変更します。
これでセットアップは終了ですが、画面にまだエラーがでている場合は「Bundle Identifier」を「jp.primetheory.プロジェクト名+適当な文字列」に変更するとエラーがなくなるようです。
例)jp.primetheory.TinyYOLO-CoreML20200123

#実機確認
やっと準備ができたので、ついにiPhoneで実機確認をします。
MacへiPhoneを繋ぎ
スクリーンショット 2020-01-26 23.40.11.png
上部で手持ちのiPhoneを選択して、▶︎でビルドと実行を行います。

CF41D48D-8A69-436A-9409-E233ED260F99_1_105_cのコピー.jpg

アプリがインストールされています。

実行してみましょう。
62B1A445-F4D1-4239-856E-7A46EFFACA00_1_201_aのコピー.jpg

ちゃんと認識されていますね!!
認識速度も20FPSと中々の速度でした。
#おわり
Xcodeのセットアップにかなり手間取りました。
YOLOの実装を自分でしたわけではないので、作り込んだぞーという感覚は得られないですが、お手軽に物体認識で遊ぶことができ息抜きになりました。
swiftに触れたことがないので、一通りやってみると興味がでてきますね。コード読んでみようかな。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?