斑点で、一匹ずつ見分ける

人の顔認識のように、このカメラはマスの体の黒い斑点の模様で、一匹ずつを見分けています。同じ魚が戻ってくると「おかえり」とわかり、何度も確認できた魚には名前がつきます。いまは 7匹 に名前があります。

過去24時間の判定

329同じ魚と一致
40新しい顔
41同じ魚とわかり統合
845確認待ち・判定保留
412斑点が見えず見送り

今日見分けたマス

ペブル
ペブル斑点が 255 点一致
11月10日(火) 00:51(日本時間)
スケールズ
スケールズ斑点が 86 点一致
11月10日(火) 00:49(日本時間)
スペックルズ
スペックルズ斑点が 181 点一致
11月10日(火) 00:45(日本時間)
フィネガン
フィネガン斑点が 293 点一致
11月10日(火) 00:20(日本時間)
ラスティ
ラスティ斑点が 168 点一致
11月9日(月) 23:49(日本時間)

しくみ

  1. はっきり映った瞬間を選ぶ
    ライブ映像から、マスの体の横がくっきり映った瞬間だけを自動で切り出します。ブレている、水が濁っている、こちらを向いている写真は見送ります。
  2. 斑点の特徴を見つける
    体の黒い斑点や模様のかどを「特徴点」として、1枚から数百個見つけます(SIFT という画像解析の方法)。
  3. これまでの「顔」と照らし合わせる
    覚えているすべての顔と比べ、点どうしの位置関係ごと一致するものだけを数えます(RANSAC で、ずれや回転を考えに入れて確認)。同じ魚なら数百点、違う魚なら数十点以下です。40点以上一致し、2番目の候補の1.5倍以上なら「同じ魚」と判定します。
  4. 迷ったときは、もう一度よく見る
    魚が斜めを向いていて自信がないときは、学習済みの特徴点マッチング(DISK と LightGlue)で、いちばん可能性の高い数匹と見比べます。
  5. 名前がつくまで
    新しい顔は、同じ訪問の2枚の写真が一致して初めて登録されます。そして10分以上あけた別々の3回の訪問で一致し、1時間以上にわたって確認できたら、名前がつきます。
  6. 左と右は、別の顔
    マスの斑点は左右で模様が違います。一匹だけで映っているときに向きを変えるところを見て、左右の顔を同じ魚としてつなげます。二匹が同時に映れば、別の魚だとわかります。
  7. 夜の見直し
    配信が終わった夜、その日の写真をもう一度まとめて見直し、取りこぼしや間違いを直します。

これらはすべて、川辺のカメラにつないだ小さなコンピューター(Raspberry Pi)の上で動いています。

なぜ斑点で見分けられるの?

マスの黒い斑点は、幼いころにできる色素細胞の集まりで、成長しても配置の形は変わりません。2025年のニジマスの研究では、1年後に8匹中6匹を体の横の斑点だけで見分けられました。

えらぶたは骨でかたいので、そこの斑点は写真ごとに配置がずれません。大西洋サケでも、えらぶたの斑点で一匹ずつ見分ける研究があります。

左右で模様が違うので、一匹のマスには「二つの顔」があります。だからこのカメラは、左右をつなげる手順を持っています。

名前まで、あと少し

顔 144
顔 144●●● 訪問 3/3 ・ 最後に見たのは 11月10日(火) 00:56
顔 359
顔 359●●● 訪問 3/3 ・ 最後に見たのは 11月10日(火) 00:06
顔 306
顔 306●●● 訪問 3/3 ・ 最後に見たのは 11月7日(土) 02:00
顔 84
顔 84●●○ 訪問 2/3 ・ 最後に見たのは 11月7日(土) 00:57

最近の判定

ペブルです!
ペブルです!斑点が 196 点一致(2番目の候補は 0 点)。これで 1269 回目の確認。
11月10日(火) 01:02(日本時間)・特徴点 434 ・ 20132ミリ秒
ペブルです!
ペブルです!斑点が 161 点一致(2番目の候補は 20 点)。これで 1268 回目の確認。
11月10日(火) 01:00(日本時間)・特徴点 305 ・ 21030ミリ秒
ペブルです!
ペブルです!斑点が 225 点一致(2番目の候補は 0 点)。これで 1267 回目の確認。
11月10日(火) 00:59(日本時間)・特徴点 491 ・ 19891ミリ秒
フィネガンです!
フィネガンです!斑点が 156 点一致(2番目の候補は 0 点)。これで 3444 回目の確認。
11月10日(火) 00:57(日本時間)・特徴点 316 ・ 19407ミリ秒
顔 144 と同じ魚
顔 144 と同じ魚斑点が 98 点一致(2番目の候補は 7 点)。これで 59 回目の確認。
11月10日(火) 00:56(日本時間)・特徴点 401 ・ 21195ミリ秒
ラスティです!
ラスティです!斑点が 86 点一致(2番目の候補は 0 点)。これで 175 回目の確認。
11月10日(火) 00:52(日本時間)・特徴点 265 ・ 17745ミリ秒
ペブルです!
ペブルです!斑点が 255 点一致(2番目の候補は 0 点)。これで 1266 回目の確認。
11月10日(火) 00:51(日本時間)・特徴点 310 ・ 19206ミリ秒
スケールズです!
スケールズです!斑点が 86 点一致(2番目の候補は 0 点)。これで 10 回目の確認。
11月10日(火) 00:49(日本時間)・特徴点 291 ・ 18676ミリ秒
フィネガンです!
フィネガンです!斑点が 145 点一致(2番目の候補は 0 点)。これで 3443 回目の確認。
11月10日(火) 00:48(日本時間)・特徴点 374 ・ 18387ミリ秒
フィネガンです!
フィネガンです!斑点が 99 点一致(2番目の候補は 0 点)。これで 3440 回目の確認。
11月10日(火) 00:47(日本時間)・特徴点 441 ・ 20894ミリ秒
フィネガンです!
フィネガンです!斑点が 110 点一致(2番目の候補は 0 点)。これで 3439 回目の確認。
11月10日(火) 00:46(日本時間)・特徴点 355 ・ 17034ミリ秒
スペックルズです!
スペックルズです!斑点が 181 点一致(2番目の候補は 22 点)。これで 383 回目の確認。
11月10日(火) 00:45(日本時間)・特徴点 366 ・ 22030ミリ秒

ページは1分ごとに新しくなります。もっとくわしい英語版(すべての顔と判定の記録)は Watch it learn faces へ。