イメージサーチ/テキストサーチ

コンテンツ:

  1. イメージ・サーチとはbasic
  2. イメージサーチの実行basic
  3. バケット・サーチbasic
  4. サーチ結果の管理
  5. テキストサーチbasic
  6. Spread Selection Listの保存と呼び出しbasic
  7. 行・行情報ファイル・DSCファイルadvanced

basicは初心者も必ず読むべき項目を、advancedはアドバンスドな項目を表す。

イメージサーチとは

手書き史料の判読を進めてゆく際、筆跡の汚さなどのために判読が困難な文字列に行き当たる場合があります。 この場合、他の箇所の文字列との対比から内容を類推するといった対処が有効ですが、このような作業は多大な労力を必要とします。 また、ある単語が史料の中に出現する場所や頻度を調べるためには、史料のすべてに目を通すことが必要になり、これも膨大な作業量になります。史料の判読に伴うこうした労働を軽減するために作られたのが、Image Documentに対するイメージサーチの機能です。

イメージサーチはテキストで使われるサーチと同じ名前であるために、誤解する人がありますが、これはエディタやワードプロセッサなどの意味でのテキストのサーチではなくて、WEB検索、たとえば Google WEB検索に似たものです。Google で検索をすると自分が考えたものと関係ないものも沢山でてきますし、自分が思っていたものは順位が500番くらいになって、それよりランクのよいものは実は関係ないものばかり、ということがありえます。テキストサーチはクエリーさえ間違っていなければ検索しても見つからないということは、存在しない、ということと同義です。テキストサーチでは、見つかったもの=存在するもの、であるわけです。しかし、WEB検索では、見つかったページのどれが正しいかはユーザが自分で判断することになりますし、WEB上に自分が欲しい情報は存在しながらランクが低すぎたり、クエリーが検索したいものと少し違っているためにヒットしなかったり、ということがありえます。ですから、WEB検索で探して見当たらなかったから、そういう情報はない、などと断言することはできません。イメージサーチもWEB検索と同様で、どれが正しいかの最終判断はユーザが行ないます。イメージサーチは候補を示してくれているだけです。また、イメージサーチで上位に見つからなかったから、同じ(ような)ものが存在しないということはできません。ある手書文書の一箇所と、別の手書文書の一箇所が同じことを書いているのかどうかが、学術的研究になる場合さえあり、そういう場合は史料に就いての膨大な背景知識、例えば、筆記者の学問的背景、その当時の学問の一般的背景、さらには人間的背景、社会的歴史的背景などについての知識、を総動員して、ようやく同定できるということは珍しくないのですから、そういうことを知らないコンピュータに判定させることは無理なのです。

イメージサーチを使うことにより、特定の文字列の収集や文字列同士の比較を効率よく行うことができます。

イメージ・サーチの実行

まず、検索対象となる史料が縦書きの文章であるか、横書きの文章であるかを指定します。 これは、メニューの「Preference」から、「Text Type」の「Vertical」と「Horizontal」で選択します。 一度設定すれば、サーチの度に設定を行う必要はありません。

縦書き/横書きの設定をしたら、イメージの中でサーチの対象となる部分の画像(クエリイメージ)を指定します。

クエリイメージの指定には、ワークベンチで説明した「イメージのマークアップ」のためのツールを使用します。 画像のマークアップするためには、どのマークアップでも用いることができますが、ここでは例として「Rectangle」を選択して、画像中の「Scheler」という文字列をクエリイメージとして指定することにします。

Rectangle を用いて、画像中の「Scheler」という文字列を囲みます。 これで「Scheler」という文字列がマークアップされます。

マークアップされたクエリイメージを選択し(Rectangle が赤色に変色します)、ツールバー上段中央のをクリックします。

すると、「Search」というダイアログが現れます。 このダイアログには、「Image Search」というタブと「Global Search」というタブがあります。 Global Search については「グローバルテキストサーチ」の項で説明します。 また、マークアップを選択していない状態で「Image Search」のタブを開くと何も表示されませんので、選択してから開いて下さい。

このダイアログでは、サーチをかけるイメージの範囲を指定します。

All Images
root 以下のディレクトリ及びそのサブディレクトリに含まれるすべてのイメージをサーチします。
Current Directory
現在編集しているイメージを含むディレクトリに含まれる、すべてのスプレッドをサーチします。
Spread Selection List
サーチを行うイメージを具体的に番号で指定することができます。 イメージの番号とは、画面左にあるイメージツリーで、各々のイメージの左に表示されている数字のことです。 例えば、2番、4番のイメージと、6番-10番のイメージすべてをサーチの範囲として指定したい場合は、「Select」直下にある空白部分に半角で「2, 4, 6-10」と記入してください。 また、Spread Selection List は List を名前をつけて保存することもできます。これについては、 Spread Selection Listの保存と呼び出し を参照してください。

ここでは現在編集しているイメージにサーチの範囲を限定することにして、番号0を記入しました。

なお、イメージサーチの対象となるスプレッドは、DSCファイルが作成されているものに限られることに注意してください。 DSCファイルが作成されているイメージには、画面左のイメージツリーで、イメージ名の後に"[*]"または"[**]"という文字列が加わります (DSCファイルについては「行切り出し・DSCファイルの作成」の項を参照してください)。 逆に、イメージ名の後に"[*]"または"[**]"と書かれていないイメージには、DSCファイルが作られていないということです。 下の図を見ると、「LectureNotesS09」フォルダ直下にある0番から8番のスプレッドにはDSCファイルが作成されていることが分かります。

09 上記の説明は SMART-GS 0.8 の場合ですが、SMART-GS 0.9 ではサーチダイアログが次のように改造されています。

searchwindow09

09 追加された Options パネルはサーチの options を指定するためのパネルです。今後、さまざまなオプションを追加する予定ですが、SMART-GS0.9のOptionsでは外部サーチエンジン DscSearch での検索の際のDscSearch 一回の検索の最大容量(2M-200M)と、検索方式を Concurrent (並行)とSequentail(逐次)のどちらにするかを指定することができます。DscSearch はサーチをかけるイメージの範囲が多く、範囲に入る画像の(DSCファイルの)おおきさの総計が200M程度を超えると能力オーバーになり検索をすることができませんでした。この問題を解消するため、SMART-GS0.9ではサーチをかける範囲を200M以下の小範囲に分割し、それぞれを検索した後に、その検索結果を集計して表示しています。この機能の導入により原理的にはどのように沢山の画像群でもサーチができるようになりました(ただし、ひとつの画像のおおきさが200Mを超えるものは検索ができません)。Options の下部にある 2Mから200Mの範囲のスライディングバーは、この小範囲の最大値を指定するためのもので、デフォールトでは図のように DscSearch の標準能力を少し下回る 200M に設定されています。

09 SMART-GS0.9はでフォールトでは、サーチをかえるイメージの範囲を指定された容量以下の小範囲群に分割した後、そのそれぞれの小範囲を検索する DscSearch を、その小範囲の数だけ呼びします。マルチコアのPCで検索する場合でメモリが十分あれば、呼び出された複数の DscSearch は並行に実行されますので、PCによってはサーチの時間が著しく短縮され、場合によっては逐次検索する場合にくらべて数倍のスピードがでることもあります。しかし、古いPCなどの場合には、一度にたくさんのDscSearch を呼び出して並行実行する方法は、それほどの改善の効果はなく、場合には却って遅くなったり、OSのパーフォマンスに影響がでるなどの問題を起こす可能性さえあります。もしデフォルトの設定(Concurrentサーチ)で非常に遅い、他のアプリが遅くなったなどの問題が起きた場合は、Options の Sequential を選んでみてください。これは小範囲を順番に検索する方法なので時間はかかりますが、PCへの負荷が減るので、問題が解消するかもしれません。しかし、一度に検索する画像の総容量(正確には画像のDSCファイルの総容量)がPCのメモリと同じくらいもあるなどというような場合でない限り、デフォールトのとおり Concurrent で 200M の範囲での検索をすることを勧めます。

参考: 西田幾多郎の手書き原稿2853枚、DSCファイル全容量1.18Gの検索では、2011年発売開始のIntel Xeon E3-1245, 4コア, 8スレッド、3.30 GHz, メモリ16G(実際に使われたのはOS等を含めて3-4G)で Concurrent, 200M (default設定)で10秒、Sequential , 200M で35秒程度。また、2006年発売開始の Intel Core2 CPU E6400 2.13GHz, メモリ 1G を使用した場合では、default の Concurrent では大変に遅くなるので、sequential, 200M にして検索するとおよそ2分半だった。

サーチをかけるイメージの範囲を指定し終わったら(09 SMART-GS0.9では、Options も指定し終わったら)、「Search」ボタンを押してサーチを実行します。 少し待つと、次のようにサーチ結果の一覧が表示されます。 09091では表示が改善され、特に後者では小さい画面のノートPCで利用する場合を考慮してスクロールバーが追加されるなどしていますが、本質的な変更はありません。

ここでパネル内の画像にマウスカーソルをかざすと、サーチにヒットした文字列が拡大して表示されます。

サーチ結果の中には「Scheler」という文字列に該当するものと該当しないものが含まれています。

上図のように、各々のサーチ結果の画像には隣に「Yes」、「No」という2つのチェックボックスが置かれています。 このボックスの役割についてはこの後のバケット・サーチの項で説明するのでそちらを参照してください。

サーチ結果の画像をクリックすれば、その画像が含まれているイメージを新しいウインドウで開くことができます。 このとき、赤く太いRectangle で囲まれているのが、サーチにヒットした文字列です。

なお、サーチ結果の表示方法は「Search Result」ダイアログの「Option」メニューから「DisplayMode」メニューで変更することができます。

以下の二つの表示方法があります。

Line Mode
サーチにヒットした文字列を、その周辺部分も含めた中程度の大きさの画像で表示します。 Context Mode と同様にヒットした文字列は薄く灰色に着色されて表示されます。 サーチ結果の一覧は縦一列に表示されます。

Segment Mode
サーチにヒットした文字列のみの画像を表示します。 これが標準の状態です。 サーチ結果は下のように碁盤状に並んで表示されます。

バケット・サーチ

上で例として行ったサーチでは、イメージに含まれている「Scheler」という文字列のいくつかを見つけ出すことができました。 しかしながら、求める文字列が漏れなく見つけ出せているとは限りません。 また、あるクエリイメージではヒットしなかった文字列が、別の箇所にある文字列をクエリイメージとして用いることでヒットする、ということも十分あり得ます。 このようなサーチの取りこぼしを防ぐために実装されているのが、検索結果を「バケット」に入れてクエリイメージとし再利用する機能です。

サーチにヒットしたイメージを収納しているパネルの左側には、「Yes」、「No」という2つのチェックボックスがあります。

ここで「Yes」にチェックを入れると、下図のように「Bucket」ダイアログが現れ、チェックを入れたイメージがBucketの中に加わります。

このバケットには、サーチ結果をいくつでも入れることができます。 また、Image Search で行ったようにそれぞれのイメージをここで編集することができます。 また、ここで「No」を指定するとそれ以降のサーチにその文字列は出現しなくなります。 これによって、イメージを無駄に確認する手間を省くことができます。

ここで「Bucket」ダイアログ下部にある「Search」ボタンを押せば、バケットに収納されている複数のクエリイメージを用いてサーチをかけることができます。 下図は上のバケットでサーチを実行した結果です。

パネルの左上に赤文字で「NEW」と書かれているものは、前回のサーチではヒットしなかった文字列を表しています。

のマークが付いているパネルは、バケットの中に含まれているクエリイメージです。 何もマークがついていないパネルは、前回のサーチでもヒットした文字列を表します。

バケットを使って行ったサーチ結果をさらにバケットの中に加えて、再度サーチを実行することができます。 この作業を繰り返すことによって、サーチの取りこぼしを防ぎ、またサーチの精度を上げていくことが可能になります。

サーチ結果の管理

SMART-GSでは、サーチの履歴を保存できます。保存するには Bucket ウィンドウの「Register」ボタンを押します。

すると次のダイアログが現れるので名前と説明(任意)を入力します。

この履歴は Reasoning Web で見ることができます。 サーチを行った後、Reasoning Web の「Desktop View」を見るとここに「Scheler」というアイコンができています。 この中に登録したクエリの情報が保存されます。

このアイコンをダブルクリックすれば、保存したバケットを開くことができます。

Desktop View 上にフォルダを作成してバケットを整理することができます。Desktop View の右側のアイコンが表示される領域で右クリックをすると、「Create New Folder」という項目がポップアップするので選択します。名前を尋ねるダイアログが開くので名前を入力します。するとその名前のフォルダが作成されます。

作成したフォルダにバケットをドラッグ・アンド・ドロップするとバケットはフォルダに移動します。また、フォルダをダブルクリックすると、現在のフォルダが、そのフォルダになり、フォルダの中身が表示されます。そこでさらにフォルダを作ることもできます。フォルダの中のアイテムをElements で選択した状態で、メニューの「Up With Selected Elements」を押すと、そのアイテムが親フォルダに移動します。また「Up」を押すと現在のフォルダが親フォルダになります。

テキストサーチ

SMART-GSでは、手書き史料の翻刻や注釈、翻訳などを記入するための IDAT や、また汎用に用いることができる Noteなど、さまざまな種類のテキスト(Coded Document)が用意されています。 これらのテキストに対して、通常の文字列検索をかけるのための機能が、テキストサーチです。 テキストサーチにはテキスト全体を検索対象とする「Global Text Search」と、特定のテキスト内のみを検索対象とする「Text Search」の2種類のコマンドがあります。

グローバルテキストサーチ

まず、ツールバーのを押すと、「Search」というダイアログが表示されます。 標準では、Image Search のタブが表示されているので、Global Search のタブに切り替えます。

ここで「Find:」と書かれた欄に検索をかけたいテキストを入力し、サーチをかけるイメージの範囲や、サーチをかけるテキストの種類などを選択します。 IDAT はいずれも特定のイメージに関連付けられているので、これらのテキストにサーチをかける際は、対象となるイメージの範囲を指定しなければなりません。 この範囲の指定の方法は「イメージサーチ」と同様ですので、そちらを参照してください。

さて、例として「Scheler」という文字列をサーチの対象として入力しました。 ここで「Case sensitive」というボタンにチェックを入れておくと、検索の際にアルファベットの大文字/小文字を区別します。 ここで「Search」ボタンを押せば、検索結果一覧が表示されます。

上の図のように、サーチにヒットした文字列は黄色くハイライト表示されます。 ここでサーチ結果が表示されている画像をダブルクリックすれば、サーチ結果を含むテキストの編集画面にジャンプすることができます。

ローカルテキストサーチ

Editor などに 「Text Search」というボタンがありますが、これをローカルテキストサーチといいます。 これのサーチの範囲は、そのボタンが属しているエディタ/ブラウザで現在見ているテキストです。 つまり、この機能は通常のエディタなどのサーチと同じです。 グローバルテキストサーチではサーチ結果が一覧表として表示されましたが、「Text Search」では見つかった場所にカーソルが飛ぶようになっています。

正規表現と大文字小文字

また、例で示したように、文字の一致によるサーチのほかに、正規表現によるサーチも行うことが可能です。 正規表現によるサーチを行う場合は、「Regular expressions」にチェックしてサーチを行ってください。 Javaの正規表現ライブラリを使用しているので、正規表現の表記法は、Java のものに従う必要があります。 また、大文字・小文字を区別するかどうか、つまり、case senstive にするかどうかも option で指定できます。

文字列の置換

サーチに関連する機能として置換があります。 グローバルテキストサーチに対応する置換を行うには、Global Text Search のダイアログを開き、「Search」ボタンでなく「Replace」ボタンを押します。 そうすると、置換用ダイアログが開きます。 このダイアログには、「Find」「Replace/Find」「Replace」「Replace All」の4つのボタンがついています。 それぞれ「検索」「検索して置換」「置換」「該当箇所を全部を置換」という意味です。 検索や置換の様子は該当するテキストの部分がウィンドウで表示されて置換される様子を見ることができます。 現在開いてないテキストで置換が起きる場合は、新たなウィンドウが開いて置換の様子を表示します。 そのため、置換が起きる箇所を含むテキストが100個あるときに、「Replace All」を実行するとウィンドウが100個も開いてしまいます。 これを防ぐには、「No New Windows」というボックスにチェックを入れておいてください。 そうしますと、置換は行われますが、その過程の自動表示は行われなくなります。

ローカルテキストサーチに当たる個別テキストごとの置換を行うには、「Text Search」ボタンを押すと、グローバルテキストサーチの置換用ダイアログと殆ど同じものが開きます。 この場合は「Replace All」の際に新たにウィンドウが開くことがないので、「No New Window」ボックスはありません。

Spread Selection Listの保存と呼び出し

イメージサーチ、グローバテキストルサーチでは、Spread 番号(イメージ番号)を使って、サーチのスコープ(範囲)を 1, 3-5, 100, 102 のような Spread Selection List で指定することができました。しかし、複数のフォルダ単位でサーチをしたいときなど毎回、こういうリストを入力するのは不便です。そのために Spread Selection List に名前をつけて保存することができます。

これを行なうには、Spread Selection Listのフィールドに、 1, 3-5, 100, 102 のようなリストを書き、Save ボタンを押すと、図のようなダイアログがでますので、そこでこのリストの名前を入力して「了解」を押すと登録ができます。

Spread Selection List はイメージについている通し番号で指定しますが、イメージの通し番号は、イメージの順番を変えたり、イメージを追加・削除する事により変更されますが、この様にして名前をつけたリストは、その変更に合わせてリストの記述が変わりますので、イメージの通し番号が変わった後も同じように使うことができます。つまり、Spread Selection List を登録していても、イメージツリーは自由に変更してよいということです。(イメージを削除すると、登録されたリストが、そのリストから削除されたイメージを除いたリストの記述に変わります。)

登録されているものは、Show ボタンで次のように表示されます。たとえば list1 のリストを使いたいときは、図のように右のチェックボックスにチェックを入れ、Load ボタンを押すと Spread Selection List のフィールドにこのリストが読み込まれます。また、Delete を押すと、チェックしたリストがこのリストの表から削除されます。

このような名前つきリストはGUIを使って作ることも可能です。メニューバーの Search から Speaad Selection Listを選ぶと次の様なウィンドウが開きます。

これはイメージツリーと同じように開くことが可能なツリーなのですが、イメージツリーと違い、イメージの左にチェックボックスがついています。たとえば、最初のフォルダを開いて、幾つかのチェックボックスにチェックを入れるたものが次の図です。

チェックは、次の図のようにフォルダを選んで右クリックして出てくるメニューを使い、フォルダ単位でつけたり外したりも可能です。

この様にして必要なイメージを選んだ後、 Save ボタンを押しますと、サーチのダイアログの Spread Selection List の時と同様にリストの名前を聞くダイアログが現れるので名前を入れて「了解」を押せば、選んだイメージのリストに名前がついて登録されます。また、登録済みのリストの名前を覚えていれば、Read ボタンを押してでてくるダイアログに、その名前を入力して、そのリストをこのツリーに読み込みこともできます。そして、それを変更して保存すれば既存のリストの編集ができますし、別の名前をつけて新しいリストとして保存することも可能です。また、Show ボタンはサーチのウィンドウの場合と同じく、登録されているリストの表を表示します。

行・行情報ファイル・DSCファイル

この節では、イメージサーチや行番号表示を可能にする、イメージドキュメントの行情報ファイルやDSCファイルの作り方・配置の仕方を説明します。 行情報ファイルの作成、DSCファイルの作成はコツを必要とする難しい作業ですので、初心者の人はWEB上で公開されているファイルをダウンロードしたり、馴れた人にこれらのファイルの作成を依頼した方がよいでしょう。

また、行情報ファイル、DSCファイルを作るには、寺沢憲吾氏が作成したツールを使いますが、いずれも Windows でしか実行できません。そのため、以下で説明する作業は、Mac やLinuxで行なうことはできません。一旦、Windows で作業を行い、出来たファイルを Mac や Linux の所定の位置にコピーしてください。

通常の史料の場合、一旦馴れてしまえば、その基本的手順は簡単なのですが、特別に複雑な行の構造をもつ文書や、何等かの理由で、そのイメージの容量が膨大な場合などには、DSCファイルの作成(DSCファイルのコンパイル)が行の複雑さのために失敗する事があります。これは滅多に起きないのですが、SMART-GS0.8のリリースにサンプルとして添付されている田辺元史料では、配布されている範囲では大きな問題は生じませんでしたが、それより後のページでは、実際にこれが頻繁に起きました。そのため行情報、DSC両ファイルの作成には多大の時間がかかっています。これは、おそらく縦書きが横書きが複雑に混在する史料だからと思われます。しかし、京都学派デジタルアーカイブkyoto-gakuha.info で配布されている西田幾多郎の手書き原稿などでは、同じ原稿用紙に枠をほぼ守って綺麗に書かれているため、簡単にこの作業を行なうことができました。多くの場合は、田辺史料のようなことはなく、前処理の方法さえ理解しておけば、それほどの困難な作業にはなりません。すべて手作業で行なっても、行数が60程度まででしたら、ひとつのイメージにかかる時間は数分というところでしょう。行切り出しは一度やればよいので、これは十分ペイするコストです。特に翻刻は大変知的な作業で知識のない人に任せることはできませんが、行切り出しは、史料の読めない子供でもできる仕事なのでアルバイトなどに任せることも可能です。(もちろん、行の同定自体が研究になることもありますが、そういうケースは、我々の経験からすると極めて稀です。)

イメージサーチのための前処理の流れ

あるイメージに対して、イメージサーチを可能にするためには、前処理として次の3ステップが必要です:

  1. 画像内の「行」の切り出しを行い、その情報を保持する行情報ファイルを作る。
  2. 行情報ファイルファイルとイメージファイルから、さらにDSCファイルという特殊な形式のファイルを作成する。
  3. DSCファイルを所定の場所に置く。 また、必要に応じて行情報ファイルも所定の場所に置く。

以下、このそれぞれを詳しく説明しましょう。

行情報ファイルとその作成

行情報ファイルには、テーブル形式のsegfo形式と、 XML形式の二つの形式があります。XML形式の行情報ファイルは、サーチのためだけではなく、ワークベンチの章、ドキュメントを開くの節、の行の表示で説明したイメージの行の表示にも使われます。segfo形式のファイルは、tbl2xml.jar という Java プログラムで XML形式に変換可能なので、以下では segfo ファイルを基本にして説明を続けます。(京都大学、文学研究科、林研究室で作成された tbl2xml.jar は、下で説明する SegfoMaker改 と一緒に配布されています。)

イメージドキュメントの一つの行とは、そのイメージに含まれるポリゴンの節点のリストです。そして、そういう行のリストによりイメージドキュメント全体の行構造が指定されます。その中には空のリスト、つまり、『行が何も指定されていない』状態も含まれます。論理的にはSMART-GSのイメージドキュメントとは、文書のイメージと、それについての行情報ファイルからできています。イメージドキュメントはもし改変を受けるとすれば、その改変の結果は、同じイメージではなく、別のイメージと理解されます。つまり、SMART-GSでは画像は変化しないものとして考えられているのです。しかし、一方で、イメージに部髄する行情報ファイルは変化するものとして理解されています。つまり、あるイメージファイルに対して行情報ファイルは、空から最終的な行指定までの多くのバージョンがあるのです。

そういう行情報ファイルを作る一番原始的な方法は SMART-GS を使う方法で、次の図の赤い矢印で指示されたアイコンで開く行情報エディタを使う方法です。

このエディタの Edit Line Segments を押しますと、マークアップのポリゴンと同じやり方で行を描くことが可能で、その他の機能を使ってそれを書き込んだり、大きさや位置を変えたりなどの操作が可能です。しかし、行情報エディタは、2011年10月現在、まだ開発途中で不完全かつ不親切なので、これを使うことは薦めません。行切り出しを行ないたい場合は、寺沢憲吾氏が作った行情報作成用ツール SegfoMaker を、京大文学研究科情報・史料学専修で改良した SegfoMaker改 というツールを使うのが、今は一番便利です。このツールは、こちらのサイトからダウンロードすることができますので、使いかたなどは、そちらを参照してください。尚、SegfoMaker改 の機能を、すべて行情報エディタに移植することが計画されており、これが完成すれば SegfoMaker改 ではなく、SMART-GSで行情報を作成することになります。

以下では、SegfoMaker改 で行情報ファイルを作ったとして、それを前提にして話を進めていきます。たとえばS09_001.jpg というファイルに対して SegfoMaker改 により、S09_001.segfo というファイルができたとして、これを前提に話を進めます。

行表示のための前処理

イメージサーチを行いたいだけでなく行表示もしたい、あるいは、イメージサーチではなく行表示が目的だという場合には、SegfoMaker改 のサイトで配布されている tbl2xml.jar という簡単な Java プログラムを使い、S009_001.segfo  から S09_001.xml という XML形式の行情報ファイルを作ります。そして、このXMLファイルを S09_001.jpg が於かれているフォルダに置きます。行表示のための前処理は、これだけで完了です。行表示のボタンを押せば行が表示されるはずです。

DSCファイルの作成

行情報ファイルができたら、次にDSCファイルを作成します。これには寺沢憲吾氏の Segfo2dsc.exe というツールを使います。これは SMART-GSが呼び出して使っているツールで、SMART-GS をインストールしたフォルダに置かれています。ここで作業をすると、他に悪影響を与えるといけないので、SMART-GSのフォルダにある Segfo2dsc.exe と Sefo2dsc.ini を何処か別の作業用のフォルダにコピーして(SMART-GSが使っているので移動してはいけません。コピーしてください)、そこで作業をした方が良いでしょう。

そのフォルダに S09_001.jpg のような画像と、その行情報ファイル S09_001.segfo を置き、Segfo2dsc.exe を起動すると現れる次の図のようなウィンドウに行情報ファイル S09_001.segfo をドラッグ&ドロップします(XML形式の行情報ファイルでも構いません)。

そうすると図にもあるような dsc というフォルダができて、その中に S09_001.dsc というファイルが出来ます。DSCファイルの作成には少し時間がかかります。Segfo2dsc.exe は何時DSCファイルができたかを知らせてくれないので、もうできたと思って Segfo2dsc.exe を停止させたり、作成中のDSCファイルを使おうとしたりしないでください。何時操作が終ったかは、ファイルのサイズの変化が止まったときだと思えばよいでしょう。

DSCファイルの配置とイメージツリーでの表示

出来た DSCファイルは、イメージファイル S09_001.jpg が置かれているフォルダに dsc という名前のフォルダーを作って、その中におきます。これでS09_001.jpg のイメージサーチができるようになります。

DSCファイルを所定の位置に置いて画像検索が可能になると、イメージツリーでのイメージの表示が変わります。DSCファイルが dsc フォルダ(あるいは、それに変わるフォルダ)に置かれていると、次の図の青枠で囲んだイメージのように [*] という記号がイメージ名の横につきます。緑枠で囲んだイメージは、これがないので検索はできません。

青枠と緑枠の間にある赤枠で囲んだファイルも検索可能なのですが、これは通常とは少し違った方法で検索されます。これについて、次の項で説明しましょう。

アフィン写像による行情報変換

少し前までは文書館や図書館などが提供する史料の複写物といえば、マイクロフィルを焼いたものが主流でした。それをPC上で使おう場合には、ドキュメントスキャナーなどで自分で読み込んでいました。しかし、最近では高精度カラーデジタル画像がで最初からデジタル画像として提供されるケースが増えています。この様な理由で、同じ史料を、モノクロデジタル画像とカラーデジタル画像の両方で持つというケースも珍しくありません。カラー画像の欠点は、まだまだ価格が高いことなので、カラー画像が買えることが分かっていながら、モノクロのマイクロフィルムから作られた画像を買って研究をし、将来、まとまった研究費が得られたときにカラー画像を購入しようというような人も少なくないはずです。

この様なときに、モノクロ画像を行切り出しをして利用していたが、カラー画像を買ったら、大きさが異なっていて行切り出しをもう一度やり直さなくてはならないというようなケースがあります。このようなときには、もし二つの画像が数学で言うアフィン写像で対応するならば、新しい画像用の行情報を古い画像の行情報をアフィン写像で変換して作ることができます。SMART-GSの行情報エディタの Zoom & Move というのは、これのための機能で、拡大・縮小と平行移動ができるようになっています。まだ、回転がありませんが、近い内に実装する予定です。

通常は、その様にして作った新しい行情報ファイルから新しいDSCファイルを作るのですが、SMART-GSには、この新しいDSCファイル作成を省ける機能があります。それがアフィン写像による行情報変換を利用したイメージ検索です。

今、S09_001.jpg という画像に S09_001.xml という行情報ファイルが与えられているとします。そして、同じ内容ながら、例えば、2倍の大きさのある精度の高い S09_001high.jpgというイメージファイルが手に入ったので、これで S09_001.jpg を置き換えたいとします。このときには、まず、 行情報エディタを使い、S09_001.xml を拡大して、S09_001high.jpg に行情報ファイル S09_001high.xml を作ります。

つまり、次の四つのファイルがあることになります。

  1. S09_001.jpg
  2. S09_001.xml
  3. S09_001high.jpg
  4. S09_001high.xml

この四つを次の様な場所に名前を変えながら置き換えます。

以上のようにしますと、古い小さな画像のイメージファイルは破棄され、そのXML形式行情報ファイルが、dscフォルダに、そして、dscフォルダには、古い小さな画像のための dsc ファイルがそのまま残っていることになります。また、画像のフォルダには、新しい大きな画像と、そのための行情報ファイルが置かれていることになります。この様な状態のとき、より正確に言えば、dscフォルダに S09_001.xmlという行情報フォルダがあれば、S09_001がS09_001 [**] と表示されます。

この時、SMART-GS は、大きな画像と小さな画像の両方の行情報ファイルを比べて、二つの画像の間を変換するアフィン写像を作ります。そして、新しい大きな画像でイメージサーチのクエリであるレクトアングルが指定されると、それをこの写像で変換して、小さい画像の対応するレクトアングルに変換します。そして、それをクエリとして、小さい画像用のDSCファイルを使って検索を行い、検索結果を、今度は先ほどのアフィン写像の逆写像を使って変換し、大きな画像用の答とします。

この様にしますと、DSCファイルの作成、行情報ファイルの作成のコストを下げることができます。ちなみに、我々の経験によれば、写像が少しくらいずれていても、イメージサーチの性能はほとんど変わらないようです。

DSCSearch 外部サーチエンジンと内部サーチエンジン

Preference には、サーチを external mode か internal mode かに選択できる項目があります。これはイメージ検索に使うエンジンを、切り替えるために使います。DSCファイルは一つの画像に対して一つだけ割り当てられるもので、画像が持っている「行」の画像的な特性の情報を保持しています。SMART-GSがイメージサーチを行なうということは、クエリー画像に対応するDSCファイルの一部と似たイメージのDSCファイルの一部を探すことなのです。この時、サーチのモードが external か internal かにより、寺沢憲吾氏作成の DSCSearch というツールを呼び出して検索する場合と、SMART-GSの内部に組み込まれた猪村元氏作成の Java 検索モジュールで検索を行ないます。前者の方が高速なので、通例、こちらを用いますが、internal mode は、異なるプラットフォームで確実に作動するというメリットがあります。external mode の場合は、SMART-GSは、寺沢氏作成のイメージ検索APIを通して DSCSearch から結果を受け取り、それを表示しています。

旧バージョンにおけるファイル配置への対応

SMART-GSの古いバージョンにはイメージフォルダに対応する、DSCフォルダというものがあり、そこにDSCフォルダを置くようになっていました。そして、Preference の Date Directories & Files でイメージフォルダ以外に、DSCフォルダも指定する必要がありました。例えばイメージフォルダが ./smart_gs/images/ に、DSCフォルダが A:/foo/dsc/ に指定されていた場合には、SMART-GS0.8では、

のように、イメージファイル、行情報ファイル、DSCファイルを配置するところを、旧版では、イメージファイル S09_006.jpg を除く他のすべてのファイルを、./smart_gs/images/ をDSCフォルダのパスの A:/foo/dsc/ 置き換えた位置に配置していました。つまり、次の様に配置していたのです:

実は、SMART-GS0.8でも、この機能はそのまま残っており、DSCフォルダを指定せずに済むのは、イメージフォルダを指定すると、それがDSCフォルダにもなるようになっているからです。SMART-GS0.8 では、この旧来の機能を使い旧来のDSCファイル配置を行なうことも可能です。そのためには、SMART-GS0.8の起動のオプションに -dscfolderpathsetting を指定します。このオプションがあると、Preference から開く Data Directories & Files Setting の設定フィールドに DSC Files のフィールドが追加されます。これに旧来どおりに DSCフォルダのパスを書けば、それが使用しているプリファレンス・ファイルに書き込まれます。(このパスはプリファレンス・ファイルに書き込まれるので、次からは  -dscfolderpathsetting  を指定する必要はありません。このオプションはDSCフォルダを始めて設定する・変更するときのものです。)

この旧来型のファイル配置は、DSCファイルをイメージファイルと分離して一括して扱うために考え出されたものです。たとえば、DSCファイル一式の追加・削除・移動は、現在のdscフォルダに置く方法では、現実の史料研究では dsc フォルダは100を越えるてしまうことも珍しくないことを考えると、ファイル操作のためツールを使わない限り、容易にはできません。一方で、DSCフォルダが分離されていれば、それをマニュアルで追加・削除・移動することは容易です。しかしながら、旧来型のファイル配置は、かなり歪なファイル配置であることは否めません。そのため、SMART-GS0.8では、サーチに利用している外部エンジン DscSearch のための標準的ファイル配置にあわせることにしてあります。

しかし、作成中のSMART-GSのネットワーク協働版では、DSCファイルはイメージファイルとは全く独立に、ネット上のどこに置かれても良いことになるので、旧来型、バージョン0.8のどちらとも異なるDSCファイルの指定を行なうことになり、その時にはDSCファイルをイメージファイルに対応させるためのツールをSMART-GSが持つ予定です。その際には、現在のローカル版のSMART-GSの作業環境を協働版に移行するための機能も提供する予定ですので、現在は、どちらの配置でも構わないのですが、初めてのユーザはデェフォルトの方を選択する方を勧めます。


ワークベンチ トップへ戻る Reasoning Web