画像AIの害虫判定で誤検知が多い原因とは?粘着板の汚れ・影・類似昆虫への対策を撮影条件・学習データ・閾値から解説

産業インサイト・課題解決///

粘着板とカメラ、画像AIによる害虫カウントを導入したものの、「AIのカウントが目視より多い」「ゴミや影まで害虫として数えている」「閾値を上げたら今度は見逃しが増えた」といった声は、導入後やPoC(Proof of Concept:概念実証)の段階でしばしば聞かれます。ベンダーから示された精度と現場の体感が合わず、防除判断に使ってよいのか確信が持てない状況も少なくありません。

こうした場面では、まず「モデルの性能が足りない」と考え、モデルの入れ替えや追加学習を検討しがちです。その発想自体は自然なものです。ただし、誤検知の原因は撮影条件、学習データ、閾値と集計、評価の方法など複数の場所に分かれており、モデルだけを見直しても改善しない場合があります。

最初に決めたいのは「どのモデルを使うか」ではなく、「誤検知がどの段階で生じているか」です。原因の場所が分かれば、現場で対応できる改善と、専門的な検証が必要な改善を分けて考えられます。

本記事では、画像AIの害虫判定における誤検知を「撮影条件・学習データ・閾値(集計)」の3軸と、それを確認する評価・運用の視点から整理します。なお、記事中の数値表とコードの出力はすべて説明用の疑似データであり、実際の精度を示すものではありません。

「AIの性能不足」と決める前に、誤検知を4つの段階に分けて考える

画像AIによる害虫カウントは、おおむね4つの段階で成り立っています。粘着板を撮影する「入力」、物体検出モデル(Object Detection:画像の中から対象の位置と種類を推定するモデル)が候補を出す「学習済みの判断」、信頼度スコア(Confidence Score:モデルが判定にどの程度の確からしさを持つかを示す値)に閾値を適用して件数を集計する「出力」、そして結果を目視などと照合する「評価」です。誤検知は、このどの段階でも起こり得ます。

誤検知の原因を切り分ける4つの段階

01
入力
撮影条件

照明、距離、角度、解像度、撮影時刻、結露対策

起きやすい症状

影・反射の誤認、画像ごとの見た目のばらつき、ピンボケ

02
学習
学習データ

害虫でないものの例(ハードネガティブ)、アノテーション基準、季節・環境の偏り

起きやすい症状

汚れ・類似昆虫の誤認、季節やカメラ変更後の精度低下

03
出力
閾値と集計

信頼度閾値、クラス別の考え方、前回画像との差分による新規捕獲の考え方

起きやすい症状

累積による過大カウント、誤検知と見逃しのトレードオフ

04
評価
指標と運用

適合率・再現率、混同行列、目視照合、判定が難しい画像のレビュー、粘着板の交換ルール

起きやすい症状

ベンダー提示の精度と現場の体感のずれ

概念図であり、各段階の影響の大きさや対応の優先順位を示すものではありません。

上図のように整理すると、「AIのカウントが多い」という同じ症状でも、原因の置き場所が異なることが分かります。たとえば影を害虫と数える場合、撮影条件の問題に見えますが、学習データに影の例が少ないことが背景にある場合もあります。また、閾値を上げれば誤検知は減りやすい一方で、見逃しが増える可能性があります。

ただし、これはモデル自体に問題がないという意味ではありません。モデルの見直しが必要なケースもあります。大切なのは、モデルを疑う前に、画像と記録から誤検知の内訳を確認するという順序を踏むことです。

粘着板の汚れは、なぜ誤検知を日々増やしやすいのか

粘着板は、害虫だけでなく、土ぼこり、葉片、ゴミ、気泡、しわ、光の反射なども画像に写りやすい媒体です。さらに、捕獲された虫も汚れも板の上に残り続けるため、設置からの日数が経つほど、画像内の「害虫に見えるもの」が累積的に増えやすくなります。

ここで押さえたいのは、「画像内の全数検出」と「新規捕獲数」は別の量だという点です。AIが毎回の画像で板上の全数を数える方式では、前回までに捕獲された個体に加えて、すでに付着していた汚れの一部の誤検知も毎回カウントに含まれます。そのため、日々のカウント値の増加が、実際の発生量の変化ではなく、汚れの累積を反映している場合があります。

粘着板の設置後日数AIカウント(板上の全数)目視カウント(対象害虫)差分主な誤検知要因
1日440ほぼなし
3日981影・反射
5日15123汚れ・ゴミ
7日22175汚れ・ゴミ、気泡
10日31229汚れ・ゴミ、類似昆虫
14日432716汚れ・ゴミ(累積)

この疑似例では、設置初期は差が小さく、日数が進むほど差分が広がっています。これは「AIの性能が日数とともに劣化した」ことを示すものではなく、入力側の画像に汚れが増えたことによる変化として読むことができます。もちろん、現場によって増え方は異なり、この傾向がすべての環境に当てはまるわけではありません。

すぐできる確認作業:直近の粘着板3〜5枚について、設置後の日数ごとにAIカウントと目視カウントを2列で並べてみてください。差が日数とともに広がっていれば、汚れ起因の可能性があります。その場合は、差の大きい画像を数枚開き、誤検知された箇所が何だったかを確認します。全枚数を見る必要はなく、小さい範囲で傾向をつかむだけで十分な出発点になります。

影・照明ムラ・類似昆虫・重なりによる誤認を整理する

汚れ以外にも、誤検知や数え誤りを生む要因があります。代表的なものを挙げます。

  • 影・照明ムラ:時間帯、逆光、直射日光により輪郭が強調され、害虫として誤認される
  • 類似昆虫:対象外の小型昆虫(例:小型のハエ類・ユスリカ類)を、対象害虫(例:コナジラミ類・アザミウマ類)と取り違える
  • 重なり:虫同士が重なり、1件として数える過少カウントや、1個体を複数に分ける過大カウントが生じる
  • 見た目の変化:季節、圃場、粘着板の種類、カメラの変更により画像の見え方が変わり、精度が落ちる

類似昆虫の種名はあくまで例です。画像から識別できるかどうかは、解像度、個体の状態、捕獲後の経過などにより変わります。画像だけでは識別が難しい場合もあるため、「識別できる」と一律に考えず、難しい画像は人が確認する前提で運用を組むことが現実的です。

粘着板上で混同されやすいものの模式図

本来の対象
対象害虫

小さな楕円状の暗色の像。サイズが小さいほど、他のものとの差が画像に残りにくい。

混同しやすい
類似昆虫(非対象)

大きさや色が近いと識別の手がかりが少ない。体の模様や脚などが写る解像度かどうかが分かれ目になる。

混同しやすい
土ぼこり・葉片・ゴミ

不定形で色むらがあるが、小さい場合は害虫と輪郭が近くなる。日数とともに累積する。

混同しやすい
気泡・しわ

粘着面の貼り方で生じる。縁の反射が輪郭として検出されることがある。

混同しやすい
影・反射

時間帯や光の向きで形が変わる。同じ位置でも画像ごとに現れたり消えたりする。

数え誤り
虫同士の重なり

1個体として数えると過少、分割して数えると過大になる。捕獲数が多い板で起きやすい。

模式図であり、実際の昆虫の形状・大きさ・識別可否を再現したものではありません。

誤検知パターン起きやすい状況主な原因の場所点検・対策の例
汚れ・ゴミ設置日数が長い板、風や土ぼこりの多い環境学習データ、閾値・集計、運用汚れの画像を「害虫でないもの」として追加、差分による新規捕獲の考え方の検討、交換ルールの設定
気泡・しわ・反射板の貼り付け状態、照明の角度撮影条件、学習データ板の貼り方の標準化、照明角度の見直し、反射例の収集
影・照明ムラ逆光、直射日光、時間帯の違い撮影条件撮影時刻・遮光・照明の標準化
類似昆虫対象外の小型昆虫が多く捕獲される時期や場所学習データ、閾値非対象昆虫の明示的な学習、ラベル基準の統一、判定が難しい画像のレビュー
重なり捕獲数が多い板撮影条件、集計、運用交換頻度の見直し、重なりの多い画像の人による確認
見た目の変化季節、圃場、粘着板の種類、カメラの変更学習データ、撮影条件変更後の目視照合、変更後データの追加

軸1:撮影条件を標準化する

撮影条件は、モデルを変えずに改善できる可能性がある領域です。一方で、条件を変えると過去データとの比較が難しくなるため、変更した日付と内容を必ず記録しておく必要があります。確認したい項目は次のとおりです。

  • 照明:影や反射が出にくい配置にそろえる。直射日光が当たる場所では、遮光や拡散で明暗差を抑える
  • 距離と角度:板面に対するカメラの距離と角度を固定し、板の端で像が歪まないようにする
  • 解像度:小型の個体が数画素しか写らない場合、識別の手がかりが画像に残らない。対象の大きさに対して十分か確認する
  • 撮影時刻:同じ時間帯に撮影し、太陽の位置による影の違いを減らす
  • 結露対策:結露は反射やピンボケの原因になる。撮影のタイミングや設置環境を見直す
  • 変更履歴:カメラ、板、設置位置を変えた日付を残し、変更前後の画像を比べられるようにする

すべてを完璧に整えてから始める必要はありません。たとえば、影が目立つ時間帯の画像だけを抜き出して誤検知の件数を比べるなど、小さい範囲で効果を確かめてから標準化の範囲を広げる進め方が現実的です。

軸2:学習データを見直す

学習データの見直しでは、まず「害虫でないものを学習できているか」を確認します。ハードネガティブ(Hard Negative:モデルが誤って対象と判定しやすい、害虫でない例)として、汚れ、影、気泡、類似昆虫を学習データに含めることで、誤認しやすいパターンを重点的に学習させる考え方があります。物体検出の分野では、誤りやすい例を重点的に学習に用いる手法が研究されています(Shrivastava et al., 2016)。

次に、アノテーション(Annotation:画像に正解ラベルを付ける作業)の基準を確認します。「半分欠けた個体を害虫として数えるか」「重なった個体を1件とするか2件とするか」「判別が難しいものをどう扱うか」が人によって異なると、学習データにも評価にも揺らぎが入ります。基準を文書化し、複数人で同じ画像にラベルを付けて一致度を確認すると、揺らぎの大きい項目が見つかります。

三つめは、季節や環境の偏りです。特定の季節、圃場、粘着板、カメラで集めたデータだけで学習すると、条件が変わった場合に精度が下がることがあります。これはデータセットシフト(Dataset Shift:学習時と運用時でデータの分布が異なる現象)として知られています(Moreno-Torres et al., 2012)。季節や設備を変えた際は、変更後の画像を目視と照合し、精度が保たれているかを確かめる必要があります。

「学習データは何枚あればよいか」という疑問もよく聞かれますが、一律の枚数は示せません。必要な量は、対象とする条件の幅、誤認しやすいパターンがどの程度含まれているか、クラス間のバランスなどで変わります。枚数を増やす前に、誤検知の内訳を見て、不足している種類のデータから補うほうが効率的な場合があります。なお、既存システムで追加学習が可能かどうかは製品の仕様に依存するため、提供元への確認が必要です。

軸3:閾値と集計の考え方

信頼度スコアは、必ずしも「正解である確率」とそのまま一致しません。ニューラルネットワークの出力は、確率としての較正(キャリブレーション)が必要になる場合があることが報告されています(Guo et al., 2017)。「0.5以上なら半分以上は正しい」と読むのではなく、自分たちの画像で実際にどの程度正しいかを確認することが重要です。

閾値を変えたときの変化は、目視確認の結果が付いた検出結果があれば一覧化できます。次のコードは、説明用の疑似データで、閾値ごとの適合率・再現率・誤検知件数・見逃し件数を計算する例です。

import pandas as pd

# 説明用の疑似データ(実際の精度を示すものではありません)
scores = [0.95, 0.92, 0.88, 0.86, 0.84, 0.81, 0.77, 0.74, 0.72, 0.67,
          0.63, 0.58, 0.54, 0.47, 0.45, 0.42, 0.38, 0.35, 0.33, 0.31]
labels = ["対象害虫", "対象害虫", "対象害虫", "汚れ・ゴミ", "対象害虫",
          "対象害虫", "非対象昆虫", "対象害虫", "影・反射", "対象害虫",
          "汚れ・ゴミ", "対象害虫", "非対象昆虫", "対象害虫", "汚れ・ゴミ",
          "影・反射", "対象害虫", "汚れ・ゴミ", "汚れ・ゴミ", "非対象昆虫"]
df = pd.DataFrame({"score": scores, "label": labels})

# モデルが検出できなかった対象害虫(目視確認で判明した件数)
undetected_pests = 2
total_pests = (df["label"] == "対象害虫").sum() + undetected_pests

rows = []
for t in [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]:
    detected = df[df["score"] >= t]
    tp = (detected["label"] == "対象害虫").sum()
    fp = len(detected) - tp
    rows.append({
        "閾値": t,
        "検出数": len(detected),
        "適合率": round(tp / len(detected), 2) if len(detected) else None,
        "再現率": round(tp / total_pests, 2),
        "誤検知件数": fp,
        "見逃し件数": total_pests - tp,
    })

print(pd.DataFrame(rows).to_string(index=False))
Python
閾値検出数適合率再現率誤検知件数見逃し件数
0.3200.500.83102
0.4160.560.7573
0.5130.620.6754
0.6110.640.5845
0.790.670.5036
0.860.830.4217
0.921.000.17010

閾値を上げると誤検知は減り、適合率は上がります。一方で見逃しが増え、再現率は下がります。この疑似例では、閾値を0.3から0.9に上げると誤検知は10件から0件になりますが、見逃しは2件から10件に増えています。どの閾値が「正しい」かはデータだけでは決まらず、何のためにカウントするかで変わります。発生初期の兆候を逃したくない目的であれば見逃しを重く見る、巡回の優先順位付けが目的であれば誤検知を重く見る、といった考え方があります。

対象が複数のクラス(害虫の種類)に分かれている場合、クラスごとに誤認の起きやすさが異なるため、全クラスに同じ閾値を使うことが最適とは限りません。ただし、サンプル数の少ないクラスで閾値を細かく調整すると結果が不安定になるため、評価用のデータで効果を確かめたうえで判断する必要があります。

集計の面では、板上の全数ではなく、前回画像との差分から新規捕獲数を数えるという考え方があります。汚れの累積による影響を抑えやすい一方、撮影位置のずれ、虫の重なり、板の交換時の扱いによって、前回との対応付けが難しくなる場合があります。撮影位置の固定や交換時の記録といった運用ルールとセットで検討する必要があり、具体的な方法は現場の条件によって異なるため、ここでは考え方の紹介にとどめます。

精度評価は、防除判断への影響から考える

評価の基本となる指標は2つあります。適合率(Precision)は、AIが害虫と判定したもののうち実際に害虫だった割合、再現率(Recall)は、実際にいる害虫のうちAIが検出できた割合です。ベンダーから精度が示された場合は、それがどの指標か、どのような条件の画像で測られたかを確認してください。対象が少なく背景が多いような偏りのあるデータでは、適合率と再現率の関係で評価するほうが実態を捉えやすいとされています(Saito and Rehmsmeier, 2015)。

もう一つの手がかりが混同行列(Confusion Matrix:AIの判定と目視判定の組み合わせを表にしたもの)です。誤検知の件数だけでなく、「何を害虫と取り違えたのか」の内訳が分かるため、対策の優先順位を決めやすくなります。次のコードは、誤検知の原因タグごとに件数と割合を集計する例です。

import pandas as pd

# 説明用の疑似データ(実際の精度を示すものではありません)
tags = (["汚れ・ゴミ"] * 18 + ["影・反射"] * 9
        + ["類似昆虫"] * 8 + ["重なり"] * 5)
s = pd.Series(tags, name="原因タグ")

summary = s.value_counts().rename("件数").to_frame()
summary["割合(%)"] = (summary["件数"] / summary["件数"].sum() * 100).round(1)
summary["累積割合(%)"] = summary["割合(%)"].cumsum()
print(summary)
Python
原因タグ件数割合(%)累積割合(%)
汚れ・ゴミ1845.045.0
影・反射922.567.5
類似昆虫820.087.5
重なり512.5100.0

この疑似例では汚れ・ゴミの割合が大きく、まず汚れへの対策から着手する、という優先順位が見えてきます。ただし、割合が大きいことは、対策が容易であることを意味しません。重なりのように、誤検知ではなく数え誤りに分類されるものも、原因タグに含めて把握しておくと運用上の判断に役立ちます。

最後に、カウント誤差は「平均して何パーセントずれるか」ではなく、「防除や衛生管理の判断が変わるほどのずれか」で評価することをお勧めします。たとえば、防除の要否を判断する水準の付近で、AIと目視の結果が食い違う頻度を確認します。許容できる誤差は、作物、対象害虫、防除方針によって異なるため、自社の判断基準から逆算して決める必要があります。

運用で誤差を管理する

誤検知をゼロにすることを目標にするのではなく、誤差の大きさと傾向を把握し、管理できる状態にすることが現実的な目標です。運用面では、次の4つを検討します。

  • 定期的な目視照合:頻度は判断の重要度と現場の負担から決める。最初は少数の板から始める
  • 判定が難しい画像のレビュー:信頼度が閾値付近の画像や、重なりの多い画像を人が確認する
  • 粘着板の交換ルール:汚れや捕獲数の状態、または設置日数に基づく基準を決める
  • 変更時の再照合:カメラ、粘着板、モデルの更新時には、変更前後の結果を目視と照合する

これらを続けるためには、誤検知の記録を残す仕組みが欠かせません。表5のような項目で記録すれば、専用のツールがなくても、Excelのピボットテーブルや COUNTIF 関数で、先ほどの原因タグ別の集計と同じ結果を得られます。

項目記入例(架空)目的
画像IDIMG-0001画像と記録の対応付け
撮影日時・設置後日数○月○日 10:00/5日目日数・時間帯による傾向の確認
AI判定対象害虫AIの出力の記録
目視判定汚れ・ゴミ正解の記録
原因分類汚れ・ゴミ/影・反射/類似昆虫/重なり/その他誤検知の内訳の集計
備考板の端、結露あり など撮影条件との関係の把握

現場で使える点検チェックリスト

ここまでの内容を、点検の項目として整理します。すべてを一度に確認する必要はなく、まず「運用」と「閾値」から始め、原因の見当がついたところで撮影条件や学習データに進むと負担が小さくなります。

区分確認項目確認の例
撮影照明・影の安定性時間帯別に誤検知件数を比べる
撮影距離・角度・解像度の固定基準画像と最近の画像を並べる
撮影結露・反射の有無誤検知画像の備考欄で確認する
データ害虫でないものの学習状況汚れ・影・類似昆虫の例が含まれているか提供元に確認する
データラベル基準の文書化複数人で同じ画像にラベルを付け、一致度を見る
データ季節・環境・機材の偏り変更後の画像で目視照合する
閾値・集計閾値ごとの誤検知・見逃し表3のような一覧を自社データで作る
閾値・集計全数と新規捕獲数の区別設置後日数別にAIと目視を並べる
運用目視照合の頻度少数の板で定期的に実施する
運用交換ルール・変更時の再照合基準を文書にして共有する

よくある質問

閾値を上げれば解決しますか?

閾値を上げると誤検知は減りやすくなりますが、その分、見逃しが増える可能性があります。誤検知の原因が汚れや影の混入にある場合は、閾値の調整だけでなく、撮影条件や学習データ、交換ルールの見直しが必要になることがあります。

学習データは何枚あればよいですか?

一律の枚数は示せません。対象とする環境の幅、誤認しやすい例の含まれ方、クラス間のバランスなどで必要な量が変わります。まず誤検知の内訳を確認し、不足している種類の画像から補うことをお勧めします。

類似昆虫は見分けられますか?

画像の解像度、個体の状態、対象の種類によって異なり、画像だけでは識別が難しい場合もあります。識別を前提にせず、判定が難しい画像は人が確認する運用を併せて設計する考え方が現実的です。

既存システムのままでも改善できますか?

改善できる部分はあります。撮影条件の標準化、粘着板の交換ルール、目視照合、誤検知の記録と集計などは、システムを入れ替えなくても取り組める場合があります。モデルや閾値の変更が可能かどうかは製品の仕様によるため、提供元への確認が必要です。

まとめ

画像AIの害虫判定における誤検知は、AIの性能不足と決めつける前に、入力(撮影条件)、学習(データ)、出力(閾値と集計)、評価(指標と運用)のどこでずれが生じているかを切り分けることが出発点になります。粘着板では汚れが累積するため、全数検出と新規捕獲数を区別して見ることも重要です。

次に確認していただきたいことは、次の4点です。

  1. 設置後日数別に、AIカウントと目視カウントを並べる
  2. 誤検知に原因タグを付け、内訳を集計する
  3. 閾値ごとの誤検知と見逃しを自社データで一覧にする
  4. 誤差を、防除や衛生管理の判断への影響で評価する

1〜2は現場で進められる範囲です。評価用データの設計や、学習データの見直しが妥当かどうかの判断、ベンダー提案の検証などは、画像と記録を照合しながら進めたほうが確実な場合があります。

現状のシステムを活かした改善・評価設計のご相談

害虫モニタリングの目的は、AIのカウント値そのものではなく、防除や衛生管理の判断に使える情報を得ることです。SCI総合研究所のG-SENSIAでは、捕虫データの記録方法、評価指標、判断基準づくりを含めた意思決定支援を行っています。画像判定の実証評価や技術検証は研究開発サポートでも対応しています。現状のシステムを活かしたまま改善できる点がないか、まずはお気軽にご相談ください。

参考文献

  • Shrivastava et al. 2016. Training Region-Based Object Detectors with Online Hard Example Mining. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). pp. 761-769. https://doi.org/10.1109/CVPR.2016.89
  • Guo et al. 2017. On Calibration of Modern Neural Networks. Proceedings of the 34th International Conference on Machine Learning (PMLR). Vol. 70. pp. 1321-1330. https://proceedings.mlr.press/v70/guo17a.html
  • Saito and Rehmsmeier. 2015. The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets. PLOS ONE. Vol. 10. Issue 3. pp. e0118432. https://doi.org/10.1371/journal.pone.0118432
  • Moreno-Torres et al. 2012. A unifying view on dataset shift in classification. Pattern Recognition. Vol. 45. Issue 1. pp. 521-530. https://doi.org/10.1016/j.patcog.2011.06.019