hirax.net::Keywords::「可視化」のブログ



1999-11-20[n年前へ]

バナー画像のエントロピー 

がんばれ、JPEG



 前回、

で「バナー画像中の文字数とファイルサイズ」に注目し、「文字情報密度」というものについて考えてみた。情報密度を考えるのならば、
で考えたエントロピーについても計算してみなければならないだろう。そこで、今回は前回登場したバナー画像達のエントロピーを計算してみることにした。それにより、情報圧縮度について考えてみることにするのだ。

 そうそう、今回も「本ページは(変な解説付きの)リンクページであります」ということにしておく。他WEBのバナー画像を沢山貼っているが、それはこのページが「リンクページ」であるからだ。

 エントロピーを計算し、画像の圧縮度を調べる際に、今回はファイル先頭の400Byteにのみ注目した。ファイル全体で計算するのは面倒だったからである。各バナー画像でファイルサイズが異なるからだ。そこで、全て先頭400Byteに揃えてみた。

 行う作業は以下のようになる。

 まずは、画像ファイルの「先頭400Byteの可視化画像」を作成する。これは、各ファイル中の各Byteが8bitグレイ画像であると考えて、可視化したものである。以前書いたように、「てんでばらばらに見えるものは冗長性が低く、逆に同じ色が続くようなものは冗長性が高い」のである。もし、同じ色が続くとしたならば、「また、この色かい。どうせ、次もこの色なんだろ。」となってしまう。次の色の想像がつく、ということはすなわち、情報としては新鮮みのないものとなる。つまり、情報量が少ないのである。その逆に、情報量の多いものは、てんでばらばらで次の色(データ)の予想がつきづらいもの、となるわけである。まずは、そのてんでばらばら具合を「先頭400Byteの可視化画像」で確認する。

 次に、てんでばらばら具合をヒストグラムで確認する。各Byteが0から255のどの値をとることが多いかを調べるのである。てんでばらばらであれば、どの値をとる確率もほぼ同じであり、フラットなヒストグラムになるはずである。逆に、ヒストグラム上である値に偏っていれば、値の予想がつきやすく、情報量が少ないということになるわけだ。

 最後に、各Byteのデータを「8元無記憶情報源モデル」に基づいて計算したエントロピーを計算した。各Byteのエントロピー、すなわち、平均情報量は最大で8となる。当たり前である。1Byteは8bitであるから、最大限有効に使いきれば、情報量は8bitになる。

 それでは、青い「hirax.net できるかな?」バナーを例にして見てみる。

文字情報密度ファイルサイズ(Bytes)画像先頭800Byteの可視化画像ヒストグラムエントロピー(bits/Byte)
356627.1

 この画像ファイルはトータルで662Bytesであるが、その先頭400Bytesの可視化画像はけっこうばらばらである。それは、ヒストグラムをみても確認できる。少し、0近傍が突出しているが、それを除けば、かなり均等である。そして、エントロピー、すなわち、1Byte当たりの情報量は7.1bitである。満点で8bitであるから、7.1bitはなかなかのモノだろう。

 それでは、前回登場したバナー画像達に、同じ作業をかけてみる。

文字情報密度ファイルサイズ(Bytes)画像先頭400Byteの可視化画像ヒストグラムエントロピー(bits/Byte)
318746.7
346487.2
356627.1
407637.1
4410037.1
547507.1
588646.6
11224723.8
12423487.0
1554657.3
22331167.0
2948816.6

 IntenetExplorer、RealPlayerといった、ヒストグラム上で突出している値がある画像はエントロピーが少ない。すなわち、平均情報量が少ない。大体、6bit台である。gooは0近傍の値が突出しているのが足を引っ張り、6.6bitとなっている。これらは、1Byteの8bit中の1bit強が無駄となっているわけである。

 最高点はMacの7.3bitである。8bit中で7.3bitの情報量を持っているのである。逆に言えば、0.7bitは無駄ということになる。しかし、8bit中7.3bit使い切っているのはなかなかのものである。

 それ以外は大体7bit台で拮抗している。しかし、それはいずれもGIF画像である。そう、唯一のJPEG画像である「今日の必ずトクする一言」が3.8bitと低い情報量であるのだ。しかし、これには、いろいろな理由があると思われる。例えば、ファイル全体ではなく先頭のみを見ているため、JPEGのヘッダー部分が入ってしまい、冗長性が高くなってしまっている、とかである。全体でなく、部分で評価しているのは非常にマズイだろう。また、GIFが情報圧縮していることもあるだろう。そのため、JPEG陣営にはかなり不利であったと思われる。

 そうそう、今回は情報圧縮度にだけ注目したから、JPEGに不利な結果になった。けれど、他のいろいろな理由を挙げれば、GIFは使いたくないという気持ちもあるのだけれどね。けど、便利なんだよね。


2000-01-13[n年前へ]

WEBサイトの絆 

WEBの世界を可視化しよう




 目に見えないものを実感できるものにしようと思うことは多い。「直接感じることが出来ないものを感じられる形にする」という作業とその結果には非常にわくわくさせられる。それは、きっと私だけではないと思う。

 目に見えないものは色々ある。可視化して見てみたいものは多々あるのだが、以前、

の時に扱った、WEBのトポロジーなどもその最たるものである。WEBページはもちろん目に見えるわけではあるが、それらがどう繋がっているか、すなわち、WEB[= クモの巣(状の物);織物 ]そのものは目には見えない。

 ネットワークという目に見えない世界でWEBサイト同士がどう繋がっているか、それは企業のWEBサイト同士であれば企業間の繋がりを示すかもしれないし、公的機関のWEBであれば公的機関内部の繋がりが見えてくるかもしれない。そして、個人WEBであれば、個人どうしの繋がりが見えてくるだろう。そして、さらに考えを進めるならば、それが「WEBの繋がりだ」と端的に言い切ってしまっても良いと思う。

 そういう色々なWEBサイト同士が互いに結びつき合う、つまりWEBそのものを今回は可視化してみたい。その結果はきっと「WEBサイトの絆」を私に見せてくれるはずだ。

 例えば、ファイルシステムを可視化するものであれば、

  • xcruise( http://tanaka-www.cs.titech.ac.jp/~euske/index-j.html )
といったファイルシステムを宇宙空間に見たてて、表示するようなものがある。また、そこまで派手でなくても通常のファイラーやエクスプローラのツリー表示などもファイルシステムの構造を可視化しているといっても良いだろう。(そういえば、かつて富士XeroxがWindowsのファイルシステム中のドキュメントを色々面白い3次元表示で表示、検索してくれるソフトを扱っていた。なかなか面白いソフトだったと思うのだが、今ではどうなっているのか?)

 そして、今回の本題のWEBサイトのHyperlink構造を可視化するソフトウェアも、少し探しただけでも結構ある。例えば、

といったところだ。確かappleもこういったツールの開発を行っていたように思うが、どこに情報があるのか忘れてしまった。
 しかし、よく調べていないので間違っているかもしれないが、この辺りのソフト(appleを除く)はWEBサイト内のリンクのみに限られるようである。それでは、今回の目的とは違う。何しろ、今回知りたいのはWEBサイト同士のリンクの度合いである。WEBのトポロジーなのである。

 そこで、もう少し探してみる。すると、今回の目的にかなり近い情報が

に見つかった。perlでWeb Robotを作成し、"*.go.jp"のサイトに放ち、ハイパーリンクのデータベースを作成し、それを解析・可視化したものである。その結果のハイパーリンクの具合を可視化した図が、リンク切れで見ることができないのが実に残念だが、非常に役に立つ情報が満載である。ほとんど、私のしてみたいことそのものである。しかし悔しいことに、その結果の図を見ることが出来ない。そこで、同じようなことを自分でやってみることにした。

 やり方はどうしたら良いだろうか?宮久地氏と同じようにWeb Robotを作成して、データを集めるのが理想的だろう。しかし、「perl入門」を昨日やっと買ったばかりの私にはとても難しそうである。いや、もしそんなことをしたらとんでもないことになるに違いない。

 そこで、perlのlwp-rgetを用いて各WEBの内容をローカルのPC内にダウンロードした上で、勉強がてらperlで解析を行うことにした。と、思ったのだが、lwp-rgetが上手く動いてくれない。まだドキュメントをちゃんと読んでいないせいだろうか?何故か、ダウンロードの途中で終了してしまう。仕方がないので、急遽作戦を変更し、ダウンロード作業はlwp-rgetではなくてwgetを用いることにした。

 行った手順は以下のようになる。

  1. 5つのWEBサイトを広いWEB内から適当に選択する
  2. 選んだ各WEBサイト内のファイルについて、相互のハイパーリンクを抽出し、その数を解析する
  3. その結果を可視化する
 今回選択したWEBサイトはA,B,C,D,Eという5つのサイトである。A〜Dについては、サイト内の全てのページについて解析を行った。Eに関しては、サイト内の特定の1ページについてのみ解析を行った。A〜Dのサイトに関しては、名前は伏せておく。サイトEに関してのみ名前を明らかにしよう。Eは日記猿人というサイトの中の「今月の得票数」を示すページである。そう、今回選択したWEBは全て「日記猿人」という一風変わったコミュニティー内のサイト群から抽出したのである。

以下に、解析を行った結果、すなわちサイトA,B,C,D,Eの相互に対するリンク数を示す。

A,B,C,D,Eの相互に対するリンク数
↓から→へのリンク数
A
B
C
D
E
A
-
0
2
0
27
B
1
-
0
13
273
C
20
2
-
0
43
D
0
11
0
-
285
E
1
1
1
1
-
合計
22
14
3
14
/

 サイトE「日記猿人」へのリンクがムチャクチャ多いのは投票ボタンという形で、他のサイトからリンクがなされているからである。

 さて、上の表からではWEBの絆を実感できないので、「WEBの絆」を3次元空間に可視化するJavaアプレットを以下に張り付けておく。WEBサイトが5つあるので、それぞれのサイトをピラミッド構造(四角柱状)に配置した。
 各WEBサイトの表示色は、

  • A = 赤
  • B = 緑
  • C = 青
  • D = 黄
  • E = 灰
という五色を用いた。そういつぞやと同じ五色である。imacも五色(6?)だが、今回のターゲットサイトも五色なのである。

 それぞれのサイトから伸びる直線の長さは、そのサイトから他のサイトへ向かうリンク数に比例したものにしている。また、直線の太さもリンク数に比例させている。また、それぞれのWEBサイトを示す立方体の大きさは自分へ向かうリンク数に比例させている。ただし、サイトEの大きさはあまりにも巨大なため、リンク数に比例したものにはなっていない。また、サイトE、すなわち「日記猿人」、へのリンクは省略し、全てサイトEからの直線リンクを表示するだけにした。

 さぁ、WEBサイトの構造を自分の目でみて、そしてグリグリ動かして見てもらいたい。このグラフの操作方法は

  • 操作 = 作用
  • マウス左ボタンドラッグ = 回転
  • シフトキー + 垂直ドラッグ = ズームイン・アウト
  • シフトキー + 水平ドラッグ = 垂直軸についての回転
  • コントロールキー + 垂直ドラッグ = 焦点距離の変更
  • マウス右ボタン垂直ドラッグ = 部品除去
  • "s"キー = ステレオ画像作成
である。表示をステレオ画像にして、WEBの世界へダイビングしてみよう。

 Java表示が上手く動かない人のために、静止画も一応張り込んでおく。

WEB構造を可視化したもの

 どうだろう?この5つのWEB間のWEB構造から何が見えるだろうか?こういう解析を数多くのサイトに行うと非常に面白い結果が得られそうである。特に「日記猿人」のようなコミュニティーに対して行うと興味深い結果が得られるはずだ。
 私のような「日記猿人」の日記はほとんど読まない(サイトAに関しては大ファンであるが)人間にとっても興味深いのであるから、関係者にとってはきっと...の筈だ。

 さて、今回はテストのためにごく少数(5つ)のWEBの解析を行ってみた。いつか、こういった解析を広い範囲で行い、そして、時系列的な変化をも調べようと思う。銀河のvoid構造が観測され、可視化されたものを見たときもとてもわくわくしたものだが、WEBの構造・変化ならばどうだろうか?

 不思議なことに、そういうことを考えていると、「新宿都庁」と「思い出横町」が頭の中に浮かんできてしまうのは何故だろうか?押井守の影響だろうか。謎である。

 そして、こうも思う。WEBネットワークの中でWEBサイトは何を感じているのだろうか?これらのWEBサイトはもしかしたら孤独を感じているのだろうか、それとも繋がりを感じているのだろうか?あの時のページの中の一フレーズがその答えの一つなのかもしれない。

2000-01-17[n年前へ]

夜のバットマン 

超音波を可視化しよう

  どんなものに対しても、「超」という文字をつけるという安易な手段はよく使われる。「超人ハルク」、「超常現象」、「超能力少年」、「超解像」等々である。「超Ultra」+「人 Man」ならば「超人 Ultra-Man」、すなわち、ウルトラマンだ。こういう風に並べてみると、何かアヤシげなものが多いような気がするが、それは私の気のせいだろう。

  「超」をつければ、「モノスゴイ」という印象を受けるかというと、必ずしもそういうわけでもない。最近、「お笑いパソコン日誌」でよく取り上げられているBTRON仕様OS「超漢字」などは、その最たるものである。個人的には好きなネーミングなのだが、その名前を聞くと昔の「超兄貴」というゲームを思い出してしまうのだ。筋肉ムキムキなマッスルな兄貴達が動き回るゲームが思い出されるのだ。そして、そんなマッスルなデスクトップのイメージが連想されてしまうのである。困ったものである。

  「超」の発音は同じ日本人でも一定というわけではない。あまりものを考えないタイプの人の場合、「超」でなくて「チョー」という発音するらしい。その使用例が、「チョー、ムカツクー」などである。これらの人を「チョー人」と呼ぶべきである(既に誰かが言っていそうな気がするが...)。

  何故、こんな話になるのだ。話がずれた。

  本題である。今回遊んでみるのは「超 Ultra」+「音波 Sonic」=「超音波UltraSonic」である。色々な応用はあると思うが、まずは基礎から始めたい。そういった場合、色々やり方はあるのだろうが、まずは実感するのが「できるかな?」のやり方である。そこで、まずは超音波を実際に聞いてみることにした。

  普通は聞こえない周波数の音波を超音波というわけであるから、超音波を聞くというのは何ともスリリングである。参考までに、色々な動物の可聴域を以下に示す。
 人間は大抵20kHz前後が上限であり、コオロギと同じくらいである。超音波と言えば、コウモリであり、コウモリは200kHz弱位が上限のようである。

色々な動物のの可聴域
(立体視の不思議を探る 井上弘著 オプトロニクス社より)

   まずは、超音波を聴くための情報を探してみた。すると、何とも素晴らしいサイトがあった。

である。超音波を可聴域に変換する回路の話が掲載されている。超音波を聞こえるようにする機械は、一般的にバットディテクターと呼ばれるらしい。しかもこのサイトの中のバットディテクターを作る話の所には「メーターの変化、デジタル数値やオシロスコープの波形ではなくて実感したい。」と書かれている。本当に、その通りである。

  また、コウモリ探知器である。バットディテクターに関しては、

などにも詳しい情報がある。

  迷わず、先の「がーさんとたぬさんのホームページ」の「釜利谷東ミックスシーズ」から、バットディテクターを購入することにした。こういう楽しいオモチャはすぐに手に入れるに限る。これが、購入したバットディテクターである。

釜利谷東ミックスシーズ バットディテクター

  このバットディテクターは超音波マイクからの入力を40kHz程度の周波数の信号と合成するものである。そして、その結果得られるビート音、うなり音を耳で聞くものである。

  わからない人はほとんどいないと思うが、一応書いておく。例えば、10Hz周波数の音があるとしよう。

10Hzの音の10秒間の波形

  この波形は細かすぎて、この画面では目に見えないだろう。しかし、この波形と11kHzの周波数の音を合成してみる。

10Hzの音と11kHzの音の合成音の10秒間の波形

  すると、10kHzと11kHzの周波数の差である1Hzのうなりが発生する。この1Hzのビート音の波形は目に見えるだろう。こういう原理である。
 しかし、これでは実は説明が不十分であると思うのだが、今回はこれだけの説明で終わらせておくことにする。

  さて、どんな超音波を聴くかであるが、「できるかな?」の実験を行うときには、大抵ビールを飲んでいるのである。今日もビールとお好み焼きがそばにある。そこで、お好み焼きを焼く音を

  • 可聴域
  • 超音波領域
で可視化してみることにした。

  もちろん、私自身は自分の耳で実感しているわけである。しかし、WEBページ上であれば、可視化した方が良いだろう。waveファイルはサイズが大きいし...

お好み焼きを焼く音を可聴域で可視化したもの

  途中のスパイク部はお好み焼きをひっくり返した時の音である。レベルを合わせているわけではないし、実験は実に大雑把なものであるが、そんなに真剣に行う実験でもないのでこれで良いことにしておく。

お好み焼きを焼く音を超音波領域で可視化したもの(実際はビート音)

  硬いものと何かを擦ると超音波が実に多く発生するが、絨毯みたいな柔らかいもの相手ではあまり超音波が発生しなかったりして実に面白い。衣擦れの音などは実にリアルである。何か色っぽい音ですらあるように感じる。(それは私だけかもしれないが...)

  超音波に関してはまだまだ色々とやってみたい実験がある。実は以前秋月で買った超音波マイク・スピーカセットが家に転がっていたりする。これを使って、次回は超音波オモチャを作成してみたいと思う。

  さて、今日はTVで「バットマン&ロビン Mr.フリーズの逆襲」を放映するようだ。バットマンの映画は何故か夜の街が舞台である。
 バットマンと言えば、Bat(コウモリ)+Man(男) = コウモリ男だ。このTVを見たあとの私はきっとバットマンになりきっているだろう。バットディティターを耳に差せば、私だって堂々たるバットマンだ。
 
 というわけで、バットディテクターを耳に差し若葉マークをつけたバットマンは、夜の街へ出撃するのであった。夜のバットマンは眠らないのである(下品なギャグ禁止)。

2000-01-27[n年前へ]

「富士の樹海」を目指せ 

磁界を可視化しよう

 以前から探していた「面白いもの」を入手した。この写真がその「面白いもの」なのであるが、何だかわかるだろうか? ちなみに、大きさは「1cm×5cm」位のシートである。
 

謎の「面白いもの」

 これは「マグネビュアー」というものである。磁界を可視化してくれるシートだ。マイラーフィルムの間に磁性体を混入させたマイクロカプセルを入れることで、磁界に対する配向性を持たせたものだ。と、言葉でいってもなかなかわかりにくいので、磁界を可視化した写真を示してみる。何しろ、百聞は一見に如かずである。
 次の写真は某ピザ店のマグネットシート(よく冷蔵庫の扉に張り付ける奴)の上に「マグネビュアー」をのせたところである。ピザ屋は私の食生活を支えていると言っても良い。私が生きているのはピザ屋のおかげである。
 

某ピザ店のマグネットシートの上に「マグネビュアー」をのせたところ

 私の「命の恩人」でもある某ピザ店のマグネットシートがつくる磁界が見て取れるだろう。磁界が可視化されているのである。

 本WEBではこれまで様々な「可視化」で遊んできた。例えば、

などである。様々な現象を可視化してきた。そこで、今回は磁石がつくる様々な「磁界」を可視化して遊んでみたい。

 上に示した「某ピザ店のマグネットシートの表面」の磁界の様子も面白いが、もっと面白いのは「某ピザ店のマグネットシートの境界」の磁界を可視化したものである。

 それが下の写真である。磁界の様子が実感できるのではないだろうか?
 

「某ピザ店のマグネットシートの境界」の磁界を可視化したもの

 下に示す図はドーナツ型の磁石の周りの磁界をCUPSを用いてシミュレーション計算した結果である。この計算結果と同じようなものが「マグネビュアー」を使うと簡単に可視化できる。
 

ドーナツ型の磁石の周りの磁界をCUPSを用いてシミュレーション計算した結果

 普通、こういった磁界の可視化は磁気造影剤や砂鉄みたいな磁性体粒子を用いるのであるが、そういったものはどうにもハンドリング性にかける。液体や粉体などを家の中で実験に使うのはイヤである。いや、もちろん仕事で使うのもイヤであるが... そこで、この「マグネビュアー」が登場するわけだ。

 それでは、その他の面白そうな磁界を可視化してみたい。磁界と言えば、やはりアレの登場だろう。もちろん、アレと言えば磁気カードである。クレジットカードや銀行のキャッシュカードといった磁気カードだ。一例を次に示してみる。こんなヤツだ。
 

磁気カードの一例

 カードの下に黒い磁気データ記録部があるのがわかるだろう。

 それでは、その「磁気データ記録部」に「マグネビュアー」をのせてみよう。はたして、磁気データは可視化されるだろうか?
 

「磁気データ記録部」に「マグネビュアー」をのせる

 といっても、この写真ではわかりにくいので、「マグネビュアー」を拡大してみよう。すると、バーコードのような模様が見えるのがわかると思う。「磁気データ」が簡単に可視化されているわけである。この「マグネビュアー」と普通のスキャナーがあれば磁気データ読み取り機がなくても磁気データが読みとれるのである。
 

「磁気データ」が簡単に可視化されている

 しかし、このカードに関しては内容を解析するとマズイ事情があるので、次回に「ソフマップ」のカードを題材にして磁気カードの内容を可視化してみるつもりだ。題して、

  • ソフマップでお買い物 - 磁界の可視化とバーコード - (仮称)
である。

 さて、話は変わるが、私はこの「マグネビュアー」を手に「富士の樹海」を目指すつもりだ。「富士の樹海」では」方位磁針が変な方向を示すと伝えられている。そしてまた「富士の麓」ではとかく人は判断を誤りやすいとも聞く。船頭多くして船山に登ると言うが、「富士の樹海」には判断を誤った船が沈没しまくりである。

 私は「富士の樹海」の真実をこの「マグネビュアー」で明らかにするつもりだ。「富士の樹海」の謎を明らかにするのである。何故、方位がそして人が判断を誤るのか、その謎を明らかにするのだ。

 しかし、もしも、もしも、の話であるが、本WEBの更新が止まった際には、「富士の樹海」で私が眠っていると思って欲しい。「マグネビュアー」が役に立たないはずがないのだが、きっと何か判断を間違えたのであろう。そうそう、あくまで「富士の樹海」である。「富士の裾野」ではないので念のため...
 

2000-01-30[n年前へ]

ソフマップでお買い物 

磁界の可視化とバーコード

 前回、

で「マグネビュアー」を使って磁界の可視化をして遊んでみた。今回はその続きである。ソフマップの磁気カードの中に書き込まれている磁気データを可視化して調べてみるのである。

 磁気カードには、

  • 銀行のキャッシュカード
  • クレジットカード
  • テレホンカード
  • オレンジカード
などなど色々と使われている。ここで例に挙げたようなカードの解析はすでに行われている(多分)。それに加えて、これらのカードの解析にはかなり危険な香りがする。もちろん、あまり解析が難しそうなものを題材に選ぶと後悔すること必至である。そこで、割に無意味で安全そうな磁気カードを選んでみたわけだ。それがこのソフマップカードである。

 まずは、ソフマップカードの写真を示してみよう。これがソフマップで買い物をするたびにお世話になるソフマップカードである。
 

ソフマップカード

 この写真からではどこにデータが書き込まれているのかわからない。そこで、「マグネビュアー」の登場と言いたいところであるが、残念ながら今回は「マグネビュアー」は登場しないのである。「マグネビュアー」はとても便利なのであるが、さすがに磁気カードの磁気データを読もうとすると分解能が不足する恐れがある。

 そこで、代打選手に登場願うことにした。代打選手はキヤノン製のLBPのトナーである。以前、

の時に「トナーはクーロン力で制御されて画像を作るのだ」という話があった。キヤノン製の白黒のLBPではクーロン力に加えて磁気力を使ってトナーを制御している。なので、キヤノン製の白黒トナーは磁性体粉末ということになる。

 テレホンカードが出た頃はキヤノン製のトナーを使ってデータを読み出していた人も多いはずである。みな、テレホンカードの表面を削りトナーを振り掛けていたのである。というのは、聞いた話であり、実体験に基づくものでは絶対にない。神に誓っても良い。その頃にキヤノン製のトナーを使い倒していたということは絶対にないのである。しかも、その数年後に(以下略)。

 それでは、磁性体の微少粉末であるトナーをソフマップカードに振り掛けてみよう。
 

トナーをソフマップカードに振り掛けてみる

 ソフマップカードの磁気データが可視化されたのがわかると思う。磁気によるバーコードが見えるだろう。これがソフマップカードに書き込まれている磁気データである。
 とはいえ、トナーの付着具合にムラがある。それは私が雑に実験を行ったからである。こんなにムラがあっても磁気コードが判別できるかどうか疑問を持たれる方も多いと思う。しかし、

の時にやったように、そこは1次元バーコードの特徴を使えば大丈夫である。ここで、もう一度挙げておくと、
  1. 読む方向に対して垂直な線が多い
  2. 読む方向に対して水平な線は少ない
という特徴である。磁気データのバー方向にはまったく同じデータが書き込まれているので、磁気データのバー方向に画像を平均化することでノイズを減少させることができる。
 そのようにして、ノイズを減らし、S/N比を上げた画像を示してみる。
 
S/N比を上げた磁気データ部分の画像

 どうだろうか、驚くほど綺麗になっているのがわかると思う。まさか、と思われるかもしれないが本当である。
 さて、これはソフマップカードの磁気データの全体像であるが、もう少し拡大したものを以下に示す。
 

S/N比を上げた磁気データ部分の画像の拡大図

 極めて明瞭に磁気データが可視化されているのがわかると思う。これはトナーを振りかけて、1万円ちょっとのスキャナ(CanonのUSB接続の安物スキャナ)で読み込んだものに対して先の処理をしただけである。これほど明瞭になるのも、全て1次元バーコードの特徴のおかげである。磁気ヘッドの制作などをしなくても良いのである。

 磁気カードの記録密度は銀行統一仕様(NTT)でもISO3554でも8.3bit/mm=211bit/inchであるから、最近の600dpi(dot/inch)程度のスキャナーであれば十分磁気データの画像読みとりが可能である。
 
 それでは、もっと拡大してみる。拡大する部分は上の画像の右の辺りである。すると、このようになる。
 

S/N比を上げた磁気データ部分の画像の拡大図の拡大図

 データ間隔がわかりやすいように、ここでは矢印や文字を書き入れている。この画像を見ると、磁気データは規則的な細かい周期性を持ち、その周期でいうと8つ単位でさらなる周期性があるように思われる。つまり、8bitをひとまとまりとしたデータが書き込まれているように見える。例えば、上の画像では

  • ( 白、白、白、白、白、白、黒、黒 ) x 2
というデータに見える。二進数で言うと
  • ( 00000011 ) x 2
であり、ケンシロウ進数で言うと、
  • ( ああああああたた ) x 2
である。ソフマップカードの磁気データのほとんどの部分はこの( 白、白、白、白、白、白、黒、黒)パターンでしめられている。これは当然データの空白部だろう。そして、見るからに意味あるデータが書き込まれているだろう部分が以下の色を着けた部分である。
 
S/N比を上げた磁気データ部分の画像の拡大図の拡大図

 複数枚のカードのこの部分を比較してみれば、比較的容易にデータ構造は解析することができるだろう。また、一枚のカードからでもカード番号などの数字と磁気データを比較することにより、解析することはやはり困難無しに解析できると思うのである。と、思うわけではあるが、あまりやりすぎるのはマズイと思われるので、今回はこれまでにしておく。
 



■Powered by yagm.net