hirax.net::Keywords::「シミュレーテッド・アニーリング」のブログ



2001-09-25[n年前へ]

純愛で世界を描ききれ 

Study of the Regular Division of the Plane with Innocent Love

 先日、出張先で話をしようとした途端、いきなりこんなコトを言われた。

「最近、更新頻度が下がってますねぇ、あとアッチ系のネタが多いですねぇ。」
また別の人には、
たかが風圧がオッパイに思えるものでしょうか?自分には、そこがなんとも不思議で納得できないのであります。」
「一体、指の何処でその感触を感じると思われますか?」
「それに、モンローウォークの動画はまるで全裸みたいに見えて、思わず自分はウィンドーを閉じてしまったのであります。」
などと言われた。本来、私は真面目な話をしに行ったハズなのであるが、思わず弁解したくなって、
「いや、掌の広げ方次第で、空気が指に与える圧力が動的に変化するのだが、その指の動きに応じて動的に弾力が変化するさまがアノ感触に近いという想像は如何なものだろうか?たかが風圧、されど風圧、と謙虚に考えるべきではないだろうか?」
とか
「空気流が指の側面を押す力が主たる個所だろう、それすなわち、指の周りからこぼれるおちるアレが指に与える感覚なのである。」
とか、
「実はOLスーツ編の動画も作成したのだが、そっちの方が私的にはイヤラシク倫理的にNGだったのだ。」
とか色々言ってしまったのである。しかし、実はその話をしている仕事場には他にも人が何人もいて、しかもその人達には私は面識は無い。ということは、私は他人の仕事場にイキナリ来たと思ったら、「アノ感触」とか「OLスーツ」とかそんなことを話し出すトンデモない奴にしか見えないのである。これはちょっといけない。いや、かなりマズイ。

 そこで、そんなことを言われないために、今回は「できるかな?」のスタート地点である「画像」の話題を考えてみたい。しかも、ただ考えるだけではつまらないので、「できるかな?」風に「愛」を込めて「画像」について考えてみたい、と思う。というわけで、今回は題して「純愛で世界を描ききれ」である。
 

 八月に台風が関東地方を直撃した日、私は東京タワーのすぐ横で「高画質化のための画像処理技術」という研究会を聴講していた。会場に辿り付くまでの間ひどい雨と風に襲われて、最初のうちは「こ・これは、風速25m/s位はあるな。ってことは25mx 3600 s /1000mで時速90kmか…ってことは、計算によればE〜Fカップが今まさに体中にぶつかってきているのかぁ!」なんて(自分を元気づけるために)考えていたのだけれど、風だけでなくて雨もひどかったので、ついには濡れねずみになってしまい、ただ「………」と何も考えずとぼとぼ歩くだけのゾンビ状態になってしまった。

 何はともあれ、そんな感じでやっとのこと会場に辿り付いて、いくつかの話を聞いていたのだけれど、その中でもとても面白かったのが、大日本印刷の阿部淑人氏の「シミュレーテッド・アニーリングによるディザマトリックスの最適化」という話だった。色々な項目を適当に重み付けしながら、ハーフトーンパターンを自動で生成して、理想のハーフトーンパターンを作成しよう、というものである。その話の後半では、工芸的なスクリーンの話も俎上に上がり、M.C.Escherの"Sky& Water I"をグラデーションの例に挙げてみたり(残念ながら実際にそんなハーフトーニングをしたわけではないが)、菩薩像を般若心経でハーフトン処理してみせたり、となかなか「できるかな?」心をくすぐるものだった。そこで、私も似たようなことにチャレンジしてみて、さらにはM.C.Escherの版画を使ったハーフトーニングを行ってみたいと思うのである。
 

M.C.Escher Sky & Water I 1938

 そもそも、ハーフトーニングとは多値階調を持つ画像などをニ値出力の(もしくは少ない階調しか持たない)機器で出力するために、多値の階調をニ値(もしくは少ない階調)の面積比率で置き換えることにより出力する方法のことである。例えば、下の例はグレイスケールのグラデーションパターンを円スクリーンによりハーフトーニングしたものである。
 

グラデーションパターンを円スクリーンによりハーフトーニングしたもの
グレイスケールのグラデーションパターン

上を円スクリーンによりハーフトーニングしたもの

 Photoshopを使っている場合には、簡単に任意形状のハーフトーニングを行うことができる。例えば、こんなパターンをカスタムパターンとして登録すると、そのパターンとの明暗比較を行うことにより、
 

という風にニ値化ハーフトーニングを行うことができる。ところが、じゃぁこれと同じようにEscherの版画を使ってハーフトーニングしようと思っても、そう簡単にできるわけではない。なぜなら、このハーフトーニングが明暗比較によって行う以上、ハーフトーニングに使うパターンは多値の画像でなければならないのである。

 Escherの版画も版画という(例えば白か黒かといった)ニ値の出力機器を用いているため、やはりニ値の画像に過ぎない。例えば、下の版画はEscherの”Studyof the Regular Division of the Plane with Horsemen”である。
 

Study of the Regular Division of the Plane with Horsemen 1946

 上の版画の一部を(ちょっとだけ細工をしつつ)抜き出してみたのが下の画像だが、白黒半分づつのニ値画像であることがわかるだろう。また、きれいな繰り返しパターンになっていて、平面にこのパターンできれいに埋め尽くすことができるのがわかるだろう。
 

上の画像の一区画(黒:白の比率は厳密に1:1)

 この画像をPhotoshopのカスタムパターンを用いて、グレイスケールをニ値化ハーフトーニングすると、この画像がニ値画像であるため、下のように階調をきれいに出力することができず、結局のところ「黒か白か」といった階調飛びの画像になってしまうのである。
 

ニ値画像を使って単純にハーフトーニングしようとすると…
グレイスケール
単純にパターンニ値化すると…

 そこで、まずはニ値の画像を元に多値のハーフトーン用パターンを作成するプログラムを作成してみた。作成するやり方としては、初期値を元にして暗い方。明るい方それぞれの方向にローパスフィルターで演算をしつつ、256階調分のハーフトーンを作成し、さらにそれをPhotoshopで処理できるように多値画像として出力することができるようにしてみた。先の発表のやり方で言えば、「高周波を減らす」という項目に重みをおいて、ハーフトーンパターンを自動生成するアプリケーションを作成してみたわけだ(バグ満載状態で)。説明は一切無し、しかもボタンを押す順番を間違えると上手く動かないという状態ではあるが、一応ここにおいておく。名前はhiraxtone.exeでバージョンは0.0…01という感じである。(白黒ニ値だけど24bitモードの)Bitmapファイルを読み込んで、多値のスクリーンを生成するようにしてある。

 それでは、このhiraxtoneを用いて、ニ値画像を元に作成した多値階調ハーフトーンパターンの一例を次に示してみる。これは、先の"Studyof the Regular Division of the Plane with Horsemen"の一部分を縮小したニ値画像をもとにして処理してみたものである。
 
右:オリジナルのニ値画像
左:ニ値画像を元に作成した多値階調ハーフトーンパターン

 でもって、上で作成した多値階調ハーフトーンパターンを用いて、グラデーションパターンをハーフトーニングしてみた例が下の画像である。「単純にパターンニ値化した場合」と違って、「hiraxtone1で作成したパターンを使用した場合」はグラデーションが保持されているのがわかると思う。また、階調が保持されているというだけではなくて、まるでEscherのオリジナルの"Studyof the Regular Division of the Plane with Horsemen"のようなパターンにできあがっていることも判ると思う。
 

hiraxtoneで作成したパターンを使用してグラデーションパターンをハーフトーニングすると…
グレイスケール
単純にパターンニ値化した場合
hiraxtone1で作成したパターンを使用した場合

 さて、ニ値画像パターンを利用してハーフトーニングすることができる、となると他にも色々と遊ぶことができる。例えば、自分だけのハーフトーンパターンを作ってみたくなることだろう。そして、さらにはその素晴らしいスクリーンに自分の名前を付けて広めてやりたい、と思うのは至極当然の話である。古くはBayerなどがそうしたように、自分が作ったスクリーンに自分の名前をつけてみるわけだ。

 とはいえ、私が仮にスクリーンを作成してみたところで、そのスクリーンを私の名前で呼んでくれる保証はどこにもないのである。そこで、卑怯な手ではあるが、自分の名前を元画像にしてスクリーンを作成してみることにした。こうすれば、否でも応でもこのスクリーン形状を呼ぶために人は私の名前を使うことになるわけだ。

 というわけで、私の名前「純」という漢字を元データにして、ハーフトーンスクリーン「純」を作成してみた。また、「純」とくれば当然もうひとつ「愛スクリーン」もさらに作ってみた。いや、別に「純愛」を目指そう、と気負っているわけではなくて、単にうちの兄弟は長男が「純」で長女が「愛」なのである。いや、少し気恥ずかしいけど、ホントの話そうなのだからしょうがない。

 さて、作成した「純・愛スクリーン」さえあれば、「純愛」で世界を描ききることができるわけで、早速描いてみたのが、下の仲間由紀恵である。オマエの世界イコール仲間由紀恵か?とか、ソレってホントに「純愛」か?とか、つまらないツッコミを入れられそうな気もするが、そんなことはどうでも良いのだ。私はTRICK以来仲間由紀恵のファンになってしまったのだから、しょうがないのである。そしてまた、「純愛」を馬鹿にしてはイケナイ、と私は少しばかり思うわけなのである。(私の名前だから)
 

「純愛スクリーン」でハーフトーニングした仲間由紀恵
「純」スクリーンで描く仲間由紀恵
「愛」スクリーンで描く仲間由紀恵

 上の二枚をじっくり眺めてみると、結構キレイに仲間由紀恵が描かれていることが判ると思う。しかも、他でもないこの二枚の画像において、私は「純愛」で仲間由紀恵を描ききっているのである。これより、「純」で「愛」な仲間由紀恵はそうそういないハズなのだ。きっと、本物の仲間由紀恵が見たら「何てピュア〜でラブリーな私かしら。きっと、これを描いた人は心のキレイな人なのね!」と感激すること間違いなし、なのだ。

 ちなみに、「純愛スクリーン」でハーフトーニングした仲間由紀恵の左眼の部分を拡大してみたのが下の二枚の画像である。瞳の奥にも、「純」と「愛」が溢れていることが判るハズである。それは言い換えれば、この仲間由紀恵の瞳は「純」イコール「私」で満ち溢れ、さらにはその瞳は「愛」で満ち溢れているのである。
 

仲間由紀恵の目の部分の拡大図
「純」スクリーンの仲間由紀恵
(目の部分の拡大図)
「愛」スクリーンの仲間由紀恵
(目の部分の拡大図)

 う〜ん、正直ちょっとムナシイけれど、だけどちょっと気持ちが良いのもまた事実なのである。やはり、「純・愛スクリーン」で描かれる世界はとても素晴らしい世界なのである。そうなのである。

 さて、今回作成したhiraxtoneは、実際のところ自分でも言うのもなんだが、本当のところ今ひとつキレイな出力ができないし、大体思ったように動いてくれないのである。低周波優先として重み付けをしたハズなのに、どうもそんな風に動いていないし、計算にも時間がかかりすぎる。全てはビールを飲みながら行き当たりばったりにプログラミングするところがいけないのかもしれないが、どうも今ひとつなのである。また、本来であればもう少し元データの形状を残すことを優先(それは高周波優先にならざるをえないだろう)にするようなオプションもつけてみたいのである。

 が、とはいえ今回はいい加減思いページになってきたこともあるし、ちょっと疲れてきたこともあるし、とりあえず「純愛」で世界を描ききったところまでで今回は終りにして、続きは次回以降に遊んでみたいのである。

2002-06-29[n年前へ]

阿部製 純愛スクリーン 

 阿部淑人氏による「純愛スクリーン」。つまりは、「純愛で世界を描ききれ」に登場する「シミュレーテッド・アニーリングによるディザマトリックスの最適化」の報告をされていたご本人に作って頂いたモノ。ありがたいことです。「当然ながらディスパーストのほうが結果はよろしいようです」とのコメント付きです。
 使い方は、Photoshopかなんかでパターンに使用して、スクリーンパターンとして使って下さいな。(阿部製 純愛スクリーン クラスタードット版)(阿部製 純愛スクリーン ディスパーストドット版)(純愛で世界を描ききれ

2010-06-19[n年前へ]

「サラリーマン的アルゴリズム」という名の最適化手法 

 遺伝的アルゴリズムもシミュレーティド・アニーリング(焼きなまし法)も、いずれも最適解を求めるための手法である。ふと、結構世の中に満ち溢(あふ)れていそうな最適化(最適解獲得)問題のための手法として、「サラリーマン的アルゴリズム」というものがあるのではないか、と考えた。

 「サラリーマン的アルゴリズム」では、基本的に3つの状態遷移・探索過程がある。その最初のものは、局所的最適化を淡々と追い求める「兵隊フェーズ」である。この過程は、少なくとも局所的最適解を求めるが、ただしそれにより大局的な最適解を求めることができる可能性はかなり低い。

 次の過程が、「船頭多くして、船山に登るフェーズ」である。兵隊だけでなく船頭も多くなり、エネルギーが高くなり、(焼きなまし法ではないが)比較的離れた解探索も行うようになる。ただし、悪く言えば、少し行き当たりばったり法とも言えるような状態になる。

 そして、もう3つのフェーズのうち一番影響の大きいのが、「天の声フェーズ」である。このフェーズはこれまでの最適解から大幅に離れた場所の探索も可能にする、問答無用の(遺伝的アルゴリズムのような)突然変異的な探索である。

 これら3つのフェーズの繰り返しにより、もちろん「兵隊フェーズ」「船頭多くして船山に登るフェーズ」「天の声フェーズ」の比率は異なるが、これが繰り返されることにより最適解を求めようとする最適化手法は意外に多いのではないだろうか。

 「集中化」と「多様化」
 「集中化」 -> 改善力
  良い解の近傍を探索すれば   もっとよい解が見つかるはず...
 「多様化」-> 探索力
  悪い解の近傍に陥らないように広範に探索すればずっと良い解が見つかるはず...

集中化と多様化」から

「サラリーマン的アルゴリズム」という名の最適化手法








■Powered by yagm.net