(1)牛舎内乳牛映像に適用可能な画像セグメンテーションモデルの作成
ア 映像データ収集および機械学習用データセットの作成
農業・食品産業技術総合研究機構北海道農業研究センター(以下「センター」という)の放し飼い方式の搾乳牛牛舎に設置した4台のネットワークカメラ(Panasonic社、WV-S2570LNJ 2台、Panasonic社、BB-SW374 2台)を用いて、牛舎内を連続撮影し、得られた延べ約28カ月分の動画データを用いた(写真2)。このようにさまざまな撮影位置および角度からの映像を利用することで、牛の映り方によらない汎用性の高い牛体検出モデルが作成できると期待される。この映像データを基に画面の全体あるいは一部を画像として切り出し、合計3678枚の画像データを得た。この大量の牛舎内画像について、牛体範囲をポリゴン(多角形)頂点で囲うアノテーション作業を実施した(写真3)。アノテーション作業にはVGG Image Annotator(
https://www.robots.ox.ac.uk/~vgg/software/via/)を用いた。これらの画像のうち、3126枚を画像セグメンテーションモデルの学習用データとし、残りの552枚は精度検証のためのテストデータとした。
イ 画像セグメンテーションモデルの作成
本調査ではBolyaら(2020)が報告しているYOLACT++と呼ばれる手法を応用して牛舎内の乳牛画像を対象に適用した。同手法は、リアルタイムでの画像インスタンスセグメンテーションを可能とした機械学習モデルであり、計算速度が非常に速く、精度も高い方法として知られている。本調査では、Bolyaら(2019,2020)が公開しているPython言語のプログラムコード(
https://github.com/dbolya/yolact)を自身の開発環境(Windows10、Anaconda(
https://www.anaconda.com/)を利用)にて実行し、前述のアノテーション済み牛舎画像データセットを同モデルに学習させることで、牛体の境界を検出できるオリジナルの画像セグメンテーションモデルを作成した。
ウ 作成した画像セグメンテーションモデルの精度評価
前述の精度検証用テストデータ552枚に対して、作成した画像セグメンテーションモデルによる牛体検出を試行し、精度評価を行った。評価指標としてIntersection Over Union(以下「IOU」という)の閾値を0.5以上、もしくは0.75以上とした際の、Precision(適合率)とRecall(再現率)を用いた。IOUとは、モデルにより検出された領域と正解の領域との重なっている領域の比率を示し、1.0で完全一致、0.0で重なりなしを示す。本研究ではこのIOUの閾値として、一般的な物体検出の評価で適用される0.5と、より厳しい基準であり、ほぼ正確に牛体範囲を検出できたとみなせる0.75の二つを用いることとした。Precisionはいかに正確に範囲を検出できるかの指標であり、すべての検出範囲の個数の内、IOUの閾値以上での予測に成功した個数の割合(精度)を表すこととなる。また、Recallはいかに漏れなく検出できるかの指標であり、検出されるべき範囲の個数の内、IOUの閾値以上で検出できた個数の割合(感度)を表すこととなる。
(2)画像セグメンテーションモデルから取得した斑紋画像に基づく乳牛個体識別技術の開発、実装および性能評価
ア 個体識別に供する画像の切り出し
解析対象には(1)と同様に、センターの放し飼い方式の搾乳牛牛舎にて収集した映像データを用いた。同映像データを基に(1)で作成した画像セグメンテーションモデルを利用して映像中の牛体範囲を検出し、同範囲を画像として切り出した。なお、この際に牛体範囲を矩形(くけい)としてそのまま切り出したものを「従来法」によるもの、同矩形範囲内の牛体範囲以外をマスクして切り出したものを「開発手法」によるものとして、二つのパターンの画像を生成した(図)。以上により、合計59頭の乳牛個体から計2万9526枚の画像を得た(「従来法」および「開発手法」おのおので)。これを個体ごとに分類して、個体識別用畳み込みニューラルネットワークモデルの学習用データ(2万2658枚)および精度検証のためのテストデータ(6868枚)とした。
イ 個体識別精度の比較
個体識別を行うための判別器としてResNet50モデル(Heら,2015)を用いた。同モデルは画像の特徴量抽出に優れた性能を持つことが知られる畳み込みニューラルネットワークモデルである。これを上述の乳牛個体別切り出し画像について学習させることで、画像を基に個体IDを判別するモデルを作成した。判別モデルは「従来法」および「開発手法」の画像、それぞれの場合について作成した。作成した判別モデルを、学習に用いなかったテストデータを対象に適用し、個体識別の正解率を算出した。以上のResNet50モデルの実行はPythonの計算ライブラリPytorch(
http://pytorch.org/)を用いて行った。
ウ 牛舎内映像からのリアルタイム乳牛検出・個体識別プログラムの作成
調査者は牛舎内映像からの牛個体識別・追跡プログラム(特許出願済; 農研機構北農研, 2020,2021;写真4)の開発に取り組んできた。これは画像解析技術と複数の機械学習手法を組み合わせたもので、牛体範囲を矩形検出した後、同範囲に含まれる斑紋特徴から畳み込みニューラルネットワーク判別モデルにより個体識別し、追跡する構成となっている。本研究では、同プログラムの牛体範囲矩形検出ステップを、(1)で開発した画像セグメンテーションモデルによる検出に置き換え、背景や他個体の体部位を除いた画像を個体識別に用いた、新たなプログラムを作成した。同プログラムを、実際の牛舎映像データを対象に適用し、解析処理に係る速度を検証した。