[Jetson-Inrise]ImageNetを使用して画像を分類する


この文章はjetson-inferenceを元にまとめられた文章です.英語をハングルに翻訳する過程でエラーが発生する可能性がありますので、参考にしてください.なお、ここではPythonについてのみ説明しますので、参考にしてください.
まず、jetson nanoの「システム設定」(Jetpack installなど)を行う必要があります.関連するリンクの装置仕様を参照して取り付けてください.また、Building the Project from Sourceに必要なファイルをインストールすればよい.詳細は次のとおりです.

Building the Project from Source


jetson推理ファイルを
  • にコピーします.私の場合、デスクトップにgithubというフォルダを作成し、そこでクローンを作成しました.ターミナルウィンドウを開き、次のコマンドを順番に入力します.
  • $ sudo apt-get update
    $ sudo apt-get install git cmake
    $ git clone --recursive https://github.com/dusty-nv/jetson-inference
    $ cd jetson-inference
    $ sudo apt-get install libpython3-dev python3-numpy
    上記のコマンド入力が完了したら、次のコマンドを入力します.各コマンドが何を意味するかを知りたい場合は、リンクを参照してください.
    $ cd jetson-inference	# 만약에 jetson-inference 폴더에 이미 위치해있다면 생략합니다
    $ mkdir build
    $ cd build
    $ cmake ../
    上のコマンド入力が完了すると、下のウィンドウが出力されます.必要なモデルをインストールします.私の場合、まずデフォルトモデルをインストールしました.

    今後、必要な他のモデルをインストールしたい場合は、次のコマンドを使用してインストールできます.
    $ cd jetson-inference/tools
    $ ./download-models.sh
    上記の操作を実行すると、「パイプトポロジ」(PyTorch)をインストールする必要があるウィンドウが出力されます.Pythonバージョンに従ってFitochをインストールします.

    ロケット砲の取り付けには時間がかかりますので、参考にしてください.
    パイプの取り付けが完了したら、次のコマンドを入力します.
    $ cd jetson-inference/build		# 이미 build 디렉토리 내에 있다면 생략해도 됩니다
    $ make
    $ sudo make install
    $ sudo ldconfig
    上記の手順が完了すると、システム設定は終了します.次に、ImageNetデータセットを使用して画像を分類します.

    Inference


    1. Classifying Images with ImageNet


    1.1 Using the ImageNet Program on Jetson


    前のBuilding the Project from Sourceプロセスが正常にインストールされたかどうかを確認するために、以下のコマンド入力端末を画像分類してください.
    $ cd jetson-inference/build/aarch64/bin
    
    $ ./imagenet.py images/orange_0.jpg images/test/output_0.jpg	# 필자의 경우, 파이썬만을 사용하므로 python 파일을 실행함
    Pythonファイルを実行するのに最初は数分かかります.最初の実行では、ネットワークの最適化に時間がかかりますが、その後実行すると、ネットワークはディスクに格納され、より迅速に実行できます.
    出力画像が指定された位置に保存されていることを確認するには、次のコマンドを入力します(image/test/output 0.jpg).
    $ cd images/test
    $ eog output_0.jpg
    次の画像は、出力画像が正常に保存されていることを確認します.オレンジ色画像では左上隅の分類結果は96.68%であった.

    今回はイチゴのイメージを分類してみましょう次のコマンドを入力します.
    $ cd jetson-inference/build/aarch64/bin
    
    $ ./imagenet.py images/strawberry_0.jpg images/test/output_1.jpg
    
    or
    
    $ python3 imagenet.py images/strawberry_0.jpg images/test/output_1.jpg

    他の分類モードも試したい場合は、リンクを参照してください.

    Using Different Classification Models


    次のコマンドを入力して、異なる分類モデル(resnet-18)を使用します.
    $ ./imagenet.py --network=resnet-18 images/jellyfish.jpg images/test/output_jellyfish.jpg
    以前と同様に、別のモデルを初めて実行するのにかかる時間が比較的長いことに注意してください.

    さらに、ビデオまたはその他のストリーム方法についても説明する場合は、Camera Streaming and Multimediaを参照してください.

    1.2 Coding Your Own Image Recognition Program (Python)

  • Coding Your Own Image Recognition Program (Python)
  • 1.3 Running the Live Camera Recognition Demo

  • Running the Live Camera Recognition Demo
  • 自分が購入したカメラに基づいて設定を行います.私の場合、LazBerryFiカメラV 2を購入し、関連モジュールをインストールし、必要な設定を行いました.カメラの設定が気になる場合はCamera Streaming and Multimediaを参照してください
    作者が使用するコマンド語
    # 관련 모듈 설치
    $ sudo apt-get install v4l-utils
    
    # 카메라 연결 및 포트 확인
    $ v4l2-ctl --list-devices
    
    # 카메라 영상의 포맷 확인
    $ v4l2-ctl --device=/dev/video0 --list-formats-ext
    $ ./imagenet.py /dev/video0		# V4L2 camera
    上のコマンドを入力してもいいですが、私は仕事をしません.なぜかわかりませんが(ジェイソンナノ2 GBの性能が足りないのか…?)これから挑戦する次の段階

    Reference

  • jetson-inference
  • 参照できるサイト

  • ジェイソンナノリモート接続
  • 詳細

  • Docker