画像処理の最近のブログ記事

福井高専OBの中西氏を交えて、コンピュータ関連のクラブ学生の 指導をしてもらっていますが、中西氏の所で開催された、 Kinectのハッカソン(プログラム開発合宿)に、電子情報の 学生さんも参加したとのことです。

その開発成果の情報のBLOG記事の情報を頂いたので、 リンクを貼らせて頂きます

OpenKinectが使えた...

Kinectを来年の卒研用に購入したので、手持ちのMac OS Xで使えるか、 試してみた。 参考にというか、この記事をそのまんま実験しただけ。 参考記事

環境を準備するために、gitとcmakeが必要みたい。 参考Webではmacportを使っているけど、 先日finkにしたので、finkにてインストール。

(( 必要なツールをインストール ))
 $ su root
 # fink install git
 # fink install cmake

(( ソースコードのダウンロード ))
 $ git clone https://github.com/OpenKinect/libfreenect.git
 $ git clone git://git.libusb.org/libusb.git

(( libusbのインストール ))
 $ cd libusb/
 $ chmod +x autogen.sh
 $ patch -p1 < ../libfreenect/platform/osx/libusb-osx-kinect.diff 
 patching file libusb/libusbi.h
 patching file libusb/os/darwin_usb.c
 patching file libusb/os/darwin_usb.h
 patch unexpectedly ends in middle of line
 Hunk #2 succeeded at 147 with fuzz 1.

(( 参考資料とautogenの実行順序逆だったな... ))
 $ ./autogen.sh
 $ ./configure
 $ make
 $ su root
 # make install

(( OpenKinectのインストール ))
 $ cd ..
 $ mkdir libfreenect/build
 $ cd libfreenect/build
 $ ccmake ..
 $ cmake ..
 $ make
 $ su root
 # make install

 $ cd ../examples
 $ cp ../include/* .
 $ cmake .
 $ make

#include の <libfreenext.h> "libfreenect.h" といったPATH の違いでコンパイルエラーがでたけど、適当に直しながらコンパイルして動いた。

Microsoftのゲーム機XBox360用の3D認識のカメラKinectが ハックされてドライバが公開されている。 動作デモの動画をみていると、ステレオ視差での奥行がリアルタイムで取得できるみたい。 LinuxのUSBドライバとして使えるようだし、面白そう。

他の雑務の合間にちょろちょろと実験しているARToolKitだけど、 OpenVRMLを使うサンプルプログラム(sampleVRML)がMac OS Xで 動かず、手間取った。 簡単に言えば、慣れないXcodeのルールを分かってないだけだった。

コンパイル中のエラーを見ると、C++のメソッドがたっぷり出てきたし、 名前修飾(mangling)のルールがgccのバージョン違いで発生しているのかと 思っていた。でもgccのオプションを調べてもgcc-2.Xと3.Xは違うみたい だけど、その後は特にトラブルの解説もない。

実は単純に、openvrmlのダイナミックリンクライブラリlib*.dylibの コピーする先が違ってただけじゃん。やっぱりXcodeとか慣れない統合環境は、 解ってないなぁ...

PTAMお試し中

ARToolKitを試す中、sampleVRMLのライブラリのコンパイルがうまく通らず、 現実逃避の情報探し。 この中で、リアルタイムに画像内の特徴点を見つけ、空間認識できる PTAM(Parallel Tracking and Mapping for Small AR Workspaces - Source Code) なるものを見つける。カメラの移動による視差変化を使ってくれて、 ソースコードも公開されている。

デモ画面を見ていても、最初のカメラ移動から空間をうまく認識しているのが 分かるし、普通のMacBookで動いているのもすごい。

Webに載っている情報を元に、手元でコンパイルを試みているけど、 うまく通ってくれないなぁ...
# もう少し別ネタを元にコンパイル試すか...
# Xcode 使わないで書いてある環境の方が馴染みやすいと
# 思うのはオッサンな証拠...

コンパイルを試みるけど、TooN::Vector で Zerosが見つからないとかいう エラーがでる。TooNのベクトルのZero初期化なんだけど、どうも バージョンが合っていないと思われるので、最初から 入れ直し。

Auto Focus カメラはダメ、単焦点Webカメラ必須

上記の資料にそって作業したところ、うまく動くようになった。 しかしながら、問題が1つ。 iSight だと、パソコン操作者側を撮るので、外付けのUSBカメラに変えてみた。 外付けでも普通に動き出すのはいいんだけど、 実験で使用したのは Auto Focus 付きのUVCカメラなんだけど、 初期状態のフォーカスに固定になり、視点移動でカメラを動かすけど、 ピンボケでトラッキング対象をうまく見つけられない。

ということで、単焦点のAuto Focus 機能の無いカメラを購入しないとダメあるね。

卒研でARToolkitが使えないかと、試したりしているんだけど、 外部カメラの解像度指定方法しらべてたら、参考にしている 『ARToolkit拡張現実感プログラミング入門』の一番最初の部分が、 そのままWebに載っているじゃないの...

ほっほぉ、OpenGLの解説のいい本も紹介してある。 さっそく発注するあるね。

Mac OS Xでカメラ解像度指定

simpleTestあたりの実験で、USB外部カメラが使えるのはいいんだけど、 iSight なら丁度いいサイズ(max?)なんだけど、外部カメラは最大解像度で ムダに大きい動画を取得している。調べてみると、 main で arVideoOpen( vconf ) を呼び出す際の vconf がプログラム先頭で、 以下のように宣言されてるのね。

  //
  // Camera configuration.
  //
  #ifdef _WIN32
  char   *vconf = "Data\\WDM_camera_flipV.xml";
  #else
- char   *vconf = "";  // デフォルトそのままだとダメ。
+ char   *vconf = "-width=640 -height=480";
  #endif

使える設定は、プログラムの "ARToolKit/doc/video/index.html#VideoMacOSX" に説明が書いてある。

来年のプロコンや、画像処理関係の卒研のテーマの導入に使えないかと、 ARToolkitを使おうと準備中。 手元のMacでいつでも実験...と思い環境を整備するけど、まだまだ準備段階。

参考資料

ARToolKit on Mac OS X(特にVRML)

この資料に沿って、OpenVRMLをインストールしてコンパイルをかけてみたけど、 以下のようなエラーメッセージで止まるなぁ。 jpegのライブラリが見つけられていないみたい。

Directory 'sw/lib' following -L not found Library
not found for -ljpeg

UVCカメラNGだった

また、動かしてみたサンプルプログラムで試しているけど、 MacのiSight だと、カメラを好きな方向に向けられないので、 USB接続の手持ちのUVCカメラ "Creative Labs VF0280 Live! Cam Optia AF"を接続してみた。 カメラの認識確認で、iChat を起動するけど、普通に認識してカメラは動いた。 しかしながら、ARToolkit のサンプルプログラムを動かして、Source を切り替えるのだが、 どうもサンプルプログラムでは認識してくれない....
# どうももう少し実験の手間がかかりそうだ...

福井県機械工業会との連携事業としての今年度の最終イベントとして、卒研や歯みがきロボコンで作っていた画像処理による自律ロボットのデモ&発表を3/17に行った。

システムの概要や画像処理の内容を発表し、実際のデモ走行を行った。
歯みがきロボットの試合では、TV撮影用のライトもあり、思ったように動かないことが多いんだけど、鯖江シティホテルのステージで真上からの照明だったので、うまく動いてくれた。

学生さんとの交流もかねていたため、ちょっとだけど5年の学生に自分がロボットを作ったときの感想なども話してもらった。

この発表会の前には、福井新聞の方が研究室紹介の取材ということで、来校して頂き取材をうけた。

ただこのときに「先生の専門って何ですか?」と聞かれちょいと困った。
最近は、緊急連絡システムやらでインターネットの応用ネタの一方で、こういう自律ロボットを作っている。でも、既存技術をベースに作っているだけだし「ロボットの最終目標は?」と聞かれても、「これで子供たちが技術に興味を持ってもらいさらなる次のロボット技術に子供たちが貢献して欲しい」と答える状況。

いつもながら、自己PRが下手だなぁと反省する一方で、これが素直な自分のスタンス。

ネタがインターネットとロボットと違うネタで、総括するとなんですかねぇ...と言われる。
そういった意味では、既存技術で地域貢献というのが実情を反映してるんだな...

画像処理関係の情報

2015年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

Google

このアーカイブについて

このページには、過去に書かれたブログ記事のうち画像処理カテゴリに属しているものが含まれています。

前のカテゴリは産学共同です。

次のカテゴリは緊急連絡システムです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。