け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

●RasPi 4B  教師dataの学習

 2022.01.30

【RasPi で学習】
MicroSoft VOTTで作成した自前の教師dataを学習させる準備をします。
VOTTは Windows上で作成しているので、RasPiに転送を行います。
学習を行うために RasPiの仮想環境に karaageさんの object_detection_toolsを downloadします。


【学習data転送】
object_detection_toolsの download
 $ cd /home/pi/Virtual/p37venv
 $ . bin/activate
 (p37venv)$ git clone https://github.com/karaage0703/object_detection_tools

downloadした Folder配下の trainと valに MicroSoft VOTTで作成した
Windows上にある教師dataを scp commandで転送して書き込みます。

ここからは windows側の作業になります。
windowsのシステムツールからコマンドプロンプトを開いて
scp commandで RasPiに教師dataを一括転送します。

Windows Command prompt
-----------------------------------------
$ scp D:Work/TFRecords-export/*.tfrecord pi@192.168.1.11:/home/pi/Virtual/p37venv/object_detection_tools/data/train/

$ scp D:Work/TFRecords-export/*.tfrecord pi@192.168.1.11:/home/pi/Virtual/p37venv/object_detection_tools/data/val/

$ scp D:Work/TFRecords-export/tf_label_map.pbtxt pi@192.168.1.11:/home/pi/p37venv/object_detection_tools/

Enterを keyinすると raspiの passwordを聞かれますので
keyinすると転送が始まります。

Errorが出た場合
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

これは RasPi側の SSDの入れ替えや、再installを行った場合に発生します。
Windows PCの .ssh Folder内の known_hostsを削除するか、
.sshを消去すれば解決します。
 C:\ dir
  .
  .ssh
 C:\ cd .ssh
 C:.ssh\ del known_hosts    ・・・又は
 C:\del .ssh


【学習環境の構築】
 仮想環境に object detection APIを installします。
 ・object Detection API
 $ cd /home/pi/Virtual/p37venv
 $ . activate
 (p37venv)$ sudo git clone https://github.com/tensorflow/models
 (p37venv)$ cd models/research/object_detection
 (p37venv)$ sudo chmod 755 model_main_tf2.py

 PYTHONPATH の設定
 .bashrcに下記のPATHを書いておきます。
 $ cd /home/pi
 $ sudo nano .bashrc
 export PYTHONPATH=/home/pi/Virsion/p37venv/models/research: /home/pi/Virsion/p37venv/models/research/slim:$PYTHONPATH


【protobuf install】
 Protocol Buffers の installから始めます。
 $ sudo apt-get update
 $ sudo apt-get upgrade
 $ sudo apt-get install snapd
 $ sudo reboot
 $ sudo snap install core
 $ sudo snap install protobuf --classic

 Protocol Buffersの proto fileセットアップ
 (p37venv)$ cd models/research/object_detection
 (p37venv)$ protoc protos/*.proto --python_out= .
 (p37venv)$

 次に必要なライブラリを installします。
 $ cd ~/models/research
 $ cp object_detection/packages/tf2/setup.py .
 $ python -m pip install .

 Object Detection APIの Test
 (p37venv)$ cd models/research
 (p37venv)$ python object_detection/builedrs/model_builder_tf2_test.py
 (p37venv)$

 Errorがドッと出てききます。
 依存fileが installされていないと云っているので pipで1つ1つ入れていきます。
 pipで入らないものは、apt-getで入れていきます。
 OS 不一致で install出来ない moduleがでてきます。

 Object_detection_APIの test環境が作れず testを実行して
 OK (skipped=1) が出ない。
 (p37venv)$ deactivate   ・・・仮想環境終了



【RasPi で教師dataの学習をあきらめる】
1. 仮想環境を作成して Versionの違う pythonを使用して Object_detection_API
 が正常に動作できる様にしてみました。
2. RasPiの OSを armv7から 64bit OSの aarch64に変更してみました。
3. OSを再構築して mini-conda上で Tensorflowを動作させる構成に
 してみました。
 
しかし No matching distribution found Tensorflow Errorは消えません。
RasPi用の aarch64上で動作する Tensorflowの install moduleがほとんどない。
mini-condaは RasPi上では installできる versionに制限があって Tensorflowの
version条件に一致する部分がなく構築出来ない。
いずれの方法も撃沈してしまったので RasPi上で教師dataの学習はあきらめます。
もしかすると RasPiの CPU性能では「学習」は無理かもしれない。



●Chromebookで 教師dataの学習

 2022.03.17

【Chromebookで学習】
ASUSの C302 Chromebookは Linuxが使用できなかったのですが、
ごく最近可能になった様です。

ただしまだ supportされていない機能があります。
1. cameraは supportされていません。
2. Android Deviceは USB経由で supportされていますが、他の Deviceは
  supportされていません。
  Android Emulaterは supportされていません。
3. HardWare acceleration (GPU, 動画 decordを含む)は
  supportされていません。
4. ChromeVoxは Default Terminal APPでは supportされていますが
  他の Linux APPでは supportされていません。

 Chromebookの「設定」を開いて「デベロッパー」から「linux開発環境」を
 有効に設定します。
 Linuxに割り付ける Disk容量は、16GB程度にします。

早速 Chromebookに Debian 64bit OS x86_64を installして
pyenv, venvを使用して仮想環境も構築します。

opencv-pythonや Tensorflowを順調に install出来たので
object_detection_APIを installして教師dataの学習に取り掛かります。
早速 test.pyを実行してみると

$ cd ~/models/research
$ python object_detection/builders/model_builder_tf2_test.py
Error if you do not have a GPU set up on your machine
あちゃ・・・

object_detection_APIは GPUを使用する事が条件になっていました。
Chromebookには GPUがありません。これは現状ではどうする事もできない。



Chromebookに Linux installの詳細はこちら ⇒ chromebook Linux

----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan