基礎コース
Jetsonの製造元であるNVIDIA社が8時間のコースを無償提供しているということで受講することにしました。
コースで学ばなくても、世に出回っているコードを利用させてもらう事で、OJT的なトライ&エラーも経験できますので、そちらも並行しました。
NVIDIA: (5) Next Steps, Getting Started With Jetson Nano Developer KitDeveloperKit
ユーザーガイド
公式のユーザーガイドには、基本的な事が色々と記載されています。
既にインストールを終えてしまいましたが、JetPackなどについても記載があります。
NVIDIA: JETSON NANO DEVELOPER KIT User Guide
NVIDIAディープラーニング無料コース
アカウント登録をするだけで、8時間のコースが無料で利用できます。
まずは基礎学習をここで行い、あとで書籍を購入して知識を深めていきます。
- Jetson Nanoとカメラをセットアップする
- 分類モデルの画像データを収集する
- 回帰モデルの画像データに注釈を付ける
- データでニューラルネットワークを学習し、独自のモデルを作成する
- 作成したモデルを使用してJetson Nanoで推論を実行する
NVIDIA: Getting Started with AI on Jetson Nano
プロジェクト参照
NVIDIAが公開しているプロジェクトです。Jetsonに関係のあるところでまとめられている感じがあります。
NVIDIA: Jetson Community Projects
GitHub: NVIDIA-AI-IOT / jetbot
NVIDIA: (5) Next Steps, Getting Started With Jetson Nano Developer KitDeveloperKit
NVIDIAディープラーニング無料コース
機材の準備:ハードウェア
- Jetson Nano 開発者キット(本体)
- microSDカード(32GB以上)
- ACアダプタ 5V 4A
- USBkeケーブル (Micro-B to Type-A)
- USB接続ウェブカメラ(参考:ロジクールC270)
NVIDIA Jetson Nano 開発者キット B01
【本体】Jetson Nano 開発者キット、Jetson Nano B01本体です。これが無ければ始まりません。 |
ACアダプタ 5V 4A
Jetson NanoはmicroUSBでの給電に対応しています。しかし、カメラなどを装着すると容量不足で停止していしまいますので、外付けのACアダプタで給電させます。外径5.5mm、内径2.1mm、センタープラスの物を指定されていますので、Amazonなどで適当な物を選ぶと良いでしょう。USBと同じ5V、4アンペア流せなければ意味がありません。3Aで失敗した事例がネット上にありますので、4Aを探してください。 |
USBウェブカメラ
公式チュートリアルではロジクールのC270を指定しています。私はラズパイのカメラを搭載してしまいましたが、USBカメラでも良いと思います。 |
機材の準備:パソコン
インターネット接続ができ、microSDカードが読み書きできるパソコン
1st.Introduction And Download
まずはイメージディスクのダウンロードを開始。
ダウンロード中には各部の名称から学習。
セットアップ前の準備としてマイクロSDカード、ACアダプタ、USBウェブカメラ、USBケーブルを用意するよう指示されます。
最初にダウンロードしていたイメージファイルをmicroSDに書込む方法を教わります。
そのmicroSDカードをJetson Nanoに挿入し、最初に起動をします。
最後に、JupyterLabインターフェイスを使って、Hello Camera(nvdli-nano > hello_camera)を起動します。
JupyterLabについて学習して1時間目は終了です。
NVIDIA: Introduction and Download, Getting Started with AI on Jetson Nano
2nd.AI And Deep Learning
2限目はAI(人工知能)とディープラーニング(深層学習)について学びます。
構築するプロジェクトは、簡単な視覚的な質問に答えるものです。
○私の手は親指を上、または下に向けていますか?
○私の顔は幸せそうですか、悲しそうですか?
○指を何本立てていますか?
○鼻はどこですか?
画像認識には、ラベル付けされた画像(教師画像)を繰り返し提供し、学習させる必要があります。
この講座ではCNNという言葉が良く出てきます。CNNとはConvolutional Neural Networks、回旋ニューラルネットワークとでも訳しましょうか、ニューラルネットワークが渦巻く感じです。
ニューラルネットワークとはヒトの神経細胞”neuron”(ニューロン)に由来、情報の世界ではneural networkとは神経回路網。
画像認識
画像認識とは
ここでいう画像認識とは、画像から物体や事象を認識することを指します。
犬なのかタワシなのか、人間には一目瞭然でもコンピューターにそれを理解させることは難しかったのは一昔前、今はAIがやってのけます。
それを自ら構築したプログラム上で実践したい、そのための予備知識として先行するプログラムを実行してみます。
日本語のページもたくさんありますが、英語で検索すると無数のコードが見つかりますので、いずれはコードが読めるようになるのではないかと思います。
参考サイト
以下は学習用に参考にさせて頂いたサイトです。当方とは何の縁もないので、一方的に利用させて頂いております。
Jetson Nanoをセットアップしてディープラーニングで画像認識を試してみた (2019/4/29)
Jetsonが発売されて間もない頃の記事ですが、かなり詳しく書かれています。Jetson本体のバージョンが最新機種と異なりますが、だいたい同じですので、真似すれば同じ現象を目の前で体験することができると思います。
Jetson NanoにJetPack 4.4を入れてTensorFlow・物体検出・姿勢推定・ROS2(Realsense)・ROS1動かしてみた (2020/7/15)
JetsonやAIプログラムなどに非常にお詳しい方のブログです。Jetsonで出来そうなことは、この方の記事を拝読するだけで網羅できるのではないかと思ってしまいます。
Jetson Nanoにカメラを接続してリアルタイム画像類推を行うには (2019/4/10)
『Jetson-inference』のビルドの手順を説明しています。
Jetson NanoでYOLOv4を動かしてみました (2020/6/29)
『YOLO』をJetson Nanoで活用するためのコードが紹介されています。
「Jetson Nano」にUSBカメラをつなげてにゃんこを認識させる (2019/9/12)
よくあるWebカメラを使った画像認識の事例です。バッファローの”BSW32KM04″を使った例ですが、他のUSBカメラにも応用できそうです。
YOLO: Real-Time Object Detection
1つの画像から複数の対象物を抽出できる技術です。
CUDAやC言語で記述されたオープンソースのニューラルネットワークフレームワーク”Darknet”を利用しています。