« 2009年11月 | メイン | 2010年1月 »

SIGGRAPH Asia 2009に行ってきた

2009年12月20日 / Entertainment

久々の暖かい週末に、頭がぼんやり気味のhiroyukiです。

--
そんな頭をすっきりさせるべく(?)、週末にSIGGRAPH Asia 2009に行ってきました。メインである学会の方は参加せず(参加費が高い・・・)、ベーシックカンファレンスの申し込みしかしなかったので「展示会」「エマージングテクノロジー」「アートギャラリー」の方だけを見てきました。

事前に全く情報を入れずに行ったため、どこで何が行われているか分からず、肝心の会議センターを回れませんでした・・・(泣、サイトも冊子も分かりにく過ぎ!)。

展示場

会場到着。




体にマーカーを付けなくてもモーションキャプチャーができる。



ダンサーと、その後ろのCGモデルがほぼリアルタイムに同じ動きをする。



こちらはマーカーあり。さすがに高速。




UEI社の滑らかwebブラウジングデモ。




女子美術大学のstotu。ARと筒内部に書かれたグラフィックの融合。





NVIDIA社のブース。4Kディスプレイのリアルタイムレンダリング。480個のコアを搭載したGPUカードを使って行う。 カードが大きく、PC筐体に入らないのでPCI-Expressケーブルを介して外付けする。




裸眼3Dディスプレイ。 #









デジハリの宙に表示されるディスプレイ。




産総研の未夢。




実際の模型に映像を投影させた、触れる立体映像




全方位カメラ映像から、半自動的にテクスチャ付きのモデルを生成。





Light Field Copy Machine。立体カメラで撮像した物体を、そのまますぐ立体ディスプレイに表示する。いわば「立体コピー」。写真では分かりにくいが、白く光っているとこが立体ディスプレイになっている。



Fur Display。小さな振動装置を使って毛皮を立ち方を制御する。


Lumarca。重ならないように配置された多数の細いパイプにプロジェクタの光を投射することで、立体的に表示する。原理は簡単だけど、なるほど感が高い。


Volume Slicing Display。手に持った板を上下に動かしたり、傾けることで撮像画像をコントロールする。板のセンシングには裏についたマーカーを、下から写したカメラで撮影&画像処理することで行う。


scoreLight。今回見た中で一番インスピレーションを受けた展示。マジックなどで書かれた黒い部分をレーザー光線が生き物のように高速に動く。



Human Potential (Movement) 。ひたすら漕いで発電。かなりシュール・・・。


Website Impersonations: The Next Generation。YahooのサイトのHTMLを表現する、コンテンポラリーダンス。これは冒頭なので、htmlやheaderタグが左に流れている。



Bucco - Multi-Dimensional Butterflies





Plaster_Patch




Coexist?。見ての通り、ゴキブ◯を使ったアート。ひぇ〜。




Truce: Strategies for Post-Apocalyptic Computation 。こちらは蚊を使ったアート。羽の振動に同期した波形を使って音を作り出すとか。




Happy Wear。Tシャツ上のプリントをマーカーとしたAR。




Climate Shifts。見ての通り、傘の内側についたディスプレイ。これで雨の日も楽しくなる?!




Optical Handlers - eeyee手につけたカメラの映像をヘッドマウントディスプレイに表示。やってみたけど、普段は見えない自分の背後を直接見てるよう感じで、不思議な感覚を覚える。




Dishes
































iPhone + 115円でクラシック音楽を楽しむ!(初心者にも分かる鉄板曲リスト付き)

2009年12月19日 / Piano

--
クラオタ(=クラシックオタク)界で今話題(?)のクラシック音楽iPhoneアプリ「Classical Music Master Collection」(App Storeへ)が、期間限定で115円(通常115,000円!)で販売されています。

Classical Music Master Collection

スクリーンショット

100時間、1.69GBものボリュームは、iPod Touch / iPhone アプリでは最大ではないでしょうか。ひとまずクラシックに馴染みのない人でも買っておいて損ないと思います。どんな激安クラシックCD集でも、ここまで安いことはありません(笑)

以下私の趣味で、このアプリに入っている中で、クラシック初心者でも馴染みのある曲をご紹介します。作曲家のアルファベット順。ピアノ以外はトンと疎いので、解説が貧弱な点はご容赦頂きたく。。。


QuickTimeでMPEG2を扱う

2009年12月13日 / Entertainment

先日行った演奏会の動画を編集しようとして、苦戦中のhiroyukiです。

--
と言いますのも、素材ファイルをiMovieで編集しようとしたのですが、再生すらできません。調べてみるとMPEG2形式のファイルをMOV形式に変換する必要がありそうです。iMovieに取り込むまでの手順などをまとめてみました。

何が問題?
編集元素材にMPEG2ファイル(.mpg)をもらったのですが、iMovieに取り込むことも、QuickTime(2009/12/13現在最新はver.7.6.4)で再生することもできません。

なぜ生成できない?
QucikTimeが、MPEG2フォーマット(Movie)とAC3(Audio)をサポートしていないためです。

どうすればよい?
以下の手順で、mpgファイルをmovファイルに変換します。

■ 前準備
  1. Apple Storeで、QuickTime MPEG-2 再生コンポーネント (Mac OS X)(¥2,400)を購入。ネットストアからのダウンロード購入になりますので、インストールは簡単です。
  2. ムービ変換ツールSquared 5をダウンロード & インストール。

■ 変換
  1. MPEG Streamclip を起動。
  2. 動画ファイルを開く。
  3. 「File」→「Export to QuickTime」を選ぶ。

  4. 設定画面が開くので、そのまま右下の「Make Movie」を押す。

  5. ダイアログが出てくるので、出力先ファイル名を指定する。
  6. 変換されるのを、しばらく待つ。

  7. 終了。

これで、QuickTimeでもiMovieでも再生できるmovファイルの完成です。分かってしまえば簡単ですよね?再生できない動画ファイルがあったら、是非お試しを。

「twitter2amebaなう」を作ってみた

2009年12月11日 / Perl

このところカンファレンス展示会ばかりに遊びに勉強しにいって、あまりコードを書かない人だと思われているhiroyukiです(泣)。

---
そんなイメージを払拭すべく(?)、「twitter2amebanow」を書いてみました。

【何ができるの?】
【設置方法は?】
  1. サーバやOSを準備する
  2. 適当にディレクトリを作って、「twitter2amebanow.pl」と、空の「twitter2amebanow.dat」ファイルを配置
  3. Net::TwitterやWeb::Mechanizeなどのモジュールを、cpanからインストール
  4. コンフィグの$twuser、$amuser、$ampassを設定
  5. cronを設定

スクリプトは以下の通り。 「ameba なう」には今のところAPIがないので、WWW::Mechanize で無理やりPOSTしています。また、短時間での連続投稿にも対応したのですが、どうもAmebaなうの方で弾いてしまうようので、最新の一件だけ転送するようにしました(コンフィグの$countで調整可)。
改変、配布はご自由に(ただし自己責任ね)。

twitter2amebanow.pl
#! /usr/local/bin/perl -w

use strict;
use warnings;

use YAML::Tiny;
use FindBin;
use WWW::Mechanize;
use Encode;

######################################
# コンフィグ
######################################
# アカウント
my $twuser	= "";	# twitterのユーザ名
my $amuser	= "";	# amebaのユーザ名
my $ampass	= "";	# amebaのパスワード

# status_id管理ファイル
my $datfile = "$FindBin::Bin/twitter2amebanow.dat";

# 連続投稿数
my $count = 1;

######################################
# メイン
######################################
# 前回のstatus_idの取得
my $yaml = YAML::Tiny::LoadFile($datfile);
my $since_id = $yaml->{since_id} || 1;

# twitterからstatusの取得
my $statuses;
{
	use Net::Twitter;
	my $twit = Net::Twitter->new;
	eval {
		$statuses = $twit->user_timeline({id=>$twuser, since_id => $since_id, count => $count });
		exit unless @$statuses;
	};
	if ( my $err = $@ ) {
		die $@ unless blessed $err && $err->isa('Net::Twitter::Error');
	
		warn "HTTP Response Code: ", $err->code, "\n",
	         "HTTP Message......: ", $err->message, "\n",
	         "Twitter error.....: ", $err->error, "\n";
	}
}

# ameba なうに投稿
{
	my $mech = WWW::Mechanize->new();

	#ログイン
	my $response = $mech->get("http://www.ameba.jp/");
	$response = $mech->submit_form(
		form_name => "srvLoginForm",
		fields => {
			'amebaId' => $amuser,
			'password' => $ampass
		}
	);
	&abort(Dumper($response)) unless ($mech->success);
	
	# なうページに移動	
	$response = $mech->get("http://now.ameba.jp/");
	&abort(Dumper($response)) unless ($mech->success);

	# 投稿
	for my $status (reverse @$statuses ) {
		print encode('utf-8', "$status->{id} $status->{created_at} <$status->{user}{screen_name}> $status->{text}\n");
		$status->{text} =~ s/RT:/RN:/g; # AmebaなうではRN
		$status->{text} =~ s/\@/>>/g;   # Amebaなうでは>>

		$response = $mech->submit_form(
			form_name => "inputForm",
			fields => {
				'entryText' => $status->{text}
			}
		);
	}
}

# status_id 更新
$yaml->{since_id}=@{$statuses}[0]->{id};
YAML::Tiny::DumpFile($datfile, $yaml);

1;

12/11 07:50 追記
RTをRNに置換するようにしました。

@xxx を >>xxxに置換するようにしました


多分、ちゃんとしたperlerの方々には許せないコードになっていると思いますので(汗)、是非コメント頂けばと思います!

ちなみに以前twitter2mixiをインストールしたときには、コードを一部改変して「mx:」という単語が入ったtweetのみ転送するようにしたことで、転送量を調整しました。一方、Amebaなうは、twitterのパクリとも言われてるように、つぶやきまくってなんぼだと思いますので、tweetをそのまま転送するようにしています。

あとパクリとはいえ、@やRT、ハッシュタグは仕様が違う(のかな?Amebaなう自体は全く使っていないので仕様不明、苦笑)と思うので、時間ができたらそのあたりを変換できるようにしたいです。

国際画像機器展@みなとみらいに行ってきた

2009年12月 7日 / General

このところカンファレンスに参加続きのhiroyukiです。たまには外の世界を見てくることも必要ですね。

----
そんなわけで、12/2、12/3に渡って国際画像機器展に足を運んできました。一応、今の専門がそちらの方ということもありますので。

'09 国際画像機器展

今回で31回目を迎える国際画像機器展は、まさに画像処理の発展ととも歩んで来た展示会で、これから国内外へ向け、さらなる市場拡大、開拓へ向けて、集客をはじめ、情報発信、情報集積の場を提供し、画像処理の発展に寄与してまいります。


僕がいる会社では、画像認識技術をエンドユーザ向けサービスやASPサービスとして提供しています。一方、機器計測や医療などの業務系用途での導入も進んでいる分野なので、業界全体を俯瞰しておくつもりで行ってみたのですが、予想以上にテンションが上がる展示会でした。



会場到着。場所はパシフィコ横浜(みなとみらい)。業務向けということで、スーツ姿の方が圧倒的に多い。




部品の高さをレーザ光線で計測することで、例えば配線や部品取り付けミスを検出する。下の機器の左にあるのがレーザ発生器、右にあるのがレーザ光線を読み取るカメラ。上の画面左に見える縦線がスキャン部分の部品の高さを表し、白に近いほど高い。ちょうど2つ凹んだ部分が並ぶ位置のスキャンなので、途中が2箇所ほど黒く途切れている。




運転時の視線検出。緑のマーカーが現在の視線を表し、赤と青の線が軌跡を表す。ほぼリアルタイムに検出する。




左のマット上の3台の車につけられたマーカー(赤外線を反射)を検出し、リアルタイムに動きを画面表示。人間のモーションキャプチャーと同じような原理。




写真では分かりにくいが、メガネがなくても立体に見えるディスプレイ。




上の製品同様の立体ディスプレイ。来年はメガネあり・なしの立体ディスプレイが各メーカーから登場するだろう。




頭の血流を測定することで、言葉に出さなくてもYes/Noを伝える機器「心語り」。具体的には頭を活性化したり沈静化させ、その時の血流を測定する。写真は僕の血流の結果。横軸が時間、縦軸が信号強度を表す。奇数を数えるなどして頭を活性化すると血流が活性化し、信号強度が下がる。左から見て、一本目の赤線まで(開始から15秒)は数字をゆっくり数え、その後奇数や素数を数えて頭を活性(2本目の線=30秒)、再度数字をゆっくり数えることで頭を沈静化させる。2本目の赤線に向けて信号強度が下がっている(=血流が活性)のが分かるだろう。




他にはfMRI(functional magnetic resonance imaging)を使った測定も。頭にヘルメットのような計測装置をかぶって測定するのだが、測定するセンサー部分を頭皮に当てるために、少しきつく縛る必要があり、長時間の使用は難しい。以前、30分ほど測定する実験を行ったときは本当に辛かった・・・。




頭にヘッドマウントディスプレイ、手足にセンサー(赤外線反射)を装着することで行うバーチャルリアリティ。これは装着時。




右上のディスプレイに写っているのがユーザのヘッドマウントディスプレイに見える仮想空間。頭や体を動かすとリアルタイムに見える風景が変わる。




ビル火災の避難行動をシミュレーション。これはビルづたいに避難するシーン。下を向いているので、ディスプレイに見える光景もビル下を見る形になる。非常に臨場感があり、足がすくむことも。




会場ではこのようなセミナーが行われている。これは画像認識を専業としているDefiniens社の「Turn images into knowledge 〜イメージ・インテリジェンス--画像から知識を抽出する〜」という技術と製品の紹介セミナー。医療などへの応用が進む。




こちらは「物体認識って何に使えるの?〜その技術と応用事例〜」というセミナー。




上の「物体認識〜」のセミナーを行った構造計画研究所社の一般物体認識デモ。カタログから車とオートバイを認識する。思ったより高速、そして実用化が進んでいることを実感。

--

他にも紹介しきれないくらいに意外な応用例があり、いいヒントをもらいました。また、過去の様々な学会誌が無料で配られており、両手に山になるほど持って帰りました(笑)。画像認識技術はもちろん、バーチャルリアリティや血流測定、立体ディスプレイなど、画像認識初心者でも楽しめる(?)内容だったように思います。

--

ちょっとPRです。

楽天Webディレクション&デザイン2009で知り合いになりました@satoshi_maedaさんが手伝っているグリーンサイトライセンスという環境貢献活動です。エコやクリーンエネルギーが気になる方はどうぞ。