top
Simg ユーザガイド
2013/07/16

本紙について

ユーザガイドでは、Simg の使い方の概要を説明しています。

各機能の詳細については リファレンス を参照してください。

本文において、グレーで表示される部分は、 バージョン3.0.0よりデフォルトで表示されなくなった項目(旧機能)です。 旧機能を引き続き利用したい場合は、(旧モードの利用方法)を 参照してください。

概要

Simg とは、 画像ファイルの同一および類似を検出し、 閲覧・削除・改名操作を行なうソフトです。

画像の同一/類似検出には以下の手法を用いています。

  • 完全一致 検索
    • MD5
  • あいまい 検索
    • OpenCV の全体特徴量(固有値, Harris, FAST, STAR, MSER, ORB, BRISK)
      • (Version 4.0.0 より BRISK が追加され、SURF が使えなくなってます)
    • 色ヒストグラムの特徴量

類似検索では、 ファイル同士の他、 フォルダ・ZIP 同士の比較ができます。 (ZIPとは画像ファイルをZIP圧縮したファイルで、 ZIPもフォルダも同じ画像ファイルの集合とみなします)

検出結果は、画像ビューアを使って差分を詳細に確認できます。 また、ファイルビューアではフォルダ間の類似の関係が確認できる他、 フォルダの削除や改名、移動がボタン1つで行なえます。

一番のボトルネックである類似検索処理はスレッド処理を行なっています。 検索を行ないながら、 類似画像の閲覧やファイル操作(改名や削除)を行なえます。 (データロックの効率がよくないので、たまにフリーズ状態になることがあります)

サポートする画像フォーマットは、jpg, png, gif, bmp です。

主な機能

Simg の主な機能を紹介します。 詳細はリファレンスを参照してください。

Simg は、 類似検索および検索結果表示を行なうメインウィンドウの他、 画像間の類似を目視で確認するための画像ビューア、 フォルダ間のファイルの類似を確認するファイルビューアから構成されています。 それぞれのウィンドウはモードレスに動作します。


図. メインウィンドウ


図. 画像ビューア


図. ファイルビューア

モード(画像比較)

画像比較では、 比較アルゴリズム(MD5, OpenCV特徴量)と 対象(ファイル、フォルダ+ZIP)の組み合わせにより定義された「モード」を 選択することで様々な手法による比較が行なえます。

「モード」の名称は、以下の規則で決定しています。

  (比較対象)-(画像の特徴量アルゴリズム) (付加情報)

  (比較対象) := "ファイル" | "フォルダZIP" | "フォルダ"
     "ファイル" := (ファイル単位による画像同士の比較)
     "フォルダZIP" := (フォルダもしくは ZIP ファイル単位による画像同士の比較、
                       フォルダおよび ZIP の区別は無い)
     "フォルダ" := (フォルダ単位による画像同士の比較)

  (画像の特徴量アルゴリズム) := "バイナリ" | (OpenCV特徴量アルゴリズム名)
                                | "カラー"
     "バイナリ" := (MD5による比較)
     "カラー"   := (色特徴による比較)

   (付加情報) := "" | "(簡易)" | "(全て)"
     "(簡易)" := (フォルダ単位の先頭ファイルのみの比較)
     "(全て)" := (フォルダ単位の全ファイルの比較)

「ファイル - *」では画像ファイル同士の中で比較し、類似するファイルのペアを抜き出します。

「フォルダZIP - *」では、フォルダおよびZIPをグループとして、グループ単位で比較を行ないます。
(ZIPとは複数の画像ファイルをZIP圧縮したものです。 ZIPとフォルダは、共に画像ファイルの集合とみなします)
グループ対グループで1つでも画像が似ていれば検出します。

類似検出の手法として、「先頭」、「境界2」、「全て」があります。
「先頭」はグループの先頭の画像1つのみで比較を行なう方法で、 簡素に高速に比較を行なう場合です。 「同じグループなら先頭の画像は同じ」という前提に基づきます。
「境界2」はデフォルトの動作です。 先頭および末尾の画像2つずつ、計4つの画像でグループ間の比較を行ないます。 このとき、片方のグループの画像が多いときは、境界+2つの画像も比較対照に加えます。 (連続した対象と分割した対象を検出する為)
「全て」は全ての画像で比較を行なう方法です。 途中のたった1つの類似を検出するための方法です。 計算時間もメモリも一番消費します。

「フォルダ - *(*)」では、フォルダ対フォルダで比較します。
フォルダ間でもっとも類似度の高いペアを抜き出していき、 その類似度の平均をフォルダ間の類似度とします。

「簡易」と「全て」の大きな違いは、類似検出の手法です。
「フォルダ - *(簡易)」では、フォルダ内の最初のファイル同士のみで 比較してアタリをつけます。 最初のファイル同士で特徴が似ていれば改めてフォルダ間の類似度を求めます。 これは、フォルダ間で似ているときは最初のファイルが似ているハズという 前提からきています。
「フォルダ - *(全て)」では、フォルダの類似度を求めるときに、必ず フォルダ内の全ファイルの特徴量を取得して、 他のフォルダと1つでも特徴が似ていれば、フォルダ間の類似度を算出し、 類似判定を行います。
これらの違いにより、一般的には簡易の方がやや速く、使用メモリも抑えられます。 この違いは類似画像が無いときに最も効果があります。 一方で必ず類似画像の組がある場合には殆んど同じどころか、 簡易の類似検出が最初のファイルの特徴量のみに限定される分、簡易は検出精度が悪くなります。

「バイナリ」は、ファイルの MD5 値による完全一致検査です。
類似度の表現の仕方が他の手法と比べ、特殊な表現をしています。
MD5でのマッチングの為、RGB 値的に同じ画像であっても、 付属情報(コメント等)でファイルサイズが異なると違うモノと判断してしまいます。

(OpenCV特徴量アルゴリズム)は、OpenCVの全体特徴量によるマッチングです。
画像を固定サイズ以下にリサイズしたあと、 グレー化を行ない、cv::FeatureDetector クラスより特徴量 cv::KeyPoint を取り出します。
この KeyPoint から座標(pt.x, pt.y)、角度(angle)およびサイズ(size) を用い、座標・角度を標本化、サイズを規格化して、index値に対する密度分布として特徴量を定義し直します。
この特徴量の重なり具合より類似度を算出し、0 〜 1 の数値で表現します(1が完全一致)。
「カラー」に比べやや遅くなりますが、誤検出が少なく、より高い精度で検出を行なえます。
デフォルトの状態では、FAST のみがメニューに組み込まれています。 パラメータを変更したい場合や他のアルゴリズムを試したい場合は 「Q11. モード OpenCV特徴量 のカスタマイズ方法は?」 を参照してください。

「カラー」は、色ヒストグラムによる類似検索です。
画像を 128x128 [pixel] にリサイズした後、4x4 分割し、各ブロックで 色ヒストグラムを作成します。この色ヒストグラムの重なり具合より 類似度を算出し、0 〜 1 の数値で表現します(1が完全一致)。
初歩的なマッチング手法です。
カラー画像に関しては比較的速く検出を行なえますが、 モノクロ画像に関しては誤検出が多くなります。


類似度

類似度はモードによって定義が異なります。

「ファイル - バイナリ」
特徴量(MD5) およびファイル名の一致で類似度を表わします。

類似度 意味 フィルタ名
1:1 MD5およびファイル名が一致しています。
基本どちらを消してもOK。
完全一致
1:0 MD5は一致していますが、ファイル名が異なります。 ファイル名に注意しましょう。 同内容; 異ファイル名

「ファイル - (OpenCV特徴量アルゴリズム)」
「ファイル - カラー」
類似度を [0 1] の範囲で表わします。 1 が完全一致を示します。
また、類似度の算出範囲でグラデーション(赤-緑-青)の 色付けしています。

「フォルダZIP - バイナリ」
MD5、ファイル名およびフォルダ名の一致で類似度を表わします。

類似度 意味 フィルタ名
1:1:1 濃緑 フォルダ内の中身(各ファイルのMD5、 ファイル名)が一致しており、 更にフォルダ名も一致しています。 完全一致
1:1:0 フォルダ内の中身は一致していますが、 フォルダ名が異なります。 同内容; 異フォルダ名
1:0..x:a.b.c 各ファイルのMD5は一致していますが、 ファイル名が異なります。
ファイル名の連番や接頭字が異なる場合です。
同内容; 異ファイル名
0:1..x.y.z:a.b.c 一方がもう一方に包含される(部分集合になっている)場合です。 部分集合
0:0..x.y.z:a.b.c 一部の組み合わせでファイルのMD5が 一致しています。 (部分一致)
MD5で対応のとれないファイルの組があります。
画像ビューアでより詳細な違いを確認してください。
部分一致
*) x,y,z,a,b,c は数値を示します。

「フォルダZIP - (OpenCV特徴量アルゴリズム)」
フォルダZIP間では、 全ての組み合わせの中で1つでも類似と判定されれば(閾値を超えれば) 類似と判定します。
類似度は3つの値 「有効な類似度の割合」、「最小組み合わせの類似度」、「最大組み合わせの類似度」 を並べて類似度とします。
まず、ファイル同士の類似度([0 1]範囲の値)の高い組み合わせでペアを抜いていき、ペアを作れなくなるまで 繰り返します。
「有効な類似度の割合」 は、 ペアの類似度の中で似ている(有効)と判断されたペアの割合で、 [0 1] の値で示します。
「最小組み合わせの類似度」 は、ペアの類似度の全平均値です。
「最大組み合わせの類似度」 は、ペアの相手のいない 欠損の組合せの類似度を 0 とみなし、 類似度の平均値をとったものです。 フォルダZIP内のファイル数が同じなら「最小組み合わせ」「最大組み合わせ」 とも同じ類似度になりますが、片方の画像が多い/少ないと 2つの類似度の差は大きくなります。

類似度のソートは、先頭の「有効な類似度の割合」をキーとします。
また、類似度の各値に応じて、背景をグラデーション(赤-緑-青) で色付けしています。

「フォルダ - カラー(簡易)」
「フォルダ - (OpenCV特徴量アルゴリズム)(簡易)」
「フォルダ - カラー(全て)」
「フォルダ - (OpenCV特徴量アルゴリズム)(全て)」
フォルダ間では、ファイル同士の類似度([0 1]範囲の値)の高い組み合わせでペアを抜いていき、ペアを作れなくなるまで 繰り返して、それらの値の平均値を類似度とします。
有効な組合せの類似度を「最小組み合わせの類似度」、
フォルダ内のファイル数の最大数に合わせて、欠損の組合せの類似度を 0 として平均化した 「最大組み合わせの類似度」の二つを求めます。
フォルダ内のファイル数が同じなら2つとも同じ類似度になりますが、片方のファイル数が多い/少ないと 部分マッチ的に類似度を算出します。
尚、これら二つの類似度は
{最小組み合わせの類似度} / {最大組み合わせの類似度}
として表示します。
また、類似度の算出範囲でグラデーション(赤-緑-青)の 色付けしています。

サムネ/画像ビューア表示

メインウィンドウおよびファイルビューアでは、 サムネイルを表示させることができます。
デフォルトでは OFF になっています。


図. メインウィンドウ

ファイルビューアでは、 フォルダ内、ZIP内の各画像ファイルに対して サムネイルを表示させることができます。


図. ファイルビューア

画像ビューアは、類似度の数値に頼らず、 実画像を見比べて確認するためのツールです。
2つの画像を表示、ズーム、回転、反転といった操作だけでなく、 重ね合わせ(XOR)による差分を確認できます。 特にXOR表示では、わずかな違いも直ちに見つけられるよう、 差分の位置を記録しており、ダブルクリックで該当箇所に移動します。 また、下段にファイル情報(ファイル名や編集日時、サイズ)も表示させることができます。 小さい/古いほうが青く、大きい/新しい方が赤く色づけしています。


図. 画像ビューア

ファイル操作

類似検出したファイルおよびフォルダに対して以下の操作を行なえます。
但し、ZIP内のファイルに対しては操作できません。

削除
削除フォルダに移動させます。 誤って「削除」したときは、Undo もしくは、削除フォルダより取り出してください。
改名
メインウィンドウのコンテキストメニューから変更できる他、 フォルダモードのファイルビューアでも変更できます。 更に、親フォルダ名や相手のフォルダ名を、 カレントフォルダ名に挿入させることができます。
移動
ファイルビューアよりフォルダおよびファイルを移動できます。
連番
ファイルビューア内のファイルリスト表示上で、 コンテキストメニューの[連番...]を選択すると連番操作用の ダイアログが表示されます。 このダイアログにて、桁数、開始番号、接頭文字を指定して ファイル名を付け直すことができます。
エクスプローラーで開く
メインウィンドウのテーブル上で、セルのコンテキストメニューより 「エクスプローラーで開く」を選択することで、セルの該当フォルダ を開くことができます。

特にファイルビューアでは以下の操作が可能です。
  • フォルダ操作、ファイル操作を行なうためのダイアログです。
  • フォルダモード時にのみメインウィンドウのテーブルをダブルクリック することで表示されます。
  • 上部はフォルダに関する操作です。 テキスト欄の背景色は、AとBで同じ部分は白色、異なる部分は黄色+太文字 で表現されます。
    (アルゴリズムが単純なため、複雑なマッチングの場合には不自然なマーキングになります)
  • 下部はファイルに対する操作になっています。 ファイル名の背景色は「連番の並び」で色分けされ、 類似度の背景色は値の大小およびマッチングの有無(片方のみやn:n) によって色分けしています。

元に戻す(Undo)、やり直し(Redo)

ファイル・フォルダの操作(削除、改名、ファイル移動、フォルダ名交換)に対して Undo, Redo 操作ができます。

Undo はユーザが行なった操作を元に戻す機能です。 Redo は Undo で元に戻した機能を再度やり直す(Undoする前の状態に戻す)機能です。
メニューバーの[編集]-[元に戻す](もしくは Ctrl-Z)で Undo を、 メニューバーの[編集]-[やり直し](もしくは Ctrl-Y)で Redo を行ないます。

操作履歴は 10 個までしか保持していません。 古い操作は破棄していくので、どこまでも戻せるというわけではありません。
また、履歴は次の操作を行なうと、消えてしまいます。

  • Undo 操作を行なって、新規の操作を行なうと、Redo の履歴を空にします。
  • [オプション]-[ゴミ箱を空にする]を行なうと、Undo,Redo の履歴を空にします。
    • Undo,Redo は全モードで共通の機能なので、 操作A後にモードを切り替えて操作Bを行なうと、 モードを戻して「元に戻す」を行なっても操作Bの Undo になります。


Save, Load

検索結果(データ)を保存・読み込みすることができます。

このデータはモード毎に作成され、互いに独立しています。

同じフォルダに対する類似検索であってもモードが異なれば別々の 保存ファイルを作成します。

アプリケーションの起動時には、前回終了時に直近で操作したファイル (メニュー[ファイル]欄に表示される1番上のファイル)が読み込まれます。

Save 時のデフォルトのフォルダ位置が、類似検索対象のフォルダ直下に なりますが、これはデータ内のパスを相対パスで出力するためです。 相対バスの基底となるフォルダ位置は、デフォルトで検索対象のフォルダ になっています。 このフォルダごと別のパスに移動させれば、そのままデータを読み込む ことができます。


画像および類似度のレベル

ファイル/フォルダおよび類似度にレベルが設けています。 これはフィルタ操作(絞込み)を目的としたものです。 平素に使う範囲では不要な項目です。

レベル値は [0 255] の範囲で割り振ることができます。

このレベルを利用することで以下の操作が可能になります。 具体的な操作は下記「高度な用法」を参照してください。

  • 特定の組み合わせを隠す (例外的に残しておきたい場合や誤検出を隠しておきたい時)
  • 一旦保留(非表示)にしておいて、後日改めて操作する。
  • 既に検査済みのフォルダが2つあり、これらのフォルダ間のみで マッチングさせる(検査済みのフォルダ内ではマッチングさせない)

(Version 2.0.0 よりレベル値のデフォルト値が変更(0->1)になりました)
レベル値のデフォルト値は 1 です。
これはモード間のデータ変換時のコピーに、類似情報についてのみ デフォルト値以下のレベルの場合は無視する(コピーしない)仕様のため、 無視するレベル値に幅を持たせたい為です。
具体的な利用方法としては、1 を未チェックとして、 0 をチェック済みで似ていない類似=他のモードで類似していなければ削除する、 2 以上を類似の関係を保持したままにする(類似度は無視)、といった具合です。

尚、このレベル値は ini ファイルで管理されているので 新規利用者(iniファイル削除、デフォルト値に戻す操作も同様)は上記のとおり 1 ですが、 旧来からの利用者で ini ファイルをそのまま利用していると 0 のままです。
ini ファイル内のデフォルト値

    ----------------------------------------
    NODE_LEVEL_DEF=1
    EDGE_LEVEL_DEF=1
    ----------------------------------------
を変更した場合、既存のデータファイルとのレベル値に差異が生じることがあるのでご注意ください。


フォント変更

アプリケーションの表示フォントを変更できます。 (デフォルトのフォントが小さくて見づらい人にも安心です)


キーボード操作

メインウィンドウのテーブル上のキー操作は以下のとおりです。

キー操作
キー 機能
z レベル値 +1
x レベル値 -1
r テーブル表示更新
d ファイル・フォルダ削除
(スペース) ダブルクリック動作(ファイルビューア/画像ビューア表示)

尚、ファイル/フォルダのレベル値変更および削除を行なうには ファイル/フォルダ名列、 サムネ列、 ファイル/フォルダレベル値列 の列上で操作してください。
類似度レベル値を操作するには 類似度列、 類似度レベル列、 の列上で操作してください。


使用法

初期設定

メニューの[オプション]-[ゴミ箱のパス設定...]で削除時の移動先(フォルダ)を 指定してください。 デフォルトで simg.exe のフォルダ下に dust/ を作成しています。 検索対象の画像と同じドライブにゴミ箱を作ることをお勧めします。


大まかな操作の流れ

  1. メニューバーの「モード」でモードを選択します。
  2. 検査したい画像ファイルのあるルートフォルダを本ソフトに Drag & Drop するか、メニューの[ファイル]-[データの追加](Ctrl-A) でフォルダを指定してください。 画像ファイルの読み込みを行ないながら、類似結果を表示します。
  3. 消したいファイル/フォルダを削除します。 削除の仕方は、以下の方法があります。
    1. テーブル上の該当ファイル/フォルダのセルを選択して、 コンテキストメニュー(右クリックして表示されるメニュー)から削除 します。
    2. テーブル上のセルをダブルクリックして、画像ビューアもしくは ファイルビューアを表示して、それぞれのビューアで削除します。 「ファイルモード」なら画像ビューアが、 「フォルダモード」ならファイルビューアが表示されます。
    画像ビューア上では、表示されている画像のコンテキストメニューから 削除を選択します。
    ファイルビューア上では、削除ボタンを押下してください。

効率的な削除方法

似通った画像を削除するという行為は、単純操作の繰り返しで大変疲れます。 そこで、注力するポイントを切り替えて効率よく作業すること が必要になってきます。
個人的に

      「何も考えずに重複を削除(完全一致検索のバイナリモード)」
         ↓
      「中身を確認しながら削除(あいまい検索の OpenCVモード)」
の順で操作することをお勧めします。


[ファイルの場合]

「ファイル - バイナリ」モードの操作後に、 「ファイル - FAST」モードで操作することをお勧めします。

[フォルダの場合]

「フォルダZIP - バイナリ」モードの操作後に、 「フォルダZIP - FAST」モードで操作することをお勧めします。


高度な用法

データの追加

データを追加したした状態もしくは、データファイルを読み込んだ状態で 更にデータの追加を行なうと、 既存データはそのままに 新規データを追加して、 既存データと新規データの類似検索を行ないます。

また、データファイルの場合は同じモードの場合に限り追加することができます。 データファイルを追加しただけでは、ファイル間のデータの類似検索は行なわれません。 メニューの[編集]-[類似 更新]を行なってください。

尚、どちらの追加方法でも、同じファイル/同じフォルダを追加しようとすると、 先に登録されているデータが優先されます。


データの更新

類似検索したフォルダツリー内をエクスプローラー等でフォルダを移動・追加したり、 アプリケーションのデータ保存後に落ちた場合など、
データファイルを読み込んだデータと実際のフォルダ・ファイル構成が異なる場合に 更新する方法です。

メニューの [編集]-[ファイル・フォルダ情報 更新] もしくは [編集]-[全データ更新] を行なってください。 「ファイル・フォルダ情報 更新」は登録された情報を元に、変更を確認して、 更新および削除を行ないます。テーブルのセルを選択して、部分的な更新が 行えます。 「全データ更新」は基底ディレクトリ以下のファイル・フォルダ情報と 比較して、更新、削除および新規作成を行ないます。 レベル値を残したまま画像の特徴量(MD5, 色ヒストグラム)を差し替える 機能です。 こちらの作業量は「データの追加」と同程度になるので、 実行する際にはご注意ください。

実在しないファイル・フォルダがデータに無い場合は、 テーブルのセルのダブルクリック操作で自動的に削除されます。
幾つかのフォルダが消えた場合などには、こちらでも十分です。

既存のデータがそのままで、 「データの追加」で部分的に新規データを登録することも有効です。
重複するデータがあっても上書きされません。


データの移動

データの整理の都合で、フォルダを移動させる際、対象フォルダと一緒にデータファイル を移動させれば、フォルダの移動先でも、データファイルをそのまま読み込めます。 但し、データファイルはデフォルトの保存位置(対象フォルダの直下)にある場合に 限ります。

特定の結果(組み合わせ)を隠す

類似していても明示的に残しておきたい場合や 類似検出アルゴリズムの不備により誤検出される結果を 非表示にしたい時の方法です。

step1. メニュー[表示]-[類似度 レベル フィルタ]-[同値 (Lv==x)]を選びます。
step2. 表示させたくない結果の類似度のレベルを +1/-1 (x以外の値) します。 (コンテキストメニューの「類似度 レベル +1」) ... レベルを変更した結果は直ちに非表示になります

一旦保留(非表示)にしておいて、後日改めて操作する。

上記 「特定の結果(組み合わせ)を隠す」 の操作で非表示にした項目を、表示する方法です

step1. メニュー[表示]-[類似度 レベル フィルタ]-[無し]を選びます。

既に検査済みのフォルダが2つあり、これらのフォルダ間のみでマッチングさせる(検査済みのフォルダ内ではマッチングさせない)

操作フローとしては、以下の手順で行ないます。

  • 「それぞれの検査済みのフォルダで、 ファイル/フォルダのレベルを設定して、保存」、
  • 「それぞれの結果をマージ」

step1. [ファイル]-[全初期化]でデータをクリアします。
step2. 検査済みのフォルダを追加します。
step3. テーブルのセルを<<選択せず>>にコンテキストメニューから 「フォルダ/ファイル レベル」を選択して、レベルを 設定します。 (セルを選択しないことで、全データが対象になります)
step4. [ファイル]-[保存]より保存します。
step5. もう片方のフォルダでも同様の操作を行ないますが、 レベル値は異なる値を割り振ります。
step6. [表示]-[全初期化]でデータをクリアします。
step7. メニュー[表示]-[ファイル・フォルダのレベル フィルタ] -[両方が異値]を選びます。
step8. それぞれのデータファイルを Drag & Drop して読み込みます。
step9. [編集]-[再検出] して、類似の再検査を行ないます。

お気に入りの順位付けを行ない、重複時の削除判定に用いる。

お気に入りの高い物ほどレベル値が高いものとします。

ファイル・フォルダのレベルにお気に入りのレベルと設定し、 既にレベル値は設定済みとします。

step1. [表示]-ファイル・フォルダの並び]-[レベル (小、大)]を選択します。

これにより、レベルの低いものが左に、高いものが右に表示されます。 削除は常にレベルの低い左側を削除すれば、お気に入りの残すことができます。


よくありそうな?質問

Q1. スペックは?

A1.
マシンや対象(画像)に寄りますが、目安として当方の環境での測定値を 以下に示します。
計算時間は、OS のファイルキャッシュに左右されるので、 初回時(1st)と2回目(2nd)で、計測しています。
初回はファイルのフラグメンテーション等のファイル読み込みの影響を 強く受けます。 2回目はキャッシュが利いている分、アルゴリズム本来のパフォーマンス に近い値を示します。 実際は初回実行と同じような状況と予想されます。 故に、初回と2回目は、実測値と理論値ぐらいで考えてください。

        [マシン]
        CPU : Intel(R) Core(TM) i7 860 @ 2.80GHz
        MEM : 8.00GB
        HDD : MiniStation 1T, USB2 接続
        OS  : Win7pro(64bit)

        ------------------------------------------------------------
        ファイル モードの場合

          [テストケース]
          1k  :  1000 ファイル,  389MB
          2k  :  2000 ファイル,  751MB
          4k  :  4000 ファイル, 1.43GB
          8k  :  8000 ファイル, 2.50GB
          16k : 16000 ファイル, 5.07GB
          32k : 32000 ファイル, 10.7GB

          モード     | test | 時間(1st) | 時間(2nd) | 使用メモリ
                     |      | [s]       | [s]       | [KB]
          ======================================================
          バイナリ   |  1k  |     42    |     1.5   |  8,416
                     |  2k  |     82    |     2.5   |  9,126
                     |  4k  |    197    |     4.7   | 11,176
                     |  8k  |    340    |     8.2   | 13,281
                     | 16k  |    745    |   377     | 18,845
                     | 32k  |   1733    |   962     | 35,884

          ------------------------------------------------------
          カラー     |  1k  |     76    |    41     |  26,325
                     |  2k  |    135    |    76     |  47,473
                     |  4k  |    295    |   143     |  90,561
                     |  8k  |    515    |   253     | 179,401
                     | 16k  |   1122    |   816     | 329,760
                     | 32k  |   2275    |  1910     | 662,737

        ------------------------------------------------------------
        フォルダ モードの場合  (Version 1.5.0 にて再計測)

          [テストケース]
          365 フォルダ (10312ファイル), 3.72GB

          モード          | 時間(1st) | 時間(2nd) | 使用メモリ
                          | [s]       | [s]       | [KB]
          ======================================================
          バイナリ(簡易)  |     53    |     1.4   |   9,092
          バイナリ(全て)  |    505    |    12     |  11,292
          カラー(簡易)    |     52    |    15     |  17,672
          カラー(全て)    |    671    |   385     | 108,308

  

Q2. 類似アルゴリズム(カラー)のパラメータを変更したいのですが?

A2.
パラメータを変更したい方は、simg.exe を終了させ、 アプリケーションのあるフォルダにある simg.ini を編集します。

カラーモードに関係するパラメータは以下のとおりです。

        ------------------------------------------------------------
        パラメータ名       | 初期値 | 範囲    | 補足
        ------------------------------------------------------------
        FC_NSIZE           | 128    | [1 -]   | リサイズ時のサイズ
        FC_N_DIV_X         |   4    | [1 -]   | 画像の分割数(横)
        FC_N_DIV_Y         |   4    | [1 -]   | 画像の分割数(縦)
        FC_COLOR_VAL_SAMP  |  32    | [1 256] | 色空間のサンプリング範囲
        ------------------------------------------------------------

リサイズの大きさは、色ヒストグラムの精度に寄与します。 リサイズ時の画素数を分母とした確率値(小数)で、色ヒストグラムの値を 持つため、適度な大きさを持たせてください。 また、分割数の定数倍の大きさを持たせてください。

分割数は類似度の精度、使用メモリに寄与します。 分割数の数だけ色ヒストグラムを作成し、類似度の精度に寄与します。 また類似度の精度と使用メモリの関係はトレードオフになります。

サンプリング範囲は類似度の精度、使用メモリに寄与します。 範囲をサンプリング範囲の値で RGB の色空間 [0 255]の領域を分割、 画像の値を標本化します。 値が小さいと精度が向上しますが、使用メモリとのトレードオフに なります。

※類似度の精度とは、見た目で、似ているもの、似ていないものを分ける 度合いです。 精度が高いと似ているものと似ていないものを類似度の値で きっちり区別しますが、 精度が低いと区別できずに混在してしまいます。

Q3. 大量のデータ追加時に定常状態になります。経過表示の数値は進んでいますが、残り時間がほぼ変わりません。

A3.
スレッド処理で、流れ作業的に処理しているため、 途中の未処理のデータ量が上限なると定常状態になります。 対象となるファイル・フォルダの総数が、一番処理のかかる 「画像からの特徴量抽出」用のバッファサイズ(デフォルトで 10000)を 超えるときに発生します。 このバッファサイズを大きくすれば改善されることが期待できますが、 その分メモリを必要とします。 処理が進み、バッファサイズ内に収まれば、残り時間も正常に機能します。

バッファサイズを変更したい方は、simg.exe を終了させ、 アプリケーションのあるフォルダにある simg.ini を編集します。 データ追加時のバッファサイズは以下の箇所が該当します。

        ------------------------------------------------------------
        THREAD_BUFSIZE_TARGET=10
        THREAD_BUFSIZE_NODE=10000
        THREAD_BUFSIZE_EDGE=1000
        ------------------------------------------------------------
        (Version 1.7.0 より書式が変わりました。
         左よりキーワード、値を示しています)

Q4. カラーモードの結果が予測される結果より少ないです。

A4.
カラーモード / OpenCV モードでは、全ての組み合わせを表示していません。 画像の特徴量の近傍にある画像(おおよそ似通った画像)を 取り出しているために、似ていても結果に表示されない場合があります。 これはアルゴリズムの性質によるもので、 全ての組み合わせを表示しなくても、最低1つの組み合わせを 表示できれば良し としたためです。 (検出精度を犠牲にして処理時間の高速化を図っています)

このため、類似画像の処理(削除)を行なっていくと、未検出の組み合わせが 残っている場合があります。 このようなときは [編集]-[再検出] を行なって、類似画像の検出を 再度行なってください。

Q5. データ追加中にテーブルのソートができません。

A5.
仕様です。 データ追加中はモードの変更、ファイル操作(Save,Load)、 データ追加、ソートを禁止しています。

Q6. 「フォルダ - バイナリ」モード時でのファイルビュー操作中、「削除」・「スキップ」時にダイアログが閉じてしまいます。

A6.
仕様です。 同じ類似度が連続しているときは、「削除」・「スキップ」の操作後に、 自動的に次の関係をファイルビューで表示します。 しかし、前回と異なる類似度の時にはファイルビューを表示しません。 (類似度によって、操作時の着目するポイントが異なるので、 操作の慣れによって、うっかり操作を防ぐための措置です)

類似度のソートもしくは、類似度のフィルタリングを行なってから ファイルビューで操作することをお勧めします。

Q7. (欠番)

Q8. バージョンアップしたら起動しなくなりました。

A8.
exe ファイルの場所にある ini ファイルを削除してください。 それでも起動しない場合は、こちらの 連絡先 までご連絡ください。

Q9. スレッド処理の優先度を変更できますか?

A9.
ini ファイルで設定できます。 初期設定では、「通常以下」(2)になっています。 通常(デフォルト)の優先度が 3 になります。 3 より大きくするとアプリケーションの UI よりも スレッド優先になってしまうのでご注意ください。 尚、1 および 0 のときは次の意味になります。

          1 : 最低の優先度
          0 : 他のスレッドが動いていないときに動作

        ------------------------------------------------------------
        THREAD_PRIORITY=2
        ------------------------------------------------------------
        (Version 1.7.0 より書式が変わりました。)

Q10. キーボード操作のキーバインドを変更できますか?

A10.
ini ファイルで設定できます。 行末の文字を書き換えてください。

        ------------------------------------------------------------
        KB_DOUBLE_CLICK=" "
        KB_LEVEL_PLUS=z
        KB_LEVEL_MINUS=x
        KB_REVIEW=r
        KB_DELETE=d
        ------------------------------------------------------------
        (Version 1.7.0 より書式が変わりました。)

Q11. モード OpenCV特徴量 のカスタマイズ方法は?

A11.
ini ファイルを編集します。
編集箇所は主に4箇所になります。

モード名の並び指定

メニュー[モード]内のモードの並びを FRM_MODE_LIST に指定します。
モードをさすキーワードは以下のとおりです。

キーワード 説明
BIN_FILE 「ファイル - バイナリ」モード
BIN_DIR_PLAIN 「フォルダ - バイナリ(簡易)」モード
BIN_DIR_FULL 「フォルダ - バイナリ(全て)」モード
BIN_GROUP 「フォルダZIP - バイナリ」モード
フォルダおよびZIPファイルのバイナリ(MD5)マッチングモードです。
特徴量マッチングも「簡易」、「境界2」、「全て」を選択でき、 簡易モードおよび全てモードの機能を包含します。
COLOR_FILE 「ファイル - カラー」モード
COLOR_DIR_PLAIN 「フォルダ - カラー(簡易)」モード
COLOR_DIR_FULL 「フォルダ - カラー(全て)」モード
OPENCV_FILE.(数字) ファイル用のOpenCV特徴量モードです。
末尾の数字は
  ACT_MODE_OPENCV(数字)_DETECTOR
  ACT_MODE_OPENCV(数字)_ETC
を指します。
OPENCV_DIR_PLAIN.(数字) フォルダ(簡易)用のOpenCV特徴量モードです。
末尾の数字は
  ACT_MODE_OPENCV(数字)_DETECTOR
  ACT_MODE_OPENCV(数字)_ETC
を指します。
OPENCV_DIR_FULL.(数字) フォルダ(全て)用のOpenCV特徴量モードです。
末尾の数字は
  ACT_MODE_OPENCV(数字)_DETECTOR
  ACT_MODE_OPENCV(数字)_ETC
を指します。
OPENCV_GROUP.(数字) フォルダおよびZIPファイルのOpenCV特徴量モードです。
特徴量マッチングも「簡易」、「境界2」、「全て」を選択でき、 簡易モードおよび全てモードの機能を包含します。
末尾の数字は
  ACT_MODE_OPENCV(数字)_DETECTOR
  ACT_MODE_OPENCV(数字)_ETC
を指します。
-- セパレータ(区切り線)

OpenCVのモードを追加する場合は、OPENCV_*.(数字)を追加して、 数字に対応する ACT_MODE_OPENCV(数字)_ETC, ACT_MODE_OPENCV(数字)_DETECTOR を記述します。

ini ファイルのデフォルト値は次のようになっています。
------------------------------------------------------------
FRM_MODE_LIST=BIN_FILE, OPENCV_FILE.2, --, BIN_GROUP, OPENCV_GROUP.12
------------------------------------------------------------
(Version 4.0.0 より変更になりました)
このときの表示されるメニューは次のとおりです。
------------------------------------------------------------
ファイル - バイナリ
ファイル - FAST
------------------------------
フォルダZIP - バイナリ
フォルダZIP - FAST
------------------------------------------------------------
(Version 4.0.0 より変更になりました)

FRM_MODE_LIST にモードを追加する場合は、 「Q12. モード「フォルダ−バイナリ」が表示されません」 を参考にしてください。

特徴量検出器へのマッピング、ラベル、拡張子
OpenCVモード(数字)に対応する特徴量検出器、ラベル、拡張子を
  ACT_MODE_OPENCV(数字)_DETECTOR
  ACT_MODE_OPENCV(数字)_ETC
に指定します。

ACT_MODE_OPENCV(数字)_DETECTOR には、OpenCVモード(数字)に対応する検出器、 USER(番号)_DETECTOR の番号を指定します。
一方、ACT_MODE_OPENCV(数字)_ETC には モードのラベル名、説明文、拡張子の並びで指定します。 日本語を表示させたいときは unicode で指定してください。
それぞれ20個まで( 0〜19 )を指定できます。

ini ファイルのデフォルト値は次のようになっています。
------------------------------------------------------------
ACT_MODE_OPENCV0_DETECTOR=0
ACT_MODE_OPENCV0_ETC=\x30d5\x30a1\x30a4\x30eb - EIGEN, (\x30e2\x30fc\x30c9\x8aac\x660e), .egn_f.simg
ACT_MODE_OPENCV1_DETECTOR=1
ACT_MODE_OPENCV1_ETC=\x30d5\x30a1\x30a4\x30eb - Harris, (\x30e2\x30fc\x30c9\x8aac\x660e), .hrr_f.simg
ACT_MODE_OPENCV2_DETECTOR=2
ACT_MODE_OPENCV2_ETC=\x30d5\x30a1\x30a4\x30eb - FAST, (\x30e2\x30fc\x30c9\x8aac\x660e), .fst_f.simg
ACT_MODE_OPENCV3_DETECTOR=3
ACT_MODE_OPENCV3_ETC=\x30d5\x30a1\x30a4\x30eb - STAR, (\x30e2\x30fc\x30c9\x8aac\x660e), .str_f.simg
ACT_MODE_OPENCV4_DETECTOR=4
ACT_MODE_OPENCV4_ETC=\x30d5\x30a1\x30a4\x30eb - SIFT, (\x30e2\x30fc\x30c9\x8aac\x660e), .sft_f.simg
ACT_MODE_OPENCV5_DETECTOR=5
ACT_MODE_OPENCV5_ETC=\x30d5\x30a1\x30a4\x30eb - SURF, (\x30e2\x30fc\x30c9\x8aac\x660e), .srf_f.simg
ACT_MODE_OPENCV6_DETECTOR=6
ACT_MODE_OPENCV6_ETC=\x30d5\x30a1\x30a4\x30eb - MSER, (\x30e2\x30fc\x30c9\x8aac\x660e), .msr_f.simg
ACT_MODE_OPENCV7_DETECTOR=7
ACT_MODE_OPENCV7_ETC=\x30d5\x30a1\x30a4\x30eb - ORB, (\x30e2\x30fc\x30c9\x8aac\x660e), .orb_f.simg
ACT_MODE_OPENCV8_DETECTOR=5
ACT_MODE_OPENCV8_ETC=\x30d5\x30a9\x30eb\x30c0 - SURF(\x7c21\x6613), (\x30e2\x30fc\x30c9\x8aac\x660e), .srf_dp.simg
ACT_MODE_OPENCV9_DETECTOR=5
ACT_MODE_OPENCV9_ETC=\x30d5\x30a9\x30eb\x30c0 - SURF(\x5168\x3066), (\x30e2\x30fc\x30c9\x8aac\x660e), .srf_df.simg
ACT_MODE_OPENCV10_DETECTOR=5
ACT_MODE_OPENCV10_ETC=\x30d5\x30a9\x30eb\x30c0ZIP - SURF, (\x30e2\x30fc\x30c9\x8aac\x660e), .srf_g.simg
ACT_MODE_OPENCV11_DETECTOR=8
ACT_MODE_OPENCV11_ETC=\x30d5\x30a1\x30a4\x30eb - BRISK, (\x30e2\x30fc\x30c9\x8aac\x660e), .bri.simg
ACT_MODE_OPENCV12_DETECTOR=2
ACT_MODE_OPENCV12_ETC=\x30d5\x30a9\x30eb\x30c0ZIP - FAST, (\x30e2\x30fc\x30c9\x8aac\x660e), .fst_g.simg
ACT_MODE_OPENCV13_DETECTOR=6
ACT_MODE_OPENCV13_ETC=\x30d5\x30a9\x30eb\x30c0ZIP - MSER, (\x30e2\x30fc\x30c9\x8aac\x660e), .msr_g.simg
ACT_MODE_OPENCV14_DETECTOR=7
ACT_MODE_OPENCV14_ETC=\x30d5\x30a9\x30eb\x30c0ZIP - ORB, (\x30e2\x30fc\x30c9\x8aac\x660e), .orb_g.simg
ACT_MODE_OPENCV15_DETECTOR=8
ACT_MODE_OPENCV15_ETC=\x30d5\x30a9\x30eb\x30c0ZIP - BRISK, (\x30e2\x30fc\x30c9\x8aac\x660e), .bri_g.simg
ACT_MODE_OPENCV16_DETECTOR=-1
ACT_MODE_OPENCV16_ETC=@Invalid()
...
------------------------------------------------------------
(Version 4.0.0 より変更になりました)

デフォルトの場合に OPENCV_FILE.* に指定可能な数字は 0, 1, 2, 3, 6, 7, 11 で, OPENCV_GROUP.* に指定可能な数字は 12,13,14,15 です。
FRM_MODE_LIST には OPENCV_FILE.2, OPENCV_GROUP.12 が記述されているところから、 DETECTOR=2 の検出器(FAST) の特徴量を用います。

FRM_MODE_LIST を以下のように変更すると、 ファイルモードで OpenCV のアルゴリズム(固有値, Harris, FAST, STAR, MSER, ORB, BRISK) を試せます。

------------------------------------------------------------
FRM_MODE_LIST=BIN_FILE, COLOR_FILE, OPENCV_FILE.0, OPENCV_FILE.1, OPENCV_FILE.2, OPENCV_FILE.3, OPENCV_FILE.6, OPENCV_FILE.7, OPENCV_FILE.11
------------------------------------------------------------

特徴量検出器、特徴空間のパラメータ
OpenCV特徴量検出器、特徴空間のパラメータを
  USER(番号)_DETECTOR
  USER(番号)_FS
に指定します。

OpenCV特徴量検出器は USER(番号)_DETECTOR に、 アルゴリズムのキーワード名に続けてアルゴリズムのパラメータを列挙します。
アルゴリズムのパラメータを指定しない/無効な場合はデフォルト値が用いられます。
各アルゴリズムとパラメータの並びおよびデフォルト値は以下のとおりです。
アルゴリズム パラメータ
固有値
cv::GoodFeaturesToTrackDetector()
  1. "EIGEN"
  2. maxCorners = 1000
  3. qualityLevel = 0.01
  4. minDistance = 1.
  5. blockSize = 3
  6. k = 0.04
(useHarrisDetector = false)

Harris
cv::GoodFeaturesToTrackDetector()
  1. "HARRIS"
  2. maxCorners = 1000
  3. qualityLevel = 0.01
  4. minDistance = 1.
  5. blockSize = 3
  6. k = 0.04
(useHarrisDetector = true)

FAST
cv::FastFeatureDetector()
  1. "FAST"
  2. threshold = 1
  3. nomaxSuppression = true
STAR
cv::StarFeatureDetector()
  1. "STAR"
  2. maxSize = 16
  3. responseThreshold = 30
  4. lineThresholdProjected = 10
  5. lineThresholdBinarized = 8
  6. suppressNonmaxSize = 5
MSER
cv::MserFeatureDetector()
  1. "MSER"
  2. delta = 5
  3. min_area = 60
  4. max_area = 14400
  5. max_variation = .25
  6. min_diversity = .2
  7. max_evolution = 200
  8. area_threshold = 1.01
  9. min_margin = .003
  10. edge_blur_size = 5
ORB
cv::ORG::ORG() (英語)
  1. "ORB"
  2. nFeatures = 500
  3. scale_factor = 1.2
  4. n_levels = 3
  5. edge_threshold = 31
  6. first_level = 0
BRISK
cv::BRISK::BRISK() (英語)
  1. "BRISK"
  2. thresh = 30
  3. octaves = 3
  4. patternScale = 1.0

また、取り出した特徴量 cv::KeyPoint から、新たに特徴量を定義しなおすときの 特徴空間のパラメータを USER(番号)_FS で指定します。デフォルトのパラメータを 利用するときは @Invalid() になります。
この特徴量で新たに指定するときは、次の並びで列挙します。
  • 画像の最大幅(=IMGF_MAX_SIZE_W_DEF)
  • 画像の最大高さ(=IMGF_MAX_SIZE_H_DEF)
  • 特徴空間の座標 x の分割数(=IMGF_W_DIV_DEF)
  • 特徴空間の座標 y の分割数(=IMGF_H_DIV_DEF)
  • 特徴空間の角度の分割数(=IMGF_A_DIV_DEF)
  • 特徴点の取得最大数(=IMGF_N_LIMIT)
  • 特徴面積の累積取得最大数(=IMGF_SIZE_LIMIT_RATE)
  • ガウス分布フラグ(=IMGF_GAUSSIAN_DEF)

特徴量検出器、特徴空間のパラメータ ともに、 それぞれ20個まで( 0〜19 )を指定できます。

ini ファイルのデフォルト値は次のようになっています。
------------------------------------------------------------
USER0_DETECTOR=EIGEN, 1000, 0.01, 1.0, 3, 0.04
USER0_FS=256, 256, 10, 10, 8, 40, 0.90, 0
USER1_DETECTOR=HARRIS, 1000, 0.01, 1.0, 3, 0.04
USER1_FS=@Invalid()
USER2_DETECTOR=FAST, 1, true
USER2_FS=@Invalid()
USER3_DETECTOR=STAR, 16, 30, 10, 8, 5
USER3_FS=@Invalid()
USER4_DETECTOR=SIFT, 0.04, 10.0, 4, 3, -1, 0
USER4_FS=@Invalid()
USER5_DETECTOR=SURF, 400, 3, 4
USER5_FS=@Invalid()
USER6_DETECTOR=MSER, 5, 60, 14400, .25, .2, 200, 1.01, .003, 5
USER6_FS=@Invalid()
USER7_DETECTOR=ORB, 500, 1.2, 8, 31, 0, 2, 0, 31
USER7_FS=@Invalid()
USER8_DETECTOR=BRISK, 30, 3, 1.0
USER8_FS=@Invalid()
USER9_DETECTOR=@Invalid()
USER9_FS=@Invalid()
...
------------------------------------------------------------
各検出器のパラメータはそれぞれのデフォルト値です。
USER0_FS には特徴空間のパラメータをデフォルト値で記述しています。

特徴空間のパラメータ デフォルト値
特徴空間のパラメータ デフォルト値を指定します。
上記、特徴空間のパラメータ (USER(番号)_FS) が指定されていないときに利用されます。
IMGF_MAX_SIZE_W_DEF, IMGF_MAX_SIZE_H_DEF のサイズ制限で画像のリサイズ後、 グレー化して、検出器より特徴量 cv::KeyPoint を取り出します。
更に KeyPoint から 座標(KeyPoint::pt.x, KeyPoint::pt.y)、角度(KeyPoint::angle) を IMGF_W_DIV_DEF, IMGF_H_DIV_DEF, IMGF_A_DIV_DEF で標本化して、 標本座標(ix,iy,ia)に対するサイズ(KeyPoint::size)の分布として新たな特徴量を定義します。
このとき、応答(KeyPoint::response)およびサイズの大きい特徴点のみを取り出すよう、 個数制限(IMGF_N_LIMIT)および 累積面積による制限(IMGF_SIZE_LIMIT_RATE)を設けてます。
新たな特徴空間へ射影する際、ガウス分布の効果(IMGF_GAUSSIAN_DEF)をつけることもできます。

キーワード 意味
IMGF_MAX_SIZE_W_DEF 画像の最大サイズ(幅)
画像の最大サイズ(幅もしくは高さ)を超えるときに、このサイズにリサイズして処理します。
0 以下の場合はリサイズを行いません。
IMGF_MAX_SIZE_H_DEF 画像の最大サイズ(高さ)
画像の最大サイズ(幅もしくは高さ)を超えるときに、このサイズにリサイズして処理します。
0 以下の場合はリサイズを行いません。
IMGF_W_DIV_DEF 座標 x の標本化時の分割数
[0 画素数) から [0 IMGF_W_DIV_DEF) の範囲に落とし込みます。
IMGF_H_DIV_DEF 座標 y の標本化時の分割数
[0 画素数) から [0 IMGF_H_DIV_DEF) の範囲に落とし込みます。
IMGF_A_DIV_DEF 角度の標本化時の分割数
[0 2π) から [0 IMGF_A_DIV_DEF) の範囲に落とし込みます。
IMGF_N_LIMIT 特徴点の取得時の制限数
IMGF_N_LIMIT, IMGF_SIZE_LIMIT_RATE は OR 条件
IMGF_SIZE_LIMIT_RATE 特徴点の取得時の制限、累積面積による制限
特徴点の面積(size*size)の累積が、リサイズ画像の面積(幅*高さ)*IMGF_SIZE_LIMIT_RATE を越えた時点で、他の特徴点を破棄します。
IMGF_N_LIMIT, IMGF_SIZE_LIMIT_RATE は OR 条件
IMGF_GAUSSIAN_DEF 標本化時のガウス分布処理
0 は効果なし
3 は 3x3 ガウス分布を付与

ini ファイルのデフォルト値は次のようになっています。
------------------------------------------------------------
IMGF_MAX_SIZE_W_DEF=256
IMGF_MAX_SIZE_H_DEF=256
IMGF_W_DIV_DEF=10
IMGF_H_DIV_DEF=10
IMGF_A_DIV_DEF=8
IMGF_N_LIMIT=40
IMGF_SIZE_LIMIT_RATE=0.9
IMGF_GAUSSIAN_DEF=0
------------------------------------------------------------

Q12. モード「フォルダ−バイナリ」が表示されません

A12.
旧バージョンから御利用されている方で、新バージョン(exe)を上書きして iniファイルをそのまま利用されている場合は、「フォルダ−バイナリ」モードが表示されません。
手作業で ini ファイルを編集するか、iniファイルを削除してください。

最も簡単に「フォルダ−バイナリ」モードを追加するには、 FRM_MODE_LISTの末尾に ",BIN_GROUP" を追加してください。
途中に挿入する場合は、関連する3つの項目にも同じindex位置に値を挿入してください。
どうしても上手く起動できないときは、ini ファイルを削除して、起動してください。

[モード(「フォルダ−バイナリ」)の追加] 方法
モードを追加するには、以下の各リストを同時に編集する必要があります。

        ------------------------------------------------------------
        FRM_MODE_LIST
        GRP_SIM_TYPE_LIST
        VIEW_SIM_VAL_VALID_LIST
        VIEW_SIM_VAL_LIMIT_VIEW_LIST
        VIEW_SIM_VAL_LIMIT_EDGE_LIST
        ------------------------------------------------------------

FRM_MODE_LIST
メニュー「モード」に対応する項目です。

指定可能な値は FRM_MODE_LISTのテーブル を参照してください。
モードの総数(セパレータを除く)に合わせて以下のリストの数も一緒に揃える必要があります。

GRP_SIM_TYPE_LIST
メニューの[表示]-[特徴量種別]の項目です。
モード毎に「特徴量種別」を持っています。
モードの総数(セパレータを除く)と同数の値が必要になります。 過剰な場合は末尾から削除され、不足している場合はデフォルト値が充填されます。

指定可能な値は以下の数字です。
意味
1 「先頭」を表わします。
フォルダ・zip内の先頭画像のみで類似検索します。 「簡易」モードと同義です。
2 「境界2」を表わします。
フォルダ・zip内の先頭から2つ、末尾から2つの計4つの画像で類似検索します。 比較時に画像数が異なる場合、多い方の境界も新たに検索対象に加えます。
3 「全て」を表わします。
フォルダ・zip内の全画像で類似検索します。 「全て」モードと同義です。

「フォルダ−バイナリ」(BIN_GROUP)のみで参照される値です。 他のモードでは無視されます。

VIEW_SIM_VAL_VALID_LIST
(該当するメニュー項目はありません)
モード毎に値を持っています。
モードの総数(セパレータを除く)と同数の値が必要になります。 過剰な場合は末尾から削除され、不足している場合はデフォルト値が充填されます。

指定可能な値は範囲 [0 1] の小数で、VIEW_SIM_VAL_LIMIT_EDGE_LISTの同indexの値以上の必要があります。

この値は、 モード OPENCV_GROUP において、 画像1対1の類似度で一致/類似とみなす閾値です。 この閾値以上のペアの数が類似度として利用されます。
他のモードでは無視されます。

VIEW_SIM_VAL_LIMIT_VIEW_LIST
メニューの[表示]-[表示 類似度 制限]の項目です。
モード毎に値を持っています。
モードの総数(セパレータを除く)と同数の値が必要になります。 過剰な場合は末尾から削除され、不足している場合はデフォルト値が充填されます。

指定可能な値は範囲 [0 1] の小数で、VIEW_SIM_VAL_LIMIT_EDGE_LISTの同indexの値以上の必要があります。

カラーモードおよび(OpenCV特徴量アルゴリズム)モードで参照される値です。 他のモードでは無視されます。

VIEW_SIM_VAL_LIMIT_EDGE_LIST
メニューの[表示]-[生成 類似度 制限]の項目です。
モード毎に値を持っています。
モードの総数(セパレータを除く)と同数の値が必要になります。 過剰な場合は末尾から削除され、不足している場合はデフォルト値が充填されます。

指定可能な値は範囲 [0 1] の小数で、VIEW_SIM_VAL_LIMIT_VIEW_LISTの同indexの値以下の必要があります。

カラーモードおよび(OpenCV特徴量アルゴリズム)モードで参照される値です。 他のモードでは無視されます。

Q13. 旧モードの利用方法

A13.
Version 3.0.0 より、 ini ファイルの無い初期ユーザや オプションメニューの「初期状態に戻す」を選択した場合、 メニューのモード欄に 以下のモードがデフォルトで表示されません。

  • [ファイル - カラー]
  • [フォルダ - バイナリ(簡易)]
  • [フォルダ - カラー(簡易)]
  • [フォルダ - SURF(簡易)]
  • [フォルダ - バイナリ(全て)]
  • [フォルダ - カラー(全て)]
  • [フォルダ - SURF(全て)]
実質、 「〜(簡易)」と「〜(全て)」が「フォルダZIP〜」に 機能統合され、 カラーモードはサポートとから外しています。

どうしても、上記の旧モードを利用したい場合は、 simg.ini ファイルを編集します。
「Q12. モード「フォルダ−バイナリ」が表示されません」 を参考にモードを追加してください。 (但し、SURFを指定しても使えません)

カラーモードの追加例を下記に示します。
(モードの末尾に「フォルダ−カラー(簡易)」「フォルダ−カラー(全て)」を追加します)

------------------------------------------------------------
FRM_MODE_LIST=BIN_FILE, OPENCV_FILE.2, --, BIN_GROUP, OPENCV_GROUP.12, --, COLOR_DIR_PLAIN, COLOR_DIR_FULL
GRP_SIM_TYPE_LIST=2, 2, 2, 2, 2, 2, 2
VIEW_SIM_VAL_VALID_LIST=0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8
VIEW_SIM_VAL_LIMIT_VIEW_LIST=0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8
VIEW_SIM_VAL_LIMIT_EDGE_LIST=0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7
------------------------------------------------------------
上記をそのまま simg.ini に追記する際は、アプリケーションを終了させた後、末尾に追加してください。

Q14. ツールバーのカスタマイズ

A11.
ini ファイルを編集することでツールバーをカスタマイズできます。
関連するキーワードは TOOLBAR_*_ID です。

表. ツールバーのキーワード
キーワード 説明
TOOLBAR_SYS_ID ツールバー「システム」
TOOLBAR_BIN_ID ツールバー「バイナリモード」
TOOLBAR_OPENCV_ID ツールバー「OpenCVモード」
TOOLBAR_USER0_ID ツールバー「ユーザ0」。 デフォルトでは非表示です。
TOOLBAR_USER1_ID ツールバー「ユーザ1」。 デフォルトでは非表示です。
TOOLBAR_USER2_ID ツールバー「ユーザ2」。 デフォルトでは非表示です。

これらのキーワードに対して、ツールバーボタンのID(下記)を リスト形式、カンマ+半角スペース(", ")区切りで表記します。

表. ツールバーボタンのID
ID 該当するメニュー項目
FILE_LOAD [ファイル]-[読み込み]
FILE_SAVE [ファイル]-[保存]
FILE_ADD [ファイル]-[データの追加]
FILE_CLEAR [ファイル]-[データクリア]
FILE_CLEAR_ALL [ファイル]-[全データクリア]
EDIT_UNDO [編集]-[元に戻す]
EDIT_REDO [編集]-[やり直し]
EDIT_RE_THUMB [編集]-[サムネイル 更新]
EDIT_RE_VIEW [編集]-[テーブル表示 更新]
EDIT_RE_EDGE [編集]-[類似 更新]
EDIT_RE_NODE [編集]-[ファイル・フォルダ情報 更新]
EDIT_RE_TARGET [編集]-[全データ 更新]
EDIT_NODE_LEVEL_PLUS [編集]-[ファイル・フォルダ レベル +1]
EDIT_NODE_LEVEL_MINUS [編集]-[ファイル・フォルダ レベル -1]
EDIT_NODE_LEVEL_CUSTOM [編集]-[ファイル・フォルダ レベル ...]
EDIT_EDGE_LEVEL_PLUS [編集]-[類似度 レベル +1]
EDIT_EDGE_LEVEL_MINUS [編集]-[類似度 レベル -1]
EDIT_EDGE_LEVEL_CUSTOM [編集]-[類似度 レベル ...]
EDIT_NODE_ZIP [編集]-[圧縮・解凍]
VIEW_SIM_TYPE [表示]-[類似度フィルタ]
VIEW_SIM_VAL_LIMIT_VIEW [表示]-[表示 類似度 制限]
VIEW_SIM_VAL_LIMIT_EDGE [表示]-[生成 類似度 制限]
OPT_CLEAR_DUST [オプション]-[ゴミ箱を空にする]
HELP_DOC_HTML [ヘルプ]-[ドキュメント(HTML)...]
HELP_VERSION [ヘルプ]-[バージョン]
-- セパレータ(区切り線)

TOOLBAR_*_ID はただの入れ物なので、どこにどの ID があっても問題ありません。 TOOLBAR_USER*_ID は初期状態(デフォルト)では空なので表示されませんが、 ID を指定することで、メニューに項目が追加されます。

デフォルトでは次のように記述されています。

------------------------------------------------------------
TOOLBAR_SYS_ID=FILE_SAVE, --, EDIT_UNDO, EDIT_REDO, --, EDIT_NODE_ZIP
TOOLBAR_BIN_ID=VIEW_SIM_TYPE
TOOLBAR_OPENCV_ID=VIEW_SIM_VAL_LIMIT_VIEW, VIEW_SIM_VAL_LIMIT_EDGE
TOOLBAR_USER0_ID=@Invalid()
TOOLBAR_USER1_ID=@Invalid()
TOOLBAR_USER2_ID=@Invalid()
------------------------------------------------------------