Jetson TX1 (JetPack 3.2) に Amazon Alexa をインストールしてSmapleAppで遊ぶ

ラズパイほどインパクトないんで、なぜTX1に?という疑問は置いといて、Amazon Alexa (Alexa Voice Service)をインストールした。いろいろハマったし、いまだ解決してない問題もあるのが、メモしておく。なお、AVSはUbuntu 16.04 LTSが条件なので、必然的にJetPackは3.2となる。 私は以下を参照した。 CQ出版インターフェス 2018/4月号 (AIスピーカー特集、ラズパイを使用) Alexa AVS-Device-SDK Wiki Ubuntu Linux Quick Start Guide  (上記、Wiki内) Audio 入出力 TX1は、HDMIでAudioを出力できる。私は最初、手持ちの古いUSB DACをつないだが問題なく使えた。入力は安そうなUSBマイク(エレコム HS-MC05USBK)を買って接続、問題なく使えた。いずれも、Soundで、入出力先を指定すればすぐ使えた。インターフェースからの引用だが、以下のコマンドでテストしておく。 #出力テスト $ speaker-test -t wav #入力テスト マイクで5秒録音、それを聞いてみる。 $ arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.r $ aplay --format=S16_LE --rate=16000 out.raw Amazon開発者登録は、以下を参照したがハマった。 失敗しないAlexa開発者アカウントの作り方 Amazon.co.jpとAmazon.comのどちらにも登録済みのメールアドレスを使うと問題が起きるらしい。なので、大昔から持っているAmazon.co.jpしか登録してないアドレスを使ったのだが、Amazon 開発者ポータルにログインできない。そんなアドレスは見つからないといわれ、思い余ってアカウントの新規作成をやったら(これはやってはいけない)そのアドレスは既に登録済みだといわれ.... 結局、co.jpで別メールアドレスを使って新しいアカウントを作成してみたら、あっさりと問題解決。 製品情報の登録をインターフェースを見ながらやったら、Amazonのページが変わっている。特にセキュリティプロファ...

Jetson TX1 + JetPack 3.2 + OpenCV 3.4.0 コンパイル with CUDA and OpenGL

NVIDIAのTX1で遊び始めた。JetPack 3.2にはOpenCV 3.3.1が含まれているが、どうやらCUDAもOpenGLもコンパイルから外されているらしい。そこでOpenCV 3.4.0をTX1でコンパイルしてみた。本当は現時点での最新、3.4.1も試してみたが、コンパイル中にエラー発生で、うまくいかなかったので3.4.0となった。なお、私のTX1にはSATAのSSDが増設してある。内蔵のeMMCだけでは容量的に無理かもしれない。

基本、下記の2つのリンク先を参考にさせてもらった。
OpenCV with CUDA for Tegra
How to Install OpenCV (3.4.0) on Jetson TX2

前者の手順を3.4.0で行って、OpenGLをコンパイルに含めると生じる問題を、後者を参考に解決した。変更点を以下にまとめる。
  • 好きなバージョンをチェックアウト
$ git clone https://github.com/opencv/opencv.git
$ cd opencv
$ git tag
$ git checkout -b v3.4.0 3.4.0
  当然、opencv_extraも同じバージョンをチェックアウト。
  • v3.4.0なので、cherry-pick はすべてスキップ
  • cmakeのオプションは "Jetson TX1" に以下の変更を入れた
    • -DWITH_OPENGL=ON を追加
    • CUDAが9.0なので、
      -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.0
      に変更
  • OpenGLをONにすると、OpenCVをmakeしている途中でコンパイルエラーになる問題を解決。
    •  /usr/local/cuda/include/cuda_gl_interop.h をエディットしてline #62~68あたりを次のようにコメントアウトする

//#if defined(__arm__) || defined(__aarch64__)
//#ifndef GL_VERSION
//#error Please include the appropriate gl headers before including cuda_gl_interop.h
//#endif
//#else
#include <GL/gl.h>
//#endif
    •  libGL.soのシンボリックリンクを修正
$ cd /usr/lib/aarch64-linux-gnu
$ sudo ln -sf tegra/libGL.so libGL.so 
    • もしかすると以下も必要かも
$ sudo apt install libgtkglext1 libgtkglext1-dev
  • OpenGLやCUDAを使ったサンプルをコンパイルしてテストの一例
$ cd /usr/share/OpenCV/samples/gpu
$ sudo g++ -ggdb opengl.cpp -o opengl `pkg-config --cflags --libs opencv` -lGL -lGLU -lglut
$ ./opengl

コメント

このブログの人気の投稿

Jetson TX1 (JetPack 3.2) に Amazon Alexa をインストールしてSmapleAppで遊ぶ

NVIDIA Optimusを搭載したノートPCでUbuntu 16.04 +「最新」CUDAをインストール