第3回: androidスマホだけで機械学習の予測モデルを使おう ! (1) Termuxを外部から操作するまで

しょくぶつ(^^) です。
前回のもの、お使いになっていかがでしょうか?

plant-smile.hatenadiary.jp

この程度のコードなのに思いのほかよく当たったのではないでしょうか?
そこで、もっともっと精度を上げるため、学習データ追加、CNN(畳み込みニューラルネットワーク)のパラメーターを最適化など、いろいろやりたくなると思うので、そのご紹介を準備中です。

それよりも、WindowsのPCではなくスマートフォンで動かすことの方が楽しくなって、トライしていました。
頑張った甲斐があって、

  • pythonコードは「Termux」というアプリを使って実行
  • 機械学習ライブラリのTensorflowはライト版(Tensorflow lite)を使うように変更
  • 画面キャプチャーは「USBカメラ」というアプリを使用

という方法を使って実現できました !!

スプラの敵のスペシャルを声でお知らせ

スマホで動かすようにした目的は「省エネ」です。

といいますのは、頑張ってコードを作ったものの、たかがゲームちょっとアシストするのに、わざわざWindows PCを動かして無駄に電気使う、良くないものを作ってしまったのでは ?!悶々としていたためです。
スマホで動かすだけならば「Google Colaboratory」を使えばいいのですが、これはクラウド上で電力バカ食い大型コンピュータでコードを動しているので、ちっとも省エネになりません。
そうではなく、スマホだけで前回コードを動かせれば、
スマホだけで機械学習の予測モデルを使う」
ことができていることになるわけです。 そうすれば夢が広がりますよね。
電波が届かなくて「Google Colaboratory」と接続できない場所でもスマホ機械学習が使えます。 スマホだけで クマ監視システム + 機械学習 とか実現できて、世の中の役に立つかもしれませんね。

デジタル技術活用しクマ出没を把握するシステム導入 新潟 | NHK | クマ被害

ただ、Windowsよりも準備がすごく大変です。 使い慣れない「Linux」の使い方も勉強することになります。 これから数回に分けて紹介しますが、頑張りましょう !!

androidスマートフォンLinux環境, "Termux" を使えるようにします。

次の記事を参考にさせていただきました。

【西川和久の不定期コラム】root化せず気軽にAndroidスマホでLinux「Termux」!PHP+Apache+MariaDBを入れてWordpressを動かしてみる - PC Watch

まず F-drodi をインストール

スマホのブラウザで F-droid を検索するなどして、"F-droid.org" を開きます。

F-droid.apkをダウンロードします。

F-droidをインストールします。

次に、Terumuxのインストール

F-droidを開きます。

"リポジトリの更新中"となって、しばらく待ちます。

『右下』の虫眼鏡アイコンをクリックします。

"Termux"と打ち込むと、何列目かに"Termux"があるので(したのずでは4列目)それをダウンロードして、インストールします。

この後で使う "Termux:API"と"Termux:Wiged" も同様にインストールします。

おまたせしました、"Termux"を開きます。写真のような画面は出たでしょうか?

Windows PCから操作できるよう、「SSH」をインストールします。

次の記事を参考にさせていただきました。

【西川和久の不定期コラム】root化せず気軽にAndroidスマホでLinux「Termux」!PHP+Apache+MariaDBを入れてWordpressを動かしてみる - PC Watch

スマホの画面からコマンド入力はさすがに面倒なので、Windows PCから操作できるよう、「SSH」をインストールします。
まず、

apt update

と入力してください。(下の画面)

Termuxで apt update と入力
以下では、この入力を

~$ apt update

と記載していきます。

そしてEnterを入力して(「↵」を押して)ください。 無事に、下の画面のように出たでしょうか?
(全く同じにはならないので心配なく)

apt update を実行できました !

次に、同じように

~$ apt upgrade

と入力してください。 すると、

Do you want ot continue? [Y/n]

と表示されるので、Enterしてください。 下記の画面のようなメッセージが表示されます。 その後も6~7回、下記画面のように聞かれますが、同じくEnterを入れていきます。

Termuxから、まずssh本体をインストールします。

~$ pkg install openssh

これも Do you want ot continue? [Y/n] と表示されたらEnterしてください。

次に、”ip -4 a” というコマンドを使えるよう、iproute2をインストールします。

~$ pkg install iproute2

さっそく使ってみましょう。Ipアドレス(この例だと 192.168.11.20 )が確認できます。

~$ ip -4 a
inet 192.168.11.20/24

Termuxで使用しているユーザー名を確認します。
次のように入力して出てきた結果の中から uid=xxxxx(u0_axxx) を探します。「u0_axxx」がユーザー名です。

~$ id
・・・(結果)・・・
uid=10442(u0_a442)
・・・

・Termuxのパスワード設定

次のように入力してパスワードを設定します。もちろん、忘れないようにしてください。

~$ passwd

sshを起動します。

次のように入力すると「ssh」が起動します。
※ ssh ではなく sshd であることに注意。

~$ sshd

特にメッセージは出ませんが、これでスマホ側の準備はOKです。

Windowsから接続します

Windows PCの方を操作します。powershellから次のように入力してください。

PS C:\Users\(ご自身の環境に依存)> ssh u0_a435@(先ほど調べたipアドレス) -p 8022
例: PS C:\Users\(ご自身の環境に依存)> ssh u0_a435@192.168.11.20 -p 8022

"Are you sure you want to continue connecting (yes/no/[fingerprint])? " と聞かれるので yes と答えます。 ( そのままEnterを押してしまうと、 "Host key verification failed." と叱られてしまいます。 )

Windowsからスマホ内のLinux(termux)に接続できました!
無事に接続できました!!
これ以降はWindows PCの広い画面とキーボードでインストール作業を進めることができます。