IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

2025-101045作業機械、画像処理装置、および画像から特定の対象物を検出する方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025101045
(43)【公開日】2025-07-07
(54)【発明の名称】作業機械、画像処理装置、および画像から特定の対象物を検出する方法
(51)【国際特許分類】
   A01B 69/00 20060101AFI20250630BHJP
【FI】
A01B69/00 303J
A01B69/00 303G
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023217602
(22)【出願日】2023-12-25
(71)【出願人】
【識別番号】000001052
【氏名又は名称】株式会社クボタ
(74)【代理人】
【識別番号】100101683
【弁理士】
【氏名又は名称】奥田 誠司
(74)【代理人】
【識別番号】100155000
【弁理士】
【氏名又は名称】喜多 修市
(74)【代理人】
【識別番号】100139930
【弁理士】
【氏名又は名称】山下 亮司
(74)【代理人】
【識別番号】100188813
【弁理士】
【氏名又は名称】川喜田 徹
(74)【代理人】
【識別番号】100202197
【弁理士】
【氏名又は名称】村瀬 成康
(74)【代理人】
【識別番号】100202142
【弁理士】
【氏名又は名称】北 倫子
(72)【発明者】
【氏名】江戸 俊介
(72)【発明者】
【氏名】三木 淳平
(72)【発明者】
【氏名】荒井 ルシア
【テーマコード(参考)】
2B043
【Fターム(参考)】
2B043AA04
2B043AB19
2B043BA02
2B043BA05
2B043BA09
2B043BB01
2B043BB04
2B043BB06
2B043BB07
2B043BB11
2B043BB12
2B043DA01
2B043DA07
2B043EA37
2B043EB05
2B043EB08
2B043EB10
2B043EB15
2B043EB17
2B043EB18
2B043EC12
2B043EC14
2B043ED02
2B043ED12
2B043EE05
(57)【要約】
【課題】物体検出精度を向上させる。
【解決手段】移動しながら作業を実行する作業機械が開示される。前記作業機械は、前記作業機械の移動方向における画像を取得する画像取得装置と、前記画像から特定の対象物を検出する画像処理装置と、前記対象物の検出結果に基づいて前記作業機械の動作を制御する制御装置と、を備える。前記画像処理装置は、入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリを備え、前記画像取得装置によって取得された前記画像から、前記作業機械の動作状態に基づいて決定した関心領域を示す部分画像を抽出し、前記部分画像に基づいて前記入力画像を生成し、前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出する。
【選択図】図3
【特許請求の範囲】
【請求項1】
移動しながら作業を実行する作業機械であって、
前記作業機械の移動方向における画像を取得する画像取得装置と、
前記画像から特定の対象物を検出する画像処理装置と、
前記対象物の検出結果に基づいて前記作業機械の動作を制御する制御装置と、
を備え、
前記画像処理装置は、
入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリを備え、
前記画像取得装置によって取得された前記画像から、前記作業機械の動作状態に基づいて決定した関心領域を示す部分画像を抽出し、
前記部分画像に基づいて前記入力画像を生成し、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出する、
作業機械。
【請求項2】
前記画像処理装置は、前記作業機械の移動速度、前記作業機械の旋回状態、および前記作業機械の傾斜状態の少なくとも1つに関する情報を取得し、前記情報に基づいて、前記関心領域を変化させる、請求項1に記載の作業機械。
【請求項3】
前記画像処理装置は、前記作業機械の移動速度に応じて、前記関心領域の大きさを変化させる、請求項2に記載の作業機械。
【請求項4】
前記画像処理装置は、前記作業機械の移動速度が高いほど、前記関心領域を小さくする、請求項3に記載の作業機械。
【請求項5】
前記画像処理装置は、前記作業機械が右に旋回するとき、前記関心領域を右方向にシフトさせ、前記作業機械が左に旋回するとき、前記関心領域を左方向にシフトさせる、請求項2に記載の作業機械。
【請求項6】
前記画像処理装置は、前記作業機械の旋回時の操舵角が大きいほど、前記関心領域を大きくシフトさせる、請求項5に記載の作業機械。
【請求項7】
前記作業機械の傾斜量を計測する傾斜センサをさらに備え、
前記画像処理装置は、前記傾斜量に応じて前記関心領域の位置を変化させる、請求項2に記載の作業機械。
【請求項8】
前記傾斜センサは、前記作業機械のピッチ角を前記傾斜量として計測し、
前記画像処理装置は、前記ピッチ角に応じて前記関心領域を上または下にシフトさせる、請求項7に記載の作業機械。
【請求項9】
前記作業機械によって作業が実行される圃場を含むエリアの地図データを記憶する記憶装置と、
前記作業機械の測位データを取得する測位装置と、
をさらに備え、
前記画像処理装置は、前記地図データ、前記測位データ、および前記作業機械の前記動作状態に基づいて、前記関心領域を決定する、
請求項1から8のいずれかに記載の作業機械。
【請求項10】
前記画像処理装置は、前記地図データおよび前記測位データに基づいて、前記画像取得装置によって取得された前記画像から、前記圃場において前記作業が実行される作業領域に相当する領域を特定し、前記領域の中から、前記作業機械の動作状態に基づいて、前記関心領域を決定する、請求項9に記載の作業機械。
【請求項11】
前記画像処理装置は、前記部分画像の画素数を、予め設定された画素数に圧縮することを含む処理により、前記入力画像を生成する、請求項1から8のいずれかに記載の作業機械。
【請求項12】
前記作業機械は、自動運転を行う作業車両または無人航空機であり、
前記制御装置は、前記作業機械の自動運転の動作を制御する、
請求項1から8のいずれかに記載の作業機械。
【請求項13】
前記制御装置は、前記対象物が検出されたとき、前記作業機械の停止、前記作業機械の減速、および警告の出力の少なくとも1つを実行する、
請求項1から8のいずれかに記載の作業機械。
【請求項14】
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置であって、
入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリと、
演算回路と、
を備え、
前記演算回路は、
前記画像取得装置によって取得された前記画像から、前記作業機械の動作状態に基づいて決定した関心領域を示す部分画像を抽出し、
前記部分画像に基づいて前記入力画像を生成し、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出する、
画像処理装置。
【請求項15】
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、
前記画像取得装置から前記画像を取得することと、
前記作業機械の動作状態を示す情報を取得することと、
前記画像から、前記作業機械の前記動作状態に基づいて決定した関心領域を示す部分画像を抽出することと、
前記部分画像に基づいて入力画像を生成することと、
前記入力画像を、予め生成された学習済みモデルに入力することによって前記対象物を検出することと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、作業機械、画像処理装置、および画像から特定の対象物を検出する方法に関する。
【背景技術】
【0002】
次世代農業として、ICT(Information and Communication Technology)およびIoT(Internet of Things)を活用したスマート農業の研究開発が進められている。圃場で使用されるトラクタ、収穫機、移植機、および農業用ドローンなどの農業機械の自動化および無人化に向けた研究開発も進められている。例えば、精密な測位が可能なGNSS(Global Navigation Satellite System)などの測位システムを利用して圃場内を自動運転で移動しながら農作業を行う農業機械が実用化されてきている。
【0003】
特許文献1は、圃場において機体の進行方向前方を撮像可能な撮像装置を備える農作業機を開示している。この農作業機は、撮像された画像に基づいて圃場の障害対象の存在を検知し、その障害対象の種類を識別することができる。この農作業機は、さらに、複数の制御パターンから障害対象の種類に応じて選択された制御パターンに基づく出力制御(例えば、機体の減速、停止、障害対象に対する警告等)が可能である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-178619号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
撮像装置(カメラ)またはLiDAR等の画像取得装置によって取得された画像(例えば、可視光画像、赤外線画像、または点群画像)に基づいて特定の対象物を検出する農業機械および建設機械等の作業機械において、対象物の検出性能を向上させることが求められている。
【0006】
本開示は、対象物の検出性能をさらに向上させるための技術を提供する。
【課題を解決するための手段】
【0007】
本開示の一実施形態による方法は、作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、前記画像取得装置から前記画像を取得することと、前記作業機械の動作状態を示す情報を取得することと、前記画像から、前記作業機械の前記動作状態に基づいて決定した関心領域を示す部分画像を抽出することと、前記部分画像に基づいて入力画像を生成することと、前記入力画像を、予め生成された学習済みモデルに入力することによって前記対象物を検出することと、を含む。
【0008】
本開示の他の実施形態による方法は、作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、前記方法は、前記画像から、空と空以外の地物との境界、および前記対象物を検出することと、前記画像中の前記境界の位置に基づいて前記機体の傾きを推定することと、前記画像中の前記対象物の位置および推定された前記傾きに基づいて、地面に固定された座標系における前記対象物の位置を推定することと、を含む。
【0009】
本開示のさらに他の実施形態による方法は、作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成することと、前記入力画像を、複数の学習済みモデルの中から前記作業機械の周辺の環境に応じて選択した1つの学習済みモデルに入力することによって前記対象物を検出することと、を含む。
【0010】
本開示のさらに他の実施形態による方法は、作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する方法であって、前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成することと、前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出することと、前記作業機械の動作中に前記画像取得装置によって取得された複数の画像のうち、前記対象物が検出された1つ以上の画像に基づいて、前記学習済みモデルの再学習を実行することと、を含む。
【0011】
本開示の包括的または具体的な態様は、装置、システム、方法、集積回路、コンピュータプログラム、もしくはコンピュータが読み取り可能な非一時的記憶媒体、またはこれらの任意の組み合わせによって実現され得る。コンピュータが読み取り可能な記憶媒体は、揮発性の記憶媒体を含んでいてもよいし、不揮発性の記憶媒体を含んでいてもよい。装置は、複数の装置で構成されていてもよい。装置が二つ以上の装置で構成される場合、当該二つ以上の装置は、一つの機器内に配置されてもよいし、分離した二つ以上の機器内に分かれて配置されていてもよい。
【発明の効果】
【0012】
本開示の実施形態によれば、撮像装置によって取得された画像に基づいて特定の対象物を検出する作業機械において、対象物の検出性能を向上させることができる。
【図面の簡単な説明】
【0013】
図1図1は、本開示の例示的な実施形態における作業機械の一例である農業機械の概略的な構成を示すブロック図である。
図2図2は、画像処理装置の構成の一例を示すブロック図である。
図3図3は、画像処理装置の動作の一例を示すフローチャートである。
図4図4は、農業機械の例を模式的に示す側面図である。
図5図5は、農業機械の構成例を示すブロック図である。
図6図6は、農業機械が圃場内で作物を収穫する作業を行いながら走行するときの経路の一例を示す図である。
図7図7は、農業機械に搭載されたカメラを用いて対象物(人)を検出する様子を模式的に示す図である。
図8図8は、ECU(画像処理装置)によって実行される処理の流れを模式的に示す図である。
図9A図9Aは、カメラによって取得された撮像画像の一例を示す図である。
図9B図9Bは、農業機械が右折しているときに選択され得る関心領域の一例を示す図である。
図9C図9Cは、図9Bに示す関心領域に対応する部分画像を示す図である。
図9D図9Dは、農業機械が左折しているときに選択され得る関心領域の一例を示す図である。
図9E図9Eは、図9Dに示す関心領域に対応する部分画像を示す図である。
図10A図10Aは、農業機械が比較的高い速度で前進しているときに選択され得る関心領域の一例を示す図である。
図10B図10Bは、図10Aに示す関心領域に対応する部分画像を示す図である。
図11図11は、圃場における作業領域の最外周を走行している農業機械の例を示す図である。
図12図12は、カメラ座標系Σcと、車両座標系Σvと、ワールド座標系Σwと、基準平面Reとの配置関係を模式的に示す斜視図である。
図13図13は、実施形態2における画像処理装置によって実行される画像処理の一例を示すフローチャートである。
図14図14は、撮像画像から検出された空と地物との境界の例を示す図である。
図15図15は、実施形態2の変形例を示すフローチャートである。
図16図16は、実施形態2の他の変形例を示すフローチャートである。
図17図17は、実施形態3における画像処理装置の構成例を示すブロック図である。
図18図18は、メモリに記憶される複数の学習済みモデルと環境との対応関係の一例を示す表である。
図19図19は、実施形態3における画像処理装置の動作の一例を示すフローチャートである。
図20図20は、農業機械が方向転換を行う度に学習済みモデルの選択を行う場合の画像処理装置の動作の例を示すフローチャートである。
図21図21は、ステップS320におけるモデル選択処理の例を示すフローチャートである。
図22図22は、本実施形態における画像処理装置の動作の具体例を示すフローチャートである。
図23図23は、対象物の検出結果の一例を示す図である。
図24図24は、建設作業車の一例を示す図である。
【発明を実施するための形態】
【0014】
(用語の定義)
本開示において「作業機械」は、農業または建設などの特定の用途で使用される機械を意味する。本開示において「農業機械」は、農業用途で使用される作業機械を意味する。「建設機械」は、建設用途で使用される作業機械を意味する。「作業」は、例えば農作業、建設作業、瓦礫の撤去作業、除雪作業などを含む。本開示の作業機械は、移動しながら作業を行うことが可能な移動型の機械(Mobile Machine)であり得る。農業機械の例は、トラクタ、収穫機、田植機、乗用管理機、野菜移植機、草刈機、播種機、施肥機、農業用移動ロボット、および農業用無人航空機(例えばドローン)を含む。建設機械の例は、例えば、バックホー、ホイールローダ、キャリア、建設用移動ロボット、および建設用無人航空機を含む。トラクタまたはコンバインハーベスタのような農業用作業車両、または建設用作業車両が単独で「作業機械」として機能してもよいし、作業車両に装着または牽引される作業機(インプルメント)と作業車両の全体が一つの「作業機械」として機能してもよい。農業機械は、圃場内の地面に対して、耕耘、播種、防除、施肥、作物の植え付け、または収穫などの農作業を行う。建設機械は、建設現場における土砂、瓦礫、その他の物の運搬などの作業を行う。これらの作業を「対地作業」または単に「作業」と称することがある。車両型の作業機械が作業を行いながら走行することを「作業走行」と称することがある。
【0015】
「自動運転」は、運転者による手動操作によらず、制御装置の働きによって農業機械等の作業機械の移動を制御することを意味する。自動運転を行う農業機械は「自動運転農機」または「ロボット農機」と呼ばれることがある。自動運転中、作業機械の移動だけでなく、作業の動作(例えば作業機械に装着された作業機の動作)も自動で制御されてもよい。作業機械が車両型の機械である場合、自動運転によって作業機械が走行することを「自動走行」と称する。制御装置は、作業機械の移動に必要な操舵、移動速度の調整、移動の開始および停止の少なくとも一つを制御し得る。作業機が装着された作業機械を制御する場合、制御装置は、作業機の昇降、作業機の動作の開始および停止などの動作を制御してもよい。自動運転による移動には、作業機械が所定の経路に沿って目的地に向かう移動のみならず、追尾目標に追従する移動も含まれ得る。自動運転を行う作業機械は、部分的にユーザの指示に基づいて移動してもよい。また、自動運転を行う作業機械は、自動運転モードに加えて、運転者の手動操作によって移動する手動運転モードで動作してもよい。手動によらず、制御装置の働きによって作業機械の操舵を行うことを「自動操舵」と称する。制御装置の一部または全部が作業機械の外部にあってもよい。作業機械の外部にある制御装置と作業機械との間では、制御信号、コマンド、またはデータなどの通信が行われ得る。自動運転を行う作業機械は、人がその作業機械の移動の制御に関与することなく、周辺の環境をセンシングしながら自律的に移動してもよい。自律的な移動が可能な作業機械は、無人で圃場内または圃場外(例えば道路)を走行することができる。自律移動中に、障害物の検出および障害物の回避動作を行ってもよい。
【0016】
本開示における「画像取得装置」は、画像またはそれに類する情報を取得可能な装置を意味する。画像取得装置は、例えば、撮影によって可視光画像、赤外線画像、紫外線画像などの画像を取得可能なカメラ等の撮像装置、点群画像のデータを取得可能なLiDARセンサ、およびミリ波などの短波長の電磁波を利用して画像に類する情報を取得可能なレーダであり得る。
【0017】
本開示における「制御装置」の一つの例は、少なくとも一つのプロセッサと、プロセッサによって実行される制御プロセスを定義するコンピュータプログラム(コード)を格納する少なくとも一つのメモリと、を備えるコンピューティングデバイスである。「制御装置」の他の例は、制御プロセスを実行するように構成されたFPGA(Field-Programmable Gate Array)、ASSP(Application Specific Standard Product)、またはASIC(Application-Specific Integrated Circuit)などのハードウェアアクセラレータを備えるコンピューティングデバイスである。
【0018】
同様に、本開示における「画像処理装置」の一つの例は、少なくとも一つのプロセッサと、プロセッサによって実行される画像処理プロセスを定義するコンピュータプログラム(コード)を格納する少なくとも一つのメモリと、を備えるコンピューティングデバイスである。「画像処理装置」の他の例は、画像処理プロセスを実行するように構成されたFPGAまたはASICなどのハードウェアアクセラレータを備えるコンピューティングデバイスである。
【0019】
本開示における「プロセッサ」は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、ISP(Image Signal Processor)、またはNPU(Neural Network Processing Unit)のようなハードウェア電子回路である。「メモリ」は、ROM(Read Only Memory)、RAM(Random Access Memory)のようなハードウェア電子回路である。メモリの一部は、配線またはネットワークによってプロセッサに接続されるストレージメディアであってもよい。これらのハードウェア電子回路は、一つ以上の集積回路(IC)または大規模集積回路(LSI)によって実装され得る。電子回路内の各機能ユニットまたはブロック、および関連コンポーネントは、個別の集積回路チップとして個別に製造されてもよいし、これらの機能ユニットまたはブロックの一部または全部を組み合わせて単一の集積回路チップとして製造されてもよい。
【0020】
プロセッサの動作を規定するプログラムは、本発明の実施形態における一つ以上の機能、操作、ステップ、またはプロセスをプロセッサが実行するように設計される。
【0021】
以下、本開示の実施形態を説明する。ただし、必要以上に詳細な説明は省略することがある。例えば、既によく知られた事項の詳細な説明および実質的に同一の構成に関する重複する説明を省略することがある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。以下の説明において、同一または類似の機能を有する構成要素については、同一の参照符号を付している。
【0022】
以下の実施形態は例示であり、本開示の技術は以下の実施形態に限定されない。例えば、以下の実施形態で示される数値、形状、材料、ステップ、ステップの順序、表示画面のレイアウトなどは、あくまでも一例であり、技術的に矛盾が生じない限りにおいて種々の改変が可能である。また、一の態様と他の態様とを組み合わせることが可能である。
【0023】
以下、作業機械の一例である農業機械に本開示の技術を適用したいくつかの実施形態を説明する。以下の説明において農業機械について説明される種々の技術は、例えば建設現場で使用される建設作業車などの建設機械、災害現場で使用される作業車、豪雪地帯で使用される除雪車、物品の運搬または監視等の作業を行う無人航空機(ドローン)等にも適用され得る。
【0024】
(実施形態1)
図1は、本開示の例示的な実施形態における農業機械100の概略的な構成を示すブロック図である。図1に示される農業機械100は、撮像装置10と、画像処理装置20と、制御装置30とを備えている。農業機械100は、移動しながら農作業を実行するように構成された作業機械である。図1には示されていないが、農業機械100は、内燃機関または駆動用電気モータなどの動力源、およびタイヤ付き車輪などの走行装置またはプロペラなどの、移動(例えば走行または飛行)に必要な各種の装置を備え得る。
【0025】
撮像装置10は、農業機械100の移動方向における画像を取得するカメラ等の装置である。撮像装置10は、農業機械100が移動する方向(例えば、前方、後方、右方、または左方など)における画像を取得できるように農業機械100に取り付けられる。撮像装置10の向き(すなわち撮像装置10における光学系の光軸の方向)は、農業機械100の移動方向に必ずしも一致している必要はなく、移動方向に対して傾斜していてもよい。例えば、農業機械100の前方、後方、右方、または左方に対して斜め下向きに撮像装置10が配置されていてもよい。
【0026】
農業機械100は、互いに異なる方向に向けて取り付けられた複数の撮像装置10を備えていてもよい。撮像装置10は、農業機械100の移動中に撮像を行うことにより、画像データを生成する。ある実施形態において、農業機械100は、例えば30fpsまたは60fpsなどの所定のフレームレートで動画像のデータを生成するように構成され得る。
【0027】
図1の例では、撮像装置10が画像取得装置の例として用いられている。撮像装置10の代わりに、または撮像装置10に加えて、LiDARセンサなどの画像に類する点群データを取得可能な装置が用いられてもよい。あるいは、画像に類する周辺物体の分布情報を取得可能なレーダが用いられてもよい。そのような、画像またはそれに類するデータを取得可能な装置を「画像取得装置」として使用することができる。本明細書において、画像取得装置が動画像もしくは静止画像のデータ、または画像に類するデータを生成することを、「画像を取得する」と表現する。
【0028】
画像処理装置20は、撮像装置10によって取得された画像を処理するコンピューティングデバイスである。画像処理装置20は、1つ以上のプロセッサと、1つ以上のメモリとを備え得る。画像処理装置20は、撮像装置10によって取得された画像(以下、「撮像画像」と称することがある。)から特定の対象物を検出する処理を行うように構成またはプログラムされ得る。特定の対象物は、例えば人、動物、他の農業機械、車両、作物、石、もしくは岩などの障害物、または、それらの障害物の任意の組み合わせであり得る。ある実施形態において、特定の対象物は人であり、画像処理装置20は、撮像画像から人を検出する処理を実行するように構成またはプログラムされる。
【0029】
制御装置30は、農業機械100の動作を制御する装置である。制御装置30は、例えば電子制御ユニット(ECU)などのコンピューティングデバイスであり得る。本実施形態における制御装置30は、画像処理装置20による対象物の検出結果に基づいて農業機械100の動作を制御する。例えば、制御装置30は、画像処理装置20によって特定の対象物が検出された場合に、農業機械100の移動を停止させたり、ブザーなどの音声出力装置に警告音を発出させたりするように構成され得る。このような制御により、農業機械100と対象物との衝突を回避したり、対象物(例えば人)に注意喚起を行ったりすることができる。農業機械100が自動運転の機能を備えている場合、制御装置30は、自動運転の制御も行うように構成され得る。
【0030】
図2は、画像処理装置20の構成の一例を示すブロック図である。図2に示される画像処理装置20は、1つ以上のプロセッサ22と、1つ以上のメモリ24とを備えている。プロセッサ22は、例えばCPU、GPU、またはNPUなどの、演算処理を実行する電子回路(演算回路)である。画像処理装置20は、複数のプロセッサを備えていてもよい。複数のプロセッサによって後述する画像処理が協働的に実行されてもよい。メモリ24は、例えばEPROM(Erasable Programmable Read-Only Memory)もしくはEEPROM(Electrically Erasable Programmable Read-Only Memory)などのROM、またはDRAM(Dynamic Random Access Memory)もしくはSRAM(Static Random Access Memory)などのRAMであり得る。メモリ24は、プロセッサ22によって実行されるコンピュータプログラム25と、入力画像から対象物を検出するための学習済みモデル27とを記憶する。プログラム25と学習済みモデル27とが、複数のメモリに分散されて記憶されていてもよい。プロセッサ22は、メモリ24に格納されたコンピュータプログラム25を実行することにより、撮像画像から特定の対象物を検出する処理を実行する。なお、CPUまたはGPUなどのプロセッサ22の代わりに、本実施形態における画像処理を実行するように構成されたFPGAまたはASICなどのハードウェアアクセラレータが画像処理装置20に設けられていてもよい。そのようなハードウェアアクセラレータは、以下の説明においてプロセッサが実行する処理を代替することができる。
【0031】
学習済みモデル27は、例えば畳み込みニューラルネットワーク(CNN)またはビジョントランスフォーマ(ViT)などの、機械学習あるいは人工知能(AI)技術に基づくアルゴリズムを利用して訓練された機械学習モデル(以下、「AIモデル」と称することもある。)であり得る。学習済みモデル27は、例えばSSD(Single Shot Multibox Detector)、YOLO(You Only Look Once)、R-CNN(Regions with Convolutional Neural Network)、Fast R-CNN、Faster R-CNN、RetinaNetといった物体検出アルゴリズムに基づいて画像から物体を検出するモデルであり得る。
【0032】
画像処理装置20は、撮像装置10によって生成された撮像画像に必要な前処理を行うことにより、モデル27に入力するための入力画像を生成する。画像処理装置20は、入力画像をモデル27に入力することにより、その画像から特定の対象物(例えば人)を検出する。
【0033】
本実施形態における画像処理装置20は、撮像装置10によって取得された撮像画像の全体から対象物を検出するのではなく、撮像画像の一部である関心領域から対象物を検出する。具体的には、画像処理装置20は、撮像画像から関心領域を示す部分画像を抽出し、その部分画像に所定の前処理を行うことによって学習済みモデル27への入力画像を生成する。このとき、画像処理装置20は、関心領域の位置およびサイズの少なくとも一方を、農業機械100の動作状態に応じて動的に変更する。例えば、画像処理装置20は、農業機械100が右に旋回している場合には、関心領域を右寄りにシフトさせ、農業機械100が左に旋回している場合には、関心領域を左寄りにシフトさせる。あるいは、画像処理装置20は、農業機械100の姿勢が上向きに傾いている場合には、関心領域を下寄りにシフトさせ、農業機械100の姿勢が下向きに傾いている場合には、関心領域を上寄りにシフトさせてもよい。また、画像処理装置20は、農業機械100の移動速度に応じて関心領域の大きさを変化させてもよい。例えば、農業機械100の移動速度が高いほど関心領域を小さくしてもよい。このような処理により、人などの特定の対象物をより正確に検出することができる。
【0034】
一般に、機械学習モデルを利用して画像から特定の物体を検出する処理を行う場合、画像は、使用されるモデルに適合した所定の画素数(例えば、300×300画素など)にリサイズされてモデルに入力される。リサイズされた入力画像の画素数は元の画像の画素数よりも一般に小さくなる。このため、元の画像が大きいと、入力画像に変換するときの精細度の低下が顕著になり、物体検出の性能が著しく低下することになり得る。
【0035】
そこで、本実施形態における画像処理装置20は、撮像画像から、農業機械100の動作状態に基づいて決定した関心領域を示す部分画像を抽出し、当該部分画像に基づいて入力画像を生成する。関心領域として、人などの対象物が存在した場合に農業機械100の移動の妨げになり得る領域が、農業機械100の動作状態に応じて適応的に選択される。部分画像をモデルに適合した所定の画素数にリサイズした場合、元の撮像画像をリサイズした場合と比較して、対象物が存在し得る関心領域の精細度の低下が抑制される。これにより、農業機械100の移動の障害となり得る対象物をより正確に検出することが可能になる。
【0036】
図3は、画像処理装置20の動作の一例を示すフローチャートである。図3に示す例において、画像処理装置20は、農業機械100の動作中、ステップS110からS150の動作を実行することにより、撮像画像から特定の対象物を検出し、検出結果を制御装置30に送信する。ステップS110からS150の動作は、農業機械100の動作中、繰り返し実行される。
【0037】
ステップS110において、画像処理装置20は、撮像装置10によって取得された画像、および農業機械100の動作状態を示す情報を取得する。農業機械100の動作状態を示す情報は、例えば、農業機械100の移動速度、旋回状態、および傾斜状態の少なくとも1つに関する情報であり得る。画像処理装置20は、農業機械100の動作状態を示す情報を、例えば制御装置30から取得するように構成され得る。制御装置30は、農業機械100の動作状態を示す情報を、農業機械100に搭載された1つ以上のセンサからの信号に基づいて生成するように構成され得る。
【0038】
ステップS120において、画像処理装置20は、農業機械100の動作状態に基づき、撮像装置10によって取得された画像から関心領域を決定し、当該関心領域を示す部分画像を抽出する。関心領域は、画像中で対象物の検出処理の対象となる領域である。画像処理装置20は、例えば、農業機械100の移動速度、旋回状態、および傾斜状態の少なくとも1つに関する情報を取得し、当該情報に基づいて関心領域を変化させるように構成され得る。例えば、画像処理装置20は、農業機械100の移動速度が高いほど、関心領域を小さくしてもよい。あるいは、画像処理装置20は、農業機械100が右に旋回するとき、関心領域を右方向にシフトさせ、農業機械100が左に旋回するとき、関心領域を左方向にシフトさせてもよい。その場合、画像処理装置20は、農業機械100の旋回時の操舵角が大きいほど、関心領域を大きくシフトさせてもよい。また、農業機械100は、農業機械100の傾斜量を計測する傾斜センサを備えていてもよい。その場合、画像処理装置20は、計測された傾斜量に応じて関心領域の位置を変化させてもよい。ある実施形態において、傾斜センサは、農業機械100のピッチ角を傾斜量として計測する。その場合、画像処理装置20は、計測されたピッチ角に応じて関心領域を上または下にシフトさせてもよい。例えば、農業機械100が上り坂を走行しているときのように、農業機械100が上向きに傾いているとき、撮像画像の上側の多くは空に対応する領域になり得る。その場合、検出すべき対象物は画像の下側に位置し得ることになるため、画像処理装置20は、関心領域を下方向にシフトさせてもよい。反対に、農業機械100が下向きに傾いているとき、画像処理装置20は、関心領域を上方向にシフトさせてもよい。
【0039】
ステップS130において、画像処理装置20は、抽出した部分画像に基づいて、学習済みモデル27に入力するための入力画像を生成する。画像処理装置20は、部分画像の画素数を、予め設定された画素数に圧縮すること(リサイズ)を含む前処理により、入力画像を生成する。前処理は、画像のリサイズに加えて、正規化、色空間変換、およびノイズ除去などの各種の処理を含み得る。これにより、農業機械100の動作状態に応じて適切に選択された関心領域を示す入力画像が生成される。
【0040】
ステップS140において、画像処理装置20は、入力画像をメモリ24に格納された学習済みモデル27に入力することによって特定の対象物(例えば人)を検出する。例えば、画像処理装置20は、画像中に特定の対象物が存在する場合、対象物が存在する領域を囲む矩形枠(「バウンディングボックス」と呼ばれる。)の位置を示す座標情報と、バウンディングボックスの幅および高さの情報とを、検出結果として出力するように構成され得る。あるいは、画像処理装置20は、入力画像中に特定の対象物が存在するか否かを示す信号を検出結果として出力してもよい。画像処理装置20は、入力画像中のバウンディングボックスの位置に基づいて計算される撮像装置10から対象物までの距離が閾値未満である場合に、入力画像中に対象物が存在すると判定してもよい。
【0041】
ステップS150において、画像処理装置20は、対象物の検出結果を制御装置30に送信する。例えば、画像処理装置20は、入力画像中に特定の対象物が存在するか否かを示す信号を制御装置30に送信してもよい。あるいは、画像処理装置20は、入力画像から特定の対象物を検出した場合にのみ、その旨を示す信号を制御装置30に送信してもよい。また、画像処理装置20は、入力画像から特定の対象物を検出するだけでなく、撮像装置から当該対象物までの距離を入力画像に基づいて推定し、当該距離が閾値未満である場合にのみ、対象物が存在することを示す信号を制御装置30に送信してもよい。
【0042】
制御装置30は、画像処理装置20から検出結果を示す信号を受信すると、その検出結果に応じて農業機械100の動作を制御する。例えば、制御装置30は、対象物が検出されたことを示す信号を受信すると、農業機械100の移動を停止させたり、ブザーまたはスピーカに警告音を発出させたりするように構成され得る。このような動作により、農業機械100と対象物との衝突を回避したり、対象物(例えば人)または農業機械100の搭乗者に注意喚起したりすることができる。
【0043】
以下、農業機械100の一例である収穫機に本開示の技術を適用した実施形態を説明する。本開示の技術は、収穫機に限らず、他の種類の農業機械、例えばトラクタ、移植機、または農業用ドローン等にも適用することができる。また、本開示の技術を、農業以外の用途で使用される作業機械(例えば建設作業車、除雪車、または移動型作業ロボット)に適用することも可能である。以下の説明においては、画像取得装置の一例として、撮像装置(カメラ)が使用されるが、画像に類する点群データを取得可能なLiDARセンサ、または画像に類する周辺物体の距離分布情報を取得可能なレーダなどの他の種類の画像取得装置が使用されてもよい。
【0044】
[1.構成]
図4は、農業機械100の例を模式的に示す側面図である。本実施形態における農業機械100は、例えばコンバインハーベスタ等の収穫機である。農業機械100は、圃場において、作物の刈取り、刈取った作物の脱穀、および脱穀後の収穫物の排出等を行う。作物は、例えば稲、麦、トウモロコシ、大豆等の穀物が収穫可能な植物である。図4に示されている符号F、B、U、Dは、それぞれ前、後、上、下を表す。
【0045】
農業機械100は、機体101および走行装置102を備えている。図4に示される走行装置102は、無限軌道(track)を装着した複数の車輪(クローラ)を備える。走行装置102は、クローラの代わりにタイヤ付き車輪を備えていてもよい。機体101の上方には、キャビン110が設けられている。
【0046】
走行装置102の前方には、作物を刈り取る刈取装置103が高さ調整可能に設けられている。刈取装置103の上方には、作物の茎部分を起こすリール109が高さ調節可能に設けられている。キャビン110の後方には、脱穀装置105および収穫物を貯留するタンク106が左右方向に並設されている。脱穀装置105は刈り取られた作物の脱穀を行う。タンク106は、脱穀により得られた穀粒等の収穫物を貯留する。脱穀装置105の後方には、排藁処理装置108が設けられている。排藁処理装置108は、穀粒等の収穫物が取り除かれた後の茎部分等を細かく切断して外部に放出する。
【0047】
刈取装置103と脱穀装置105との間には、刈り取った作物を搬送する搬送装置104が設けられている。タンク106には、タンク106から収穫物を排出する排出装置107が設けられている。筒形状を有する排出装置107の先端部にある排出口117から収穫物が外部に排出される。排出装置107は起伏動作および回動動作が可能であり、排出口117の位置を変更することができる。刈取装置103、搬送装置104、脱穀装置105、排出装置107、排藁処理装置108、リール109等の収穫動作を行う各種装置の構成および動作は公知であるため、ここではそれらの詳細な説明は省略する。
【0048】
本実施形態における農業機械100は、手動運転モードと自動運転モードの両方で動作することができる。自動運転モードにおいて、農業機械100は、圃場の作物を収穫する動作を行いながら無人で走行することができる。
【0049】
図4に示すように、農業機械100は、原動機(エンジン)111と、変速装置(トランスミッション)112とを備える。キャビン110の内部には運転席、操作レバー、操作端末(ターミナルモニタ)、および操作のためのスイッチ群が設けられている。
【0050】
農業機械100は、農業機械100の周辺の環境をセンシングするための複数のセンシング装置を備えている。図4に示される例では、複数のセンシング装置は、レーザセンサ125、複数のカメラ126、および複数のミリ波レーダ127を含む。
【0051】
レーザセンサ125は、レーザ光を出射し、その反射光を検出することで、反射点までの距離を計測することが可能な測距装置であり、LiDARセンサとも称する。レーザセンサ125は、レーザ光の出射方向を変更することにより、周辺の地物までの距離分布の情報を得ることができる。図4に例示されるレーザセンサ125は、農業機械100の前方部に配置されている。レーザセンサ125は、農業機械100の側方部または後方部にさらに設けられていてもよい。レーザセンサ125は、レーザ光を発生させる光源と、反射光を検出する検出器と、検出された反射光の信号を処理する処理回路とを含み得る。レーザセンサ125は、出射される光ビームの方向を変化させるビームスキャナを含んでいてもよい。レーザセンサ125は、農業機械100の周辺の環境に存在する物体の各計測点までの距離および方向、または各計測点の3次元もしくは2次元の座標値を示す点群データ等のセンサデータを生成するように構成され得る。レーザセンサ125から出力されたセンサデータは、農業機械100の制御装置によって処理される。制御装置は、センサデータに基づいて、農業機械100の周辺に存在する作物の高さまたは倒伏の度合いを計測し、作物の高さまたは倒伏の度合いに応じて、刈取装置103の高さを調整したり、車速を調整したりすることができる。レーザセンサ125から出力された点群データを対象物の検出に利用することも可能である。
【0052】
カメラ126は、農業機械100の周辺の環境を撮影し、画像データを生成する撮像装置の一例である。カメラ126は、例えば農業機械100の前後左右に設けられ得る。カメラ126が取得した画像は、農業機械100に搭載された制御装置に送られる。当該画像は、自動運転時に農業機械100の周囲に存在する人などの障害物を画像処理によって検出するために用いられる。
【0053】
ミリ波レーダ127は、農業機械100の周辺に存在する車両等の金属体を検出するためのセンサである。図4に示される例では、農業機械100の前方部および後方部に2つのミリ波レーダ127が設けられている。ミリ波レーダ127は、農業機械100の側方部等の他の部位に配置されていてもよい。
【0054】
農業機械100は、さらに、GNSSユニット120を備える。GNSSユニット120は、GNSS受信機を含み、農業機械100の測位データを取得する測位装置として機能する。GNSS受信機は、GNSS衛星からの信号を受信するアンテナと、アンテナが受信した信号に基づいて農業機械100の位置を計算するプロセッサとを備え得る。GNSSユニット120は、複数のGNSS衛星から送信される衛星信号を受信し、衛星信号に基づいて測位を行う。GNSSは、GPS(Global Positioning System)、QZSS(Quasi-Zenith Satellite System、例えばみちびき)、GLONASS、Galileo、およびBeiDouなどの衛星測位システムの総称である。本実施形態におけるGNSSユニット120は、キャビン110の上部に設けられているが、他の位置に設けられていてもよい。
【0055】
GNSSユニット120は、慣性計測装置(IMU)を含んでいてもよい。IMUからの信号を利用して位置データを補完することができる。IMUは、農業機械100の傾きおよび微小な動きを計測することができる。IMUによって取得されたデータを用いて、衛星信号に基づく位置データを補完することにより、測位の性能を向上させることができる。IMUは、GNSSユニット120とは異なる位置に設けられていてもよい。
【0056】
原動機111は、例えばディーゼルエンジンであり得る。ディーゼルエンジンに代えて電動モータが使用されてもよい。変速装置112は、変速によって農業機械100の推進力および移動速度を変化させることができる。変速装置112は、農業機械100の前進と後進とを切り換えることもできる。
【0057】
農業機械100がクローラ式の走行装置102を備える形態では、無限軌道を装着した左車輪および右車輪の回転速度を互いに異ならせたり、左車輪および右車輪の回転方向を互いに異ならせたりすることで、農業機械100の走行方向を変化させることができる。農業機械100がタイヤ付き車輪を含む走行装置を備える形態では、農業機械100の制御装置は、パワーステアリング装置を制御して操舵輪の切れ角(舵角)を変化させることにより、農業機械100の走行方向を変化させることができる。
【0058】
図4に示す農業機械100は、有人運転が可能であるが、無人運転のみに対応していてもよい。その場合には、キャビン110、操舵装置および運転席などの、有人運転にのみ必要な構成要素は、農業機械100に設けられていなくてもよい。無人の農業機械100は、自律走行、またはユーザによる遠隔操作によって走行することができる。
【0059】
図5は、農業機械100の構成例を示すブロック図である。図5に例示される農業機械100は、GNSSユニット120、レーザセンサ125、カメラ126、ミリ波レーダ127、ターミナルモニタ131、操作スイッチ群132、ブザー133、駆動装置140、動力伝達機構141、ライト142、センサ群150、制御システム160、および通信装置190を備える。これらの構成要素は、バスを介して相互に通信可能に接続される。
【0060】
GNSSユニット120は、GNSS受信機121、RTK受信機122、慣性計測装置(IMU)123、および処理回路124を含む。センサ群150は、車速センサ151、操舵角センサ152、および照度センサ153などの種々のセンサを含む。制御システム160は、記憶装置164、電子制御ユニット(ECU)165、166、167を備える。図5には、農業機械100による自動運転の動作との関連性が相対的に高い構成要素が示されており、それ以外の構成要素の図示は省略されている。
【0061】
GNSSユニット120が備えるGNSS受信機121は、複数のGNSS衛星から送信される衛星信号を受信し、衛星信号に基づいてGNSSデータを生成する。GNSSデータは、例えばNMEA-0183フォーマットなどの所定のフォーマットで生成される。GNSSデータは、例えば、衛星信号が受信されたそれぞれの衛星の識別番号、仰角、方位角、および受信強度を示す値を含み得る。
【0062】
図5に例示されるGNSSユニット120は、RTK(Real Time Kinematic)-GNSSを利用して農業機械100の測位を行うことが可能である。RTK-GNSSによる測位では、複数のGNSS衛星から送信される衛星信号に加えて、基準局から送信される補正信号が利用される。基準局は、農業機械100が作業走行を行う圃場の付近(例えば、農業機械100から10km以内の位置)に設置され得る。基準局は、複数のGNSS衛星から受信した衛星信号に基づいて、例えばRTCMフォーマットの補正信号を生成し、GNSSユニット120に送信する。RTK受信機122は、アンテナおよびモデムを含み、基準局から送信される補正信号を受信する。GNSSユニット120の処理回路124は、補正信号に基づき、GNSS受信機121による測位結果を補正する。RTK-GNSSを用いることにより、例えば誤差数cmの精度で測位を行うことが可能である。緯度、経度、および高度の情報を含む位置データが、RTK-GNSSによる高精度の測位によって取得される。GNSSユニット120は、例えば1秒間に1回から10回程度の頻度で、農業機械100の位置を計算する。
【0063】
なお、測位方法はRTK-GNSSに限らず、必要な精度の位置データが得られる任意の測位方法(干渉測位法または相対測位法など)を用いることができる。例えば、VRS(Virtual Reference Station)またはDGPS(Differential Global Positioning System)を利用した測位を行ってもよい。基準局から送信される補正信号を用いなくても必要な精度の位置データが得られる場合は、補正信号を用いずに位置データを生成してもよい。その場合、GNSSユニット120は、RTK受信機122を備えていなくてもよい。
【0064】
IMU123は、3軸加速度センサおよび3軸ジャイロスコープを備え得る。IMU123は、3軸地磁気センサなどの方位センサを備えていてもよい。IMU123は、モーションセンサとして機能し、農業機械100の加速度、速度、変位、および姿勢などの諸量を示す信号を出力することができる。処理回路124は、衛星信号および補正信号に加えて、IMU123から出力された信号に基づいて、農業機械100の位置および向きをより高い精度で推定することができる。IMU123から出力された信号は、衛星信号および補正信号に基づいて計算される位置の補正または補完に用いられ得る。IMU123は、GNSS受信機121よりも高い頻度で信号を出力する。その高頻度の信号を利用して、処理回路124は、農業機械100の位置および向きをより高い頻度(例えば、10Hz以上)で計測することができる。IMU123に代えて、3軸加速度センサおよび3軸ジャイロスコープを別々に設けてもよい。また、IMU123は、GNSSユニット120とは別の装置として設けられていてもよい。IMU123は、農業機械100の基準姿勢に対する傾斜量(例えば、ピッチ角、ロール角、ヨー角)を計測する傾斜センサとしての役割を果たす。
【0065】
カメラ126は、農業機械100の周辺の環境を撮影する撮像装置の一例である。カメラ126は、例えば、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを備える。カメラ126は、他にも、一つ以上のレンズを含む光学系、および信号処理回路を備え得る。カメラ126は、農業機械100の走行中、農業機械100の周辺の環境を撮影し、画像(例えば動画)のデータを生成する。カメラ126は、例えば、3フレーム/秒(fps: frames per second)以上のフレームレートで動画を撮影することができる。カメラ126によって生成された画像は、例えば人などの障害物の検出に利用される。カメラ126によって生成された画像は、測位または遠隔監視に用いられてもよい。複数のカメラ126が農業機械100の異なる位置に設けられていてもよいし、1つのカメラが設けられていてもよい。可視光画像を生成する可視カメラと、赤外線画像を生成する赤外カメラとが別々に設けられていてもよい。可視カメラと赤外カメラの両方が設けられていてもよい。赤外カメラは、夜間において障害物の検出に用いられ得る。
【0066】
ミリ波レーダ127は、農業機械100の周辺に存在する車両等の金属を含む障害物を検出するために設けられる。ミリ波レーダ127は、ミリ波レーダ127から所定の距離よりも近くに物体が存在する場合に、障害物が存在することを示す信号を出力する。図4に示すように、複数のミリ波レーダ127が農業機械100の異なる位置に設けられていてもよい。複数のミリ波レーダ127を備えることにより、農業機械100の周辺の障害物の監視における死角を減らすことができる。
【0067】
ブザー133は、異常を報知するための警告音を発する音声出力装置である。ブザー133は、例えば、自動運転時に、障害物が検出された場合に警告音を発する。ブザー133は、制御システム160によって制御される。
【0068】
駆動装置140は、原動機111、変速装置112等の農業機械100の走行のための駆動に必要な各種の装置を含む。原動機111は、例えばディーゼル機関などの内燃機関を備え得る。駆動装置140は、内燃機関に代えて、あるいは内燃機関とともに、トラクション用の電動モータを備えていてもよい。
【0069】
動力伝達機構141は、原動機111が発生させた動力を、収穫動作を行う各種装置に伝達する。収穫動作を行う装置は、刈取装置103、搬送装置104、脱穀装置105、排出装置107、排藁処理装置108、リール109等である。農業機械100は、これら収穫動作を行う装置の少なくとも一つに動力を供給する動力源(電動モータ等)を原動機111とは別に備えていてもよい。
【0070】
ライト142は、例えば前照灯または作業灯などの、農業機械100の周囲を照明する装置である。複数のライト142が農業機械100に搭載され得る。ライト142は、1つ以上の光源を含む。各光源は、例えば発光ダイオード(LED)、ハロゲンランプ、またはキセノンランプであり得る。
【0071】
車速センサ151は、農業機械100の走行速度を計測するセンサである。車速センサ151は、例えば車輪または車軸の回転速度を計測し、その計測値に基づいて車速を計算する。操舵角センサ152は、ステアリングホイールの操舵角を計測するセンサである。照度センサ153は、周辺環境の照度を計測するセンサであり、農業機械100のキャビンの外または中に配置され得る。
【0072】
記憶装置164は、例えばフラッシュメモリまたは磁気ディスクなどの一つ以上の記憶媒体を含む。記憶装置164は、GNSSユニット120、レーザセンサ125、カメラ126、ミリ波レーダ127、センサ群150、およびECU165、166、167が生成する各種のデータを記憶する。記憶装置164が記憶するデータには、農業機械100によって農作業が実行される圃場を含むエリアの地図データ、自動運転のための目標経路のデータが含まれ得る。
【0073】
ECU165は、農業機械100の動作全般の制御を行う。ECU165は、駆動装置140に含まれる原動機111、変速装置112、走行装置102、動力伝達機構141等を制御することによって農業機械100の動作を制御する。
【0074】
ECU166は、GNSSユニット120、レーザセンサ125、カメラ126、ミリ波レーダ127、センサ群150から出力されたデータに基づいて、自動運転を実現するための演算および制御を行う。例えば、ECU166は、GNSSユニット120から出力されたデータに基づいて、農業機械100の位置および方位を決定する。自動運転中、ECU166は、農業機械100の位置および方位に基づいて、設定された目標経路に沿って農業機械100が走行するために必要な演算を行う。ECU166は、農業機械100の移動の開始地点から目的地点までの目標経路を生成する処理を実行してもよい。
【0075】
ECU167は、カメラ126によって取得された画像に基づいて、農業機械100の周辺に位置する特定の対象物(例えば人)を検出する処理を行う。本実施形態におけるECU167は、農業機械100に搭載されるエッジコンピューティングデバイスであるが、ECU167の機能の少なくとも一部が、農業機械100の外部のコンピュータ(例えばクラウド上のサーバコンピュータ)によって実行されてもよい。
【0076】
これらのECUの働きにより、制御システム160は、自動運転および作物の収穫動作を実現する。自動運転時において、制御システム160は、計測された農業機械100の位置および方位と、目標経路とに基づいて、駆動装置140を制御する。これにより、制御システム160は、農業機械100を目標経路に沿って走行させることができる。
【0077】
制御システム160に含まれる複数のECUは、例えばCAN(Controller Area Network)などのビークルバス規格に従って、相互に通信することができる。CANに代えて、車載イーサネット(登録商標)などの、より高速の通信方式が用いられてもよい。図3において、ECU165、166、167のそれぞれは、個別のブロックとして示されているが、これらのそれぞれの機能が、複数のECUによって実現されていてもよい。ECU165、166、167の少なくとも一部の機能を統合した車載コンピュータが設けられていてもよい。制御システム160は、ECU165、166、167以外のECUを備えていてもよく、機能に応じて任意の個数のECUが設けられ得る。各ECUは、一つ以上のプロセッサを含む処理回路を備える。
【0078】
図5に示す例では、カメラ126が図1に示す撮像装置10として機能する。ECU167が図1に示す画像処理装置20として機能する。ECU165およびECU166の組み合わせは、図1に示す制御装置30として機能する。
【0079】
通信装置190は、外部の装置と通信を行う回路を含む装置である。通信装置190は、無線通信を行う回路を含む。通信装置190は、ネットワークを介した信号の送受信を、例えば外部の端末装置または外部のサーバコンピュータとの間で実行するためのアンテナおよび通信回路を含み得る。ネットワークは、例えば、3G、4Gもしくは5Gなどのセルラー移動体通信網およびインターネットを含み得る。通信装置190は、農業機械100の近くにいる監視者が使用する携帯端末と通信する機能を備えていてもよい。そのような携帯端末との間では、Wi-Fi(登録商標)、3G、4Gもしくは5Gなどのセルラー移動体通信、またはBluetooth(登録商標)などの、任意の無線通信規格に準拠した通信が行われ得る。
【0080】
ターミナルモニタ131は、農業機械100の走行および作業に関する操作をユーザが実行するための端末であり、バーチャルターミナル(VT)とも称される。ターミナルモニタ131は、タッチスクリーンなどの表示装置、および/または一つ以上のボタンを備え得る。表示装置は、例えば液晶または有機発光ダイオード(OLED)などのディスプレイであり得る。ユーザは、ターミナルモニタ131を操作することにより、例えば自動運転モードのオン/オフの切り替え、圃場の地図データの記録または編集、目標経路の設定、作物の種類の設定、作業の種類の設定などの種々の操作を実行することができる。これらの操作の少なくとも一部は、操作スイッチ群132を操作することによっても実現され得る。ターミナルモニタ131は、農業機械100から取り外せるように構成されていてもよい。農業機械100から離れた場所にいるユーザが、取り外されたターミナルモニタ131を操作して農業機械100の動作を制御してもよい。ユーザは、ターミナルモニタ131の代わりに、必要なアプリケーションソフトウェアがインストールされたコンピュータを操作して農業機械100の動作を制御してもよい。
【0081】
操作スイッチ群132は、農業機械100の操作のための複数のスイッチを含む。本明細書において、「スイッチ」は、レバー、ペダル、およびボタンなどの、運転者が操作に用いる装置を広く意味する。操作スイッチ群132は、例えば、自動運転モードと手動運転モードとを切り替えるためのスイッチ、前進および後進を切り替えるためのスイッチ、アクセルペダル、ブレーキペダル、変速段を切り替えるレバー、ライトのオン/オフを切り替えるスイッチ等を含み得る。
【0082】
[2.動作]
次に、農業機械100の動作を説明する。
【0083】
図6は、農業機械100が圃場70内で作物を収穫する作業を行いながら走行するときの経路の一例を示す図である。本実施形態の農業機械100は、圃場70内を自動運転で走行しながら作物を収穫する。圃場70内において、農業機械100は、設定された目標経路74に沿って走行しながら、作物を収穫する動作を実行する。自動運転制御用のECU166は、GNSSユニット120から出力されるデータに基づいて決定される農業機械100の位置および方位と、目標経路74の位置および方位とのそれぞれの偏差をなくすように農業機械100の操舵制御を行う。これにより、農業機械100を目標経路74に沿って走行させることができる。
【0084】
図6に示す例では、圃場70は、農業機械100が作物の収穫を行う作業領域71と、圃場70の外周縁付近に位置する枕地72とを含む。圃場70内のどの領域が作業領域71に該当し、どの領域が枕地72に該当するかを示す地図データ(「圃場マップ」とも称する。)および目標経路74は、自動運転制御用のECU166によって決定され得る。例えば、農業機械100が手動運転で作業領域71の最外周の経路73を走行しながら刈取を行うと、ECU166は、経路73の軌跡に基づいて圃場マップを生成し、経路73の内側に自動走行用の目標経路74を生成する。これにより、2周目からはECU166による自動運転制御によって農業機械100が自動で(例えば無人で)作業走行を行うことができる。農業機械100は、図6に示すような目標経路74に沿って自動で走行する。なお、図6に示す目標経路74は一例に過ぎず、目標経路74の定め方は任意である。また、圃場マップおよび目標経路74の生成方法は上記の方法に限定されない。例えばユーザがターミナルモニタ131を操作することによって圃場マップおよび目標経路74を設定できるようにしてもよい。
【0085】
本実施形態における農業機械100は、作業走行中、カメラ126およびミリ波レーダ127を用いて障害物を検出する動作を実行する。カメラ126は、主に人などの特定の対象物を検出するために用いられる。ミリ波レーダ127は、主に他の車両などの金属体を検出するために用いられる。本実施形態においては、ECU167がカメラ126によって取得された撮像画像に基づく画像処理を行うことにより、作物が存在する圃場70内で人を高い精度で検出することができる。本実施形態における制御システム160は、人および車両は検出するが、作業走行への影響度の低い鳥などの障害物には反応しないように構成されている。
【0086】
図7は、農業機械100に搭載されたカメラ126を用いて対象物76(この例では人)を検出する様子を模式的に示す図である。図7に示されている符号F、B、R、Lは、それぞれ前、後、右、左を表す。図7における破線はカメラ126によって撮影される範囲の例を表している。図7に示すように、農業機械100の進行方向に対象物76が存在する場合、ECU167は、カメラ126で撮影された画像から対象物76を検出し、対象物76の存在を示す信号をECU165に送信する。例えば、ECU167は、対象物76の画像中での位置と、農業機械100におけるカメラ126の位置および向きの情報とに基づいて、地面に固定された座標系における対象物76の位置を計算し、その位置と農業機械100またはカメラ126との距離が閾値未満である場合に対象物76の存在を示す信号をECU165に送信してもよい。なお、距離の判定にはレーザセンサ125などの他の測距センサの計測値を利用してもよい。ただし、本実施形態のように背丈の高い作物(例えば稲)を収穫する用途で使用され得る農業機械100においては、レーザセンサ125などの他の測距センサを用いた方法では、作物の中にいる人などの対象物76を正確に検出できない場合がある。そのような場合でも、撮像画像を利用することにより、対象物76までの距離をより正確に推定することができる。
【0087】
ECU165は、対象物の存在を示す信号を受信すると、駆動装置140を制御して農業機械100の走行を停止させ、ブザー133に警告音を発出させる。なお、ミリ波レーダ127から出力された信号に基づいて車両などの障害物が農業機械100から所定距離以内に検出された場合も、ECU165は、農業機械100の走行を停止させ、ブザー133に警告音を発出させる。このような制御により、農業機械100と障害物との衝突を回避することができる。
【0088】
本実施形態におけるECU167は、図1に示す画像処理装置20に相当する。すなわち、ECU167は、図2に示す構成を有し、図3に示す動作を実行する。画像処理装置20は、視野の広いカメラ126の画像から、学習済みモデル27に入力すべき部分画像を、農業機械100の動作状態に応じて適切に抽出することで、人などの対象物76を高い精度で検出することができる。以下、この処理をより詳細に説明する。
【0089】
図8は、ECU167(すなわち画像処理装置)によって実行される処理の流れを模式的に示す図である。図8に示す例では、ECU167は、まずカメラ126によって取得された撮像画像を取得する(ステップS801)。次に、ECU167は、撮像画像内で対象物の検出処理の対象とする関心領域を決定する(ステップS802)。ECU167は、農業機械100の動作状態を示す種々の情報を参照して、関心領域を決定する。図8に示す例では、ECU167は、農業機械100によって農作業が実行される圃場を含むエリアの地図データ(圃場マップ)も参照して関心領域を決定する。農業機械100の動作状態を示す情報は、例えば、操舵角センサ152によって計測される操舵角または操舵操作値を示す情報、車速センサ151によって計測される速度を示す情報、およびIMU123(すなわち傾斜センサ)によって計測される農業機械100の傾斜量を示す情報が含まれ得る。ECU167は、これらの情報の少なくとも一部に基づいて撮像画像中の関心領域の位置および大きさを決定する。
【0090】
ECU167は、決定した関心領域に対応する部分画像を撮像画像から切り出す(ステップS803)。ECU167は、部分画像に、所定の前処理(例えば、画像のリサイズ、正規化、ノイズ除去等)を行うことにより、入力画像を生成する。ECU167は、入力画像をAIモデル(すなわち学習済みモデル)に入力することにより、特定の対象物を検出する処理を実行する、検出結果を示す信号をECU165に出力する。
【0091】
以下、図8に示す処理のいくつかの具体例を説明する。
【0092】
図9Aは、カメラ126によって取得された撮像画像の一例を示している。カメラ126は、農業機械100が作業走行を行っているとき、所定のフレームレートで撮影を行うことにより、図9Aに示すような撮像画像を繰り返し取得する。図9Aに示す撮像画像には、対象物76(この例では人)が写っている。ECU167は、このような撮像画像から、農業機械100の動作状態に基づいて決定される関心領域を示す部分画像を抽出する。
【0093】
図9Bは、農業機械100が右折しているときに選択され得る関心領域77の一例を示している。図9Cは、図9Bに示す関心領域77に対応する部分画像を示している。農業機械100が右折しているとき、ECU167は、図9Bに示すように、撮像画像における右寄りの領域を関心領域77として決定し、図9Cに示すように、関心領域77を示す部分画像を抽出する。ECU167は、図9Cに示す部分画像に、画素数低減(リサイズ)などの前処理を行うことにより、学習済みモデル27に入力すべき入力画像を生成する。ECU167は、生成した入力画像を学習済みモデル27に入力することにより、対象物76を検出する。この物体検出処理には、前述のように、SSD、YOLO、またはR-CNNといった任意の物体検出アルゴリズムが用いられ得る。
【0094】
図9Dは、農業機械100が左折しているときに選択され得る関心領域77の一例を示している。図9Eは、図9Dに示す関心領域77に対応する部分画像を示している。上記の例とは反対に、農業機械100が左折しているときには、ECU167は、撮像画像における左寄りの領域を関心領域77として部分画像を抽出する。
【0095】
このように、図9Bから図9Eに示す例では、ECU167は、農業機械100が右に旋回するときには関心領域77を右方向にシフトさせ、農業機械100が左に旋回するときには関心領域77を左方向にシフトさせる。このような処理により、右旋回時または左旋回時に農業機械100の走行に影響を及ぼし得る対象物76をより正確に検出することができる。
【0096】
従来の技術では、図9Aに示すような比較的大きいサイズの撮像画像(例えば1280×960画素)に前処理を行うことによって生成された比較的小さいサイズの入力画像(例えば300×300画素)がAIモデルに入力される。その場合、画像の精細度が大きく低下するため、特に遠方または画像の端部において対象物の検出精度が低下するという問題が生じ得る。
【0097】
これに対し、本実施形態では、撮像画像から、農業機械100の作業走行に影響を及ぼす対象物が存在し得る関心領域77に対応する部分画像がまず切り出され、当該部分画像に前処理を行うことによって生成された入力画像が学習済みモデルに入力される。入力画像の画素数は従来の例と同じ(例えば300×300画素)であるが、入力画像に写る範囲が狭くなることから、画像の精細度の低下が抑えられる。このため、対象物の検出精度を向上させることができる。
【0098】
部分画像として切り出される領域の画素数は、農業機械100の動作状態に依存するが、例えば元の撮像画像の画素数の2/3以下、1/2以下、1/3以下、または1/4以下であり得る。
【0099】
上記の処理を行うにあたって、ECU167は、農業機械100の旋回時の操舵角が大きいほど関心領域77を大きくシフトさせてもよい。言い換えれば、右旋回時の操舵角の大きさが増加するほど関心領域77を右に大きくシフトさせ、右旋回時の操舵角の大きさが増加するほど関心領域77を左に大きくシフトさせてもよい。ECU167は、その時点での操舵角の情報を、操舵角センサ152の計測値から取得することができる。右旋回時または左旋回時の操舵角の大きさと、画像内の関心領域77のシフト量との関係を示すテーブルなどのデータが、メモリ24または記憶装置164に予め記憶され得る。ECU167は、当該データと、計測された操舵角とに基づいてシフト量を決定することができる。図9Bから図9Eに示す例では、切り出された部分画像の縦方向のサイズは元の撮像画像の縦方向のサイズと同一であり、部分画像の横方向のサイズは撮像画像の横方向のサイズよりも小さい。このような切り出し方に限らず、縦方向についても撮像画像よりも小さい領域を部分画像として切り出してもよい。
【0100】
関心領域77は、農業機械100の旋回状態に限らず、他の状態にも基づいて決定されてもよい。例えば、農業機械100の走行速度に基づいて関心領域77が決定されてもよい。
【0101】
図10Aは、農業機械100が比較的高い速度で前進しているときに選択され得る関心領域77の一例を示している。図10Bは、図10Aに示す関心領域77に対応する部分画像を示している。この例では、ECU167は、農業機械100の走行速度に応じて、関心領域77の大きさを変化させる。具体的には、ECU167は、農業機械100の走行速度が高いほど関心領域77を小さくし、走行速度が低いほど関心領域77を大きくする。農業機械100が高速で前進しているときには、より遠方の対象物76を正確に検出することが求められる。このため、ECU167は、走行速度が高いほど関心領域77を小さくして遠方の対象物76の検出精度を向上させる。農業機械100の移動速度に応じて関心領域77の大きさを変化させるだけでなく、移動速度に応じて関心領域77の位置を変化させてもよい。例えば、移動速度が高いほど関心領域77の位置を上方向にシフトさせてもよい。そのような処理により、農業機械100が高速で走行しているときに遠方の対象物を検出し易くなる。ECU167は、その時点での走行速度の情報を、車速センサ151の計測値から取得する。走行速度と、画像内の関心領域77の大きさおよび/または位置との関係を示すテーブルなどのデータが、メモリ24または記憶装置164に予め記憶され得る。ECU167は、当該データと、計測された走行速度とに基づいて関心領域77の大きさおよび/または位置を決定することができる。
【0102】
関心領域77は、農業機械100の傾斜量に基づいて決定されてもよい。農業機械100の傾斜量は、例えば、ピッチ角(すなわち左右方向の軸周りの回転角)またはロール角(すなわち前後方向の軸周りの回転角)などの、基準姿勢に対する傾斜角の大きさを指す。ここで基準姿勢は、農業機械100が水平な地面上にあるときの姿勢を指す。ECU167は、IMU123によって計測されたピッチ角などの傾斜量に応じて関心領域を上または下にシフトさせてもよい。ピッチ角は、農業機械100が上り坂を走行しているときのように農業機械100が水平面に対して上向きに傾いているときに正の値をとり、農業機械100が下り坂を走行しているときのように農業機械100が水平面に対して下向きに傾いているときに負の値をとる。農業機械100が上向きに傾いている(すなわちピッチ角が正の値をとる)とき、撮像画像中の関心領域を下方向にシフトさせてもよい。反対に、農業機械100が下向きに傾いている(すなわちピッチ角が負の値をとる)とき、関心領域を上方向にシフトさせてもよい。これにより、空または地面の多くが関心領域に含まれることを回避し、対象物の検出性能を向上させることができる。ECU167は、ピッチ角の絶対値が大きいほど、関心領域のシフト量を大きくしてもよい。その場合、ピッチ角の絶対値とシフト量との関係を示すデータがメモリ24または記憶装置164記憶される。ECU167は、当該データと、IMU123の計測値とに基づいて、関心領域のシフト量を決定することができる。
【0103】
ECU167は、さらに圃場の地図データに基づいて関心領域を決定してもよい。例えば、ECU167は、地図データ、GNSSユニット120から出力される測位データ、および農業機械100の動作状態に基づいて関心領域を決定してもよい。
【0104】
図11は、圃場における作業領域71の最外周を走行している農業機械100の例を示す図である。この例では、圃場における作業領域71の外側に対象物76である人が存在する。作業走行中の農業機械100は作業領域71の外側を走行しないため、このような対象物76は障害物として検出する必要がない。したがって、ECU167は、地図データおよび測位データに基づいて、カメラ126によって取得された撮像画像から、圃場において農作業が実行される作業領域71に相当する領域を特定し、当該領域の中から農業機械100の動作状態に基づいて関心領域を決定してもよい。
【0105】
ここで、撮像画像から作業領域71に相当する領域を特定する方法の例を説明する。
【0106】
図12は、カメラ126に固定されたカメラ座標系Σcと、農業機械100に固定された車両座標系Σvと、地面に固定されたワールド座標系Σwと、水平面に平行に拡がる基準平面Reとの配置関係を模式的に示す斜視図である。カメラ座標系Σcは、互いに直行するXc軸、Yc軸、Zc軸を有する。車両座標系Σvは、互いに直交するXv軸、Yv軸、Zv軸を有する。ワールド座標系Σwは、互いに直行するXw軸、Yw軸、Zw軸を有する。図12の例において、ワールド座標系ΣwのXw軸およびYw軸は、基準平面Re上にある。カメラ126は、農業機械100に固定されている。このため、車両座標系Σvに対するカメラ座標系Σcの位置および向きは、既知の状態に固定される。カメラ座標系Σcは、そのZc軸が基準平面Reに斜めに交わるように傾斜している。農業機械100がピッチおよびロールの方向に回転しない場合には、車両座標系ΣvのXv軸およびYv軸を含む平面が基準平面Reに平行である。
【0107】
カメラ座標系Σcの原点OからZc軸方向にカメラ126の焦点距離だけ離れた位置に仮想的な画像平面Imが存在する。画像平面Imは、Zc軸およびカメラ126の光軸λに直交する。画像平面Im上の画素位置は、互いに直交するu軸およびv軸を有する画像座標系によって定義される。例えば、基準平面Re上に位置する点P1および点P2のワールド座標系Σwにおける座標が、それぞれ(X1,Y1,Z1)および(X2,Y2,Z2)であるとする。図12の例では、ワールド座標系ΣwのXw軸およびYw軸が基準平面Re上にある。このため、Z1=Z2=0である。
【0108】
基準平面Re上の点P1および点P2は、それぞれ、ピンホールカメラモデルの透視投影により、カメラ126の画像平面Im上の点p1および点p2に変換される。画像平面Imにおいて、点p1および点p2は、それぞれ、(u1,v1)および(u2,v2)の座標で示される画素位置にある。
【0109】
ワールド座標系Σwにおける基準平面Reに対するカメラ座標系Σcの配置関係が与えられると、ホモグラフィ変換により、画像平面Im上の任意の点(u,v)から、基準平面Re上で対応する点(X,Y,0)を求めることができる。このようなホモグラフィ変換は、点の座標を同時座標系で表現すると、3行×3列の変換行列Hによって規定される。カメラ126の画像平面Im上の点の座標が(u,v,0)の場合、基準平面Re上の対応点の座標(X,Y,0)は、以下の式(1)に示されるように、ホモグラフィ変換行列Hによって点(u,v,0)と対応づけられる。
【数1】
【0110】
変換行列Hの中身は、ワールド座標系Σwにおける基準平面Reに対するカメラ座標系Σcの配置関係に依存する。基準平面Reの位置が変わると、変換行列Hの中身も変化する。基準平面Reは、地面に接するように設定されてもよいし、地面から所定距離の高さに設定されてもよい。検出すべき対象物が人である場合、基準平面Reは、例えば地面から1メートル以上2メートル以下の高さに設定されてもよい。
【0111】
このようなホモグラフィ変換を利用することにより、カメラ126の画像平面Im上にある任意の点の座標を、基準平面Re上にある点の座標に対応付けることができる。
【0112】
農業機械100の動作中、ECU167は、GNSSユニット120から出力された測位データに基づいて、農業機械100の位置および姿勢を求めることができる。また、車両座標系Σvとカメラ座標系Σcとの配置関係は既知である。このため、ECU167は、測位データに基づいて、ワールド座標系Σwとカメラ座標系Σcとの配置関係を求めることができ、その配置関係に基づいて変換行列Hを決定することができる。
【0113】
ECU167は、式(1)の演算の結果と、圃場の地図データに含まれる作業領域の位置情報とに基づき、撮像画像内のどの画素領域が作業領域71に対応するかを特定することができる。ECU167は、撮像画像のうち、作業領域71の外側に対応する画素領域を物体検出の対象から除外し、作業領域71に相当する画素領域の中から関心領域を決定するように構成され得る。これにより、農業機械100の作業走行に影響を及ぼさない対象物76が検出されて農業機械100が停止することを回避することができる。なお、ECU167は、撮像画像のうち、作業領域71に相当する画素領域の中から関心領域を決定する代わりに、作業領域71のうちの未作業の領域に相当する画素領域の中から関心領域を決定してもよい。作業が完了した領域に対象物76が存在しても農業機械100の走行の妨げにはならないため、作業が完了した領域は検出の対象から除外してもよいからである。
【0114】
(実施形態2)
次に、本開示の例示的な第2の実施形態による農業機械を説明する。
【0115】
本実施形態における農業機械は、実施形態1における農業機械と同様、機体と、撮像装置と、撮像装置(画像取得装置)によって取得された画像に基づいて特定の対象物を検出する画像処理装置とを備える。画像処理装置は、以下のステップ(S21)-(S23)を実行する。
(S21)画像から、空と空以外の地物との境界、および対象物を検出する。
(S22)画像中の空と空以外の地物との境界の位置に基づいて機体の傾きを推定する。
(S23)画像中の対象物の位置および推定された機体の傾きに基づいて、地面に固定された座標系における対象物の位置を推定する。
【0116】
このような動作により、機体の傾きを計測するセンサを用いることなく機体の傾きを画像から推定し、対象物の位置を推定することができる。以下、本実施形態における農業機械の詳細を説明する。
【0117】
本実施形態における農業機械は、図1または図5に示す農業機械100と同様の構成を有する。本実施形態でも、画像処理装置20(例えば図5に示すECU167)は、図2に示す構成を有する。本実施形態における画像処理装置20は、撮像装置10が取得した画像に基づいて特定の対象物を検出すると、画像中の対象物の位置に基づいて、地面に固定された座標系(前述のワールド座標系Σw)における対象物の位置、および農業機械100から対象物までの距離を推定する。この推定処理は、図12を参照して説明したように、画像座標系からワールド座標系Σwへの座標変換によって行われる。座標変換には、ワールド座標系Σwにおける基準平面Reに対するカメラ座標系Σcの配置関係の情報が必要である。このため、農業機械100の走行中、農業機械100の傾きを計測可能なセンサ(例えば図5に示すIMU123等)を利用して、農業機械100における撮像装置10の姿勢を逐次推定し、その姿勢の情報を利用して、上記の式(1)における変換行列Hを決定することが求められる。
【0118】
しかしながら、IMU123などのセンサの計測値を利用する場合、センサの計測値と、撮像装置10によって生成された画像(すなわち映像における個々のフレーム)との時刻同期がとりにくいという課題がある。タイムラグによって個々のフレームに対応する農業機械100の姿勢を正確に特定できない場合がある。
【0119】
この課題を解決するため、本実施形態における画像処理装置20は、撮像装置10が取得した撮像画像に基づいて農業機械100の傾き(傾斜角)を推定する。具体的には、撮像画像から、空と空以外の地物との境界を検出し、その境界の位置の時間的な変動に基づいて、農業機械100の傾斜角(例えば、ピッチ角)を推定する。これにより、撮像画像の個々のフレームに対応する農業機械100の姿勢をより正確に特定し、対象物の位置または距離の推定精度を向上させることができる。
【0120】
なお、本実施形態においても、農業機械100は、機体の傾きを計測する傾斜センサ(例えば、図5に示すIMU123)備えていてもよい。画像処理装置20は、画像中の空と空以外の地物との境界の位置に基づいて推定された農業機械100の傾きと、傾斜センサによって計測された傾きとの差を計算し、その差が閾値未満である場合に、画像中の対象物の位置および推定された傾きに基づいて、地面に固定された座標系における対象物の位置を推定してもよい。この場合、画像処理装置20は、画像中の空と空以外の地物との境界の位置に基づいて推定された農業機械100の傾きと、傾斜センサによって計測された傾きとの差が閾値以上である場合、前者の傾きの推定結果を棄却し、傾きに基づく処理を実行しないように構成され得る。このように、傾斜センサの計測結果を利用して、画像に基づいて推定された傾きの信頼性を評価してもよい。
【0121】
以下、図13を参照しながら、本実施形態における画像処理装置20の動作のより具体的な例を説明する。
【0122】
図13は、本実施形態における画像処理装置20によって実行される画像処理の一例を示すフローチャートである。画像処理装置20は、農業機械100の動作中、ステップS210からS270に示す処理を繰り返し実行する。
【0123】
ステップS210において、画像処理装置20は、撮像装置10によって生成された画像を取得する。
【0124】
ステップS220において、画像処理装置20は、取得した画像から、空と空以外の地物との境界、および特定の対象物(例えば人)を検出する処理を実行する。空と空以外の地物との境界は、例えば空と地面との境界(地平線)または空と山との境界であり得る。空と地物との境界は、例えば画像の色相解析、エッジ検出、および/またはテクスチャ解析等の種々の方法で検出され得る。特定の対象物を検出する処理は、例えば図3に示すステップS120からS140の処理と同様の方法で実行され得る。なお、空と地物との境界、および特定の対象物を画像から検出するための学習済みモデルを利用して、両者を一度に検出してもよい。また、本実施形態においては、ステップS120における部分画像の抽出処理を省略してもよい。すなわち、画像処理装置20は、撮像画像に所定の前処理を行って生成した入力画像を学習済みモデルに入力することによって特定の対象物および/または空と地物との境界を検出してもよい。
【0125】
図14は、撮像画像から検出された空と地物との境界の例を示す図である。この例では、空と山との境界78が太い曲線で例示されている。画像処理装置20は、このような境界78を検出する処理を、撮像装置10が生成する画像(映像)のフレームごとに実行するように構成され得る。
【0126】
続くステップS230において、画像処理装置20は、画像から対象物が検出されたか否かを判定する。対象物が検出された場合、ステップS240に進む。対象物が検出されなかった場合、ステップS210に戻る。
【0127】
ステップS240において、画像処理装置20は、画像中の空と地物との境界78の位置に基づいて、農業機械100の機体の傾きを推定する。例えば、画像処理装置20は、画像中の境界78の位置と、過去の時点において撮像装置10によって取得された画像から検出された境界78の位置との変位量に基づいて、機体の傾きを推定する。過去の時点は、傾斜センサによって計測された傾きが基準値未満であった時点であり得る。画像処理装置20は、変位量に基づいて、例えば機体のピッチ角を機体の傾きとして推定する。より具体的には、画像処理装置20は、撮像装置10が生成した映像のフレームごとに検出された境界78の位置の時間的な変動に基づいて、農業機械100の基準姿勢からの傾斜角を推定してもよい。基準姿勢は、農業機械100が平坦な地面上にあるときの農業機械100の姿勢であり得る。画像処理装置20は、農業機械100が基準姿勢にあるときに取得された画像フレームにおける境界78の位置を基準として、その位置から画像中で上下に何ピクセル分だけ境界78が変位したかによって農業機械100のピッチ角を推定することができる。例えば、画像処理装置20は、以下の流れでピッチ角を推定することができる。
(1)農業機械100が基準姿勢にあるときに取得された基準フレームにおける境界78に沿って並ぶ複数の画素(または中央部などの一部の画素)のそれぞれの対応点を現在のフレームから特定する。
(2)対応点ごとに基準フレームにおける位置からの変位量を求める。
(3)複数の対応点の変位量の平均値を、境界78の変位量として計算する。
(4)境界78の変位量に基づいてピッチ角を求める。
【0128】
画像内での境界78の上下方向の変位量とピッチ角との対応関係は、例えば図2に示すメモリ24に予め格納され得る。画像処理装置20は、その対応関係に基づいて、ピッチ角を推定することができる。なお、画像処理装置20は、画像内の境界78の位置の時間変化に基づいて、境界78のフレーム間での回転角を求めることによってロール角を推定することも可能である。ピッチ角に加えてロール角も推定することにより、撮像装置10の姿勢をより正確に推定することができる。
【0129】
ステップS250において、画像処理装置20は、画像中の対象物の位置および推定された機体の傾きに基づいて、地面に固定された座標系(ワールド座標系)における対象物の位置を推定する。具体的には、画像処理装置20は、推定された機体の傾きと、機体に対する撮像装置10の既知の配置関係と、測位装置(例えば図5におけるGNSSユニット120)から取得した機体の位置および向きとに基づいて、上記の式(1)における変換行列Hを決定する。画像座標系における対象物の位置(例えばバウンディングボックスの位置)について式(1)の演算を実行することにより、ワールド座標系における対象物の位置を計算することができる。
【0130】
ステップS260において、画像処理装置20は、ワールド座標系における対象物の位置に基づいて、農業機械100から対象物までの距離を推定する。ワールド座標系における農業機械100の位置は、GNSSユニット120などの測位装置によって計測される。画像処理装置20は、ワールド座標系における農業機械100の位置と、対象物の位置との距離を計算する。ここで、農業機械100の「位置」は、例えばGNSSユニット120の位置などの、予め定められた農業機械100における特定の部位の位置である。
【0131】
ステップS270において、画像処理装置20は、ステップS260で推定された距離を示す情報を制御装置30に送信する。当該情報を受信した制御装置30は、当該距離が所定値未満であるか否かを判定し、当該距離が所定値未満である場合には、農業機械100の移動を停止したり、ブザーに警告音を発出させたりするなどの制御を実行する。
【0132】
このように、画像処理装置20は、撮像装置10によって取得された画像から、空と空以外の地物との境界を検出し、その境界の位置の時間的な変動に基づいて機体の傾きを推定する。推定した傾きに基づいて、画像における対象物の位置座標を、地面に固定された座標系における位置座標に変換し、変換後の位置座標に基づいて、対象物までの距離を推定する。制御装置30は、推定された距離に基づいて、農業機械100の動作を制御する。
【0133】
なお、図13に示すステップS260の処理は、画像処理装置20の代わりに制御装置30が行ってもよい。その場合、画像処理装置20は、ステップS250の後、ワールド座標系における対象物の位置座標を示す情報を制御装置30に送信するように構成され得る。その場合、制御装置30は、ワールド座標系における対象物の位置に基づいて農業機械の動作を制御する。制御装置30は、ワールド座標系における対象物の位置に基づいて推定された距離が所定値よりも小さい場合、農業機械100の停止、農業機械100の減速、および警告の出力の少なくとも1つを実行するように構成され得る。
【0134】
図15は、本実施形態の変形例を示すフローチャートである。図15の例では、制御装置30ではなく画像処理装置20が、農業機械100から対象物までの距離が所定値未満であるか否かの判定を実行する。図15の例は、ステップS260の後にステップS265が追加され、ステップS270がステップS275に置き換わっている点で図14の例とは異なる。ステップS265において、画像処理装置20は、農業機械100から対象物までの距離が所定値未満か否かを判定する。この判定結果がYesの場合、ステップS275に進む。判定結果がNoの場合、ステップS210に戻る。ステップS275において、画像処理装置20は、対象物の存在を示す信号を制御装置30に送信する。制御装置30は、この信号を受けると、農業機械100の移動を停止したり、ブザーに警告音を発出させたりするなどの制御を実行する。
【0135】
図16は、本実施形態の他の変形例を示すフローチャートである。図16に示す例では、傾斜センサ(例えば図5に示すIMU123)によって計測された傾き(例えばピッチ角)も利用される。図16の例は、ステップS240の後にステップS245が追加され、ステップS245においてNoと判定された場合にステップS255に進む点で図14の例とは異なる。
【0136】
ステップS245において、画像処理装置20は、ステップS240で推定された機体の傾きと、傾斜センサによって計測された傾きとの差が閾値未満であるか否かを判定する。ここで比較される傾きは、例えばピッチ角またはロール角であり得る。傾斜センサによって計測された傾きを所定時間(例えば、0.1秒から数秒程度)にわたって平均化した値と、ステップS240で推定された機体の傾きとが比較されてもよい。両者の傾きの差が閾値未満である場合は、ステップS250に進み、以降は図14の例と同じ処理が行われる。両者の傾きの差が閾値以上である場合は、ステップS255に進む。両者の傾きの差が閾値以上であることは、画像に基づいて推定された機体の傾きの信頼性が低い可能性があることを示唆している。このため、そのような場合には、画像処理装置20は、画像に基づいて推定された傾きではなく、傾斜センサによって計測された傾きに基づいて、地面に固定された座標系における対象物の位置を推定する。ステップS255の後、ステップS260に進む。
【0137】
なお、図16の例におけるステップS270を、図15におけるステップS265およびS275に置き換えてもよい。その場合、制御装置30ではなく画像処理装置20が、農業機械100から対象物までの距離が所定値未満であるか否かの判定を実行する。
【0138】
(実施形態3)
次に、本開示の例示的な第3の実施形態による農業機械を説明する。
【0139】
本実施形態における農業機械は、実施形態1における農業機械と同様、撮像装置と、撮像装置によって取得された画像から特定の対象物を検出する画像処理装置と、対象物の検出結果に基づいて農業機械の動作を制御する制御装置とを備える。本実施形態においては、画像処理装置が、農業機械の周辺の環境に応じた複数の学習済みモデルを格納するメモリを備え、それらのモデルを環境に応じて切り替えて使用する点で実施形態1とは異なる。画像処理装置は、以下のステップ(S31)-(S33)を実行する。
(S31)撮像装置によって取得された画像に基づいて入力画像を生成する。
(S32)複数の学習済みモデルの中から農業機械の周辺の環境に応じて1つの学習済みモデルを選択する。
(S33)選択した学習済みモデルに入力画像を入力することによって対象物を検出する。
【0140】
このような動作により、農業機械の周辺の環境に応じた適切な学習済みモデルを用いて、撮像画像から対象物をより高い精度で検出することができる。
【0141】
農業機械の周辺の環境は様々であり、例えば時間帯、天候、作業対象の作物の種類、圃場の種類等の環境条件が変化すると、撮像装置によって取得される画像の特性(例えば、各画素の明度、彩度、色相等)が変化する。このため、1つの学習済みモデルを様々な環境で使用した場合、環境によっては対象物の検出性能が低くなり得る。様々な環境で高い検出性能を維持するためには、大量の学習用データを用意してモデルを訓練する必要があるが、それでも1つのモデルだけでは多様な環境に対応することが難しい場合がある。
【0142】
そこで、本実施形態では、複数の環境に対応する複数の学習済みモデルを予め用意し、それらのモデルを状況に応じて使い分けるように画像処理装置が構成されている。より具体的には、画像処理装置は、撮像装置によって取得された画像に基づいて入力画像を生成し、当該入力画像を、複数の学習済みモデルの中から農業機械の周辺の環境に応じて選択した1つの学習済みモデルに入力することによって対象物を検出する。このような動作により、農業機械の周辺の環境の変化が生じた場合でも、環境に応じた適切な学習済みモデルを使用して、画像から対象物を高い精度で検出することが可能になる。
【0143】
本実施形態における農業機械は、図1または図5に示す農業機械100と同様の構成を有する。本実施形態でも、画像処理装置20(例えば図5に示すECU167)は、図2に示す例と同様のハードウェア構成を有する。ただし、本実施形態では、メモリ24が複数の学習済みモデルを記憶している点で、図2の例とは異なっている。
【0144】
図17は、本実施形態における画像処理装置20の構成例を示すブロック図である。この例における画像処理装置20のメモリ24は、プロセッサ22によって実行されるコンピュータプログラム25と、入力画像から対象物を検出するための複数の学習済みモデル27とを記憶している。複数の学習済みモデル27は、農業機械100の周辺の様々な環境条件に対応付けられて記憶されている。例えば、農業機械100の周辺の環境の異なる複数の明るさ、および/または異なる複数の時間帯に対応付けられた複数の学習済みモデル27がメモリ24に記憶され得る。画像処理装置20は、複数の学習済みモデル27の中から、現在の環境の明るさまたは現在の時間帯に対応する1つの学習済みモデルを選択して利用する。画像処理装置20は、現在の環境の明るさを、撮像装置10によって取得された画像(例えば画像内の画素値のヒストグラムまたは平均輝度)、農業機械100に設けられた照度センサ(例えば図5に示す照度センサ153)からの出力、ユーザからの入力(例えば図5に示すターミナルモニタ131を介して入力された作物の種類および/または作業地の種類)、および農業機械100のライトの点灯状態の少なくとも1つに基づいて決定することができる。照度センサは、農業機械100の機体(例えば撮像装置10の近傍)に取り付けられ得る。また、画像処理装置20は、現在の時間帯の情報を、例えばプロセッサ22が有するクロック機能またはプロセッサ22とは別に設けられ得るリアルタイムクロックなどの計時回路から取得することができる。
【0145】
図17に示す例では、複数の学習済みモデル27は、昼用モデル27A、27Bと、夜用モデル27Cとを含む。この場合、画像処理装置20は、昼の時間帯においては昼用モデル27Aまたは27Bを選択し、夜の時間帯においては夜用モデル27Cを選択する。図17の例では、昼用モデルについては、非逆光用モデル27Aと逆光用モデル27Bの2種類のモデルが用意されている。この場合、画像処理装置20は、昼の時間帯において、例えば撮像装置10によって取得された画像、ユーザからの入力、および照度センサからの出力の少なくとも1つに基づいて、逆光であるか否かを判定し、逆光の場合には逆光用モデル27Bを選択し、逆光でない場合には非逆光用モデル27Aを選択するように構成され得る。
【0146】
モデルの例は、図17に示される例に限定されない。例えば、晴天用モデル、曇天用モデル、雨天用モデルといった、異なる複数の天候に対応付けられた複数の学習済みモデルがメモリ24に記憶されていてもよい。その場合、画像処理装置20は、それらの複数の学習済みモデルの中から、現在の天候に対応する1つの学習済みモデルを選択して使用する。画像処理装置20は、撮像装置10によって取得された画像、または外部の装置(例えば、図5に示す通信装置190およびネットワークを介して接続されたサーバコンピュータ)から取得した天候に関する情報に基づいて、現在の天候を特定することができる。あるいは、異なる複数の作物の種類に対応付けられた複数の学習済みモデルが用意されていてもよい。その場合、画像処理装置20は、複数の学習済みモデル27の中から、作業対象の作物の種類に対応する1つの学習済みモデルを選択する。作物の種類に応じた複数のモデルは、例えば稲用モデル、麦用モデル、大豆用モデルといった、収穫等の作業の対象になる作物の種類に応じた種々のモデルを含み得る。他にも、水田用モデル、野菜畑用モデル、牧草地用モデルといった、圃場または作業地の種類に応じた複数の学習済みモデルが用意されていてもよい。作物の種類や作業地の種類によって撮像装置10によって取得される画像の色合いやテクスチャが大きく異なり得るため、作業の対象となる作物または作業地の種類に応じて複数のモデルを用意することで、環境適応性を向上させることができる。画像処理装置20は、撮像装置10によって取得された画像、またはユーザからの入力に基づいて、作業対象の作物の種類、または作業地の種類を特定することができる。さらには、農業機械の周囲の明るさ、時間帯、天候、作物の種類、作業地の種類から選択される任意の2以上の組み合わせごとに異なる学習済みモデルを予め作成し、それらのモデルを環境条件に応じて切り替えて使用してもよい。そのような多くのモデルを環境に応じて切り替えることで、さらに高精度の物体検出が可能になる。
【0147】
図18は、メモリ24に記憶される複数の学習済みモデルと環境との対応関係の一例を示す表である。この例では、時間帯が昼間帯か夜間帯か、天候が晴天か曇天か、晴天の場合は逆光か否か、および作物の種類の3項目の組み合わせによって異なる複数の学習済みモデルA~Lがメモリ24に記憶される。各モデルは、それぞれに対応する環境に応じた多数の学習用データによって予め訓練され、メモリ24に格納される。モデルと環境との対応関係は図18に示す例に限定されず、種々の改変が可能である。例えば、昼と夜だけでなく夕方に対応するモデルが作成されてもよい。あるいは、雨または雪などの他の天候に対応するモデルが作成されてもよい。図18の例では作物の種類は作物A、B、Cの3種類であるが、1種類、2種類、または4種類以上であってもよい。さらに、水田、野菜畑、牧草地といった作業地の種類ごとにモデルが作成されてもよい。
【0148】
複数の学習済みモデル27の各々は、例えばCNNまたはビジョントランスフォーマなどの、深層学習に基づくアルゴリズムを利用して訓練された機械学習モデルであり得る。各モデルは、共通のモデルアーキテクチャと、互いに異なるウエイト群とを有する。ウエイト群の組み合わせをモデルごとに適切な学習用データと学習用ソフトウェアとを用いて決定することにより、様々な環境に応じた複数の学習済みモデル27を作成することができる。複数の学習済みモデル27は、画像処理装置20自身によって生成されてもよいし、サーバコンピュータ等の外部の装置によって生成されてもよい。複数の学習済みモデル27は、農業機械100の動作開始前、またはそのモデルが使用される前にメモリ24に格納される。
【0149】
図19は、本実施形態における画像処理装置20の動作の一例を示すフローチャートである。図19の例では、画像処理装置20は、農業機械100の動作中、ステップS310からS340の動作を繰り返し実行する。
【0150】
ステップS310において、画像処理装置20は、撮像装置10によって生成された撮像画像に基づいて、学習済みモデルに入力すべき入力画像を生成する。画像処理装置20は、例えば撮像画像に所定の前処理(例えば、画像のリサイズ、正規化、ノイズ除去等)を行うことによって入力画像を生成する。あるいは、画像処理装置20は、図3に示すステップS110からS130の処理を行うことによって入力画像を生成してもよい。ステップS110からS130の処理を行うことにより、農業機械100の動作状態に応じて検出対象の領域を絞ることができ、対象物の検出精度が向上する。
【0151】
ステップS320において、画像処理装置20は、メモリ24に格納された複数の学習済みモデル27の中から、農業機械100の周辺環境に応じた1つの学習済みモデルを選択する。ステップS320の処理の具体例については後述する。
【0152】
ステップS330において、画像処理装置20は、選択した学習済みモデルに入力画像を入力することによって特定の対象物(例えば人)を検出する。このステップは、図3におけるステップS140の処理と同様である。画像処理装置20は、入力画像をメモリ24に格納された学習済みモデル27に入力することによって人などの対象物を検出する。例えば、画像処理装置20は、画像中に特定の対象物が存在する場合、対象物が存在する領域を囲む矩形枠(バウンディングボックス)の位置を示す座標情報と、バウンディングボックスの幅および高さの情報とを、検出結果として出力するように構成され得る。あるいは、画像処理装置20は、入力画像中に特定の対象物が存在するか否かを示す信号を検出結果として出力してもよい。画像処理装置20は、入力画像中のバウンディングボックスの位置に基づいて計算される撮像装置10から対象物までの距離が閾値未満である場合に、入力画像中に対象物が存在すると判定してもよい。
【0153】
ステップS340において、画像処理装置20は、検出結果を制御装置30に送信する。このステップは、図3におけるステップS150の処理と同様である。画像処理装置20は、対象物の検出結果を制御装置30に送信する。例えば、画像処理装置20は、入力画像中に特定の対象物が存在するか否かを示す信号を制御装置30に送信してもよい。あるいは、画像処理装置20は、入力画像から特定の対象物を検出した場合にのみ、その旨を示す信号を制御装置30に送信してもよい。また、画像処理装置20は、検出した対象物までの距離が所定値未満の場合にのみ、対象物が存在することを示す信号を制御装置30に送信してもよい。対象物までの距離は、例えば図15または図16に示す方法を利用して推定されてもよい。
【0154】
制御装置30は、画像処理装置20から検出結果を示す信号を受信すると、その検出結果に応じて農業機械100の動作を制御する。例えば、制御装置30は、対象物が検出されたことを示す信号を受信すると、農業機械100の停止、農業機械100の減速、およびブザーまたはディスプレイ等の装置への警告の出力の少なくとも1つを実行するように構成され得る。このような動作により、農業機械100と対象物との衝突を回避したり、対象物(例えば人)または農業機械100の搭乗者に注意喚起したりすることができる。
【0155】
ステップS310からS340の処理は、撮像装置10(例えば図5に示すカメラ126)による撮影のフレームレートで周期的に実行され得る。あるいは、所定数のフレーム(例えば、10フレーム、30フレーム、60フレーム等)ごと、または所定時間(例えば、0.5秒、1秒、2秒、3秒等)ごとにステップS310からS340の処理が実行されてもよい。ステップS320の処理は、ステップS310の前に実行されてもよい。また、ステップS320の処理は、ステップS310、S330、S340の処理よりも低い頻度で行われてもよい。例えば、ステップS320の処理は、所定時間ごと(例えば、数秒ごと、数十秒ごと、数分ごと等)または農業機械100が方向転換を行うごとに行われてもよい。農業機械100の周辺の環境は短い時間では変化せず、農業機械100の向きによって逆光か否かが変わり得る。このため、必ずしも物体検出と同じ頻度でモデルの選択を行う必要はなく、旋回などの方向転換のタイミングでモデルの選択を行ってもよい。
【0156】
農業機械100の制御装置30(例えば図5に示すECU166)は、図6に示すように、設定された目標経路74に沿って農業機械100を移動させるように構成され得る。目標経路74は、図6に示す例に限定されず、例えば往復区間を含む経路であってもよい。画像処理装置20は、農業機械100が方向転換を行う度に、あるいは往復区間において進行方向を逆転させる度に学習済みモデルの選択を行ってもよい。画像処理装置20は、農業機械100が方向転換を行ったことを示す信号を制御装置30から取得することができる。画像処理装置20は、当該信号に応答してステップS320の処理を実行することで、適切なモデルを選択することができる。その場合、次に旋回が行われるまでは、同じモデルが物体検出に使用される。
【0157】
図20は、農業機械100が方向転換を行う度に学習済みモデルの選択を行う場合の画像処理装置20の動作の例を示すフローチャートである。図20の例では、画像処理装置20は、まずステップS320において、複数の学習済みモデルの中から農業機械の周辺環境に応じた1つの学習済みモデルを選択する。その後、ステップS310、S330、S340の処理を実行する。ステップS340の後、ステップS350に進み、画像処理装置20は、農業機械100が方向転換を行ったか否かを判断する。画像処理装置20は、制御装置30から、農業機械100が方向転換を行ったことを示す信号を受信した場合、農業機械100が方向転換を行ったと判断する。方向転換が行われた場合、ステップS320に戻り、学習済みモデルの再選択が行われる。方向転換が行われなかった場合、ステップS310に戻り、前回選択した学習済みモデルを用いて、再度撮像画像に基づく対象物の検出処理が行われる。
【0158】
次に、図21を参照して、ステップS320におけるモデル選択処理をより具体的に説明する。
【0159】
図21は、ステップS320におけるモデル選択処理の例を示すフローチャートである。この例におけるステップS320は、ステップS321~S326を含む。
【0160】
ステップS321において、画像処理装置20は、ユーザによって設定された作業地の種類および作物の種類に関する情報を取得する。これらの情報は、例えば図5に示すターミナルモニタ131などの入力装置をユーザが操作することによって設定され得る。
【0161】
ステップS322において、画像処理装置20は、日付および時刻に関する情報を取得する。例えば、画像処理装置20は、画像処理装置20のプロセッサ22が有するクロック機能、またはプロセッサ22とは別に設けられ得るリアルタイムクロックから、日付および時刻に関する情報を取得することができる。
【0162】
ステップS323において、画像処理装置20は、農業機械100のライトの点灯有無に関する情報を取得する。ライトの点灯有無に関する情報は、制御装置30から取得可能である。ユーザは、例えば図5に示す操作スイッチ群132に含まれるライト142の切換スイッチを操作することによってライト142の点灯と消灯とを切り替えることができる。ライト142の点灯有無を示す信号が、制御装置30(例えば図5に示すECU165)から画像処理装置20に送信され得る。
【0163】
ステップS324において、画像処理装置20は、照度センサ(例えば図5に示す照度センサ153)の計測値を取得する。照度センサの計測値は、農業機械100の周囲の環境の明るさの程度を示す。
【0164】
ステップS325において、画像処理装置20は、画像中の画素値のヒストグラムを生成する。例えば各画素の画素値が赤、緑、青のそれぞれの色ごとに0~255の256諧調(8ビット)で表現される場合、各色について0~255の画素値ごとの頻度を表すヒストグラムが生成され得る。画像処理装置20は、そのヒストグラムに基づいて、画像全体の明度、色相、彩度等を評価することができる。本ステップにおいて、画像処理装置20は、画像全体からヒストグラムを生成する代わりに、例えば実施形態2における方法を用いて画像から空に相当する領域を検出し、空に相当する領域のヒストグラムを生成してもよい。
【0165】
ステップS326において、画像処理装置20は、作業地の種類、作物の種類、日付および時刻、ライトの点灯有無、照度センサの計測値、画像のヒストグラムに基づいて、使用する学習済みモデルを選択する。画像処理装置20は、これらの情報または信号に基づいて、時間帯が昼なのか、夕方なのか、夜なのか、あるいは、天候が晴天なのか、曇天なのか、雨天なのか、降雪があるのかを推定し、それらの推定結果と、選択された作業地および作物の種類とに応じた学習済みモデルを選択することができる。
【0166】
なお、ステップS321からS325の処理の順序は互いに入れ替わっていてもよい。また、ステップS321からS325の処理の少なくとも1つが省略されてもよい。その場合、画像処理装置20は、取得が省略された情報を考慮せずに学習済みモデルを選択する。取得した画像等の情報から作業地の種類、作物の種類、時間帯、天候などを推定するアルゴリズムは特定のものに限定されず、任意に設計され得る。取得した画像等の情報から最適なモデルを決定するためのAIモデルが用いられてもよい。
【0167】
以上のように、本実施形態によれば、複数の学習済みモデルの中から環境に応じて適切に選択された学習済みモデルを用いて対象物の検出処理が行われる。これにより、1つの学習済みモデルを用いた場合と比較して、対象物の検出性能を大きく向上させることができる。さらに、比較的少ない学習用データで各モデルの学習を行った場合でも、それぞれの環境での検出精度を高くすることができる。例えば、昼夜や天候を問わず、画像認識の精度を担保することができる。
【0168】
(実施形態4)
次に、本開示の例示的な第4の実施形態による農業機械を説明する。
【0169】
本実施形態では、農業機械の機体に搭載された画像処理装置が、学習済みモデルの再学習(以下、「最適化学習」とも称する。)を実行する機能を有する。再学習により、農業機械の実際の使用環境に適合するように学習済みモデルを改善し、対象物の検出性能を向上させることができる。
【0170】
本実施形態における農業機械は、前述の各実施形態における農業機械と同様、撮像装置と、撮像装置によって取得された画像から特定の対象物(例えば人)を検出する画像処理装置と、対象物の検出結果に基づいて農業機械の動作を制御する制御装置とを備える。画像処理装置は、入力画像から対象物を検出するための1つ以上の学習済みモデルを記憶する。本実施形態における画像処理装置は、以下のステップ(S41)-(S43)を実行することにより、学習済みモデルの再学習を実行する。
(S41)撮像装置によって取得された画像に基づいて入力画像を生成する。
(S42)入力画像を学習済みモデルに入力することによって対象物を検出する。
(S43)農業機械の動作中に撮像装置によって取得された複数の画像のうち、対象物が検出された1つ以上の画像に基づいて、学習済みモデルの再学習を実行する。
【0171】
以上の構成により、農業機械の実際の使用環境に合わせて学習済みモデルを改善し、対象物の検出性能を向上させることができる。
【0172】
本実施形態における農業機械の構成は、図1または図5に示す農業機械100の構成と同様である。画像処理装置の構成は、図2または図17に示す画像処理装置20の構成と同様である。本実施形態では、画像処理装置20が、学習済みモデル27を再学習によって改善する機能を有している点で、前述の各実施形態とは異なる。
【0173】
図2に示す学習済みモデル27、または図17に示す複数の学習済みモデル27の各々は、農業機械100の使用が開始される前に、そのモデルに適合した多くの学習用データを用いた訓練によって作成される。各モデルは、前述のように、共通のモデルアーキテクチャと、互いに異なるウエイト群とを有し得る。モデルごとに適切な学習用データを用いてウエイト群の値などのモデルパラメータを学習により決定することにより、各学習済みモデル27を作成することができる。
【0174】
しかしながら、農業機械100の実際の使用環境は様々であり、事前の学習だけでは多様な使用環境で高い検出性能を維持できるモデルを構築することが難しい場合がある。そこで、本実施形態における画像処理装置20は、農業機械100の実際の使用環境で取得された画像のうち、対象物が実際に検出された画像を用いて学習済みモデルの再学習を実行するように構成される。これにより、モデルを継続的に改善し、対象物の検出性能を向上させることが可能になる。
【0175】
本実施形態においては、農業機械100に搭載されたエッジコンピューティングデバイスである画像処理装置20が、学習済みモデルの再学習を実行するように構成されている。このため、クラウドサーバなどの外部のコンピュータとの通信を行うことなく、農業機械100の使用環境に適合した学習済みモデルの最適化学習を実現することができる。
【0176】
以下、本実施形態における画像処理装置20の動作をより詳細に説明する。
【0177】
本実施形態における画像処理装置20は、農業機械100の動作中に撮像装置10によって取得された複数の画像のうち、対象物が検出された1つ以上の画像の各々について、対象物の検出結果が正しいか否かを判定する。対象物の検出結果が正しいか否かは、例えば、対象物の検出処理後に農業機械100の移動が停止してから移動が再開されるまでの時間に基づいて判定され得る。この判定方法は、対象物が実際には存在しないにも関わらず画像から対象物が検出された場合(すなわち誤検出の場合)、農業機械100のユーザは、農業機械100が一旦停止した後、すぐに移動を再開させるはずであるという考え方に基づく。
【0178】
画像処理装置20は、対象物の検出結果が正しいと判定した場合、その画像を学習済みモデルの再学習に利用する。より具体的には、画像処理装置20は、対象物が実際には存在しないにも関わらず対象物が誤検出された画像は再学習には利用せず、対象物が正しく検出された画像のみを再学習に利用する。
【0179】
画像処理装置20は、画像から対象物を検出したとき、対象物が検出されたことを示す信号を制御装置30に送信する。制御装置30は、対象物が検出されたことを示す信号を受信すると、例えば農業機械100を停止させるなどの特定の制御を行う。このとき、農業機械100の経路上またはその近傍に対象物が実際に存在する場合は検出結果が正しく、反対に、対象物が実際には存在しない場合は検出結果が誤っていることになる。対象物が実際に存在する場合、農業機械100のユーザは、その対象物が農業機械100の移動を妨げない位置まで移動した後、農業機械100の移動を再開させる操作を行う。一方、対象物が実際には存在しない場合、ユーザは、対象物が存在しないことを確認した後、農業機械100の移動をすぐに再開させる。ユーザは、例えば図5に示す操作スイッチ群132またはターミナルモニタ131などの入力装置を操作して移動の再開を指示する再開指令を制御装置30(図5の例ではECU165)に与える。制御装置30は、入力された再開指令に応答して農業機械100の移動を再開させる。画像処理装置20は、農業機械100が停止してから移動を再開するまでの時間を計測し、当該時間に基づいて対象物の検出結果が正しいか否かを判定するように構成され得る。例えば、計測された時間が閾値よりも長ければ、対象物の検出結果が正しく、計測された時間が閾値以下であれば、対象物の検出結果が正しくないと判定するように構成され得る。
【0180】
図22は、本実施形態における画像処理装置20の動作の具体例を示すフローチャートである。図22の例では、画像処理装置20は、ステップS410からS500の動作を実行することにより、農業機械100の移動中に取得された動画像に基づく対象物の検出処理と、学習済みモデルの再学習とを実行する。図22に示す動作は、例えば農業機械100の動作を開始させる指令が入力装置を介してユーザから与えられたときに開始する。
【0181】
ステップS410において、画像処理装置20は、撮像装置10によって生成された撮像画像に基づいて、学習済みモデルに入力すべき入力画像を生成する。画像処理装置20は、例えば撮像画像に所定の前処理(例えば、画像のリサイズ、正規化、ノイズ除去等)を行うことによって入力画像を生成する。あるいは、画像処理装置20は、図3に示すステップS110からS130の処理を行うことによって入力画像を生成してもよい。ステップS110からS130の処理を行うことにより、農業機械100の動作状態に応じて検出対象の領域を絞ることができ、対象物の検出精度が向上する。
【0182】
ステップS420において、画像処理装置20は、メモリ24に格納された学習済みモデルに入力画像を入力することによって対象物を検出する処理を実行する。実施形態3のように、複数の学習済みモデルの中から環境に応じた1つの学習済みモデルを選択して画像に適用してもよいし、実施形態1、2のように、使用される学習済みモデルが予め決められていてもよい。
【0183】
ステップS430において、画像処理装置20は、入力画像から対象物が検出されたか否かを判定する。対象物が検出された場合、ステップS440に進む。対象物が検出されなかった場合、ステップS490に進む。
【0184】
図23は、対象物の検出結果の一例を示す図である。この例では、画像処理装置20は、物体検出用のソフトウェアを実行することにより、入力画像から特定の対象物を検出する。検出結果として、例えば対象物の種類を示すラベル(人ならPerson等)、対象物の画像内での位置を示すバウンディングボックスの代表点(例えば左上の頂点または中心点)の座標値、および検出結果の信頼度を示す数値が出力され得る。
【0185】
ステップS430において、画像処理装置20は、農業機械100と対象物との距離に基づいて対象物が検出されたか否かを判定してもよい。例えば、対象物の入力画像中での位置と、農業機械100における撮像装置10の位置および向きの情報とに基づいて、地面に固定された座標系における対象物の位置を計算し、その位置と農業機械100との距離が閾値未満である場合に対象物が検出されたと判定してもよい。ここで、距離は、図15または図16に示す方法で推定されてもよい。なお、距離の判定には図5に示すレーザセンサ125などの測距センサの計測値を利用してもよい。
【0186】
ステップS440において、画像処理装置20は、対象物が検出されたことを示す信号を制御装置30に送信する。制御装置30は、この信号を受けると、農業機械100の移動を停止させ、移動が停止されたことを示す信号を画像処理装置20に送信する。
【0187】
ステップS450において、画像処理装置20は、制御装置30から、農業機械100の移動が停止されたことを示す信号を受信する。この信号を受信すると、画像処理装置20は、農業機械100の移動が再開されるまで待機する。
【0188】
前述のように、農業機械100の移動が停止された後、農業機械100のユーザは、農業機械100の進行方向に実際に対象物が存在するかを確認する。対象物が実際には存在しなかった場合(すなわち誤検出の場合)、ユーザは比較的短時間で農業機械100の移動を再開させる。一方、対象物が実際に存在する場合、ユーザは、対象物が農業機械100の予定経路上に存在しなくなったことを確認した上で農業機械100の移動を再開させる。農業機械100の移動が再開すると、制御装置30は、移動が再開されたことを示す信号を画像処理装置20に送信する。
【0189】
ステップS460において、画像処理装置20は、制御装置30から、農業機械の移動が再開されたことを示す信号を受信する。
【0190】
ステップS470において、画像処理装置20は、農業機械の移動の停止から移動の再開までの時間(以下、「待機時間」と呼ぶ。)と所定の閾値とを比較する。待機時間が閾値よりも長い場合、処理はステップS480に進む。待機時間が閾値以下である場合、対象物が誤って検出されたものと判定され、処理はステップS490に進む。待機時間が閾値よりも長い場合、対象物が正常に検出されたものとして処理される。待機時間が閾値以下の場合、対象物が誤って検出されたものとして処理される。
【0191】
ステップS480において、画像処理装置20は、入力画像を再学習用画像としてメモリ24に記録する。このとき、検出結果を示す情報も入力画像に関連付けられて記録され得る。検出結果を示す情報は、対象物の種類を示すラベル、および入力画像内での対象物の位置を示す座標値(例えば、バウンディングボックスの座標値)を含み得る。
【0192】
ステップS490において、画像処理装置20は、農業機械100による農作業が完了したことを示す信号(以下、「作業完了信号」と呼ぶ。)を受信したか否かを判定する。作業完了信号は、農作業が完了したときに制御装置30から画像処理装置20に送信され得る。「農作業が完了したとき」とは、例えば、農業機械100による圃場内の目標経路(例えば図6に示す目標経路74)に沿った作業走行が完了したとき、または、作業走行が完了した後の収穫物の排出作業が完了したときであり得る。画像処理装置20が作業完了信号を受信していない場合、ステップS410に戻る。画像処理装置20は、作業完了信号を受信するまで、ステップS410からS490の処理を繰り返す。画像処理装置20が作業完了信号を受信した場合、ステップS500に進む。
【0193】
ステップS500において、画像処理装置20は、再学習用画像としてメモリ24に記録された入力画像群に基づいてモデルの再学習を実行し、新たな学習済みモデルを作成してメモリ24に記録する。例えば、画像処理装置20は、再学習用画像として記録された入力画像の各々と、各入力画像における対象物の位置情報と、各入力画像における対象物の種類を示すラベルの情報とを含むデータを学習用データとして、再学習用のソフトウェアを実行することにより、新たな学習済みモデルを作成する。
【0194】
以上のように、本実施形態における画像処理装置20は、農業機械100によって農作業が行われている間、撮像装置10によって取得された画像に基づいて入力画像を生成し、入力画像を学習済みモデルに入力することによって対象物を検出し、対象物が検出された場合に画像を記録する動作を繰り返し実行する。画像処理装置20は、農作業が終了したことを示す信号を受けた後、対象物が検出された1つ以上の画像に基づいて、学習済みモデルの再学習を実行する。このような処理により、例えば1つの圃場における農作業が完了する度にモデルの再学習を行ってモデルを改善することができる。
【0195】
なお、ステップS500におけるモデルの再学習が行われるタイミングは、農業機械100による農作業が完了したタイミングでなくてもよい。例えば、自動運転モードから手動運転モードに切り替えられたタイミング、または農業機械100の電源がオフにされるタイミングでステップS500におけるモデルの再学習が行われてもよい。
【0196】
また、対象物の検出結果が正しいか否かを判定する方法として、対象物の検出処理後に農業機械100の移動が停止してから移動が再開されるまでの時間に基づく方法とは異なる方法が用いられてもよい。例えば、画像処理装置20は、農業機械100に搭載された物体検出センサ(例えば、図5の例におけるレーザセンサ125および/またはミリ波レーダ127)からの出力に基づいて、画像から検出された対象物が実際に存在するか否かを判定してもよい。収穫すべき作物の中に対象物である人が存在するような場合、レーザセンサまたはミリ波レーダなどの物体検出センサでは人と作物とを判別できない可能性があるが、何らかの物体が存在することは検知できる。このため、画像に基づく対象物の検出と、物体検出センサによる物体検出とを併用することで、画像に基づく対象物の検出結果が正しいか否かを判定できる。
【0197】
図22の例では、画像処理装置20は、農業機械100の移動の停止から再開までの時間が閾値よりも長い場合(すなわち画像に基づく対象物の検出結果が正しいと判定した場合)、入力画像をメモリ24に記憶する。このような処理に限らず、画像処理装置20は、対象物の検出結果が正しいか否かを示す情報を入力画像に付加してメモリ24に記憶してもよい。例えば、入力画像に基づく対象物の検出結果が正しくないと判定した場合、検出結果が正しくないことを示す情報を、入力画像に関連付けてメモリ24に記憶してもよい。また、画像処理装置20は、入力画像に基づく対象物の検出結果が正しいと判定した場合、検出結果が正しいことを示す情報を、入力画像に関連付けてメモリ24に記憶してもよい。そのような情報は、入力画像に関連付けられたメタデータとして記憶され得る。画像処理装置20は、当該情報に基づいて、学習済みモデルの再学習に利用する画像を決定することができる。例えば、画像処理装置20は、検出結果が正しくないことを示す情報が関連付けられた画像を再学習に利用せず、検出結果が正しいことを示す情報が関連付けられた画像を再学習に利用してもよい。
【0198】
ステップS480において、画像処理装置20は、対象物が検出された1つ以上の画像のそれぞれにおける対象物の位置情報を当該画像に対応付けて記録してもよい。位置情報は、例えば、画像における対象物の位置を示すバウンディングボックスの代表点(例えば、左上の頂点または中心点)の座標値であり得る。そのような位置情報を画像に付加して記録することにより、学習済みモデルの再学習を効率的に実行することができる。例えば、画像処理装置20は、画像における対象物の位置情報と、当該対象物の種類を示すラベルとをメモリ24に記憶してもよい。そのようにすることにより、画像における対象物の位置情報と、当該対象物の種類を示すラベルとをアノテーション用のデータとして用いて学習済みモデルの再学習を効率化することができる。
【0199】
画像処理装置20は、ステップS500において再学習を行った後、既存の学習済みモデルを、再学習が行われた学習済みモデルで更新してもよいし、両者を併存させてもよい。両者を併存させる場合、画像処理装置20は、既存の学習済みモデルと再学習後の学習済みモデルのいずれを用いて対象物の検出処理を行うかを、ユーザの操作に応じて選択できるようにしてもよい。また、画像処理装置20は、ユーザからの指令に従って、既存の学習済みモデルを、再学習が行われた学習済みモデルで更新してもよい。ユーザからの指令は、例えば図5に示すターミナルモニタ131などの入力装置を用いた操作によって与えられ得る。そのような構成により、再学習後の学習済みモデルの性能が既存の学習済みモデルの性能よりも向上していることをユーザが確認した後にモデルを更新したり、再学習の効果が確認できない場合は元の学習済みモデルに戻したりすることが可能になる。
【0200】
以上の実施形態1~4では、作業機械が収穫機等の農業機械である場合の例を主に説明したが、農業機械以外の作業機械に前述の各技術を適用してもよい。例えば、図24に例示するような建設作業車200に、上記の実施形態1~4の機能の一部または全部を実装してもよい。また、画像取得装置は、カメラ126等の撮像装置10に限定されず、LiDARセンサ等の点群画像を取得可能な装置であってもよい。
【0201】
以上のように、本開示は、以下に記載の農業機械、画像処理装置、および画像処理方法を含む。
【0202】
[項目A1]
移動しながら作業を実行する作業機械であって、
前記作業機械の移動方向における画像を取得する画像取得装置と、
前記画像から特定の対象物を検出する画像処理装置と、
前記対象物の検出結果に基づいて前記作業機械の動作を制御する制御装置と、
を備え、
前記画像処理装置は、
入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリを備え、
前記画像取得装置によって取得された前記画像から、前記作業機械の動作状態に基づいて決定した関心領域を示す部分画像を抽出し、
前記部分画像に基づいて前記入力画像を生成し、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出する、
作業機械。
【0203】
[項目A2]
前記画像処理装置は、前記作業機械の移動速度、前記作業機械の旋回状態、および前記作業機械の傾斜状態の少なくとも1つに関する情報を取得し、前記情報に基づいて、前記関心領域を変化させる、項目A1に記載の作業機械。
【0204】
[項目A3]
前記画像処理装置は、前記作業機械の移動速度に応じて、前記関心領域の大きさを変化させる、項目A2に記載の作業機械。
【0205】
[項目A4]
前記画像処理装置は、前記作業機械の移動速度が高いほど、前記関心領域を小さくする、項目A3に記載の作業機械。
【0206】
[項目A5]
前記画像処理装置は、前記作業機械が右に旋回するとき、前記関心領域を右方向にシフトさせ、前記作業機械が左に旋回するとき、前記関心領域を左方向にシフトさせる、項目A2に記載の作業機械。
【0207】
[項目A6]
前記画像処理装置は、前記作業機械の旋回時の操舵角が大きいほど、前記関心領域を大きくシフトさせる、項目A5に記載の作業機械。
【0208】
[項目A7]
前記作業機械の傾斜量を計測する傾斜センサをさらに備え、
前記画像処理装置は、前記傾斜量に応じて前記関心領域の位置を変化させる、項目A2に記載の作業機械。
【0209】
[項目A8]
前記傾斜センサは、前記作業機械のピッチ角を前記傾斜量として計測し、
前記画像処理装置は、前記ピッチ角に応じて前記関心領域を上または下にシフトさせる、項目A7に記載の作業機械。
【0210】
[項目A9]
前記作業機械によって作業が実行される圃場を含むエリアの地図データを記憶する記憶装置と、
前記作業機械の測位データを取得する測位装置と、
をさらに備え、
前記画像処理装置は、前記地図データ、前記測位データ、および前記作業機械の前記動作状態に基づいて、前記関心領域を決定する、
項目A1からA8のいずれかに記載の作業機械。
【0211】
[項目A10]
前記画像処理装置は、前記地図データおよび前記測位データに基づいて、前記画像取得装置によって取得された前記画像から、前記圃場において前記作業が実行される作業領域に相当する領域を特定し、前記領域の中から、前記作業機械の動作状態に基づいて、前記関心領域を決定する、項目A9に記載の作業機械。
【0212】
[項目A11]
前記画像処理装置は、前記部分画像の画素数を、予め設定された画素数に圧縮することを含む処理により、前記入力画像を生成する、項目A1からA10のいずれかに記載の作業機械。
【0213】
[項目A12]
前記作業機械は、自動運転を行う作業車両または無人航空機であり、
前記制御装置は、前記作業機械の自動運転の動作を制御する、
項目A1からA11のいずれかに記載の作業機械。
【0214】
[項目A13]
前記制御装置は、前記対象物が検出されたとき、前記作業機械の停止、前記作業機械の減速、および警告の出力の少なくとも1つを実行する、
項目A1からA12のいずれかに記載の作業機械。
【0215】
[項目A14]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置であって、
入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリと、
演算回路と、
を備え、
前記演算回路は、
前記画像取得装置によって取得された前記画像から、前記作業機械の動作状態に基づいて決定した関心領域を示す部分画像を抽出し、
前記部分画像に基づいて前記入力画像を生成し、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出する、
画像処理装置。
【0216】
[項目A15]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、
前記画像取得装置から前記画像を取得することと、
前記作業機械の動作状態を示す情報を取得することと、
前記画像から、前記作業機械の前記動作状態に基づいて決定した関心領域を示す部分画像を抽出することと、
前記部分画像に基づいて入力画像を生成することと、
前記入力画像を、予め生成された学習済みモデルに入力することによって前記対象物を検出することと、
を含む方法。
【0217】
[項目B1]
機体と、
画像取得装置と、
前記画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置と、
を備え、
前記画像処理装置は、
前記画像から、空と空以外の地物との境界、および前記対象物を検出し、
前記画像中の前記境界の位置に基づいて前記機体の傾きを推定し、
前記画像中の前記対象物の位置および推定された前記傾きに基づいて、地面に固定された座標系における前記対象物の位置を推定する、
作業機械。
【0218】
[項目B2]
前記画像処理装置は、前記地面に固定された前記座標系における前記対象物の位置に基づいて、前記作業機械から前記対象物までの距離を推定する、項目B1に記載の作業機械。
【0219】
[項目B3]
前記機体の傾きを計測する傾斜センサをさらに備え、
前記画像処理装置は、
前記画像中の前記境界の位置に基づいて推定された前記傾きと、前記傾斜センサによって計測された前記傾きとの差を計算し、
前記差が閾値未満である場合に、前記画像中の前記対象物の位置および推定された前記傾きに基づいて、前記地面に固定された前記座標系における前記対象物の位置を推定する、
項目B1に記載の作業機械。
【0220】
[項目B4]
前記画像処理装置は、前記画像中の前記境界の位置と、過去の時点において前記画像取得装置によって取得された画像から検出された前記境界の位置との変位量に基づいて、前記機体の傾きを推定する、項目B1からB3のいずれかに記載の作業機械。
【0221】
[項目B5]
前記過去の時点は、前記傾斜センサによって計測された前記傾きが基準値未満であった時点である、項目B4に記載の作業機械。
【0222】
[項目B6]
前記画像処理装置は、前記変位量に基づいて、前記機体のピッチ角を前記傾きとして推定する、項目B4またはB5に記載の作業機械。
【0223】
[項目B7]
前記画像処理装置は、推定した前記傾きに基づいて、前記画像における前記対象物の位置座標を、地面に固定された前記座標系における位置座標に変換し、変換後の前記位置座標に基づいて、前記対象物までの距離を推定する、項目B1からB6のいずれかに記載の作業機械。
【0224】
[項目B8]
地面に固定された前記座標系における前記対象物の位置に基づいて前記作業機械の動作を制御する制御装置をさらに備える、項目B1からB7のいずれかに記載の作業機械。
【0225】
[項目B9]
前記制御装置は、前記座標系における前記対象物の位置に基づいて推定された前記距離が所定値よりも小さい場合、前記作業機械の停止、前記作業機械の減速、および警告の出力の少なくとも1つを実行する、項目B8に記載の作業機械。
【0226】
[項目B10]
前記作業機械は、自動運転を行う作業車両または無人航空機であり、
前記制御装置は、前記作業機械の自動運転の動作を制御する、
項目B8またはB9に記載の作業機械。
【0227】
[項目B11]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置であって、
前記画像から、空と空以外の地物との境界、および前記対象物を検出し、
前記画像中の前記境界の位置に基づいて前記機体の傾きを推定し、
前記画像中の前記対象物の位置および推定された前記傾きに基づいて、地面に固定された座標系における前記対象物の位置を推定する、
画像処理装置。
【0228】
[項目B12]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、
前記画像から、空と空以外の地物との境界、および前記対象物を検出することと、
前記画像中の前記境界の位置に基づいて前記機体の傾きを推定することと、
前記画像中の前記対象物の位置および推定された前記傾きに基づいて、地面に固定された座標系における前記対象物の位置を推定することと、
を含む方法。
【0229】
[項目C1]
移動しながら作業を実行する作業機械であって、
前記作業機械の移動方向における画像を取得する画像取得装置と、
前記画像から特定の対象物を検出する画像処理装置と、
前記対象物の検出結果に基づいて前記作業機械の動作を制御する制御装置と、
を備え、
前記画像処理装置は、
入力画像から前記対象物を検出するための複数の学習済みモデルを記憶するメモリを備え、
前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成し、
前記入力画像を、前記複数の学習済みモデルの中から前記作業機械の周辺の環境に応じて選択した1つの学習済みモデルに入力することによって前記対象物を検出する、
作業機械。
【0230】
[項目C2]
前記複数の学習済みモデルは、前記作業機械の周辺の環境の異なる複数の明るさに対応付けられており、
前記画像処理装置は、前記複数の学習済みモデルの中から、現在の前記環境の明るさに対応する1つの学習済みモデルを選択する、
項目C1に記載の作業機械。
【0231】
[項目C3]
前記画像処理装置は、前記環境の明るさを、前記画像、照度センサからの出力、ユーザからの入力、およびライトの点灯状態の少なくとも1つに基づいて決定する、項目C2に記載の作業機械。
【0232】
[項目C4]
前記複数の学習済みモデルは、異なる複数の時間帯に対応付けられており、
前記画像処理装置は、前記複数の学習済みモデルの中から、現在の時間帯に対応する1つの学習済みモデルを選択する、
項目C1に記載の作業機械。
【0233】
[項目C5]
前記複数の学習済みモデルは、昼用モデルおよび夜用モデルを含み、
前記画像処理装置は、昼の時間帯においては前記昼用モデルを選択し、夜の時間帯においては前記夜用モデルを選択する、
項目C4に記載の作業機械。
【0234】
[項目C6]
前記複数の学習済みモデルは、逆光用モデルおよび非逆光用モデルを含み、
前記画像処理装置は、前記画像、ユーザからの入力、および照度センサからの出力の少なくとも1つに基づいて、逆光であるか否かを判定し、逆光の場合には前記逆光用モデルを選択し、逆光でない場合には前記非逆光用モデルを選択する、
項目C1に記載の作業機械。
【0235】
[項目C7]
前記複数の学習済みモデルは、異なる複数の作物の種類に対応付けられており、
前記画像処理装置は、前記複数の学習済みモデルの中から、作業対象の作物の種類に対応する1つの学習済みモデルを選択する、
項目C1に記載の作業機械。
【0236】
[項目C8]
前記画像処理装置は、前記画像、またはユーザからの入力に基づいて、前記作業対象の作物の種類を特定する、項目C7に記載の作業機械。
【0237】
[項目C9]
前記複数の学習済みモデルは、異なる複数の天候に対応付けられており、
前記画像処理装置は、前記複数の学習済みモデルの中から、現在の天候に対応する1つの学習済みモデルを選択する、
項目C1に記載の作業機械。
【0238】
[項目C10]
前記画像処理装置は、前記画像、または外部の装置から取得した天候に関する情報に基づいて、前記現在の天候を特定する、項目C9に記載の作業機械。
【0239】
[項目C11]
前記複数の学習済みモデルの各々は、共通のモデルアーキテクチャと、互いに異なるウエイト群とを有する、項目C1からC10のいずれかに記載の作業機械。
【0240】
[項目C12]
前記制御装置は、設定された経路に沿って前記作業機械を移動させ、
前記画像処理装置は、前記作業機械が前記経路上で方向転換を行う度に、前記学習済みモデルの選択を実行する、
項目C1から11のいずれかに記載の作業機械。
【0241】
[項目C13]
前記画像処理装置は、前記作業機械の移動中、所定時間ごとに前記学習済みモデルの選択を実行する、項目C1から12のいずれかに記載の作業機械。
【0242】
[項目C14]
前記制御装置は、前記対象物が検出されたとき、前記作業機械の停止、前記作業機械の減速、および警告の出力の少なくとも1つを実行する、
項目C1から13のいずれかに記載の作業機械。
【0243】
[項目C15]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置であって、
入力画像から前記対象物を検出するための複数の学習済みモデルを記憶するメモリと、
演算回路と、
を備え、
前記演算回路は、
前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成し、
前記入力画像を、前記複数の学習済みモデルの中から前記作業機械の周辺の環境に応じて選択した1つの学習済みモデルに入力することによって前記対象物を検出する、
画像処理装置。
【0244】
[項目C16]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置によって実行される方法であって、
前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成することと、
前記入力画像を、複数の学習済みモデルの中から前記作業機械の周辺の環境に応じて選択した1つの学習済みモデルに入力することによって前記対象物を検出することと、
を含む方法。
【0245】
[項目D1]
移動しながら作業を実行する作業機械であって、
前記作業機械の移動方向における画像を取得する画像取得装置と、
前記画像から特定の対象物を検出する画像処理装置と、
前記対象物の検出結果に基づいて前記作業機械の動作を制御する制御装置と、
を備え、
前記画像処理装置は、
入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリを備え、
前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成し、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出し、
前記作業機械の動作中に前記画像取得装置によって取得された複数の画像のうち、前記対象物が検出された1つ以上の画像に基づいて、前記学習済みモデルの再学習を実行する、
作業機械。
【0246】
[項目D2]
前記画像処理装置は、
前記対象物が検出された前記1つ以上の画像の各々について、前記対象物の検出結果が正しいか否かを、前記対象物の検出後の前記作業機械の動作に基づいて判定し、
前記対象物の検出結果が正しいと判定した場合、前記画像を、前記学習済みモデルの再学習に利用する、
項目D1に記載の作業機械。
【0247】
[項目D3]
前記制御装置は、前記対象物が検出されたとき、前記作業機械を停止させ、入力された再開指令に応答して前記作業機械の移動を再開させ、
前記画像処理装置は、前記対象物の検出結果が正しいか否かを、前記作業機械が停止してから移動を再開するまでの時間に基づいて判定する、
項目D2に記載の作業機械。
【0248】
[項目D4]
物体検出センサをさらに備え、
前記画像処理装置は、
前記対象物が検出された前記1つ以上の画像の各々について、前記対象物の検出結果が正しいか否かを、前記物体検出センサからの出力に基づいて判定し、
前記対象物の検出結果が正しいと判定した場合、前記画像を、前記学習済みモデルの再学習に利用する、
項目D1に記載の作業機械。
【0249】
[項目D5]
前記画像処理装置は、
前記対象物の検出結果が正しくないと判定した場合、前記検出結果が正しくないことを示す情報を前記画像に関連付けて記録し、
前記情報に基づいて、前記学習済みモデルの再学習に利用する画像を決定する、
項目D1からD4のいずれかに記載の作業機械。
【0250】
[項目D6]
前記画像処理装置は、
前記対象物の検出結果が正しいと判定した場合、前記検出結果が正しいことを示す情報を前記画像に関連付けて記録し、
前記情報に基づいて、前記学習済みモデルの再学習に利用する画像を決定する、
項目D1からD4のいずれかに記載の作業機械。
【0251】
[項目D7]
前記画像処理装置は、前記対象物が検出された前記1つ以上の画像のそれぞれにおける前記対象物の位置情報を、前記画像に対応付けて記録し、
前記位置情報に基づいて、前記学習済みモデルの再学習を実行する、
項目D1からD6のいずれかに記載の作業機械。
【0252】
[項目D8]
前記画像処理装置は、前記再学習を行った後、ユーザからの指令に従って、前記学習済みモデルを、再学習が行われた前記学習済みモデルで更新する、項目D1からD7のいずれかに記載の作業機械。
【0253】
[項目D9]
前記画像処理装置は、前記作業機械によって作業が行われている間、前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成し、前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出し、前記対象物が検出された場合に前記入力画像を記録する動作を繰り返し実行し、
前記作業が終了したことを示す信号を受けた後、前記対象物が検出された1つ以上の入力画像に基づいて、前記学習済みモデルの再学習を実行する、
項目D1からD8のいずれかに記載の作業機械。
【0254】
[項目D10]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する画像処理装置であって、
入力画像から前記対象物を検出するための学習済みモデルを記憶するメモリと、
演算回路と、
を備え、
前記演算回路は、
前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成し、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出し、
前記作業機械の動作中に前記画像取得装置によって取得された複数の画像のうち、前記対象物が検出された1つ以上の画像に基づいて、前記学習済みモデルの再学習を実行する、
画像処理装置。
【0255】
[項目D11]
作業機械に搭載された画像取得装置によって取得された画像から特定の対象物を検出する方法であって、
前記画像取得装置によって取得された前記画像に基づいて前記入力画像を生成することと、
前記入力画像を前記学習済みモデルに入力することによって前記対象物を検出することと、
前記作業機械の動作中に前記画像取得装置によって取得された複数の画像のうち、前記対象物が検出された1つ以上の画像に基づいて、前記学習済みモデルの再学習を実行することと、
を含む方法。
【産業上の利用可能性】
【0256】
本開示の技術は、例えば、収穫機、トラクタ、移植機、農業用ドローンなどの農業機械、バックホー、ホイールローダ、キャリアなどの建設機械、および除雪車などの種々の作業機械に適用することができる。
【符号の説明】
【0257】
10:撮像装置、20:画像処理装置、22:プロセッサ、24:メモリ、25:コンピュータプログラム、27:学習済みモデル、30:制御装置、100: 農業機械、101:機体、102:走行装置、103:刈取装置、104:搬送装置、105:脱穀装置、106:タンク、107:排出装置、108:排藁処理装置、109:リール、110:キャビン、111:原動機、112:変速装置、117:排出口、120:GNSSユニット、121:GNSS受信機、122:RTK受信機、123:慣性計測装置(IMU)、124:処理回路、125:LiDARセンサ、126:カメラ、127:障害物センサ、131:ターミナルモニタ、132:操作スイッチ群、133:ブザー、140:駆動装置、141:動力伝達機構、142:ライト、150:センサ群、151:車速センサ、152:操舵角センサ、153:照度センサ、160:制御システム、164:記憶装置、165-167:ECU、190:通信装置、200:建設作業車
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図9E
図10A
図10B
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24