何ができたら「個体識別できる」と言えるのか — タグレス個体識別のスコアと閾値

今回は、「この対象は本当に個体識別できるのか? をどう確かめるのか」というテーマを扱います。
GAZIRU.z は画像だけで個体を識別する(タグレス個体識別)画期的な製品ですが、実際に製品が行うのは、照合時に送られた画像に対し、登録済みの画像との間の類似度を表す スコア のリストを返すことです。この返されたスコアをどう解釈するのかは、実際に導入するシステムごとに、スコアを受け取った側で判断を作り込む必要があります。
実際にスコアをどう解釈するのか、何をもって個体識別できているというのか。これが個体識別を導入するときに必ずぶつかる問いです。素材や形状、撮影条件が変われば、識別の難易度も変わります。「やってみないとわからない」と言われそうですが、事前に判定する方法はあります。それが、スコアの分布を分析するという手法です。
識別判定の仕組み — スコアと閾値
GAZIRU.z 製品が返すスコアは 0〜1 の値で、1 に近いほど類似度が高いことを意味します。
「同一個体である」と判定するためには、このスコアが事前に決められた 閾値(しきい値)を超えるかどうか を見ます。
スコア ≥ 閾値 → 同一個体と判定
スコア < 閾値 → 別個体と判定
仕組み自体はシンプルですが、ここで一つ大きな疑問が出てきます。この閾値、どうやって決めればいいのでしょうか?
同一個体でスコア 0.3が出ました・・・だめなの?
まず誤解のないように強調しておきたいのは、同一個体で例えば 0.3というスコアが出た場合、一見低いスコアに思えるかもしれませんが、後述するようにこれは多くの場合に個体識別可能であることが大いに期待できるスコア水準であるということです。
ただ、同じくらい大事なことは、厳密には実は、スコアの値そのものには、絶対的な意味はないということです。
「スコアが 0.4 出ました」とだけ聞いても、それが「良いスコア」なのか「悪いスコア」なのかは判断できません。なぜなら、スコアは対象の素材や撮像条件によって 全体のレンジが変わる からです。ある対象では同一個体のスコアが 0.3 付近に集中する、別の対象では 0.5 付近に集中する、ということがあり得ます。同じ「0.4」が、ある対象では同一個体相当、別の対象では別個体相当、ということは起こりうるわけです。
ではどうやって判断すればよいのか。答えは、「分布」で見る です。
検証の方法 — 2種類のスコア分布をつくる
実運用に入る前に、対象ごとに以下の手順でスコア分布を可視化します。
- 検証対象の登録用画像を撮影して登録する
- 検証対象の照合用画像を、本番運用に近い機材・撮影条件で撮影する
- すべての画像ペアの組み合わせで照合し、スコアを取得する
- 同一個体ペア・別個体ペアそれぞれのスコアを、別々のヒストグラムにする(横軸: スコア、縦軸: そのスコアになったペアの件数)
これによって、同一個体ペアのスコア分布 と 別個体ペアのスコア分布 という、性質の異なる2つの分布が描けます。撮像のズレや個体そのもののばらつきは一般にランダムなので、検証のサンプル数が多いほど、それぞれのペアのスコア分布は正規分布に近づきます。
実際には数百〜数千の個体を用意して検証しますが、考え方を理解するために、ここでは例として5つの個体 A, B, C, D, E を考えてみましょう。
- 検証対象の登録用画像を撮影して登録する → 登録用に画像 A, B, C, D, E の5枚を登録したとします。
- 検証対象の照合用画像を、本番運用に近い機材・撮影条件で撮影する → 照合用に画像 A', B', C', D', E' を、本番運用と同じ機材・条件で撮影します。
- すべての画像ペアの組み合わせで照合し、スコアを取得する → 例えば A' を 1 の全個体に対して照合すれば、同一個体ペア A'-A のスコア1個と、別個体ペア A'-B, A'-C, A'-D, A'-E のスコア4個が手に入ります。これを B', C', … とすべての照合用画像について繰り返せば、同一個体ペアのスコアが 5 件、別個体ペアのスコアが 20 件得られます。
- 同一個体ペア・別個体ペアそれぞれのスコアを、別々のヒストグラムにする → この2つの分布を見れば、個体識別可能かどうかを判断できます。
ここで重要なのは、手順2で「本番運用に近い条件で撮影する」 という点です。本番より丁寧に撮影したサンプルで検証してしまうと、得られた分布は本番の実力よりも楽観的な姿になり、運用に入って初めて識別不能に気づく、ということが起こりえます。検証用の撮影は、現場の運用条件をできるだけ忠実に再現することが大切です。
「識別できる」のはどういう分布のときか
得られた2つの分布を見比べたとき、両者の間にどれだけ「断絶」があるか で識別可能性が決まります。
パターン1: 完全に分離している(理想)

別個体ペアの分布と同一個体ペアの分布が、完全に分かれている状態です。両者の間に スコアが空白の範囲 があり、その間に閾値を引けば、同一個体と別個体は確実に区別できます。これが、識別可能な対象です。検証でのサンプリング対象においてこの空白の範囲が広ければ広いほど、本番での撮像の差異に対するより強い耐性があり、確実性は増します。
パターン2: わずかに重なっている
ほぼ分かれているけれど、ごく一部の範囲で2つの分布が重なっているケースです。この場合、重なった範囲では誤判定が必ず発生します:

- 別個体ペアなのに同一個体と判定されてしまう
- 同一個体ペアなのに別個体と判定されてしまう(取りこぼし)
重なりがごくわずかであれば、運用上の許容範囲として割り切って使うこともできます。求められる識別精度と、業務上のリスクとの兼ね合いで判断します。
パターン3: 大きく重なっている
2つの分布が大きく重なってしまっている、あるいはほとんど分離していない状態です。この場合、どこに閾値を引いても多くの誤判定が出るため、その対象・撮像条件のままでは個体識別はできない と判断します。

このときは諦めるのではなく、撮像条件を見直したり、撮影方法を変えたりして、もう一度分布を取り直します。「分布が分離しない原因が素材そのものにあるのか、それとも撮像のやり方にあるのか」を切り分けていく工程に入ります。多くの場合、「正しく」画像を撮影することができれば(それはそれで別の難しさはあるのですが)、個体識別可能となります。
典型的なスコアレンジの感覚
参考までに、私たちGAZIRUがこれまでさまざまな工業製品の表面で検証してきた経験では、おおよそ以下のようなレンジに落ち着くことが多いです。
- 別個体ペアのスコア: 0.2 を超えてくることはほとんどない
- 同一個体ペアのスコア: 0.3〜0.5 あたりに分布する
- 設定する閾値: 0.2〜0.25 のレンジに来ることが多い
例えば一般的な素材で「同一個体ペアで 0.35」というスコアが出たとすれば、これは十分に識別できることが期待できる数値です。多くの素材で、別個体ペアでは 0.25 あたりのスコアを出すこと自体が困難なため、両者の間に十分な余裕があるからです。
ただしこれは あくまで目安 であり、対象や撮像条件によって前後します。だからこそ、実際に導入に至る前には、必ず対象ごとに分布を取って確認する ことが必要なのです。
まとめ
タグレス個体識別における「識別できるかどうか」の判断は、
- スコアの絶対値そのものに意味があるわけではなく
- 同一個体ペアと別個体ペアのスコア分布が、どれだけ明確に分離しているか で決まる
そして、適切な閾値はあらかじめ決まっているのではなく、対象ごとの分布から導き出す ものです。
「うちの製品でタグレス個体識別はできるか?」という問いに対しては、現物のサンプルでこの分布検証を行うのが、最も確実な答えになります。私たちGAZIRUがお客様にPoC(概念実証)をご提案する際も、この分布の確認をもって、個体識別可能性を示すことを目指します。