Google AIY Voice Kitが来た

Google AIY Voice Kit

Rasyberry Pi 3に繋いで音声認識で遊べるGoogle AIY Voice KitPimoroniで受注していたので注文し、初期入荷分4,000台のうちの一つを無事に入手しました。まだ箱を空けて中身の眺めただけで、組み立てていません。同梱されていた小冊子がマニュアルになっており、これに従って組み立てればよさそうです。

parcel from PimoroniPimoroniから届いた小包には「海賊ロボ忍者さる」の文字列が。どうも海外で流行ってる新種のジャンケンの手のようで、これらの頭文字からPimoroniは名付けられたとか何とか。

ちなみにPimoroniにはPi Zero Wの在庫もあったので、ついでに一つ購入しておきました。

なお、国内では今月末にKSYから発売になるようです。

Movidius NCSをTinker Boardから使う

Movidius NCSはRaspberry Pi (以下、RasPi)にも対応しています。RasPiのアーキテクチャはarmhf、OSはDebianベースのRaspbianです。どこかに似たような環境がありませんでしたか? そう、ASUS Tinker Boardです。Tinker Boardもarmhfアーキテクチャ、DebianベースのTinker OSで動作します。これはTinker Boardで動かしてみる価値がありそうです。

ということで試行錯誤してみた結果、動作させることができましたので情報を整理しておきます。キーポイントは

  • TinkerOSのPython3.5.3は互換性がなくNG
  • python3-setuptools, python3-wheelを事前に手動インストール
  • armhf向けの再配布用debパッケージを手動インストール

あたりです。

※注) 以下の方法はTinker Board上でMovidius NCSが安定して動作することを保証するものではありませんのでご注意下さい。

Tinker Boardはセットアップ済みとします。まずはapt lineを編集してベースをStretch (stable)からBuster (testing)へ変更し、システムを更新します。

$ sudo vi /etc/apt/sources.list
deb http://http.debian.net/debian/ testing main contrib non-free
#deb-src http://http.debian.net/debian/ stretch main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free
deb http://http.debian.net/debian/ buster-updates main contrib non-free
#deb-src http://http.debian.net/debian/ stretch-updates main contrib non-free

$ sudo apt update
$ sudo apt upgrade
$ sudo apt clean

src行もコメントアウトしてあります。おそらくaptコマンドで -t オプション指定してpython3だけtestingにすれば問題はないと思いますが、私は普段使いの環境もtestingなのでここではシステム全体をtestingにしています。この後に、

$ sudo apt install python3-setuptools python3-wheel

しておきます。この二つがインストールされていないと、SDKのインストール時にエラーになったりします (wheelの方はインストールしなくても大丈夫なようですが念の為)。

システムの更新が済んだら、SDKをインストールしていきます。まずはToolkitから。こちらはUbuntu環境と同様に展開してbin/setup.shを実行すればOKですが、だいぶ時間が掛かります。CPUをぶん回すためか、Tinker Boardもだいぶ熱くなりますのでご注意を。

次にAPIのインストールですが、その前にarmhf向けの再配布用debパッケージをインストールします。APIのtar.gzを展開したncapi/redist直下にもdebパッケージファイルがありますが、ここではさらにその下のpi_jessieディレクトリ以下にあるdebパッケージをインストールします。

$ sudo dpkg -i ncapi/redist/pi_jessie/*_armhf.deb

なお、ncapi/redist直下のpython3-mvncパッケージはpython3.5用、pi_jessie以下にある同名のパッケージはpython3.4用のようです。TinkerOSはpython3.5なので、pi_jessie以下のパッケージはインストールする必要はありません (all = 全アーキテクチャ向けなので前者で問題ありません)。

一旦ターミナルを開き直してToolkitが設定した環境変数を反映させてからAPIをインストールします。debパッケージをインストールしたら、ncapi/setup.shでAPIをインストールします。caffeモデルのDLにはしばらく時間が掛かりますが、その後のコンパイルはすぐ済みます。

最後にbin/data/dlnets.shを実行してcaffeのネットワークモデルをDLしたら、さっそくMovidius NCSをTinker Boardに挿してみましょう。OSの再起動は不要でした。

$ sudo dmesg | grep MA2X5X
[...] usb 1-1.4: Product: Movidius MA2X5X

OSから認識されているようですので、example00〜03を実行してみましょう。

$ cd ~/workspace/mvncsdk/bin/
$ make example00
$ make example01
$ make example02
$ make example03

エラー等も発生せず、問題なく実行できるかと思います。

ASUS Tinker Boardをセットアップする

Raspberry Pi 3より高性能であることがウリのシングルボードコンピュータ、ASUS Tinker Boardが販売されています。発売直後は入荷数が少なくて入手が難しい状況でしたが、米Amazon.comからも技適マーク有りの購入できることもあり、今は国内代理店にも常時在庫があるような状況です。

具体的なスペックはTinker Boardのサイトにお任せするとして、個人的にはGbEに対応していることが嬉しいです。

セットアップ方法ですが、基本的にはサイトにあるGetting Startedの通りに作業すればOKですが、Linux上でセットアップする際に実行するよう指定されているFlashUSB.shというスクリプトがどこにあるのか分かりませんので、いつものようにコマンドラインから

$ sudo dd if=output.img of=/dev/sdb seek=0 bs=16M conv=notrunc

(microSDが/dev/sdbの場合) のように直接実行すればOKです。私は慣れているDebianベースのTinkerOSをインストールしました。中身はほとんどDebianそのものです。デフォルトではXの解像度が低めに設定されているようです。

インストール後はlinaro/linaroでログインして、

$ sudo apt update
$ sudo apt upgrade

で環境を最新にします。必要に応じてlvやtmux等をインストールして下さい。ifconfigでIPアドレスを確認すれば、以降はSSHでリモートログインして作業できるようになります。時刻がズレている時は

$ sudo dpkg-reconfigure tzdata

でAsia/Tokyoを選択しましょう。その他、必要に応じてLANGやEDITOR, PAGER等の環境変数を設定しておきましょう。

Jetson TX2が来た

Jetson TX2 in Box
Jetson TX2 in Box

米国での発売と同時に手配したJetson TX2 Developer Kitが届きました。が、技適未取得のようで、開封はしたものの電源はまだ入れていません。動きがありましたら追ってお伝えします。

まだ詳しくは見ていませんが、開発ボードはTX1と共通で、モジュールのみがTX1からTX2に差し替えられただけのように見えます。ケーブルや電源等の付属品もTX1とまったく同じっぽいです。

JetPack 3.0導入済みのようですので、TX1のように更新作業は必要ありません。eMMCの容量が16GBから32GBに倍増したようですが、容量やら寿命やらでやきもきするのは嫌なので、SSDからの起動も検討しています。

Jetson TX1 (JetPack 3.0)にTensorFlow 1.0をインストールする

JetPack 3.0にTensorFlow 1.0をインストールしようとしましたが、ビルドに失敗してしまいました。調査する時間も惜しいので、今回も有志が公開しているバイナリをインストールしちゃいましょう。

githubのissueからGoogle Drive上のwhlファイルへリンクが張られています。これをDLして pip3 install すれば完了です。必要に応じてvirtualenvも使いましょう。

ただし、Python2用のバイナリは提供されていないようですのでご注意を。

Jetson TX1をJetPack 3.0に更新する

Jetson TX2の発売と合わせてJetPack 3.0が公開されました。公開から数日が経ってしまいましたが、この最新版に更新したいと思います。

今回は諸事情によりMacBook Pro上のVirtualBoxではなく、Windows PC上のVMWareに入れていたUbuntu 14.04 LTSから作業します。

以前にJetPack 2.xで試した際には失敗しましたが、今回は事前にTX1をリカバリモードにしてVMWareのUbuntuからTX1を認識できることを確認した上で作業を行いました。

手順はマニュアル通りです。インストーラをDLし、chmod +x して実行し、画面の指示に従って操作するだけです。この辺りは以前の記事と同じ内容なので再掲はしません。今回はVMWareからでもリカバリモードでのイメージファイル転送が成功し、無事にJetPack 3.0に更新することができました。

あとはeMMCからではなくSSDから起動するよう設定しましょう。先の記事と同じ手順で問題なくSSDから起動させることが可能です。

Raspberry Pi Zero Wirelessを入手する

Raspberry Pi Zero Wireless
Raspberry Pi Zero Wireless

国内でようやくRaspberry Pi Zeroが入手できるようになった途端、WiFiとBluetoothに対応したRaspberry Pi Zero Wireless (以下、PiZeroW)が発表され、海外では既に発売されています。

在庫が戻ってもすぐに売れてしまうため、個人輸入での入手はなかなか難しい状況ですが、国内でも今月中には販売になる予定のようですので、我慢強く待ちましょう。

それでも待ち切れないという方は、個人輸入するしかありません。ModMyPi, Pimoroni, Adafruitは日本へも発送してくれますが、The Pi Hutはなぜか日本は発送対象外です。いずれのサイトもユーザ登録してカートに商品を入れてクレジットカード(あるいはPayPal)で支払えば簡単に購入できます。

貨物の混雑状況にもよりますが、発送されてからおよそ1〜2週間で届きます。関税や通関手数料は掛かりません。今回私は発売初日の02/28にModMyPiに注文し、03/07に届きました。

Raspberry Pi Zero Wireless [back]
Raspberry Pi Zero Wireless [back]
なお、PiZeroWの背面に技適マークはありますが、総務省の技適機器検索にヒットしません。電波暗室等の外で電源を入れるのは触法の可能性がありますのでご注意下さい。

Intel JouleのBIOSを更新する

以前の記事ではスルーしてしまいましたが、補足的な内容です。

Intel JouleにUbuntu Linux 16.04をインストールするにはBIOSの更新が必要です。この更新作業に要求されているシステムとして、ドキュメントページにはWindows 8, 8.1, 10と記載されていますが、私はWindows 7 64bitから問題なくBIOSを更新できました。手順はドキュメントに記載の通りでOKです。

Jetson TX1にTensorFlowをインストールする

2017/03/21追記: 最新の1.0.1をインストールしました

Jetson TX1のGPGPUを活用すべく、TensorFlowをインストールしてみましょう。他のPython環境に影響しないようvirtualenvを利用し、GPU対応版をインストールしてみます。

$ sudo apt-get install python-pip virtualenv python3-dev
$ mkdir tensorflow
$ cd tensorflow
$ virtualenv -p /usr/bin/python3 env
$ . env/bin/activate
(env)$ pip install tensorflow-gpu
Collecting tensorflow
 Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow

怒られてしまいました。どうもaarch64 (64bit ARM)用のバイナリは公式には用意されていないようです。

“Jetson TX1にTensorFlowをインストールする” の続きを読む

VirtualBoxでJetson TX1の母艦を立てる

Ubuntu14.04 on VirtualBox
Ubuntu14.04 on VirtualBox

Jetson TX1をセットアップするためには、母艦(マニュアルではhost)としてUbuntu 14.04環境が必要です。デュアルブート環境でもあれば問題ないのですが、私は普段の作業は開発PC上のDebian testing (stretch)がメインで、他にはMacBook ProとWindows PCしかありません。いずれかのPCをUbuntu 14.04とのデュアルブートに仕立て上げてもよいのですが、今回はmacOS Sierra環境上にVirtualBoxで母艦を立てる方法で対応します。

“VirtualBoxでJetson TX1の母艦を立てる” の続きを読む