第3回:スマホでPython・機械学習 ! (1) Termuxを外部から操作するまで

“AndroidスマホのTermux上でPythonを動かして、Tensorflow liteのコードを実行するまで”

※ はてなブログから引っ越し '24/8/16

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

第2回 : キャプチャー画像を機械学習で判別、声でお知らせ
※ 更新 ’24/9月 ライブラリ ”Tensorflow” の新バージョン「2.16」対応のため更新しました。 ’24/9月より前に本ブログを実行した方は第1回(※'24/9月に更新)に戻って、「4. 仮想環境の構築」から再実行して下さい...

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

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

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

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

スマホで「スプラの敵のスペシャルを声でお知らせ」を実行

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

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

デジタル技術活用しクマ出没を把握するシステム導入 新潟 | NHK
【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の広い画面とキーボードでインストール作業を進めることができます。

プロフィール
この記事を書いた人
しょくぶつ (^ ^)

機械系の技術者です。学会発表13、論文掲載6(和・英)。プログラミング歴40年(つまり8bit世代ですね)。ゲーム歴40年(ファミコン世代ですね)。
お問い合わせは下記のメールアドレスにお寄せください。
plantsmilehatena@gmail.com

しょくぶつ (^ ^)をフォローする
pythontermux
しょくぶつ (^ ^)をフォローする
タイトルとURLをコピーしました