JetsonTK1カメラ入力物語 ~その1~



1.Tegra K1とJetson TK1と私たち

Jetson TK1は、NVIDIA社が提供している Tegra K1を搭載した評価ボードです。発売当初(2014年初夏)は、品薄で予約してもなかなか入手できない人気者でした。何でそんなに人気商品であったかというと、ひとつには、192ドルというビックリするほど格安な価格で販売されたこと、そして何より、搭載されているTegra K1が、NVIDIAが満を持して発売したCUDA レディのSoC(System on Chip)であったということです。

JetsonTK1カメラ入力物語 〜その1〜

これには皆さん飛びつきました。もちろん従来より2K/4Kフルフレーム画像処理に拘り、CUDAによる処理の高速化を図ってきた我々も、Tegra K1でどこまで行けるのかチャレンジしてみることにしました。本稿では、ちょっと古い話で恐縮ですが、2014年7月に開催された NVIDIA社主催の GTC2014 Japan(GPU Technology Conference)で展示したデモ構築のお話から始めて、我々が現在どこまで来ているかをお話しさせていただこうと思います。

本稿に記載されている内容は、あくまで作業当時の状況や動作をそのまま記述しておりますので、環境・ツール等のアップデートが行われるなどして、現在も同じ状況・動作となっているとは限りません。?と思われた方は、ご自身で現況をご確認されるようお願いいたします。で、もし書いてあるのと違うよ!ということがございましたら、ご一報いただけると幸いです。 

2.GTC2014 Japan に向けて

7月16日の GTC本番に向けて、品薄のJetson TK1が弊社に届くのは、7月頭という絶望的な状況の元、6月の後半から、まずは、intel PC上のUbuntu(14.04)での、デモアプリの作成に着手しました。そこでうまく動いたら、後は ARM(Tegra K1はARMの 4+1 コア構成)に移植するだけなんで、7月頭でも何とかなるんじゃね?という目論見でした。
 話の流れから言って、この目論見は脆くも崩れ去るわけですが、それはもう色々崩れ去りました。そう、intel PCでは、色々すんなり動いてくれるんです、でもそれが Jetson TK1だと、、、色んな山を越えました。

【ひと山目】クロス開発環境構築断念!

よくある組み込み系の開発の例に漏れず、我々もまずは、intel PC上にクロスコンパイル環境を構築することを試みました。が、GTK+ライブラリのARMHF版をintel PC上でどうしてもビルドできなくて、3日間頑張りましたが、GTCの日程も迫っているので断念しました。どなたか、うまく構築できたよという方は、やり方を教えてください!ぜひぜひ。もっとも、-j4 オプションをつけて、マルチコアサポートを有効にすると、ターゲットのJetson TK1 上でも、そこそこ快適にLinux のカーネルなどのビルドも走るので、開発に支障が出ると言うほどではありませんでした。

【ふた山目】OpenCV4Tegraが動かない!

NVIDIAのサイトからダウンロードしたままの素のOpenCV4Tegraがちゃんと動かず、こちらはOpenCVをJetson TK1上でビルドすることで回避。ビルド&インストールの所用時間は、”sudo make -j4 install” とすると40分程度でした。

【さん山目】guvcviewが動かない!

OpenCVで簡単なテストアプリ(後述の定番コード)を作り、最初にデフォルトの画面サイズ(VGA:640×480)で動作することを確認した上で、次に、intel PC上でそうしたように、guvcview でFullHD(1920×1080)にWebCAMの設定を変更しようとしたところguvcviewが起動しません。この件については、よく見ると、elinux.org/Jetson/Camerasのページの一番下あたりに guvcview は動かないので、luvcview で設定してねと書いてありました。そこで、luvcview を用いたところ、FullHDのキャプチャが行えることを目出度く確認でき、後は、intel PC上で順調に動いているデモアプリをARMでリビルドするだけで、デモが完成するはずでした・・・ところが!?

To Be Continued !!