1999-07-08[n年前へ]
■走査線の狭間
1/60秒の世界を目指せ
あぁ、今回は(今回も)めちゃくちゃマニアックな話である。トップページには「身近な疑問を調べる」、と書いてあるが、他の人にはぜんぜん身近ではないだろう。最近、妙に忙しいので、身近な疑問がおろそかにされているのだ。身近な疑問の解決は結構難しいのである。そのため小難しい話が続くのだ。困ったことだ。
さて、今回やったことを結論から言えば(*)、AVIファイルをフィールド毎に分解してBitmapファイルに落とすプログラムを作ったのだ。「このソフトはとても便利だ」と言ってくれる人がいたならば、感謝感激雨あられだ。とりあえず、私には欠かすのことのできないソフトである。なぜ、このソフトがそんなに便利なのかを、これから手短に(**)語りたい。
* 「結論から言えば」、とか、「要するに」という人は必ず結論を言わなかったり、全く要約されていない話をするのはなぜだろうか?
** 同じく、「手短に」ときたら、必ず話は長くなる。
一般的なTVで使われている信号はNTSCと呼ばれる。1秒あたり約30フレームからなり、1フレームは2フィールドにわけられる。というと、複雑に聞こえるが実はとても単純だ(***)。単に1フレームが奇数フィールドと偶数フィールドに分かれているだけである。フィールドというとわかりにくいので走査線と考えればわかりやすい、と思う。
*** 当然のごとく、単純ではない。
NTSCの信号を時系列で追うとこのような画像の集合になっている。例えば、こういう具合だ。
1フレーム目の奇数フィールド(走査線)
1フレーム目の偶数フィールド(走査線)
2フレーム目の奇数フィールド(走査線)
2フレーム目の偶数フィールド(走査線)
.
.
.
29フレーム目の奇数フィールド(走査線)
29フレーム目の偶数フィールド(走査線)
30フレーム目の奇数フィールド(走査線)
30フレーム目の偶数フィールド(走査線)
30フレームで約1秒であるから、1枚の画像(フレーム)は約1/30秒である。だから、普通のビデオカメラで撮影した画像は1/30分の1秒毎の画像を示しているのである。しかし、もっと高速度撮影したいと思うときがある。ウン百万出せば、1万分の1秒の撮影でも可能な高速度カメラが買えるが、個人ではとても買えない。また、そもそもやりたい用途向けの高速度撮影用のカメラが存在しない場合というのもままあるのだ。そういった場合には、時間軸に対しては1/30秒までの撮影にしか使うことはできない、と思えるだろう。
しかし、NTSCの信号もフィールド毎に分解すれば、1/30秒の半分、すなわち1/60秒毎の画像を示しているのである。たかだか2倍ではあるが、されど2倍である。1/30秒では見えていなくても、1/60秒では見える世界というのもあるのだ。
画像例を用いて説明しよう。左の1/30秒間の画像を奇数フィールドと偶数フィールドに分解したのが右の画像(a),(b)だ。(a),(b)を比べると、黒い矩形が左から右に移動しているのがわかるだろう。今回のソフトウェアはそういった計測には非常に便利なのだ。このソフトウェアを使えば、普通のビデオカメラの性能を2倍にすることができるのだ。スポーツをやる方などは自分のフォームをチェックするのに使うといいだろう(画像解析までしてフォームチェックはしないか、普通...)。これで、フォームチェックはプロ級だ。
1/30のままの例 | 1/60のフィールドに分解した例 |
1/30と1/60がたかだか2倍でも結構違うという良い例は、1/30秒のシャッタースピードではブレた写真になってしまう人でも、1/60秒なら大丈夫、とか、ゲームを作る際に1/60秒以内に人間からの入力に対して反応を返してやれば、プレーヤーはスムーズに感じるが、1/30秒ではダメだ、とかいう話がある。
というわけで(****)、AVIで記録された動画ファイルを1/60毎の画像に分解するプログラムが今回作成したものである。
奇数フィールドと偶数フィールドを分けることにより2枚の画像に分解し、それぞれの画像内で失われたフィールドを単純補間により復元することができる。奇数フィールドが先頭か、あるいは、偶数フィールドが先頭かは選ぶことができるし(奇数フィールドと偶数フィールドのどちらが先か選べるということでもわかるように、どちらが先であるか必ずしも決まっているわけではないらしい。そこらへんは、各映像機器によって変えなければならない。)、インターレースでなくノンインターレースの場合、つまり、単にAVIファイルの各画像を静止画におとすことだけもできる。
**** 「というわけで」は話を強引に次へつなげるときに使う。
このプログラムを使ったあとはScion ImagePCを使うのがお勧めだ。Macintoshの世界で一般的なNH-imageのWindows版である。今回のプログラムで作成した静止画群をスタック化して使うのがいいと思う。そうそう、Scion ImagePCに読む込むときには静止画を8bit(gray)画像へと前処理しておくことがお勧めだ。
2002-09-24[n年前へ]
■Photoshop表計算プラグイン
Photoshopの選択領域を表計算ソフト方式で表示して、編集するプラグイン。画像の値をExcelで表示したり、Excelで作ったパターンをPhotoshopで表示したりすることができる。セルからのコピー、セルへのコピー、セルへの直接代入もできる。ちなみに、領域選択とセル直接入力はセルウィンドーの下部(ボタンの右の辺とか)をクリックすると切り替わる。また、データをCSV形式で出力することもできる。
プレビュー画面で、選択領域確認後、OKを押すとセル画面が表示される。そこで、色々作業をした後に、もし値をPhotoshopに反映したい時にはOKボタンを押し、そうでなければCancelボタンを押すこと。Photoshopへデータを反映させたいのでなければ、基本的にCancelボタンを押すべし。また、選択している一つのプレーン、もしくは最初のプレーン(RGBであればB)のみがセルへ出力される。Gray,RGB,CMYK,Lab…などに対応。もちろん、8bit,16bit両方に対応。
CSVf.8BFはプラグイン・ディレクトリのフィルタ・ディレクトリの中におく。photoshopDLL.dllはPhotoshopのアプリケーションがあるディレクトリの中に直接おくこと。画像解析やなんかをする人には必須アイテムになるのではないか、と。が、言うまでもなく作ったばかりなので、動作報告・非動作報告お待ちしております。
というわけで、C++BuilderとPhotoshopの連携もできるようになったので、これから続々とプラグイン作成開始、です。ちなみに、開発日記も別途公開、されるかも。されないかも。(リンク)(リンク)
2002-09-26[n年前へ]
■オッパイ星人の力学 「胸の谷間」編
新兵器「巨乳ビジョンLight」
一見平和に見える島国でも色々な敵が潜入してくる。時には高速艇で日本海へ、そしてまた時には飛行機に乗ってディズニーランドへ、そして時には未確認飛行物体UFOに乗って色んな異星人達が日本へ潜入してくる。ワタシは、そんな異星人達の一派、オッパイ星人達と日夜戦っているのである。「オッパイ星人に狙われそうな可哀相な子羊(巨乳)」達をワタシはいち早く見つけだし、オッパイ星人達から可愛そうな子羊達を守るために、ワタシは日夜巨乳(あるいは微乳の)子羊達を見守っている。「オッパイ星人に狙われそうな巨乳はいないか~、揺れる胸はいないか~」と東北地方に住むナマハゲのように、人知れずパトロールを続けているのだ。
そんな毎日の戦いの中で、かつてワタシは「見るバスト全ての形を明らかにしてしまう恐るべき最終兵器- 巨乳ビジョン -」を開発したのだった。しかし、左右のステレオビジョンでターゲットにロックインして激写し、撮影された複数画像からステレオマッチング法でバストの形状を明らかにする巨乳ビジョンには大きな問題があったのである。二つのレンズが左右に並ぶ「巨乳ビジョン」の勇姿はどうみても異様なのであった。巨乳ビジョンを装着しfoたワタシの姿は明らかにヘンでアブナイやつなのである。恐るべき異星人-オッパイ星人-と日夜戦い続け、地球を守る正義の味方には決して見えないのであった。どうしたって「スケベな盗撮野郎」に間違えられてしまうのである。
世間で平和に暮らす愛すべき日本の人々がオッパイ星人の地球への襲来をちゃんと知っていて、日本全土に「オッパイ星人襲来」非常事態宣言でも流されていたとしたなら別なのであるけれど、一見平和に見える(実はそうでないのだが)この日本では「双眼レンズの異様なカメラ-巨乳ビジョン -」はなかなか使うことができないのであった。日夜地球を守る、人知れず人々の平和な生活を守るためには、つまりは人知れず「オッパイ星人に狙われそうな可哀相な子羊(巨乳)」達を見つけだすためには、異様な姿ではない巨乳ビジョンの新開発が欠かせなかったのである。決してヘンでアブナイやつ、ましてや「スケベな盗撮野郎」になんか間違えられたりしない「一見、普通のカメラ風の巨乳ビジョン」が必要なのであった。
そこで、ワタシが開発した「巨乳ビジョンの簡易バージョン、一見普通のデジタルカメラ風の巨乳ビジョン」が今回の話の主人公- 巨乳ビジョンLight - だ。画像処理ソフトPhotoshopに簡易バージョンPhotoshopLEがあるように、そしてモーニング娘。にプッチモニがあるように、最終兵器「巨乳ビジョン」の簡易バージョンが「巨乳ビジョンLight」なのである。双眼の異様な姿では決してなく、単なる普通のデジカメを使うことができる画像処理システム、それが「巨乳ビジョンLight」なのだ。
そもそも、初代「巨乳ビジョン」は左右の両眼視差を利用してバストの立体計測を行うメカニズムになっていた。「人間は両目で見ている画像の差を利用して、奥行き情報を知るわけであるが…」と前回の巨乳ビジョンの開発記で書いたように、角度を変えて配置した二つのカメラで撮影した二つの画像から、ステレオマッチング法を用いて奥行き情報(つまりはオッパイの高さ)を再構成していたのである。そのために「巨乳ビジョン」は双眼の異様な姿になってしまっていたのである。
しかし、考えてみれば人間が立体感を得る手がかりは両眼視差だけではないのである。立体感を得るためには、他にもいくつもの手がかりがある。そのいくつもある手がかりの一つが「陰影」である。女性の化粧が(男性の化粧においても)多くの場合鼻を高く見せたりするために、鼻周りの「陰影」を強調したりするように、「陰影」は立体情報を得るための大きな手段なのである。例えば、下の二つの図形、「陰影」がある場合と「陰影」がない場合を比べてみれば、どちらがハッキリと立体感を得られるかは明らかだろう。そう、左側の「陰影」がある場合は見事なまでの半円状のたわわな巨乳形状を感じとることができるのに対し、右側の「陰影」が無い場合ではそんな官能的な形状を感じ取ることはできず、むしろ真っ平らに見えるに違いないのである。実は全く同じ形状であるにもかかわらず、陰影の有り無しの違いだけで「巨乳」と「クレーター」の差になってしまうのである。
こんな風に、「陰影」がある場合のたわわな巨乳形状を見れば一目瞭然なように、「陰影」による立体感が「オッパイの形状認識」に及ぼす影響はとても大きいのである。その代表的な例が「胸の陰影が描き出す胸の谷間」である。試しに「胸の谷間」でGoogle検索(おこちゃまは禁止)をして入手した典型的な「胸の谷間」画像を眺めてみれば、そんな「陰影」によるオッパイ形状認識に及ぼす影響の偉大さを感じ取ることができるハズだ。
実は、今回の主役「巨乳ビジョンLight」はこの「陰影」を手がかりにオッパイの形状認識を行うのである。「光」が描き出す胸の谷間の陰影、その「光=Light」による微妙な陰影を手がかりに「巨乳ビジョンLight」は見るバスト全ての形、特に胸の谷間の立体形状を明らかにするのである。そう、「巨乳ビジョンLight」はLightの力を利用するが故に、「巨乳ビジョンLight」であって、単なる廉価版「巨乳ビジョン」ではないのである。「巨乳ビジョンLight」の名は体を表してるのである。光があるところに陰がある。山があるところに、谷がある。もしそこに巨山があるならばやはり巨大な谷ができ、巨大な陰ができる。それすなわち「胸の谷間」なのである。だから、その陰影を「巨乳ビジョンLight」で解析してやるならば、山谷の立体形状を知ることができるのだ。
というわけで、実際のところ「巨乳ビジョンLight」は基本的に普通のデジカメで撮影された画像に対して立体解析を行う単なる画像処理システムである。ワタシはそのシステムのために、まずはPhotoshopとExcelのような表計算ソフトを連携させるプラグインCSVf(制作日記)を作成した。
これは画像の値を表計算方式のセルで表示させ、その表示されたデータをExcelでグラフにしたりすることができる。つまりは、画像データを解析して、色々な表示方式で立体化することが素晴らしくも簡単にできるようになるのだ。もちろん、フリーのソフトウェアでもScionImagePCやImage Toolなどで似たようなことはできるが、表計算方式のセルで表示という点において、このCSVfは使い勝手の点で勝っているハズである。
そして、先ほど入手した「胸の谷間」画像に対して、試しに画像解析を行ってみることにしよう。何はともあれ、単に「胸の谷間」画像を立体化してみた場合の結果を眺めてみることにしよう。まずは、単純に画像の明るさを「バストの高さ」に直して、等高面グラフにしてみるのである。ちなみに、右肩上方から胸の谷間を覗くような方向に視線を設定して、三次元グラフに表示してみることにする。三次元グラフは色々な方向から眺めることができるが、やはり「胸の谷間」を覗く視線ベクトルは「右肩上方から斜め下60度」であるべきなのだ。
とはいえ、この「胸の谷間(点線で囲った矩形領域)」を単純にCSVfで立体グラフに直しても、下のグラフのようなわけの判らないグラフになってしまう。それはもちろん当たり前である。単純に「画像の明るさ」=「バストの高さ」になるわけがないのである。ほんの少しだけ、実写真の「胸の谷間」の高さ分布と似たような形状になってはいるが、これでは全くの別物であることは間違いない。よほどの想像力豊かな人であれば別だと思うが、少なくともワタシはこのグラフからでは「胸の谷間」を想像することはできないのである。
実は、「胸の谷間」画像の陰影からその立体形状を再構成するためには、この「胸の谷間」画像中の各ピクセルの「明るさ=輝度」を積分してやらなければならないのだ。詳しくは、次回以降のオッパイ星人の力学 「胸の谷間」の法線ベクトル編でそのベクトル解析理論と解法アルゴリズムを述べることとして、今回はまずはそんな作業を実際にしてみた例を次に示してみることにしたい。
下のグラフが、「胸の谷間」画像の輝度をXY方向に積分し、胸の谷間を再構成してみた結果である。つまりは、先ほどの「胸の谷間」画像から新兵器「巨乳ビジョンLight」を使うことで得られる胸の谷間の立体形状なのである。先ほどの実写真と比べてみれば、驚くほどにその立体形状・胸の谷間の形状を再現・解析することができていることが判るだろう。しかもExcel上ではこのグラフをぐりぐりぐりぐり・ぐるぐるぐると色んな方向から眺めることだってできるのである。これが、「巨乳ビジョンLight」システムの恐るべき能力なのだ。
このグラフを色々な角度から眺めれば眺めるほど、素晴らしく官能的な「胸の谷間」の立体形状を認識できていることがわかると思う。寄せて上げて胸の谷間がプレートテクトニクスのように作り出されているようす手に取るように実感できるハズだ。これが科学の力なのである。正義の武器廉価版「巨乳ビジョンLight」なのである。Pyramidパワー、ダウンジングGPS捜査、「思い込み」エネルギー、など他にも超科学の力で日夜戦いを続けている数多くの正義の味方達がいるが、ワタシもこの「巨乳ビジョンLight」を武器にオッパイ星人達との戦いを優位に進めたい、と思ったりするのである。
とはいえ、初代「巨乳ビジョン」が「バスト全ての形を明らかにしてしまう」というその恐るべき能力と、その異様な(ヘンな)姿を理由にワタシが人知れず封印してしまったように、実際のところこの「巨乳ビジョンLight」だって、見てくれは「単なるデジカメ+解析ソフトウェア」であるにしても、やってることは「スケベな盗撮野郎」と違うとは言い切れないのだ。いや、初代「巨乳ビジョン」の方はまだ少しは計測っぽい感じが残っていたけれど、単なるデジカメ画像で十分使用することができる今回の「巨乳ビジョンLight」ではもう全く持って盗撮野郎と同じなのである。いくら何でも、普通のデジカメで街行く女性のバストを(人知れず)撮影し、そのバストの形全てを(勝手に)明らかにしてしまうなんてことは、いかにワタシがオッパイ星人と戦う正義の味方といえども決して許されるわけはないのである。
というわけで、結局のところ「巨乳ビジョンLight」は実際に街中で使用できるわけもなく、オッパイ星人と日夜戦うhirax.netオッパイ戦隊の兵器庫にまたひとつ封印された禁断の武器が増えてしまったのである。今回のオッパイ星人対戦記はこんなふうにほろ哀しく終えるわけであるが、これに懲りずにこれからもワタシは強力兵器の開発を続けていくのである。それが、孤独な正義の戦いというものなのである。
2002-10-20[n年前へ]
■街の灯 (City Light)
人口密度と夜の光
先日、こんな綺麗な画像を教えてもらった。人工衛星(DMSP)から撮影された地球の夜景だ。世界中の色々な街が光り輝いていて、とても美しい景色が見える。この下に貼り付けてある写真はとても小さい写真なのだけれども、オリジナルの写真を眺めていると、色んな国の街の灯が目の前に浮かび上がってくるかのように美しい景色に見える。
他にもこの衛星を利用した画像は眺めることができて、例えば画像サイズが(30000×15000)なんていうものさえ眺めることができる。そんな大きな画像だと、世界中に散らばる「それぞれの街の灯」がそれぞれ別に浮かび上がってくるようにさえ見える。そんな夜景の世界地図を「何て美しい景色なんだろう」とワクワクしながら、自分がよく知っている日本列島周辺を眺めていると、何だか不思議な景色が目に入ってきた。何だか眺めている景色の中に小さな違和感が見えてきたのだ。おそらく、日本周辺を眺めてみればきっと誰でもその不思議な景色に気づくに違いない。
そう、朝鮮半島が何だか少しヘンなのである。韓国と中国の灯に挟まれた辺り、つまりは北朝鮮が真っ暗なのだ。「光り輝く」「偉大なる首領様」のいる国とは思えないくらいに真っ暗なのである。ワタシは「偉大なる首領様」はてっきり無意味に飾ることが大好きなのかと思っていたが、どうやら東京電力のでんこちゃん並に省エネ・電気の節約に励んでいるのだろう。北朝鮮は省エネ先進国だったのである。あるいは、もしかしたら北朝鮮は中国の奥地並みに人口密度がとても低く、街なんかほとんどなくて、だから夜の街の灯なんか無いだけなのかもしれない。
そうでないとしたら、この夜景はとても何か不安になる景色だ。
そこで、「世界の人口密度分布」を眺めてみることにした。それが下の世界地図画像である。灰色の地域は人口密度が低くて、白色が中くらいの人口密度で、紫色の地域はとても人口密度の高い地域だ。
この世界の人口密度分布を眺めてみると、北朝鮮は決して人口密度が低いわけでなくて、単に「人口密度の割に夜の街の灯はとても暗い」ということが判る。北朝鮮には多くの人が住んでいてきっと多くの街があるにも関わらず、夜の街は真っ暗なのだ。そんな不安になる国が、「光り輝く」「偉大なる首領様」のいる国だったのである。
ところで、そんな「人口密度の割に夜の街の灯はとても暗い」地域は決して北朝鮮だけではないだろう。日本のように「人口密度が高くて夜の街の灯も輝いている」わけではない場所が世界中にはたくさんあるはずだ。人工衛星から撮影された地球の夜景地図では、そんな「夜の街の灯がとても暗い」地域は見えてこないのだけれども、世界地図の中には、そんな地域が散らばっているはずだ。
世界地図の中に散らばるそんな地域を目の前に浮かび上がらせるために、最初の画像「人工衛星から撮影された地球の夜景」と「世界の人口密度分布」の二枚の画像を利用して、画像解析により「人口密度に対する夜の街の灯の明るさ」を算出してみた。それが下に示した画像だ。ここで、黄色で示した地域は「人口密度の割に夜の街の灯はとても暗い地域」で、紫色で示した地域は「人口密度は高く、夜の街の灯も輝いている地域」である。
黄色い地域は北朝鮮のように「人は多くいるのに夜は真っ暗で華やかな街の灯りなんかない」地域で、紫の地域はアメリカやヨーロッパ、そして日本のような「人口密度の割に夜の街の灯りが輝いている」地域である。
こうしてこの結果の世界地図を眺めていると、アフリカを中心としてアジア周辺にも「人口密度の割に夜の街の灯はとても暗い地域」が広がっているようすが見えてくる。特に、「人工衛星から撮影された地球の夜景」では闇に埋もれていたアフリカの辺りがこの世界地図の中では黄色くはっきりと浮かび上がってくる。
「人工衛星から撮影された地球の夜景」=「街の灯」を一番最初に眺めた時には、こんな黄色い地域は見えなかった。明るく綺麗な夜景は見えていたけれど、こんな「多くの人がいるのにとても暗い地域」はあの写真には写っていなかった。少なくとも私には見えていなかったように思う。
だけど、今は最初に眺めたあの「地球の夜景」の写真の中からだって、とても綺麗なだけの「地球の夜景」とは少しだけ違う「街の灯」が見えてくるような気がする。そう、ちょうどチャップリンの「街の灯」に登場する花売り娘、見えなかった目が治り、見えていなかった景色を目の前にした娘のような気分だ。少しだけ夜目がきくようになった私には、前とは少し違うそんな「街の灯り」が見えるような気がする。人工衛星からの写真には写っていなかった「街の灯」が見え宇ような気がする。 あなたはどうですか?あなたは見えるようになりました?
2004-10-21[n年前へ]
■携帯電話で「顔」認証
「グローバル・セキュリティ・デザインは九州工業大学の画像解析技術を使った顔認証システム「FaceViTAL」を、BREW(auのCDMA 1X WIN)上に移植、携帯電話端末上で利用できることを確認した」という携帯電話で「顔」認証。 from Random Note