非接触時代の人間代替論

新型コロナウイルス感染症流行拡大後、3密回避など人との接触を8割減らすことが新たに常態化しつつあります。
私たちは以前より、コンピュータープログラミング、特にデータベース関連を開発して参りましたが、これは業務効率化とデータ二次利用の2つの面を持っていましたが、効率化といっても手書きやExcel入力を代替する程度の物でした。
このたび、AIの医療応用について検討すべく、自らAIでシステムを開発することに挑戦する事となりました。
開発に成功しなくても、何か得る物はあるだろうと期待し、本来であれば東京五輪で盛り上がっていたであろう本日、AI学習をスタートしました。
Jetson (NVIDIA)
Jetson Nano 開発者キット
今回、AI端末として調達したのはNVIDIA社の『Jetson Nano 開発者キット』(B01)です。

NVIDIA: JETSON Download Center (English)
調達品
Jetson Nanoは、簡単に言えばデスクトップパソコンの本体部分です。
動作させるにはいくつかの周辺機器が必要になります。
今回、以下の物も一緒に調達しました。
最初の準備 (1) microSDカード
イメージファイルをダウンロード

Jetson Nanoの基盤となるソフトウェアをダウンロードします。
丸ごとSDカードに書き込んで、そのままJetson Nanoに搭載します。
ファイルサイズが6GB(2020年7月現在)ありますので、ダウンロードに相当の時間を要します。
使う順番は後ですが、先にダウンロードを開始しておきましょう。
ダウンロード後、Zipファイルは解凍しておきます。
NVIDIA: Jetson Nano Developer Kit SD Card Image
NVIDIA: (3) Write Image to the microSD Card, Getting Started With JetsonNano Developer Kit
microSDカードセットアップ

Jetson Nanoはハードウェアです。動作にはソフトウェアが必要です。
まずはOSの準備となります。
用意するのはインターネットに接続できるパソコン、microSDカード、カードリーダーです。パソコンにリーダーが内蔵していればそれで用が足ります。
パソコンにmicroSDを挿入し、専用ソフトを使ってフォーマットします。
NVIDIA: (2) Prepare for Setup, Getting Started With Jetson Nano DeveloperKit
SDカードフォーマッター (Windows)

『SD Card Formatter』というソフトをダウンロードし、インストールし、使います。
ファイルはSDアソシエーションのサイトからダウンロードします。NVIDIAの公式サイトからもリンクがありますので、安全なルートからダウンロードしましょう。
アプリ(SD Card Formatter)を起動し『カードの選択』(Select card)でmicroSDのドライブを選択します。
フォーマットオプションは『クイックフォーマット』(Quick format)が選択されているので、そのままにし、右下の『フォーマット』(Format)をクリックします。
確認画面『フォーマットでこのカードのすべてのデータが消去されます。続行しますか?』と出るので『はい(Y)』をクリックします。
完了すると『フォーマットが正常に終了しました。』という画面が出てきます。



SD Association: SD Memory Card Formatter for Windows Download
NVIDIA: (3) Write Image to the microSD Card, Getting Started With JetsonNano Developer Kit
Etcherでディスクイメージを書込

『Etcher』というソフトをダウンロードし、インストールし、使います。
ファイルはBalenaのサイトからダウンロードします。NVIDIAの公式サイトからもリンクがありますので、安全なルートからダウンロードしましょう。
アプリ(Etcher)を起動し、中央左側の十字マークが付いた『Select Image』をクリックし、NVIDIAのサイトからダウンロードした『JetsonNano Developer Kit SD Card Image』を選択します。ファイルはZipファイルではなくディスクイメージファイル(.img)です。
中央のドライブのアイコンでは、先ほどフォーマットしたmicroSDカードを選択します。
準備が整うと中央右側の『Flash』のアイコンがアクティブに変わります。クリックすると書き込みがスタートします。
書き込むファイルサイズは10GB以上ありますので、しばらく時間を要します。



NVIDIA: (3) Write Image to the microSD Card, Getting Started With JetsonNano Developer Kit
最初の準備 (2) Jetson Nano 本体
開封

まずは、届いたJetson Nano 開発者キット B01の外観チェック。
箱に損傷が無いので封印テープを2か所カットし、開封しました。
外箱は潰しません。
箱から出てきたのは本体、説明書、折り畳まれた箱です。
この箱、緩衝材でも折紙でもなく、台座でした。
本体が入っていた箱に嵌るように組み立て、Jetson Nanoを置く台座として使います。



NVIDIA: (1) Introduction, Getting Started With Jetson Nano Developer Kit
本体にmicroSDカードを挿入

Jetson Nano本体のUSBコネクタ類がある方と逆側、放熱フィンの下にmicroSDスロットがありますので、向きに気を付けてカードを挿入します。
NVIDIA: (4) Setup and First Boot, Getting Started With Jetson Nano DeveloperKit
ケーブル接続

USBコネクタにはマウスとキーボードを、HDMIコネクタにはディスプレイを接続します。
microUSBコネクタには電源を接続します。
電源を投入すると自動的に起動しますので、マウスやディスプレイなどを先に接続しておきます。
NVIDIA: (4) Setup and First Boot, Getting Started With Jetson Nano
最初の設定

microUSB電源を接続すると、横にある緑色のLEDが点灯します。
最初にEULA(NVIDIA End User license Agreements: ユーザーライセンス条項)が表示されるので、同意します。

EULA同意
ソフトウェアの使用許諾に関する同意です。
"I accept the terms of these licenses"にチェックを入れ"Continue"をクリックします。

言語選択
一覧から使用する言語を選択します。
英語仕様なら"English"、日本語なら"日本語"を選択し"Continue"(続ける)をクリックします。

キーボードレイアウト選択
使用するキーボードのレイアウトを選択します。

地域選択
使用する地域を選択します。

ユーザー情報登録
Jetson Nanoにログインするためのユーザー情報を登録します。パスワードは随時必要になります。

インストール
インストールが進みます。

インストールが完了すると上記画面が表示されます。
今回は日本語でインストールしました。元々は英語で開発されていると思いますので、英語仕様の方が不具合の確率が少ないかもしれません。
NVIDIA: (4) Setup and First Boot, Getting Started With Jetson Nano DeveloperKitDeveloper Kit
TensorFlowのインストール
テンソルフロー(TensorFlow)という機能を追加します。今回行う画像認識には不可欠という事ですので、インストールしました。
詳細な手順はNVIDIAのサイトで確認しながら行いましょう。
NVIDIA: Deep Learning Frameworks Documentation
最初の準備 (3) ACアダプタ対応
ACアダプタ

microUSB給電でもJetson Nanoを動かす事は可能ですが、カメラデバイスなどを動かそうとすると動作が不安定になったり、停止してしまいます。
そこで、ACアダプタを使った給電が必要になります。
対応しているアダプタはDC5V(ボルト)、4A(アンペア)以上給電可能、コネクタは外径5.5mm、内径2.1mm、センタープラス(+)です。
ACアダプタを使う場合には、基板上のピンの接続を変更する必要があります。旧製品(A02)では別途ジャンパーコネクタを調達する必要があったようですがB01では付属しています。ここではB01で説明します。
初期状態ではHDMIやUSBコネクタ等を差し込む方向に対して垂直を向いているピンを、平行の向きに変更すれば完了です。
この作業をするとき、必ず電源を切った状態で行いましょう。



最初の準備 (4) カメラ搭載
Raspberry Pi カメラモジュール V2

カメラはRaspberry Pi (通称:ラズパイ)のカメラモジュールV2以降がそのまま使えます。
カメラ用のフラットケーブルを挿入できるポートが2つありますので、間違えないように挿入します。
カメラ側のケーブルにも表裏がありますので、間違えないようにします。
ポートは上端にあるツメを上に持ち上げるとロックが解除され、ケーブルを挿入できるようになります。
ケーブル先端が平らに、全体が底付きしたことを感触で確認し、先ほど解除したロックを元に戻して固定します。


試運転

カメラ搭載後はACアダプタを電源として使うように心がけます。今回はカメラの試運転なのでACアダプタは必須アイテムです。
ディスプレイを用意しHDMIケーブルを接続、マウスやキーボードも接続した上で電源を投入します。
Ubuntu(ウブントゥ)というLinuxを母体としたOSが起動します。
左上にあるアイコンをクリックすると端末内検索ができます。
そこで『Terminal』と入力し、"Terminal"というアプリを起動します。
Terminalの画面で『ls -al /dev/video0』と入力すると、カメラが認識されていれば日時などが記された行が表示されます。
@-desktop:~$ ls -al /dev/video0 |
続けて映像を確認します。NVGSTCAPTURE (NVIDIA GStreamer camera model Test)という機能(ソフト)を使います。
『nvgstcapture』と入力すると、映像が表示されます。Ctrlとcを押すか、qを押すと終了します。
@-desktop:~$ nvgstcapture |