私的AI研究会 > 進捗メモ-mizutu1
進捗メモ-mizutu1 2020/11/03 ~ 2021/03/31 †
▼ 目 次
▲ 目 次
2021/03/24 †
- OpenVINO™ Toolkit のバージョンが「2021.3」になっていた。
- サンプルデモや学習済みモデルの新しいものが追加されているようだ。
- RaspberryPi + NCS2 も速度的には限界があるようなので、Xeon などの強力な CPU で動かしたい気がするがコストが問題!!!!!
2021/03/22 †
- ツールキット付属のデモプログラムをチェックしていて「Python 拡張モジュールが必要」との項目にはまる。
- Makefile と格闘して悩んだ末に python3.8-dev というモジュールをインストールすることで何とかエラーを解消できた。
- デモプログラムはどれも参考になるが動かすまでが大変。どんな機能なのかの説明がほとんどない上に動かすためには適当なサンプル動画などが必要なのだ。
- 速度は遅いが NCU のCPU Celeron® でも動作することが分かった。ただしモデル変換は第6世代以降 Core-i シリーズより上位の CPUが必須条件
- Hyper-v のマシンはかろうじて適合するが、Hyper-V がUSBに対応できないのでWebカメラも繋げなくて不便なり。
- Raspberry Pi での動作はやはり限定的なようだ。Python プログラムはそれなりに動作するが、C++のプログラムはコンパイル環境のせいか動作できるものが少ない。
2021/03/16 †
- 以前準備していたミニPC「Intel® NUC キット BOXNUC7CJYH」に RaspberryPi と同じ環境を作る。
- OpenVINO + NCAppZoo ほか一式の環境を入れる。
- これまで作成したソースコードは問題なく動作する。
- 動画保存も問題ないので結果を動画ファイルに残すこともできるようになった。
インテルのミニPC NUC を使って NCS2 を動かす
2021/03/15 †
- ツールキット付属のデモをカメラ・動画ファイルにアプリで対応できるようにした。
- 「人物追跡」「顔追跡」の 2本。学習済みモデルにアクセスする手法がだいぶ明確になる。
- 以前からの「動画記録」問題を兼用してみる。結果は RaspberryPi 上の環境に問題があるよう。→ 動画保存考察
- 今後 Linux システムで NCS2 の利用を検証してみることにする。
- (付録)このサイトで動画表示を実現すべく用意していたプラグインを使ってみる。結構快適。同じくそのままテキストを貼り付けてソースコードなどの色分け表示もできるようになった。
2021/02/26 †
- なんとなくソースコードの修正がある程度できるようになってきたのでこれまでの成果をアプリケーションにまとめてみる。
- 日本語表示とカメラ・動画ファイル・静止画ファイルを一つのアプリで対応できるようにした。
- 「感情認識」「年齢/性別判定」「物体検出」の 3本にまとめた。
- ここまでをイメージファイルにまとめる。(パスワード初期化)
- イメージファイルをテストしていて気付いたが、稼働中のラズパイがある場合は「/etc/wpa_supplicant/wpa_supplicant.conf」ファイルを新しいシステムを入れた SDカードの「/boot」ディレクトリにコピーしてしておくと Wifi設定をそのまま引き継ぐことができる。
2021/02/22 †
- Neural Compute Application Zoo のサイトの TinyYolo v1 が動いたので、参考サイトの記述を書き直してみた。
- ソースコードは変更箇所があるようだが説明内容は追っていける。
- なかなか難解。YOLO の動作原理を理解しないとわからんかも…
2021/02/20 †
- Neural Compute Application Zoo のサイトのアプリケーションを試す。
- ラズパイ上でのモデル変換はなかなか難しいようなので、Hyper-V上のubuntuで実行してできたものをラズパイにコピーするようにする。
- APIがプログラム作成時期によって若干の変更があるようなのでそのままでは動かないようだ。
- YOLO v1 は動いたが v2・v3 はmake でエラーとなる。なかなか前途多難!!
2021/02/19 †
- YOLO v3 の学習済みモデルを使った画像分類はひとまずおいて次のテーマを探す。
- Neural Compute Application ZooというGitHubにて公開されているサイトを参考にNeural Compute Stick 2 とRaspberryPi でディープラーニングの推論アプリケーションをやってみる。
- OpenVINO™ の下で環境構築 → NCAppZoo1
2021/02/12 †
- これまでのプログラムの学習済みモデルの処理方法を調べる続き…
- 最近のものから順にさかのぼって調査する。
- 一部のワーニングエラーの解消。
2021/02/10 †
- YOLO v3 の学習済みモデルを使った画像分類で処理に詰まったのでこれまでのプログラムの学習済みモデルの処理方法を調べることにする。
- 最近のものから順にさかのぼって調査する。
- 同時に一部のワーニングエラーを解消した。
2021/02/05 †
- Caffe の学習済みモデルを使った画像分類(100種類)をやってみる。
- 日本語の描画もできるようになった。
- リアルタイムで動作できるが、分類精度はそれほどいいとは言えないようだ。
2021/01/21 †
- 次のステップ(個人顔識別)へのヒントとなるサイトのメモ
- OpenCV 日本語テキスト描画に関して
2021/01/17 †
- 「Python画像処理100 (Interface 2021年1月号)」応用編をやってみる。
- OpenCV 単体でのオブジェクト検出はパラメータ設定の難しさや精度に問題があるように思う。
- NCS2 と OpenVINO™ の速さと精度は魅力だ。
- OpenCV で動画ファイルの保存を試すがエラーで実行できない。解決方法を模索中。
2021/01/14 †
- ツールキットをWindowsのHyper-Vで仮想環境のLinux(ubuntu20.04.1desktop)にインストールした。
- やはりWindows10 よりはるかに簡単。Publicモデルの変換もできた。
- サイトのサンプルプログラムをアレンジして、カメラや動画ファイルに対して推論モデルを実行してみる。
- 以前 物体検出 でエラーとなった動画ファイルの処理も問題なく動作した。
- このモデルの検出精度はそれほど良くない模様。
- 背景も含めて20のオブジェクト検出が可能。
2021/01/11 †
- ツールキットはLinux のほうが親和性がいいようなので、テストマシンにできるインテルのNUCをAmazonに注文した。
- OpenVINO™ の学習サイトの続編を見つけたのでトライする。「AI CORE X」のハードを使ったもののようだがインテルの推論モデルを使っているので参考にしてカスタマイズする。
- なかなか面白い。→ OpenVINO™ 学習済みモデルの検証
2021/01/08 †
- モデル変換ツール「Model Optimizer(MO)」を使って推論ライブラリを変換したいのでツールキットを Windows10 のマシンにインストール。
→ OpenVINO™ ToolKit for Windows
Serial number : C5RC-KP9T9WP3
- とりあえず動くようになったが、詳細は難しく徐々に解明していくことにする。
- 感覚的には Linux マシンの方が動かしやすいかもしれない。
2021/01/05 †
- 「Python画像処理100 (Interface 2021年1月号)」を参考に面白そうなサンプルコードを検証してみる。
→ 自習Python 画像処理
2021/01/03 †
●「Neural Compute Stick と OpenVINO でゼロから学ぶディープラーニング推論」第9回 リアルタイム感情分析アプリ編を終了。
●「ゼロから学ぶディープラーニング推論」サイトの演習は完了。
2021/01/02 †
●「Neural Compute Stick と OpenVINO でゼロから学ぶディープラーニング推論」第7回 Inference Engineを学んで感情分類編を終了。
●「Neural Compute Stick と OpenVINO でゼロから学ぶディープラーニング推論」第8回 リアルタイム顔検出編を終了。
2020/12/27 †
- 「Neural Compute Stick と OpenVINO でゼロから学ぶディープラーニング推論」第4回~第6回の事前学習編を終了。
- 拡張モジュール「numPy」が面白い。python が画像処理にあっている理由がわかった。
画像データを配列で扱う仕組みが秀逸。
- 画像処理 特にカメラ映像のリアルタイム処理などのプログラムは VNC 経由では速度的に無理がある。直接 Raspberry Pi のディスクトップ上で実行する必要がある。
2020/12/26 †
- 2軸カメラ台を搭載したキャタピラーロボットのスピーカー部分が密閉していて音が小さくなるので、切り取った箱の残りの部分でスペーサーを作成し底部に追加する。
- 空間ができるので本来のスピーカー機能が発揮できるようになった。
2020/12/18 †
- 「ゼロから学ぶディープラーニング推論」第3回 OpenVINO™ ツールキットのインストールまで終了。
比較的問題は少なかった。ツールキットのバージョンが上がっていたため、サイトの記述のつじつま合わせに時間がかかった。
- ほぼオフィシャルサイトの和訳と詳しい解説のよう。速度的にはかなり期待できそう。
- 学習済みのデータをうまく使えるかが今後のカギになりそうだ。
2020/12/17 †
- 以前から課題だったイメージファイル作成時のパーテション縮小が解決。zip圧縮も併用して従来の 1/5~1/10 サイズにすることができた。
- 初期設定 raspi-config にファイルシステムの拡張がある意味が今頃理解できた。
- USBメモリーにシステムをコピーして、SDカードなしで手を加えることなく USBから起動できることが分かった。(今更ながら知らんことが多い...)
- やっと条件がそろったので、「OpenVINO™ でゼロから学ぶディープラーニング推論」をスタートする。
2020/12/15 †
- 11/30版のイメージファイルでは基板単体での起動時に再起動ループに陥ることが分かったので、リセットボタンとIPアドレス対応も自動起動から外して、Wifi設定追加、配布用にパスワードを初期化し、自動起動設定をコメントアウトした。
2020/12/09 †
- 引き続きオーディオ設定の調査。
- RaspberryPi のオフィシャルサイトのドキュメントから初期設定コマンド「raspi-config」の構成が変更されていることを発見。詳しくは → オーディオ2
- オーディオデバイスの設定がメニュー移動しているよう。設定し直しで音は出るようになった。
- オーディオ設定の完了より前にwebiopiの自動起動とシェルスクリプトの自動起動が実行されているのか、以前のプログラムのままではHDMIモニターを接続した場合起動音がでない。起動後は正常、継続調査とする。
2020/12/08 †
- 以前からオーディオ設定のヘッドフォンジャック出力設定が HDMIモニターの接続有無で変化してしまう(音が出なくなる)のを調査。
- RaspberryPi のオフィシャルサイトを見ていると 12/02 に Raspberry OS の新しい版がアップされていたので、ヘッドレスインストールを再度検証してみる。
- 若干の変更があるようなので新しくページを追加した。→ Raspbian覚書3
- オーディオ部分に変更があるようでオーディオ設定問題は解決せず。
- SDカードのCRCエラーに遭遇(2枚も)。迷わず破棄!
2020/12/04 †
2020/11/30 †
- 2軸カメラ台を搭載したキャタピラーロボットのハードウェアを3台創る。
- ソフトウエアは改良が必要な模様。特にキャタピラ駆動部分と2軸サーボの制御。
- モーター駆動は電池のパワー不足かもしれない。
- WebIOPi は起動時にハードウェアチェックをしてハードウェアがないなどの場合エラーで止まるようなので、起動の音声をリセットスイッチの制御に組み込むことにする。
MJPG-streamerとWebIOPiを自動起動から除き、IPアドレス表示とリセットボタンの制御を組み込む。
- ここまでのイメージファイルを作成。Wifi設定を追加、配布用にパスワードを初期化し、自動起動設定をコメントアウトした。VNCの起動時設定解像度を1280x720とする。本体解像度設定を初期状態に戻しておく。
- << System Image Backup: raspi_2020_1130_001c.img >> → パスワード初期化・自動起動設定をコメントアウト
- 詳しくは → 2軸カメラ台
2020/11/19 †
- ミーティング用にここまでの結果でイメージファイルを作成。配布用にパスワードを初期化し、自動起動設定をコメントアウトした。VNCの起動時設定解像度を1280x720とする。本体解像度設定は1920x1024。
- << System Image Backup:raspi_2020_1119_001c.img >> → パスワード初期化・自動起動設定をコメントアウト
2020/11/17 †
- 「実例で学ぶRaspberryPi電子工作」第7章を参考に円と顔の追跡プログラムを作る。。
- 書籍のサーボモーターコントロールは参考にならないのでテストした「Adafruit_PCA9685」ライブラリを使って書き換える。
- 途中、過負荷がかかったのかサーボが1台壊れてしまった。案外弱い。予備がないと不安なので追加で発注した。
詳しくは → OpenCV 対象物追跡
2020/11/12 †
● キャタピラーロボットに2軸のカメラ台を設置する。
● ぎりぎりのサイズで箱を作ったので、サーバードライバ基板が入らず結局上部に搭載した。
● 出来上がったロボットに作成したSDカードを入れて起動する。
● 一通りの動作確認後、自動起動設定を元通りにして電池で起動して完成。
2020/11/11 †
- 2軸カメラ台をテストする。3Dプリンターで出力したものと、市販品の両方を組み立てる。
- サーボモーターをセンター位置にして設置しないといけない。
- サーボの可動範囲は安全を見て -60度~+60度 の120度とした。
- 最終的にWebIOPi によりブラウザからスライダーで操作するようにした。
- 音声&LED搭載のキャタピラーロボットのソフトウェアに搭載したので、最終的には自立したロボットをスマホなどから操作できると思う。
詳しくは → 2軸カメラ台
2020/11/06 †
● 2軸のカメラ台をテストしていて、これまで作ったキャタピラーロボットにカメラ台を設置して追跡システムにアップグレードしようと思いついた。
●意を決して上部のRaspberryPi基板装着部分を分解する。カメラを取り付け直すのですべての部品を外して作り直す。(-_-;)
●スピーカー設置部分の箱のふたを半分の厚さにカットして逆さにして使用。スピーカーと電池ボックスを入れる。その上にRaspberry Pi基板とモータードライバ、タクトスイッチ、LCD基板などを設置。2軸カメラ台を取り付ける。
- 取り敢えず部品加工と設置を終えて動作を確認。何とか元通り復帰した。
- カメラケーブルが届かないので別途50cmケーブルを調達する必要アリ。サーボコントロール基板の入れ場所並びにソフト追加はこれからの作業。
2020/11/04 †
- 新規の「Raspberry Pi」基板を raspi_2020_1103_001.img で起動する。「実例で学ぶRaspberryPi電子工作」第6章を参考に2軸のカメラ台のテストを進める。
- サーボモーターとセットになったカメラ台をAmazonで手にいれ、別途同じ仕様のサーボモーターSG-90も入手し、3Dプリンターで出力したカメラ台に装着する。
- 6.2.4 の手順でサーボモーターの0度の位置決めをしてカメラ台にとりつける。別途入手の2個は問題なかったが、残りのセット分(4個)は不良品なのか0度に固定できない。書籍にもあるが、結構不良品も多いようだ。
2020/11/03 †
- 新しい「Raspberry Pi」基板で raspi_2020_0923_001.img のSDカードが起動後に落ちるので、自動起動設定を止めたイメージファイルを作成した。
- << System Image Backup: raspi_2020_1103_001.img >>
→ 自動起動設定をコメントアウト
- カメラだけをつないだ状態で無事起動できた。
- WebIOPi の起動コマンド
$ sudo service webiopi start
- WebIOPi を自動起動するためのコマンド
$ sudo systemctl enable webiopi
- 自動起動ファイルを元に戻すには
$ sudo vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 10
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
python3 /home/pi/webiopi/i2c-lcd.py $_IP
python3 /home/pi/webiopi/sw-poweroff.py &
sh /home/pi/webiopi/streamer-start.sh
exit 0