画面の左上には「23頭」と出ていました。豚舎にいたのは24頭です。数字だけを見れば、ほぼ合っています。ところが、1頭ずつに振られた番号は、70番まで進んでいました。
先にお断りしておくと、これはお客様の案件ではなく、2026年7月に自社で行ったPoC(概念実証)の話です。カメラの映像から、豚の頭数を数える仕組みを作りました。どなたかにご迷惑をおかけしたわけではないので、「失敗」と呼ぶのは大げさかもしれません。それでも、失敗の話を書くと決めたとき、最初に思い浮かんだのがこれでした。うまくいったように見える失敗がいちばん気づきにくい、と思っているからです。
豚がまばらな豚舎では、うまく動いていました。7頭がそれぞれの番号を持ったまま歩き回り、画面の数字も実際と合っていました。
混み合った豚舎では、豚同士が重なり、天井のカメラからは体の一部が見えなくなります。見えなくなった豚がもう一度現れると、システムはそれを新しい豚だと判断して、番号を振り直していました。70という番号は、その数え直しが何十回も起きていたことを示しています。23という数字が実際に近かったのは、仕組みが正しく動いた結果ではありませんでした。
正直に書くと、最後の数字だけを報告に載せていたら、「混み合った豚舎でも、ほぼ正確に数えられた」と書けてしまう状況でした。うそをつくつもりがなくても、途中を見なければ、そう読めてしまいます。
そこで、一つのモデルを調整し続けて全部を数えようとするのは、やめました。カメラ1台で密集した群れを真上から見る、という構成そのものに限界があると考えたからです。正確に数えるのは、出入口を1頭ずつ通るときに限る。豚舎の中では頭数を出さず、前回より急に減っていないかを知らせる見張りの役にとどめる。そう分けることにしました。
混み合った豚舎で正確な頭数を出すことは、今もできていません。実際の農場で使うには、その農場で撮った画像を数千枚単位で集めて学習させる必要がありますが、そこにもまだ手をつけていません。
この検証のあと、私たちが変えたことがあります。結果を報告するときは、できたことと同じ紙に、できなかったことと、まだ試していないことを書くようにしました。公開している事例のページに「現時点の制約」という欄を設けているのも、同じ理由です。
VAONが大事にしている3Tの一つ目は「心(Tâm)」、誠実であることです。言葉にするのは簡単です。本当に試されるのは、見栄えのいい数字が手元にあるときなのだと、この豚の動画で知りました。
開発会社からPoCの結果を受け取ったとき、最後の数字と一緒に、途中の記録も見せてもらえるか聞いてみるのは、一つの方法だと思います。すぐに出てくる相手なら、うまくいかなかった部分の話も、きっとできるはずです。
皆さんにも、「うまくいった」と思ったあとで、実はそうではなかったと気づいた経験はありますか。