11 月 15

今さらですが、あちこちで話題になっている芸者東京エンターテイメント「ARis」について書いてみます。

ARisって何?っていう人は、とりあえず以下の動画を見てください。

これは、Augumented Reality(以下AR)というコンピュータ・ビジョンの分野では長いこと研究されている技術を応用したものです。ARとはカメラで撮影した画面上に、CGなどを自然に重畳表示する技術で、カメラで撮影したマーカーの画面上の映り方から、カメラの相対位置を計算することで自然なCGの重ね合わせが実現できます。

ARisで用いられている技術は典型的なAR技術で、ビジョンの研究者からしてみれば特に技術的に何か真新しいということはありません。ただ、その応用方法が非常に素晴らしいと思っています。

現在のAR技術の大きな制約としては、マーカーがカメラの中に映っていないと使えないという点で(最近は、使わないものも出てきてるけど)、例えばARの応用例として語られているような、ヘッドマウントディスプレイをつけて街中を歩くと、街の至る所に仮想空間の情報(例えばレストランを見たら、そのメニューが現れるとか)といった使い方は、いちいちマーカーを設置しなければいけないため、なかなか難しいわけです。

が、このARisのような使い方であれば、特にマーカーがストレスになることもないでしょう。しかも、マーカー付きの棒で突っつくことでキャラクターとコミュニケーションを取るというのは、僕の知る限りあまりないアプローチだと思います。

こういう技術の性質をおさえつつ、ちょっとひねったアプリケーションを作ることができるのは、企画者の中にAR技術の表面だけでなく中身までちゃんと知っている人間がいるということだと思います。もちろんTry & Errorを繰り返しながら、アイデアを練っていったんだろうとは思いますが、少なくとも技術を理解していなければ、こういう発想はできないと思います。

最近、画像認識技術は色々な形で市場に出てきていますが、僕から見ていて「この技術をこんな使い方してもダメじゃん」と思うことがたくさんあります。せっかくユニークな面白い技術、もしくは可能性がある技術なのに、結局どこかの類似サービス(何とは言いませんが・・・)になっていて、非常にもったいないなあと思ってしまいます。多分企画者は、その技術の目に見える部分しか理解していないんだろうな、と感じます。

というわけで、芸者東京エンターテイメントって面白い会社だなあ、と思いました。

5 月 30

イオン・ヒューマン」という技術が発表されました。

http://www.atmarkit.co.jp/news/200805/28/eon.html
これは、2次元の顔画像から3次元モデルを復元するという、以前このブログでも取り上げた「モーション・ポートレート」と同じような技術ですが、精度がとても良いとのことです。

この2次元の顔画像から3次元モデルを生成するという技術が立て続けにリリースされてますが、おそらく1999年のSIGGRAPHに出た、この研究を元にしてるんだろうと予想されます。(「イオン・ヒューマン」は実際そうだと公表してます)

http://gravis.cs.unibas.ch/Sigg99.html

なんとなくコンピュータビジョンの製品って、同時期に立て続けに企業から同じような技術がリリースされてるような印象があります。
例えば、顔認識技術がある時期を境に当たり前のようにデジカメに載るようになったり、あるいはSAYL、ERサーチ、ぱっとびなどのオブジェクト認識技術を使ったサービスが立て続けに出て来たり。

しかもここら辺の技術を見てみると、たいていの場合使っているアプローチが似通っていて、なんとなく元になった研究ってあの時期に発表されたあれなんだろうな、というのが想像できます。

多分、学会である日すごい研究が発表されると、企業がそれに飛びついて、開発されてリリースされるという流れなので、そのためにリリース時期とか技術的アプローチとかが似てしまうんじゃないかなあと思ってるんですが、どうでしょう?

そういえば、6月にコンピュータ・ビジョンの最大の学会の一つCVPRが開かれますね。今年も数年後のビジネスにつながるような面白い研究が出てくるんじゃないかと楽しみにしてます。(多分参加はしません(涙))




話は変わりますが、技術評論社の連載の第2回がアップされました。

http://gihyo.jp/dev/feature/01/opencv/0002
今回は完全にプログラマー向けの解説になっています。第3回は、プログラマじゃない人でもなんとか画像認識の処理の流れがわかるような内容にする予定です。

4 月 30

社長の宮田から薦められて、下のサイトで話題になっているGoogleの論文を、さっと目を通してみました。
Google、次世代画像検索を実験中―画像にページランク導入へ

ご存知の方も多いと思いますが、GoogleではPageRankという技術を用いて、Webページに関して最適な検索結果を提供しようとしています。PageRankというのは

  • 他からリンクされているWebページほど重要なページ
  • 重要なページからリンクされているページもやっぱり重要

という原則を用いて、Webページにランクを付け、そのランクに基づいて検索結果を表示させる技術です。

今回、GoogleはこのPageRankの仕組みをGoogle Image Searchに導入する方法を北京で開かれたWWW Conference 2008で発表しました。

Webページでは、ページ間のリンクをHyperLinkでそのまま表すことができましたが、画像にPageRankの仕組みを導入する場合、どのように画像間のリンクを表すかが問題となります。

 今回の発表者であるジョージア工科大の学生とGoogleの研究者は、画像間の類似度をリンクに見立てることで、これを実現しました。

画像間の類似度の取り方は、画像の部分部分の特徴(局所特徴)を見てやって、似ているパーツが他の画像にどれだけあるかという数で決めているようです。

例えばモナリザの絵を考えてみましょう。インターネット上にはモナリザのパロディ画像などもたくさん転がっていると思いますが、これらはすべて元のモナリザの画像を改変したものなので、モナリザの原型に近いネット上の画像にたくさんリンクが貼られることになり、従ってPageRankが上ります。そのため「モナリザ」という語で検索すると、モナリザの元画像が上位にひっかかりやすくなります。

画像認識技術的には仕組みとして非常にシンプルですが、この簡単な仕組みでインターネット上にある大量の画像に適切にアクセスできるようになることのメリットは大きいでしょう。


ちなみに、今度の6月にアラスカで開催されるCVPR2008というコンピュータビジョンの大きな学会の採録研究一覧が発表されたのですが、その中の口頭発表のセッションで同じくPageRankを使ったとても面白い論文がありました。

Unsupervised Modeling of Object Categories Using Link Analysis Techniques

というタイトルのカーネギーメロン大の論文なのですが、これはページランクの仕組みを用いて学習画像から自動的にカテゴリ毎のオブジェクトのモデルを生成する、というものです。平たく言えば例えば車の画像をたくさんコンピュータに学習させれば、自動的に例えばタイヤや窓のような形状を持つのが車だよ~、みたいなことを学んでくれるというものです。(かなり乱暴な説明ですが)




たまたまPageRankというWeb検索の仕組みを画像へ適用した論文を続けて読む機会がありましたが、こういう違う分野の技術が画像の分野に適用されるのを見るのは面白いです。

4 月 25

今日、うちの研究室のAssistant Professorが、ドクターの人たち向けにGPUプログラミングの講義をしてくれました。

GPU(Graphics Processing Unit)というのは、普通のPCに今や当たり前のように刺さっているグラフィックカードのこと。このグラフィックカードは、主にCGの描画処理を高速に行うためのものなんですが、これをコンピュータビジョンの分野に応用する動きが何年も前からありました。

僕もGPUを使ったコンピュータビジョンの高速処理の話は前々から聞いてはいたのですが、実際に手を動かしたのは今回が初めてです。

以前からサーバーにグラフィックボードを積めば、高速に画像認識できるだろうなあと思ってはいたんですが、実際手を動かして見てこれはかなり使えるのでは!?という思いを強めました。ちょうど自分の研究について、処理速度で悩んでいたというのもあり、いずれ検討する価値があるなと。

ただGPUでの処理は得手不得手が色々とあって、処理によってはCPUにやらせるよりも遅くなってしまう可能性もあるので、まずは自分の研究のアルゴリズムが固まるまでは心の片隅に留めて起こうと思います。

3 月 24

ちょっと前に出たこの記事、ずっと気になってたんですが、つい最近元ネタと思われる論文を手に入れたので読んでみました。

=======================================

まるでSF 録画・検索できるゴーグル開発 東大講師ら

どこに置いたか忘れたものを、簡単に見つけられます――。そんな「魔法のゴーグル」を、東京大の原田達也講師と大学院生の中山英樹さんらが開発した。ゴーグルの視野に入った画像が記録され、探したいものを名前で画像検索できる。

(略)

=======================================

これは、ジェイマジックが扱っているような「オブジェクト認識」の技術とはアプローチが違っていて、「画像アノテーション・リトリーバル」と呼ばれる手法を使っています。

オブジェクト認識が、画像の中に映っているのが「何」かを検出するのに対し、この手法は画像にふさわしい「単語」を検索してくれます。

これは、たくさんの画像に対して、その画像を表すのに適切と思われる単語(タグ)をたくさんつけていき、画像の特徴と単語の相関関係を学習させるという方法です。(例えば、こういう特徴を多く持つ画像はこういう単語がついている頻度が高い、など)

これによって、例えば画像を入力とすれば、その画像の特徴から適当な単語を抽出してくれるし、単語を複数入力すれば、その単語の組み合わせにふさわしい画像をデータベースから検索してくれるということが可能になります。

その論文では、画像の特徴と単語との相関関係の取り方を工夫したことで、大幅な速度向上と精度向上が見られると主張してました。

このアプローチ、ジェイマジックでも大いに参考できそうです。

1 月 30

「脳の回路図」を作る:全シナプスの地図を作成

これはすごいです。ゲノム解析機の脳版といった感じで、ゲノム解析機が遺伝子の全配列を解析するように、この機械は脳のシナプスの全配線を3次元地図で表してくれるらしい。

もちろん、地図を作るだけじゃ脳から心が生まれる仕組みを理解するのはまだまだだろうけど、 とても重要な羅針盤になるはず。これは僕の専門のコンピュータビジョンの分野にも大いに影響してくるのは間違いない。

7 月 11

ソニーコンピュータサイエンス研究所発の2つの技術ベンチャーが立ち上がったことがITmediaの記事に出ていました。

片方の技術は、モーションポートレートという1枚の顔写真から顔の3次元モデルを作成するというもので、もう一つが「Place Engine」という無線LANの電波の強さから位置情報を割りだすという技術です。

1枚の画像から3次元モデルを作成するのは、あらかじめ顔の3次元モデルを用意しておき、それを2次元画像へフィッティングすることで求めているようです。前回書いたfotowooshよりは、ある程度モデルが既知なので、技術的なハードルは低いと思われます。ちなみに似たような技術をPolar Roseというスウェーデンの会社も実用化しているみたいです。 ただ、ソニーの技術はキャラクター画像にも対応しているというのが、なかなかユニークだと思います。

実は一枚の顔画像から3次元復元をするという技術と、無線LANから位置情報を割り出すと言うどちらの技術も、3、4年ほど前に当時僕の上司だったMさんが実用化しようと目論んでいたものでした。

今を遡ること4年前、僕は最初に入社した某大手外資系メーカーをリストラされ、小さなベンチャー企業に就職しました。その1年後に今度はそのベンチャーが、取引先のGIS(地理情報システム)の会社(今年の初めに倒産)に吸収されました。 このベンチャー企業とGISの会社で僕の上司だったのがMさんです。実はこのMさんの専門が画像認識で、そのおかげで僕は画像認識を自分のこれからの仕事にしていこうと思うようになりました。

この方は、どういうわけか世界中の超一流の画像認識の研究者と知り合いで、ベンチャーを立ち上げてはその人達の技術を実用化する、ということを長年やっています。僕もこの方の下で働いていた頃、プロジェクトマネージャーみたいな形で何度か海外の大学とやり取りしたことがあります。

その知り合いの中にスイス、バーゼル大のThomas Vetter教授がいるのですが、この方は1999年に一枚の顔画像から顔の3次元情報を復元して、認証させると言う研究を発表しています。僕がそのベンチャーに勤めていた時に、この技術を実用化しようという話が持ち上がり、僕も技術面で色々と協力する予定だったんですが、クライアントとの折り合いが付かず、結局プロジェクトがうまく立ち上がりませんでした。

また、その後吸収されたGISの会社でも、無線LAN情報を使った位置測定技術の研究を計画していたのですが、会社側の体制の問題でこちらも実現できずに終わりました。

今更ながら、Mさんの先見の明は大したものだと思います。ただ、やはり当時Mさんの周りの環境が整わず、そうこうしているうちに資金力と環境を持っているところがきちんと実用化してしまいました。まあ、そのMさんのことだから、またもっと新しい技術を見つけて取り組んでいることだろうと思いますが。

僕の頭の中にも実現したいアイデアや研究はたくさんあるんです。でも、僕の場合はMさんのようにうまくそれを周りに説得できるだけの実力がない・・・。僕がどんなに面白いと思っていても、その凄さや面白さというのはなかなか周りに伝わらないんです。 

そうこうしているうちに、今回のように他がどんどん面白いことをやってしまうだろうと思うと、一日でも早く実力をつけたいと強く思います。だからこそ、今の博士課程の勉強を頑張らねば!

6 月 22

fotowooshというすごいサービスを見つけました。

http://www.fotowoosh.com/

通常、画像から3次元再構成(ポリゴンとかで表す立体モデルの自動生成)を行う場合、最低でも2枚の画像が必要なんですが、 このサービスはたった一枚の画像から3次元再構成をしてしまいます。

一応、画像認識に詳しく無い方のために説明しておくと、1枚の画像から奥行き情報というのを取るのは数学的に不可能で、 同じ対象を写した視点の違う画像が2枚以上あった場合に、初めてステレオ視という三角測量の原理を用いて撮影されている対象の3次元的な奥行き情報を得ることができます。

でも、このfotowooshというサービスはたった1枚の画像から3次元復元をやってしまっています。

 

人間の場合は、一枚の静止画であっても自分の持っている建物や道路などの撮影対象に関する知識を無意識のうちに使って、なんとなく写真の3次元的な構図を理解してしまいますが、実はこのサービスも人間みたいにある程度対象に対する知識を利用して、3次元復元をしています。つまり屋外の画像なら、空は上にあるはずだし、道路は下にあるはず、という知識です。そのため、対象は主に屋外の画像で、建物や道路や空やそういったものを自動的に判別して、3次元モデルを作ってしまいます。

このサービスを開発したカーネギーメロン大学のDerek Hoiemさんって、去年のCVPRっていう国際会議でBest Paper Awardを取ってましたね。僕は後でこの発表論文を読んでみたんですが、セグメンテーション技術(画像を領域分割する技術)やオブジェクト認識技術(車や人なんかを見つける技術)、そして全体の構図を用いて、統合的に画像を認識するという非常に面白いフレームワークを提案していました。

 

いやー、やっぱり世界にはすごい人がいるなあ。僕もいつかこんなスゴイサービスを作ってみたいなあ・・・。

6 月 20

既にWeb2.0ブームというのは落ち着いて定着してきた感がありますが、今のドコモ2.0とか、少し前だと楽天2.0とか、やっぱり相変わらず「2.0」というのは流行しているみたいですね。

と思っていたら、ひろゆき氏がITmediaのインタビューでこんなこと言ってます。

「Web2.0は大嫌い」とひろゆき氏 ニコ動有料版で「もっと面白くしたい」

僕もこのWeb2.0っていうのがそこまで騒ぎ立てるほど真新しいものかな、という気がしてならなかったので、この記事の中の
「Web2.0とは技術革新でも新しいビジネスチャンスでもなく、人間本位の仮想社会をとりもどすいわばWebルネサンスとでもいうべきもの」
という指摘には頷くものがあります。(「お金を稼ぎたい人たちが人をだますための用語として使われているような気がしていて」にも思わず共感(笑))

例えばWeb2.0の中にくくられる技術としてはAjaxやブログ(特にRSS)といった技術があるけど、これなんて昔からあるHTTP、XML、JavaScriptを使っているだけで、とりたてて新しいわけではないです。

Web2.0で騒がれるもうひとつは、サービスの形態です。例えばSNSやブログ、YouTube、WikipediaなんかかはCGM(Consumer Generated Media)と呼ばれていて、今までは企業がコンテンツをつくって発信していたものが、ユーザに自由にコンテンツを作らせることで、ユーザが集まれば集まるほどサイトの価値が上がるようになっています。

でもこれもハッカーがオープンソースとかの開発で昔からやってたことのような気がします。今までこういう試みが技術の層だけだったのがサービスの層にまで出てきたという点が新しいですが。

結局のところ、Web2.0全体に流れる技術であれ思想であれ、昔からインターネットの根底に流れていた思想がより具現化してきたことにすぎないんじゃないかと思うんです。

例えば、インターネットが世に出てきた当初に宣伝されていた文句としては、こんなのがあります。

  1. オープンでフラットなネットワーク。
  2. 人種や国境を越えて誰でも参加可能。
  3. 巨大企業や国家がコントロールできない
  4. 個人が情報発信することで、巨大メディアに負けない力を持てる。
  5. ボランティア、人の善意によって作られたネットワーク

やや、こういうアナーキーな感じに憧れて、僕はこの業界に入りました(笑)。

それと、インターネットの世界における技術発展は、ハッカーのボランティアによるところが大きいですが、ハッカーのモノ作りの方法論としては、例えばこんなのがあります。

  1. 一からコード書くのも良いけど、使いまわせるものは使いまわそう。
  2. 書いたコードは公開してしまおう。
  3. 書いたコードを早めに、頻繁にリリースすることで、ユーザからのフィードバックをもらおう。
  4. たとえバグのある状態でリリースしてしまっても、ユーザの数が十分多いなら誰か治し方を知っている。

ほら、結局これってWeb2.0の特徴と呼ばれているものに一致するように見えませんか?(ちなみにこのオープンソースの開発手法をより知りたい方はエリック・レイモンドの名論文「伽藍とバザール」(日本語訳)を読んでみて下さい。)
例えばP2Pみたいなものは、1番のフラットなネットワークということで、ある意味クライアント/サーバー型よりもインターネットの理想に近いし、Web API公開みたいなものは6や7の思想に近いです。ただWeb APIの場合は、Java RMIやCORBAなんかの宣伝文句だった分散サービスの考え方の方が近いかもしれませんが。
8、9はまさに「永遠のベータ版」というWeb2.0の考え方ですね。4、5、9なんかはCGMに通じると思います。

結局、当時やや青臭いと思われていたインターネットの思想って、実は今も連綿と続いているんだと思います。それはインターネットが成立/発展する過程で、プロトコルやオープンソース、サービスの開発を通じてその有効性が実証され、またハッカーの文化としても残ってきました。

ということで、例えばWeb3.0なんてものが出てきたとしても、ここら辺の思想をやっぱり引き継いでいくんだろうな、という気がしてます。

5 月 24

先日、研究室のミーティングに参加したとき、学部4年生の研究の進捗の話になりました。
僕の所属する研究室は、自分が研究したいテーマを自由に選ぶことができるのですが、当然過去先輩がやった研究を引き継ぐ場合も多々あります。
その時、先輩のやった研究を引き継ぐために、先輩達の作ったソースコードを動かさなければならないわけですが、その先輩が卒業してたりすると、動かし方も良くわからず、プログラムの構造も良くわからず大変苦労することが多いようです。実際今の4年生の中にもそれで苦労している人がいて、結局、自分で一から作り直すほうが早かったりと言った状況なのだそうです。

こういう問題を避けるために、ビジネスの世界ではウォーターフォールやRUP、XPなどの色々な開発プロセスや、DFDやUMLといったモデリング言語を用いてプログラム設計するというアプローチが今ではあたりまえに取られています。(と言いつつ、昔システム開発の会社なのに「プロジェクト・マネジメント」という概念すら通じないところで働いてたことがあるので、ビジネスの世界でも駄目なところは駄目みたいですが。)

一応大学でも、こういったプロセスを導入していこうという動きがあるようですが、こういう話が出てくると言うことは、ほとんど定着はしていないようですね。

と、そこでおもむろに先生から、そういったソースの再利用を進めるにはどうすれば良いかと話を振られ、僕は前述のことを念頭において「コードを書く前に設計をやったり、モジュール化したりといったことをすれば良いのでは?」と述べました。が、結局研究のような試行錯誤の中で進めていくような性質のものには、そうやって事前にしっかり設計してから開発というのは難しいだろうという意見が出ました。

そこではそれ以上の議論をしませんでしたが、僕はやはり研究にも「開発プロセス」という考え方は十分使えるものと思っています。少なくともいきなりコードを書く前に、プログラム全体の構造を設計するというステップを置けば、試行錯誤の結果手法が変わっても、コード自体の変更を最小限に抑えることができると思います。

それに、ちょっと時間を置くと自分の書いたコードの意味がわからなくなるというのは良くあることで、きちんとデザインされたコードと言うのは、見ればだいたいの構造を把握できる分、結局開発時間の短縮に繋がります。

もっと大きな話で言えば、研究自体にも開発プロセスの考え方は当てはめることができて、例えば研究テーマ設定は要件定義だし、手法の検討は全体設計、コーディング前の設計は詳細設計、実験が運用テストだと思えば、それぞれでどんなことをやれば良いのか見えてくるし、工数も予測しやすくなるのではないかと思います。あるいは、試行錯誤をしながら色々な実験を繰り返すことになるので、反復型の方が向いているかもしれませんね。

いずれにせよ、まずは自分の研究を通してプロセスを実践してみようと思っています。その進捗具合については、またここで報告するかも。
ちなみに僕は今、全体設計中(つまり手法について色々と試行錯誤中)です。

« Previous Entries