====== 第1章 SCORER Edge SDKを始める前に ======
このSCORER Edge SDKチュートリアルはPythonなどで簡単なプログラミングをしたことがある人が、例えばカメラの前を何人通過したかや、あるエリアに10秒以上滞在した人が何人いたかなどの分析が思い通りにできるようになるためのものです。\\
最初は人の位置が見取り図上でわかるSCORER People Trackerの出力結果を元に、横断歩道前など一時停止エリアを通過した人で、ちゃんと3秒以上止まっていた人とそうでない人がそれぞれ何人いるかを判定して、ログで出力するスタータープログラムを1からくみ上げられるようにします。次の3章ではエリアではなく、検知線を使って通路からはみ出した人が何人中何人いたかの判定をします。また、WEB上でカメラの画面上に線を引いて簡単に検知線を設定できるようにします。\\
3章まで終えることで人の動線に関してはあなたが自らいろいろ調べることは素早くできるようになります。\\
4章からは判定した結果を社内のほかの人に見せたり、AIを用いてより高度な判定を行なったりすることをレッスンし、実用的なアプリケーションも構築可能になるためのステップを踏んでいきます。\\
\\
社内で研究的に利用したり、近くの部署の人に参考情報としてシステムの出力結果を見せる分にはSDKでの開発が最適です。\\
ですが、もしそのシステムを外販したり、研究的ではなく連続稼働が必須となるようなミッションクリティカルな場面で利用する場合は私たちフューチャースタンダード社にご依頼ください。\\
商用アプリケーションとして提供するためにはエラー処理、コードのリファクタリング、連続稼働用の監視プログラム等いくつかの手順が必要です。それらを組み込み商用アプリケーションとしてよりブラッシュアップすることも私たちは歓迎します。\\
===== 第一項 これから作るもの =====
SCORER PeoPle Tracker\\
{{youtube>BWRPBmjYg38?medium}}\\
では、位置の可視化機能以外に、1秒間に5-10回座標ログが出力できます。\\
各カメラフレームごとの解析結果が送られてきており、時刻や映っていたそれぞれの人物の追跡ID、カメラ画像内での位置座標や顔向きと、見取り図上での位置座標、そして顔向きが出力されています。\\
人物座標は人体検知の下部中央を基準としています。\\
{{:bbox.png|}}\\
座標ログの中身は下記となっています。\\
{{:peopletrackerログ説明.png|}}\\
今回のチュートリアルではまず上記のログをすべて記録して一度保存します。\\
保存したログを再度解析することで、様々な判定を行う方法をとります。\\
\\
第2章、第3章では、カメラ画面の座標上にエリアを設定し、追跡IDを利用して複数のフレームを調べることで、通過時間の判定やエリアを通過したかどうかを判定、結果をCSVファイルで出力することをします。\\
\\
第3章では、エリアではなくラインを通過したかどうかの判定となり、エリアよりも多少数学的な手法で判定します。\\
また、第2章ではエリア設定はカメラの画像からWindowsのペイントツールなどでエリア座標を調べる手間がかかる方法を行っていましたが、これをWEB上で簡単に行えるようにします。\\
最後にカメラ画面上のエリアではなく、見取り図上で判定する場合のコードを解説します。
\\
第4章、第5章ではそれまでのCSV出力に加えて、データベースに出力することを行います。データベースにログが入れば簡単な設定でMetabeseというBIツールでグラフ・表での表示ができるため、その方法をお伝えします。
\\
第6章ではそれまでの章とは全く別物としてSCORERの生画像から直接AIを利用し、判定を行います。テーマは一般物体検知と3次元骨格検知とします。
===== 第二項 前提知識 =====
今回のチュートリアルを行うにあたり、一定の前提条件を設けています。
==== プログラミングスキル ====
プログラミング言語としては2-4章はPythonをメインで使います。3章ではWEB画面開発に置いて主にTypescriptも利用します。\\
どちらもプログラミング入門で選ばれるプログラミング言語となっており、取り掛かる難易度は低めです(難しいものとしてはC++,Rust,Haskellなどがあります)。\\
\\
ですが、全くプログラムが初めてですという方は今回のチュートリアルは難易度が高いかもしれません。職業プログラマー経験がある方は問題ないかと思いますが、最低限\\
* ホームページをHTMLで書いたことがある
* VBAでエクセルを操作したことがある
* 高校・大学の授業でプログラミングの講座を受けたことがある
* Linuxを何かの目的で使ったことがある
などの方が対象となります。\\
具体的には\\
* 文字列・数値操作
* IF文
* For文
* 関数定義
* 配列(リスト)
という言葉に対してイメージが沸く人となります。\\
\\
不安な方は\\
プログラミング超初心者が初心者になるためのPython入門(1)~(3)\\
[[https://www.amazon.co.jp/-/en/%E3%81%9F%E3%81%A3%E3%81%8F-ebook/dp/B00SH9TZV6/]]
もしくはプログラミング学習で有名なUdemyの無料講座\\
[[https://www.udemy.com/course/python-free-intro/]]\\
を受けてみましょう。\\
どちらも2-3時間で終わる内容となっていますが、手を動かしてプログラミング自体を経験してみることが必要ですので6時間程度確保してすすめるとよいでしょう。\\
==== ネットワークの知識 ====
インターネットで利用されているTCP/IPの最低限の知識が必要です。\\
自宅でWiFiルータを設置したことがある程度は必要となります。\\
不安な方はすべてを理解する必要はありませんが、1コマ3分で解説される \\
[[http://www5e.biglobe.ne.jp/aji/3min/]] \\
や\\
[[https://www.infraexpert.com/study/]] \\
の「IPv4をはじめから」
[[https://www.infraexpert.com/study/study12.html]] \\
を一読することをお勧めします。 \\
==== AIの知識(第6章) ====
第6章ではAIについて扱います。\\
AI自体の説明はgoogleが提供する無料講座の\\
[[https://www.udemy.com/course/google-jp-ai/]]
などが分かりやすいです。\\
AIは既存の様々な技術の上に成り立っているところもあるため、必要となる知識の幅も広く、一般的に扱う難易度は高いものです。\\
ですが、多くの人がAIの分野に参入することでとっつきやすくなってきており、SCORER Edge SDKを利用し、チュートリアル通りに進めれば最短でAIを使うことができるようになります。\\
第5章までやり切れている方であれば取り組むことができる内容にしていますので、まずはAIの手前のITの基礎を固めて進めていきましょう \\
===== 第三項 SCORER Edge SDKの利用準備 =====
SCORER People Trackerがインストールされた状態を想定しているため、カメラの設定などはすでに済んでいるものとします。\\
SCORER Edgeに接続した状態で[[http://解析端末のIP:20001/]]にアクセスし、メニューのSDK→projectを開く\\
新規でプロジェクトを作成し、
* Instance ID:tutorial(任意)
* Nickname:(空欄)
* Environment:Web Server(node.js: v16.13.0, npm: 8.1.0)
* Network Access: Allow all
とします。\\
SDKインスタンスが立ち上がったら「Open Jupyter Lab」リンクをクリックして起動し、dev@scorerでログインしましょう。\\
Tutorialで利用するファイルはこちらになります:{{ ::tutorial.zip |Tutorial.zip}}(テスト用データ込 約60MB)
このzipファイルをホームディレクトリにDrag&Dropでアップロードします。\\
立ち上げ時はあまりコマンドが登録されておらず、また、OpenCVやMysqlを利用するため、初期セットアップとして下記のコマンドを実行してください(全行コピペして貼り付ければ順次実行になります。)\\
※コマンドを実行するにはLauncharタブのOthersのteminalを開いてください\\
{{::sdk02.png?400|}}\\
apt update
apt -y install zip
unzip tutorial.zip
pip install opencv-python
pip install mysql-connector-python
apt -y install libgl1-mesa-dev
cd ~/drawui
chmod 755 start.sh
npm install
これで必要なファイルが一式揃う形になります。\\
なお、zipファイルには\\
* tutorialフォルダ(2-5章までのpythonプログラム)
* drawuiフォルダ(3章で利用するWEBプログラム)
が入っています。
cd tutorial
や
cd ~/drawui
などの基本的なフォルダ移動コマンドで適宜カレントフォルダを切り替えてください。\\