« 2008年4 月 | メイン | 2008年6 月 »

2008年5 月

2008年5 月25日 (日)

Flex3SDKがどこにあるか迷った

WEB+DB PRESSを読みながら、Flexのサンプルコードを動かそうとした。
サイト構成が変わったのか、雑誌にあったURLだとFlex3Builder(有償)の体験版ダウンロードが始まってしまう。無償版と書いてあるのに。
結局、体験版のSDKにPathを貼って使い始めたが、後で探したらAdobeのオープンソースサイトでSDK単体でのダウンロードが可能だった。Buidlerの方は300MB以上あるので、こっちから落としたほうがよいと思う。

2008年5 月16日 (金)

画像認識システム学

1. 二値化
 画像の前処理などに使われる。
 0-Ngの輝度で示される画像を、与えた閾値NBで分割し、
 0-NBまでの画素は0、NB-Ngまでの画素はNgに変換する。
 ヒストグラムの谷の間を見つけるモード法と、
 累積分布が一定の割合になるところで分割するPタイル法などがある。

2. ラベリング法
 二値化画像における同じ輝度を持つ画素を連結して、まとまった一つの領域として区別する。
 連結された領域を連結成分という。連結成分にそれぞれラベル(一般に1,2,3...)をつける。
 ラベリングにより画像内に点在する領域ををかたまりとしてそれぞれ扱うことができる。

 出し方は、まず二値化したものからラベリングする輝度を決定する。
 原点から順に探し、その輝度をもった最初の画素を見つける。
 順に同一輝度の画素を連結していく。
 連結できなくなったら、また次の輝度を持った画素を探し連結する。

3. フェレ径
 ラベリング後に各領域の大きさを測定するために使う。
 x軸の最大の長さから最小の長さを引き、1を足した数が水平方向のフェレ径。
 y軸も同様に行う。

4. エッジ処理
 輝度差の大きいところを、画像の特徴として強調する。
 x,y軸で輝度差の変化が閾値を超えたところをエッジとする。
 その他に周辺8方向の輝度差を計算する方法がある。

5. フェレ径による多角形頂点の認識
 縦と横のフェレ径を組み合わせて対象物を囲んだ矩形をつくり、
 フェレ形状の点を頂点として認識する。
 おそらくxyの最大最小値を見つけるのと同じだと思う。
 問題として、へこんだ頂点がある場合(180°以上)頂点を発見できない。

6. 重心からの多角形頂点の認識
 ラベリングした領域から重心を見つける。
 フェレ径上の点を始点として、輪郭線から重心の距離を測定していく。
 距離の極大値・極小値となる点が頂点である。

7. ハフ変換を用いた直線の認識
 ハフ変換を用いると、点線など完全ではない直線も認識することができる。
 入力画像内の全ての画素に対して、輝度値が閾値以上になる場合、
 その画素の座標(x0, y0)を以下の式で、変数(u, v)上の曲線に変換する。

 v = x0 ・cos(u) + y0 ・sin(u)

 任意の点で曲線をつくっていき、一番多い交点から、u, vを求め、直線の式をつくる。
 交点が多いほど精度が高い。

2008年5 月14日 (水)

gmailをエディタにする

blogを書いてたらMacBookProが落ちまくって、全く作業が進まない。
今日はMacの問題だが、僕の環境だとFirefoxもよく落ちる。
エディタで書こうとしたら、保存を忘れて意味がなかった。せつない。

そこで思いついたのだが、gmailのメール作成機能を使って、文章を書けばどうだろう。
どんなにOSやブラウザが落ちまくろうと自動保存で残してくれるし、ネットさえ繋がっていればどんな場所からでも書ける。
しかも、これがまた、テキストエリアが適度な大きさで、(少なくともtypepadよりは)書きやすい。しばらく続けてみることにする。

2008年5 月11日 (日)

シンプリシティの法則

単純に考えれば、機能が多ければ多いほど、製品の価値は高まるように思われる。しかし、機能の乏しい上に高価なiPodが、他のプレーヤよりも売れていることからも分かるように、人はシンプルに作られているものを、そうでないものよりも遙かに強く需要している。だから、過度な複雑さを減らし、シンプルであることを追求することで、すばらしいプロダクトを作ることができる。

本書では、シンプリシティのための10の法則が上げられている。

  1. 削減 :本質を生かしたまま、それ以外の要素をできるかぎり減らす。
  2. 組織化:要素をまとめて、わかりやすくする。
  3. 時間 :待ち時間を感じさせない。
  4. 学習 :基本知識を学習させる。
  5. 相違 :意識的に複雑さを用いて比較させる。
  6. 余白 :見えないものを活かす。
  7. 感情 :共感させ、愛着をもたせる。
  8. 信頼 :信頼を獲得する。リラックスさせる。
  9. 失敗 :完全なシンプリシティは実現不可能。
  10. 1   :明白なものを除き、有意義なものを加える。

基本となるのは、1の削減である。削減の手法は縮小(SHRINK)、隠蔽(HIDE)、具体化(EMBODY)の3つで著者がSHEと名付けている。これは、一言で表すと、できることを減らし、他の全てを隠しつつ、本質的価値を具体化することだ。

シンプリシティはゼロにシンプリシティを足して得られるのではなく、複雑なものを研磨することで得られるのだと思った。シンプルにすることは重要だが、始めにあるものに価値が乏しければ、シンプルにしてもゼロになるだけでしかない。本書の中でも、シンプルさと複雑さを揺り戻させることの重要さが繰り返し語られている。シンプルさを追求することは、複雑にする努力を惜しまないことでもあるのだ。

2008年5 月 7日 (水)

川内倫子「Semear」

これを読んだら、いきたくなったので、奥さんと。
蟻の写真と、針玉の写真と、皿の写真がよかった。
どれも日の丸構図。余白に惹かれたのかもしれない。

川内倫子の写真は、光よりもむしろ、締まった確かな黒が美しい。
しかし、写真集だとそれは失われてしまう。

川内倫子「Semear」』 会場: フォイル・ギャラリー スケジュール:
2008年04月24日 ~ 2008年05月25日

2008年5 月 4日 (日)

Amazon EC2 をつかってみた

Ubuntuの最新イメージから、Apache+mod_railsの構成でRailsを立ち上げて、さらに、イメージを作成してS3に保存、別のインスタンスとして起動するまでやってみた。

つまった点

1. SSH接続がtimeoutして、ログインできない
 これは"ec2-authorize"を実行していなかったためだった。
 22,80のポートを開けた。

2. 作成したイメージをS3に送ろうとしても403になる。
 バケット名がすでに他のユーザに使われているものだったため。
 使われてなさそうな名前にしたところ解決。

実際にサービスを動かしたわけではないので何ともいえないが、思ったよりもサクサク動いた。
少なくとも今使っているVPS(2500円/月)よりは遙かに快適。
まあでも、実際に使うとなると月8000円近くかかることを考えると、値段相応かな。

以下を参考にした:
Amazon EC2を使ってWebサービスを公開する「インスタンス編」
Amazon WebサービスのEC2を使ってみた
AmazonWebService(EC2,S3)を利用する
Amazon EC2/S3を使ってみた - 3.EC2起動後〜AMI作成CommentsAdd Star
[EC2][あとで書く] EC2のキホン

2008年5 月 3日 (土)

PageRank for Product Image Search

PageRank for Product Image Searchを読んだ。
Googleのエンジニアが発表した、画像検索改善アルゴリズムについての短い論文。
以下まとめ。

  • 現在の画像検索は、紐付けられたテキスト情報のみを見ており、画像そのものは見ていない。
  • 画像自体を解析することで、関連のある画像だけを表示できるようにする。
  • 画像の細部をそれぞれ解析して、画像間の類似性を探す
  • 類似した部分があれば、"visual hyper link"とみなし、ネットワーク化する。
  • この類似パーツのネットワーク構造からページランクを計算する。
  • 一番類似情報が多い画像が、一番ふさわしい画像となる。
  • 同じような画像だけ集めればよいわけではない。
  • なぜなら、ユーザが満足する結果には、関連性と多様性の両方が必要だから。
  • 各クラスターで高ランクのものを表示することで双方満たせる。

暗黙的に集合知も利用するとか書いてあるのだけど、アルゴリズムの中のどこが該当するのが不明だった。まだ読み落としがあるかもしれない。

参考: Google、次世代画像検索を実験中—画像にページランク導入へ

2008年5 月 1日 (木)

ロングテール

昨日、Freeについての論文を読んだが、クリス・アンダーソンのロングテールを実はまだ読んでいなかった。ただ、先日たまたまBookOffで見つけて積読してあったので、この機会に開いてみた。

一気に読み切った。要約すると「ネットは在庫コストがかからないから、ニッチも全てとらえて、ユーザ数を拡大しろ」ってことだと思う。
また、mp3.comの失敗で、「テールがいくらあっても、ヘッドが無ければ、ユーザは何を選べばいいかわからない」という話が興味深かった。当たり前なんだけど、テールよりもヘッドが重要なことには変わりない。

自分に関していえば、本は好きなのでAmazonでニッチな本は見つけられるが、音楽をITMSで探すのは相当しんどい。どう探せばいいかわからない。
そのあたりから考えると、やはりフィルタリングが重要なんだなと思う。
ただレコメンドもいいのだけど、それだけで選ばせられるのもちょっと味気ない。ちょっとぶらぶらしながら、自分の好きなものが見つかっていくような、ユーザー体験を与えられないものか。