1999-04-10[n年前へ]
■シリアルデータをExelへ転送したい
計測器のデータを簡単に入力しよう
計測を行って、解析処理を行いたい時にどうにも入力が面倒なことが多い。処理はExcelなどで行うことが多いのだが、計測したら即座にExcelのワークシートに入力されたら便利である。膨大なデータを計測して、そのデータからどれだけ意味ある情報を抽出することが簡単にできたらいい。そう考えて、シリアルデータ出力を持つ計測器の出力データをExcelへ自動的に送信するソフトを作成した。現在、対応しているソフトは画像関係の計測器の6種類だ。 Tool++はシリアル出力を行うことができる計測器のデータをExcelのシートへ自動入力するソフトウェア。計測すると同時にデータがExcelのシートに取り込まれる。画像出力結果のデータ処理などを簡単に行うことが出来る。
現在、対応している計測器は
- Macbeth社製 RD-1151PB 濃度計
- Macbeth社製 RD-1255 濃度計
- Macbeth社製 RD-914 濃度計
- Macbeth社製 RD-918 濃度計
- X-Rite社製 X-Rite404 濃度計
- 東京電色 かぶり測定器 TC-6DS(I/Fをつくる必要がある。といってもとても簡単なものだ)
ソフトのダウンロード
Tool++の画面
さて、本家「できるかな」のゴン太くんにならい、本サイトでもサブキャラを登場させることにした。称して「ちび太」くんである。今回は、ちび太はせっせと計測しているところだ。MacromediaFlashをいじってみたかったので、Flashのプラグインをインストールしていない人は見えないだろう。内容は大したしたものではない。
計測すると、データはExcelへ自動入力される
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)画像へと前処理しておくことがお勧めだ。
1999-07-14[n年前へ]
■夏目漱石は温泉がお好き?
文章構造を可視化するソフトをつくる
先週は新宿で開催されていた可視化情報シンポジウム'99を見ていた。参加者の世界が狭い(ジャンルが狭いという意味ではない)し、学生の発表が多すぎるように思ったが、少なくとも本WEBのようなサイトで遊ぶには面白い話もあった。というわけで、これから何回か「可視化情報シンポジウム'99」記念の話が続くかもしれない。とりあえず、今回は「小説構造を可視化しよう」という話だ。
まずは、「可視化情報シンポジウム'99」の発表の中から一番笑わせて(笑ったのはいい意味ですよ。決して皮肉ではないですよ。しつこいようですが、ホントホント。私のツボに見事にはまったのだからしょうがない。)もらった発表のタイトルはこれである。
文学作品における文体構造の可視化 - 宮沢賢治「銀河鉄道の夜」の解析-
白百合女子大学大学院の金田氏らによる発表だ。予稿集から、その面白さを抜き出してみよう。まずは過去の研究の紹介をしている部分だ。
作品(hirax注:夏目漱石の「虞美人草」と「草枕」)の始まりから終わりまでを時系列で捉えると(hirax注:話法に関する解析をすると)、二作品はともに円環構造、つまり螺旋構造を描きながら、物語が進行していくことが、四次元空間上に表現された。
中略
これは、作品の解析結果を可視化することで、夏目漱石の思考パターンと内面の揺れが明らかにされたことを意味する。
なんて、面白いんだ。この文章自体がファンタジーである。こういうネタでタノシメル人にワタシハナリタイ。おっと、つい宮沢賢治口調になってしまった。そして、今回の発表の内容自体は、宮沢賢治の「銀河鉄道の夜」の中に出てくる単語、「ジョバンニ・カンパネルラ・二」という三つの出現分布を調べて構成を可視化してみよう、そしてその文学的観点を探ろう、という内容だ。
本サイトは実践するのを基本としている。同じように遊んでみたい。まずは、そのためのプログラムを作りたい。名づけて"WordFreq"。文章中の単語の出現分布を解析し可視化するソフトウェアである。単語検索ルーチンにはbmonkey氏の正規表現を使った文字列探索/操作コンポーネント集ver0.16を使用している。
ダウンロードはこちらだ。もちろんフリーウェアだ。しかし、バグがまだある。例えば出現平均値の計算がおかしい。時間が出来次第直すつもりだ。平均睡眠時間5時間が一月続いた頭の中は、どうやらバグにとって居心地が良いようなのだ。
wordfreq.lzh 336kB バグ有り版
バグ取りをしたものは以下だ(1999.07.22)。とりあえず、まだ上のプログラムは削除しないでおく。
失楽園殺人事件の犯人を探せ - 文章構造可視化ソフトのバグを取れ - (1999.07.22)
動作画面はこんな感じだ。「ファイル読みこみ」ボタンでテキストファイルを読みこんで、検索単語を指定して、「解析」ボタンを押すだけだ。そうすれば、赤いマークでキーワードの出現個所が示される。左の縦軸は1行(改行まで)辺りの出現個数だ。そして、横軸は文章の行番号である。すなわち、左が文章の始めであり、右が文章の終わりだ。一文ではなく一行(しかもコンピュータ内部の物理的な)単位の解析であることに注意が必要だ。あくまで、改行までが一行である。表示としての一行を意味するものではない。なお、後述の木村功氏から、「それは国語的にいうとパラグラフ(段落)である。」という助言を頂いている。であるから、国語用の解析を行うときには「行」は「段落」と読み替えて欲しい。また、改行だけの個所には注意が必要だ。それも「一行」と解釈するからである。
「スムージング解析」ボタンを押せば、その出現分布をスムージングした上で、1行辺りに「キーワード」がどの程度出現しているかを解析する。
そう、この文章は長い文章の中でどのように特定の単語が出現するか解析してくれるのである。
それでは、試しに使ってみよう。まずは、結構好きな夏目漱石の小説で試してみたい。
電脳居士@木村功のホームページ
から、「ホトトギス」版 「坊っちやん」のテキストを手に入れる。そして解析をしてみよう。まずは、この画面は夏目漱石の「坊っちやん」の中で「マドンナ」という単語がどのような出現分布であるかを解析したものである。
文章の中ほどで「マドンナ」は登場してくるが、それほど重要なキャラクターでないことがわかる(このソフトがそう言っているんで、私が言っているのではない。だから、文句メールは送らないで欲しい)。
それでは、「湯」というキーワードで解析してみよう。「坊っちやん」と言えば道後温泉であるからだ。
おやおや、「マドンナ」よりもよっぽどコンスタント(安定して、という意味で)に「湯」という単語は出現するではないか。出現平均値は「マドンナ」の方が多いが、安定度では「湯」の方が上だ。夏目漱石は「マドンナ」よりも「湯」すなわち温泉によっぽど興味があるようだ。
主人公を育てた重要人物「清」を調べてみると、こんな感じだ。
小説の初めなんか出ずっぱりである。あと小説のラストにも登場している。
どうだろうか。見事に小説の可視化に成功しているだろう。結構、この解析は面白い。すごく簡単なのである。
これから新聞、WEB、小説、ありとあらゆる文章を可視化し、構造解析していくつもりだ。みなさんも、このソフトを使って面白い解析をしてみるとよいのではないだろうか? とりあえず、高校(もしかしたら大学の教養)の文学のレポートくらいは簡単に書けそうである。もし、それで単位が取れたならば、メールの一本でも送って欲しい。
というわけで、今回はソフトの紹介入門編というわけで、この辺りで終わりにしたいと思う。
1999-08-08[n年前へ]
■瞳の中の真実
目の屈折率を調べよう
先日、近所の海へ行ってきた。水中メガネで覗いているとまるで熱帯魚みたいな魚が泳いでいて素敵なのだ。水中メガネを使うか使わないかで、海の楽しさは雲泥の差である。水中メガネで覗いてみると、裸眼の時とは別世界のようにくっきり見えるのである。
さて、「水中視の光学」と言えば、物理の散歩道の「アユと泳ぐ」(新物理の散歩道-第2集- 中央公論社)に詳しく面白い考察がされている。本WEBでもScrapsにて「焦点」ということを考えたばかりなので、「アユと泳ぐ」と同様の解析を「できるかな?」風に行ってみたい。光学シミュレーターを作ってみたいのである。そのために、まずは人間の目の中の屈折率を調べなければならないだろう。というわけで、今回は下調べ編である。
それでは、人間の左目の水平方向の断面図を調べてみる。
この中で普通のカメラでいうレンズの役割を果たしているのはどこだろうか。レンズの部分を赤く塗るとどのようになるだろうか?下に並べた3つのうちどれだと思われるだろうか。
A | B | C |
まずは、目の中の物質の屈折率を調べてみると、以下のようになる。
場所 | 屈折率 |
角膜 | 1.376 |
眼房 | 1.336 |
水晶体 | 1.386 |
硝子体 | 1.336 |
空気(15℃の乾燥空気)の屈折率はほぼ1.0であるから、空気と比較するならば、目の中の物質はほぼ同じ屈折率を持つといっても良い。角膜も眼房も水晶体も硝子体も同じ屈折率を持つとして良いだろう。すなわち、大雑把な近似においては図.2のCに示したようなピンク色のレンズがあるとして良い。つまり、目全体がレンズであり、レンズ面に焦点を結ぶようになっているのである。水晶体は若干の補正を行うに過ぎない。レンズの焦点はレンズから離れた場所にあるはずと思っている人もいるかもしれないが、レンズの表面に焦点があるものも実はよく使われている。
さて、人間が水の中に入るとどうなるだろうか?水は1.333(589.3nmの波長の光に対して)の屈折率を持つ。これは人間の目の中の物質の屈折率とほぼ同じである。水を主体として出来ている人間なのだからこれは当然だろう。しかしこれでは、目は光を屈折させることはほとんどできなくなる。そのため、水の中に入るときには水中メガネなどで目の回りを空気で満たしてやることが必要なのである。
本題からははずれるが、資料を眺めていると、面白いグラフが目に入ってきた。人間の目の断面方向の視細胞個数の分布を示したものであり、錐体と桿体を個別に示してある。「盲点」なんかも図中にある。
目に映る明るさって何ですか? - 君は天然色 - (1999.07.05)
の回に錐体と桿体については触れたが、桿体は1lx程度の暗さから働き、明るさのみに反応する。一方、錐体は10lx以上で働く。従って暗いものを見るには桿体の働きが重要になるわけだが、上のグラフは桿体が視点の中心にはほとんど存在していないことを示している。
従って、暗い所でものを見る際には、視点の中心では感度が足りなくなりやすいことがわかる。これまで、暗い星を眺めるときに視界の中心で見ようとすると見えないのだが、少し視点をずらしてやると見えるような気がしていたのだが、それは気のせいでは無かったようである。
さてさて、資料集めも終わったので「瞳シミュレーションソフトウェア」の開発に着手したいと思う。もちろん、時間がかかるのはいつものことだ。すぐにはできないけどね。
1999-08-09[n年前へ]
■色を伝える時に、考え忘れていたこと(色弱と色空間 その1)
We can work it out!
オプトニューズ (1999) No.4の光の話題に三楽病院の岡島修氏が「レーザポインタと色覚異常」という小文を書いている。色弱の人の感じ方とプレゼンテーション(特にレーザポインタの色)に関する提言である。それを読んであることを思い出した。何年か前、Labofinder(Macintoshを科学分野で使うユーザーグループ)でプレゼンテーションについて特集していた発表会だったと思う。どなたかが発表を行った後に、次のような質問があった。
「私は色弱なのですが、プレゼンテーションを行う際に使う色などについて、そのような人を意識して作成されているでしょうか?」
恥ずかしいことに、私はあまり考えたことがなかった。そして、本WEBを作るに際してもそういった点はおろそかになっていると思う。そういう自分自身への反省を込めて、色弱と色空間について考えてみたいと思う。
まずは、色弱に関する情報を調べよう。
- COLOR HANDICAP( http://www.sakuranet.or.jp/~tks/color/text/ )
- からーふぃくしょん( http://sun.endless.ne.jp/users/tanafic/ )
- Dr.MeMeの おめめ講座 (http://www.so-net.ne.jp/vivre/eye/ )
それでは、私なりの理解と考察を始めてみたい。
目に映る明るさって何ですか? - 君は天然色- (1999.07.05)
の回で触れたが、人間が光を感じる網膜内の光受容器には錐体と桿体がある。この内、色(すなわち光の波長方向に関する感じ方)を感じるのは、錐体の働きによるものである。錐体には3種類有り、
- L錐体 -> 赤
- M錐 -> 緑
- S錐体 -> 青
目に映る明るさって何ですか? - 君は天然色- (1999.07.05)
を参照のこと)。それらの錐体に異常がある時に、色弱もしくは色盲が発生する。
L錐体 (赤) | M錐体 | S錐体 | 先天性色覚異常の分類 |
O | O | O | 正常 |
X | X | X | 桿体1色覚 (全色盲) |
O | X | X | 錐体1色覚 (赤) |
X | O | X | 錐体1色覚 (緑) |
X | X | O | 錐体1色覚 (青) |
X | O | O | 第1色盲 (赤色盲) |
O | X | O | 第2色盲 (緑色盲) |
O | O | X | 第3色盲 (青色盲) |
OX | O | O | 第1色弱 (赤色弱) |
O | OX | O | 第2色弱 (緑色弱) |
O | O | OX | 第3色弱 (青色弱) |
この図中でOは正常、Xは欠損、OXは機能低下である。
M,L錐体に関する異常はX染色体劣勢遺伝をする。また、錐体1色覚、および、S錐体に異常がある第3色盲・第3色弱は比較的少ないという。
それでは、これらの錐体に異常があるとどのような色を識別できなくなるのだろうか? 私は先に挙げたようなWEBを読んだくらいの知識がないので、数学的な考察をおこなってみる。現実をよく知らないため、実際の症例とはかなりの違いがあるかもしれない、ということは先に断っておく。
現実の症例の参考としては、岡島修氏の「レーザポインタと色覚異常」中に挙げられているCIEXYZ表色系における強度色覚異常者(第1異常、および、第2異常)の混同色を用いる。その図を加工し、XY色度図を重ねたものを以下に示す。それぞれの図において、白い直線上の色を混同してしまうのである。
今回は、通常の(Red,Green,Blue)データを基本として考える。PCなどで表示を行う際に一番よく使うからである。任意のRGBデータをCIEXYZ表色系に直すためには、
WEBページは会社の顔色 -WEBページの色空間を考える2- (1999.04.26)
で用いたハイビジョンTVの色空間を例に用いて、
- X= 0.412391R + 0.357584G + 0.180481B
- Y= 0.212639R + 0.715169G + 0.072192B
- Z= 0.019331R + 0.119195G + 0.950532B
- x=X/(X+Y+Z)
- y=Y/(X+Y+Z)
それでは、通常、第1色盲(赤色盲)、第2色盲(緑色盲)の3種類についてxy色度図の計算例を示してみる。ある錐体に異常が存在する場合に、どのような色空間が再現されるかの計算を行ってみる。通常のxy色度の位置において、ある錐体の刺激を無くした場合に色がどう変化するかを示したものである。であるから、第1色盲(赤色盲)、第2色盲(緑色盲)においては通常使われるxy色度図とは異なるものになる。また、ここで示した色が色弱の人が見ている色という意味でもない。
単純に、ある錐体が得るであろう情報を無くしたときに、情報の識別がどのように困難になるかを確認した、と言った方がいいかもしれない。
また、本来3錐体の波長感度特性はRed,Green,Blueの単波長というわけでもない。しかし、今回は簡単のために、3錐体の波長感度特性はRed,Green,Blueの単波長であるという仮定の元に計算を行っている。そのため、かなり現実とは違う結果になっている。近々、きちんとした計算をするつもりである。
ここでは、Z方向(明るさ方向)に対して無視を行っているので、かなりの誤差が存在すると思う。また、計算の中で一つの錐体に異常があるときの、RGBデータの再配分を計算する部分に極めて大雑把な近似をおこなっているので、その部分でも誤差が大きいと思う。
また、Red,Green,Blueの三色により色空間を形成しているため、各点を頂点とする三角形内に色空間は収まることになる。
この計算結果を眺めながら、岡島修氏の「レーザポインタと色覚異常」中に記述されている色弱における混同しやすい色の例、
- 第1色盲
- 赤と黒
- ピンクと青
- 第2色盲
- 赤と緑
- オレンジと黄緑
- 緑と茶
- 青と紫
- ピンクと白
- 緑と灰色
例えば、通常の色空間において赤(すなわち右上)の場所を第1色盲の色空間の中で見て欲しい。黒との識別が困難なのは一目瞭然だろう。また、下の図に示すように、通常の色空間でピンク(1)と青(2)が第1色盲の色空間の中でどうなっているかを見れば、
これも1と2の識別が困難であることが容易に想像がつく。第2色盲でも同じように見てみて確認して欲しい。
なお、上の図中で中心部が暗くなっているが、それはグリッド線のためであり、本来の色はもっと白っぽい色である。また、今回は岡島修氏の「レーザポインタと色覚異常」中の図と比較するために、CIExy色度図を用いたが、もともとxy色度図は人間の感じ方とは結びつけにくい。いずれ、均等色空間における解析を行うつもりである。また、先に記述したようにきちんと錐体の波長感度特性を考慮に入れた計算をするつもりである。今回はあくまでごく簡単な実験である。
というわけで、今回は色弱の方がどのような色空間を感じているかを考察してみた。今回の話中には色々間違いもあると思う。なにか訂正すべき情報を見つけてくださったら、教えて欲しい。
画像出力に携わる方でこのWEBをご覧になっている人もいるはずだ。色を正しく伝えることを日夜考えている人もいるだろう。しかし、色を正しく伝えることを考えるときに、考え忘れていることはないだろうか? 「正しい伝え方」は、誰にとって「正しい」のだろうか?私達が当然のように感じている色についても、異なる感じ方をする人のことを考え忘れてはいないだろうか?
そういった人は少数だと言われる方もいるかもしれない。しかし、あなたが当然の権利のように享受しているものは果たして全ての人が得ているものだろうか? もしかしたら、その権利を享受している人の方が少数派であるものもあるのではないだろうか?
やることは至極簡単なことだ。技術的に言うならば、人の知覚も「デバイスの一部」として考えた際に、「人の知覚」が数種類あるものとして、異なるデバイス間のカラーマッチングを考えれば良いだけのことだ。もちろん、一筋縄ではいかないだろうが、得られるものの大きさからしたら、やってみる価値はあるだろう。
プレゼンテーションソフト、あるいは数多くのソフトウェアにそういったことをきちんと考えたテンプレートが現れ、WEBサイトの色、画像機器のカラーマネジメントにそういった「全ての人(健常者と呼ばれる人のモデルだけでない)の感じ方まで含めたカラーマッチング」が適用されていく日も必ず来るはずだ。もしかしたら、このWEBサイトに来ている人の中には、今すぐにでもそういうことを始めることが出来る人もいるかと思う。果たして、そんなことが「できるかな?」と思われる人もいるかもしれないが、きっとできる筈だ。
こういったことは色覚に限る話ではないと思う。考え忘れていることは数多くある。できることも数多くある、と私は思う。