オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

iOSでTensorflowLite

 こんにちは.changです.

 ほぼ自分用のメモですが,MacでTensorflowLiteのサンプルをビルドして,iPhoneカメラでobject detectionするまでの記録になります.

1. 必要ツールのインストール

(1) Visual Studio Code

 今回は設定ファイルの編集に使うだけですが,必ず使うので入れておきます.

  • ここ*1からダウンロード
  • FinderのApplicationにコピー
  • Terminalから起動する為に,F1⇨Shell Command: Install 'code' command in Path

VScode.Applicationフォルダに実行ファイル毎(?)置くというのが,Linuxユーザーからすると新鮮です

(2) markdown

TensorflowLiteとは全く関係ないのですが,記事の下書きをするのに使いました.

(3) git

 Xcodeと一緒に入っていた為にインストール不要で,ver.確認だけしました.

% git --version

git のversionを確認

(4) rbenv

 これが無いとcocodpodsが入らない様です*2*3環境変数の追加まで行いました.

brewをインストール

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  
% echo export PATH='/opt/homebrew/bin:$PATH' >> ~/.bash_profile  
% source ~/.bash_profile
% brew update  
% brew install rbenv ruby-build

続いてrbenv

% rbenv versions
% rbenv install -l

インストール可能な最新版は3.1.1

% rbenv install 3.1.1
% rbenv versions

未だPathが通っていない

環境変数を設定

% rbenv global 3.1.1
% sudo code ~/.bash_profile

~/./bash_profile

[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

  vimが苦手なので,VSCodeで編集しました.

% source ~/.bash_profile  
% rbenv versions

無事に入ったっぽい

  面倒なことに,環境変数設定はTerminalを再起動すると無効になってしまう様です

(5) CocoaPods

% sudo gem install cocoapods

CocoaPads.依存パッケージも色々入ります

% pod setup

ここまでが結構長かった...

2. 公式サンプルのビルド

 公式*4*5を見ながら進めます.

(1) ソースを取得

% cd ~/  
% mkdir Tools  
% cd Tools  
% mkdir TensorflowLite  
% git clone https://github.com/tensorflow/examples.git  

(2) workspace fileを生成.

% cd ~/Tools/TensorflowLite/examples/lite/examples/object_detection/ios  
% pod install

*.xcworkspaceができる

(3) いよいよXcode

プロジェクトを開く

% open ./ObjectDetection.xcworkspace

Xcodeが開く

TARGETを確認

Bundle Identifierを指定

ドメイン名というのが良く解ってないので,適当です

Apple ID

今回はDeveloper ID無し*6でやります.

Add count

Apple IDとパスワードを入力

Personal TeamにApple IDを指定

実機を繋いでいざビルドと思ったが...

ver.不整合でビルド出来ず

3. Xcodeを更新(付随的にiOSも)

Xcodeのver.を確認

ver. 12.5.1が入ってしました.何も意識せずに入れたな💦

App StoreからXcode 13.2.1に更新しようとしたら,先にOSの更新を求められた...

先は長そうですが,めげずにiOS ver.を更新

Montereryというのも良く解って無いので怖いな...

無事に更新されました.

いきなり12.3.1にはならず,2段階で入った感じでした.UIの外観もかなり変わりました

再度Xcodeを更新

更に新しい13.3.1が見つかりました.日が経ったからかな?💦

無事に13.3.1が入りました.

時間掛かりました...

4. 再びビルド

プロジェクトを開く

% cd ~/Tools/TensorflowLite/examples/lite/examples/object_detection/ios  
% open ./ObjectDetection.xcworkspace

実機を接続

エラーが消えました

デバッグ実行すると,iPhone側でエラーになる

セキュリティエラーが出ます

設定⇨VPNとデバイス管理からDeveloper(自身)を信頼します.

しっかりと自分のDeveloper IDが表示されます.良く出来ていますね🤔

出来ました😀

汚いデスクだなぁ...

5. むすび

 高々これだけの事をするのに,凄く時間がかかりました😮‍💨 めげずに続けていくしかないですね.

 次回はデバッガーを動かしてみようと思います.