(57)【要約】【課題】簡便かつ効率的な方法で対象装置の動作を制御する態様にバリエーションを持たせる。【解決手段】本発明の一側面に係る運転支援装置は、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、車両の運転の支援を制御する運転制御部と、乗員を撮影するように配置された撮影装置から撮影画像を取得する画像取得部と、画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に撮影画像を入力することで、支援コマンドの指令値に対する補正値を当該学習済みの学習器から取得する動作補正部と、を備え、運転制御部は、取得した補正値により指令値を補正し、指令値を補正した後の支援コマンドに基づいて、車両の運転の支援を制御する。【選択図】図４
2019159930.tif 000002
【特許請求の範囲】
【請求項１】
車両の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、前記車両の運転の支援を制御する運転制御部と、
前記車両に乗車した乗員を撮影するように配置された撮影装置から撮影画像を取得する画像取得部と、
画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記支援コマンドの前記指令値に対する補正値を当該学習済みの学習器から取得する動作補正部と、
を備え、
前記運転制御部は、取得した前記補正値により前記指令値を補正し、前記指令値を補正した後の支援コマンドに基づいて、前記車両の運転の支援を制御する、
運転支援装置。
【請求項２】
前記学習済みの学習器は、前記機械学習により、画像に写る人物の状態に応じて運転動作を補正するように構築されている、
請求項１に記載の運転支援装置。
【請求項３】
前記学習済みの学習器は、前記機械学習により、画像に写る人物の表情に応じて運転動作を補正するように構築されている、
請求項２に記載の運転支援装置。
【請求項４】
前記学習済みの学習器は、前記機械学習により、画像に写る人物の表情が怖がっていることに応じて前記運転の支援を軽減する又は打ち消す補正を行うように構築されている、
請求項３に記載の運転支援装置。
【請求項５】
前記学習済みの学習器は、前記機械学習により、画像に写る人物のジェスチャに応じて運転動作を補正するように構築されている、
請求項２に記載の運転支援装置。
【請求項６】
前記動作補正部は、運転者による前記車両の操作指令を示す操作情報を前記学習済みの学習器に更に入力し、当該学習済みの学習器の演算処理を実行することで、前記学習済みの学習器から前記補正値を取得する、
請求項１から５のいずれか１項に記載の運転支援装置。
【請求項７】
前記運転動作の前記所定の属性は、ハンドルの操舵角、ブレーキ量、及びアクセル量の少なくともいずれかである、
請求項１から６のいずれか１項に記載の運転支援装置。
【請求項８】
コンピュータが、
車両の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、
前記車両に乗車した乗員を撮影するように配置された撮影装置から撮影画像を取得するステップと、
画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記支援コマンドの前記指令値に対する補正値を当該学習済みの学習器から取得するステップと、
取得した前記補正値により前記指令値を補正するステップと、
前記指令値を補正した後の支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、
を実行する、
運転支援方法。
【請求項９】
コンピュータに、
車両の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、
前記車両に乗車した乗員を撮影するように配置された撮影装置から撮影画像を取得するステップと、
画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記支援コマンドの前記指令値に対する補正値を当該学習済みの学習器から取得するステップと、
取得した前記補正値により前記指令値を補正するステップと、
前記指令値を補正した後の支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、
を実行させるための、
運転支援プログラム。
【請求項１０】
対象装置に所定の動作を指示する指示コマンドであって、前記動作の所定の属性に関する指令値を含む指示コマンドに基づいて、前記対象装置の動作を制御する動作制御部と、
前記対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得する画像取得部と、
画像に写る状況に応じて前記動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得する動作補正部と、
を備え、
前記動作制御部は、取得した前記補正値により前記指令値を補正し、前記指令値を補正した後の指示コマンドに基づいて、前記対象装置の動作を制御する、
動作制御装置。
【請求項１１】
コンピュータが、
対象装置に所定の動作を指示する指示コマンドであって、前記動作の所定の属性に関する指令値を含む指示コマンドに基づいて、前記対象装置の動作を制御するステップと、
前記対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得するステップと、
画像に写る状況に応じて前記動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得するステップと、
取得した前記補正値により前記指令値を補正するステップと、
前記指令値を補正した後の指示コマンドに基づいて、前記対象装置の動作を制御するステップと、
を実行する、
動作制御方法。
【請求項１２】
コンピュータに、
対象装置に所定の動作を指示する指示コマンドであって、前記動作の所定の属性に関する指令値を含む指示コマンドに基づいて、前記対象装置の動作を制御するステップと、
前記対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得するステップと、
画像に写る状況に応じて前記動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得するステップと、
取得した前記補正値により前記指令値を補正するステップと、
前記指令値を補正した後の指示コマンドに基づいて、前記対象装置の動作を制御するステップと、
を実行させるための、
動作制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転支援装置、運転支援方法、運転支援プログラム、動作制御装置、動作制御方法、及び動作制御プログラムに関する。
【背景技術】
【０００２】
近年、ハンドルの操舵を補助したり、ブレーキ操作を自動的に行ったり、運転者の運転操作によらない自動運転を実施したり等の車両の運転を支援する技術の開発が進んでいる。例えば、特許文献１では、手動運転モードと自動運転モードとを備える自動運転車であって、所定の車内状況に応じて、手動運転モードから自動運転モードに切り替える自動運転車が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１３３０５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本件発明者らは、車両の運転を支援する従来の技術には次のような問題点があることを見出した。すなわち、従来の技術では、例えば、ハンドルの操舵角に応じて操舵の補助力を決定する、一定の速度で自動運転を実施する等、特定の操作に対して特定の運転動作の支援が対応付けられていた。そのため、実際の運転時に生じる個々のユーザ、車両の特性等に起因する個別の状況を予め想定して特定の運転動作の支援を対応させることはできず、運転を支援する態様にバリエーションを持たせることができなかった。
【０００５】
これに対して、運転を支援する態様にバリエーションを持たせるため、運転を支援する際の所望の動作を個々のユーザから受け付けるシステムを構築することが考えられる。しかしながら、このようなシステムでは、個別の状況に適した動作を入力したり、入力した動作内容を登録したりする等の手間がかかってしまい、また、個別の状況に応じてこのような登録作業を行う分だけ非効率であった。
【０００６】
なお、この問題点は、運転の動作を支援する場面に特有のものではない。例えば、製造ラインのロボット等のような利用者の利用する対象装置の動作を制御するあらゆる場面で同様の問題点が生じ得る。すなわち、対象装置の動作を制御する態様にバリエーションを持たせるために、所望の動作を個々のユーザから受け付けるようにすると、個別の状況に応じて登録作業を行う分だけ非効率である。
【０００７】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、簡便かつ効率的な方法で対象装置の動作を制御する態様にバリエーションを持たせる技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００９】
すなわち、本発明の一側面に係る運転支援装置は、車両の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、前記車両の運転の支援を制御する運転制御部と、前記車両に乗車した乗員を撮影するように配置された撮影装置から撮影画像を取得する画像取得部と、画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記支援コマンドの前記指令値に対する補正値を当該学習済みの学習器から取得する動作補正部と、を備え、前記運転制御部は、取得した前記補正値により前記指令値を補正し、前記指令値を補正した後の支援コマンドに基づいて、前記車両の運転の支援を制御する。
【００１０】
当該構成では、学習済みの学習器を利用することで、車両の運転の支援を指示する支援コマンドの指令値に対して、乗員を撮影するように配置された撮影装置から得られた撮影画像に写る個々の状況に応じた異なる補正値を得ることができる。この補正値を支援コマンドに適用することで、運転を支援する動作のバリエーションを実現することができるため、個々の状況に適した動作の入力を行う手間を省略することができる。また、当該構成では、学習済みの学習器から得られる補正値を利用して運転を支援する動作のバリエーションを実現しているため、個々の状況に適した運転を支援する動作を個別に一から生成しなくてもよく、当該運転を支援する動作に効率的にバリエーションを持たせることができる。したがって、当該構成によれば、簡便かつ効率的な方法で運転を支援する態様にバリエーションを持たせることができ、これにより、個々のユーザ、車両の特性等に起因する個別の状況に適した運転の支援を実現することができる。
【００１１】
なお、「運転の支援」は、運転動作に対するあらゆる支援を対象としてもよく、例えば、手動運転中における運転者の運転操作の補助、自動運転の実施等を含んでもよい。「乗員」は、車両内に存在するあらゆる人物を対象としてもよく、運転席に着いた乗員（すなわち、運転者）、及び運転席以外の席に着いた乗員を含んでもよい。「学習器」は、例えば、ニューラルネットワーク等の、機械学習により所定の推論を行う能力を獲得可能な学習モデルにより構成される。この学習器の種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。「学習済みの学習器」は、「識別器」又は「分類器」と称されてもよい。
【００１２】
上記一側面に係る運転支援装置において、前記学習済みの学習器は、前記機械学習により、画像に写る人物の状態に応じて運転動作を補正するように構築されていてもよい。当該構成によれば、乗員の状況に応じて、運転の支援の動作を補正することができるようになる。
【００１３】
上記一側面に係る運転支援装置において、前記学習済みの学習器は、前記機械学習により、画像に写る人物の表情に応じて運転動作を補正するように構築されていてもよい。当該構成によれば、乗員の表情に応じて、運転の支援の動作を補正することができるようになる。
【００１４】
上記一側面に係る運転支援装置において、前記学習済みの学習器は、前記機械学習により、画像に写る人物の表情が怖がっていることに応じて前記運転の支援を軽減する又は打ち消す補正を行うように構築されていてもよい。当該構成によれば、乗員の表情が怖がっていることに応じて、その運転の支援の動作を軽減する又は取りやめることができるようになる。
【００１５】
上記一側面に係る運転支援装置において、前記学習済みの学習器は、前記機械学習により、画像に写る人物のジェスチャに応じて運転動作を補正するように構築されていてもよい。当該構成によれば、乗員のジェスチャに応じて、運転の支援の動作を補正することができるようになる。
【００１６】
上記一側面に係る運転支援装置において、前記動作補正部は、運転者による前記車両の操作指令を示す操作情報を前記学習済みの学習器に更に入力し、当該学習済みの学習器の演算処理を実行することで、前記学習済みの学習器から前記補正値を取得してもよい。当該構成によれば、運転者の操作及び撮影画像に写る状況に応じて、運転の支援の動作を補正することができるようになる。
【００１７】
上記一側面に係る運転支援装置において、前記運転動作の前記所定の属性は、ハンドルの操舵角、ブレーキ量、及びアクセル量の少なくともいずれかであってよい。当該構成によれば、撮影画像に写る状況に応じて、運転の支援の動作における、ハンドルの操舵角、ブレーキ量、及びアクセル量の少なくともいずれかを補正することができるようになる。
【００１８】
上記各形態に係る運転支援装置は、利用者の利用する対象装置の動作を制御するあらゆる場面に適用可能に変更されてもよい。
【００１９】
例えば、本発明の一側面に係る動作制御装置は、対象装置に所定の動作を指示する指示コマンドであって、前記動作の所定の属性に関する指令値を含む指示コマンドに基づいて、前記対象装置の動作を制御する動作制御部と、前記対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得する画像取得部と、画像に写る状況に応じて前記動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得する動作補正部と、を備え、前記動作制御部は、取得した前記補正値により前記指令値を補正し、前記指令値を補正した後の指示コマンドに基づいて、前記対象装置の動作を制御する。
【００２０】
なお、「対象装置」は、動作を制御可能なあらゆる装置を含んでもよく、例えば、製造ラインで利用される産業用ロボット、ベルトコンベア等を含んでもよい。「指令値」は、対象装置に供給されて、当該対象装置の動作の属性値を規定する。「所定の属性」は、対象装置の動作のあらゆる属性を含んでよく、例えば、産業用ロボット又はベルトコンベアのモータの駆動量等であってよい。
【００２１】
また、上記各形態に係る運転支援装置及び動作制御装置の別の態様として、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２２】
例えば、本発明の一側面に係る運転支援方法は、コンピュータが、車両の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、前記車両に乗車した乗員を撮影するように配置された撮影装置から撮影画像を取得するステップと、画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記支援コマンドの前記指令値に対する補正値を当該学習済みの学習器から取得するステップと、取得した前記補正値により前記指令値を補正するステップと、前記指令値を補正した後の支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、を実行する、情報処理方法である。
【００２３】
また、例えば、本発明の一側面に係る運転支援プログラムは、コンピュータに、車両の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、前記車両に乗車した乗員を撮影するように配置された撮影装置から撮影画像を取得するステップと、画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記支援コマンドの前記指令値に対する補正値を当該学習済みの学習器から取得するステップと、取得した前記補正値により前記指令値を補正するステップと、前記指令値を補正した後の支援コマンドに基づいて、前記車両の運転の支援を制御するステップと、を実行させるための、プログラムである。
【００２４】
また、例えば、本発明の一側面に係る動作制御方法は、コンピュータが、対象装置に所定の動作を指示する指示コマンドであって、前記動作の所定の属性に関する指令値を含む指示コマンドに基づいて、前記対象装置の動作を制御するステップと、前記対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得するステップと、画像に写る状況に応じて前記動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得するステップと、取得した前記補正値により前記指令値を補正するステップと、前記指令値を補正した後の指示コマンドに基づいて、前記対象装置の動作を制御するステップと、を実行する、情報処理方法である。
【００２５】
また、例えば、本発明の一側面に係る動作制御プログラムは、コンピュータに、対象装置に所定の動作を指示する指示コマンドであって、前記動作の所定の属性に関する指令値を含む指示コマンドに基づいて、前記対象装置の動作を制御するステップと、前記対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得するステップと、画像に写る状況に応じて前記動作を補正するための機械学習を行った学習済みの学習器に前記撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、前記指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得するステップと、取得した前記補正値により前記指令値を補正するステップと、前記指令値を補正した後の指示コマンドに基づいて、前記対象装置の動作を制御するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２６】
本発明によれば、簡便かつ効率的な方法で対象装置の動作を制御する態様にバリエーションを持たせる技術を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る運転支援装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係る運転支援装置のソフトウェア構成の一例を模式的に例示する。
【図５】図５は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る運転支援装置の処理手順の一例を例示する。
【図７】図７は、実施の形態に係る学習装置の処理手順の一例を例示する。
【図８】図８は、本発明が適用される他の場面の一例を模式的に例示する。
【図９】図９は、他の形態に係る動作制御装置のハードウェア構成の一例を模式的に例示する。
【図１０】図１０は、他の形態に係る動作制御装置のソフトウェア構成の一例を模式的に例示する。
【発明を実施するための形態】
【００２８】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２９】
§１  適用例
まず、本発明の基本的な構成の一例について説明する。対象装置の動作を制御する態様にバリエーションを持たせるため、所望の動作を個々のユーザから受け付けるシステムを構築すると、次のような問題が生じ得る。すなわち、個別の状況に適した動作を入力したり、入力した動作内容を登録したりする等の手間がかかってしまい、また、個別の状況に応じてこのような登録作業を行う分だけ非効率である。
【００３０】
そこで、本発明の一例では、対象装置に所定の動作を指示する指示コマンドであって、当該動作の所定の属性に関する指令値を含む指示コマンドに基づいて、対象装置の動作を制御する。対象装置は、動作を制御可能なあらゆる装置を含んでよい。指令値は、対象装置に供給されて、当該対象装置の動作の属性値を規定する。所定の属性は、対象装置の動作のあらゆる属性を含んでよい。
【００３１】
次に、対象装置を利用する利用者を撮影するように配置された撮影装置から撮影画像を取得する。続いて、画像に写る状況に応じて対象装置の動作を補正するための機械学習を行った学習済みの学習器に取得した撮影画像を入力し、当該学習済みの学習器の演算処理を実行することで、指示コマンドの指令値に対する補正値を当該学習済みの学習器から取得する。そして、取得した補正値により指令値を補正し、指令値を補正した後の指示コマンドに基づいて、対象装置の動作を制御する。
【００３２】
これにより、本発明の一例では、学習済みの学習器を利用することで、対象装置に所定の動作を指示する指示コマンドの指令値に対して、利用者を撮影するように配置された撮影装置から得られた撮影画像に写る個々の状況に応じた異なる補正値を得ることができる。この補正値を適用することで、対象装置の動作のバリエーションを実現することができるため、個々の状況に適した動作の入力を行う手間を省略することができる。また、本発明の一例では、学習済みの学習器から得られる補正値を利用して動作のバリエーションを実現しているため、個々の状況に適した動作を個別に一から生成しなくてもよく、効率的に対象装置の動作にバリエーションを持たせることができる。したがって、本発明の一例によれば、簡便かつ効率的な方法で対象装置の動作を制御する態様にバリエーションを持たせることができる。
【００３３】
次に、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本発明の車両の運転支援に適用した場面の一例を模式的に例示する。ただし、本発明の適用範囲は、以下で説明する車両の運転支援の例に限られる訳ではない。本発明は、対象装置の動作を支援するあらゆる場面に適用可能である。
【００３４】
図１で例示される運転支援装置１は、車両１００の運転の支援を制御するように構成されたコンピュータである。本実施形態に係る運転支援装置１は、車両１００の運転の支援を指示する支援コマンドであって、運転動作の所定の属性に関する指令値を含む支援コマンドに基づいて、車両１００の運転の支援を制御する。車両１００は、本発明の「対象装置」の一例である。運転の支援は、本発明の「所定の動作」の一例である。支援コマンドは、本発明の「指示コマンド」の一例である。
【００３５】
ここで、運転の支援は、運転の動作に対するあらゆる支援を含んでよく、例えば、手動運転モード中における運転者Ｄの運転操作の補助を含んでもよい。補助の対象となる運転操作の一例として、ハンドルの操作、ブレーキの操作、アクセルの操作等を挙げることができる。また、車両１００が運転者Ｄの運転操作によらない自動運転モードを実施可能に構成されている場合、運転の支援には、自動運転モードの実施が含まれてもよい。この運転の支援を指示する支援コマンドの指令値により規定される運転動作の所定の属性は、例えば、車両１００のハンドルの操舵角、ブレーキ量、及びアクセル量の少なくともいずれかであってよい。
【００３６】
また、運転支援装置１は、車両１００に乗車した乗員を撮影するように配置されたカメラ３２から撮影画像を取得する。カメラ３２は、本発明の「撮影装置」の一例である。図１の例では、カメラ３２は、運転者Ｄを撮影可能に配置されている。しかしながら、カメラ３２の配置は、このような例に限定されなくてもよい。撮影の対象となる乗員は、車両１００内に存在するあらゆる人物を対象としてもよく、運転席に着いた運転者Ｄの他、運転席以外の席に着いた乗員を含んでもよい。
【００３７】
続いて、運転支援装置１は、画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みの学習器（後述するニューラルネットワーク６）に撮影画像を入力し、学習済みの学習器の演算処理を実行する。これにより、運転支援装置１は、支援コマンドの指令値に対する補正値を学習済みの学習器から取得する。なお、この学習済みの学習器は、「識別器」又は「分類器」と称されてもよい。
【００３８】
そして、運転支援装置１は、取得した補正値により指令値を補正し、指令値を補正した後の支援コマンドに基づいて、車両１００の運転の支援を制御する。例えば、補正の対象となる指令値により規定される運転動作の属性が車両１００のアクセル量である場合、運転支援装置１は、学習済みの学習器から取得した補正値により車両１００のアクセル量を補正（変更）する。
【００３９】
一方、本実施形態に係る学習装置２は、運転支援装置１で利用する学習器を構築する、すなわち、入力された撮影画像に写る状況に応じて運転動作の補正値を出力するように学習器の機械学習を実施するコンピュータである。具体的には、学習装置２は、撮影画像（本実施形態では、操作情報を更に含む）と補正値との組み合わせを学習用データセットとして取得する。これらのうち、撮影画像は入力データ（訓練データ）として利用され、補正値は教師データ（正解データ）として利用される。つまり、学習装置２は、撮影画像を入力すると支援コマンドの指令値に対する補正値を出力するように学習器（後述するニューラルネットワーク７）を学習させる。
【００４０】
これにより、学習装置２は、運転支援装置１で利用する学習済みの学習器を作成することができる。運転支援装置１は、例えば、ネットワークを介して、学習装置２により作成された学習済みの学習器を取得することができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００４１】
以上のとおり、本実施形態によれば、学習済みの学習器を利用することで、車両１００の運転の支援を指示する支援コマンドの指令値に対して、乗員を撮影するように配置されたカメラ３２から得られた撮影画像に写る個々の状況に応じた異なる補正値を得ることができる。支援コマンドの指令値にこの補正値を適用することで、運転を支援する動作のバリエーションを実現することができるため、個々の状況に適した動作の入力を行う手間を省略することができる。加えて、本実施形態では、運転を支援する動作のテンプレートを用意すれば、その用意したテンプレートに補正値を適用することで、運転を支援する動作のバリエーションを実現することができる。そのため、個々の状況に適した運転を支援する動作を個別に一から生成しなくてもよく、当該運転を支援する動作に効率的にバリエーションを持たせることができる。したがって、本実施形態によれば、簡便かつ効率的な方法で運転を支援する態様にバリエーションを持たせることができ、これにより、個々のユーザ、車両の特性等に起因する個別の状況に適した運転の支援を実現することができる。
【００４２】
§２  構成例
［ハードウェア構成］
＜運転支援装置＞
次に、図２を用いて、本実施形態に係る運転支援装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る運転支援装置１のハードウェア構成の一例を模式的に例示する。
【００４３】
図２に示されるとおり、本実施形態に係る運転支援装置１は、制御部１１、記憶部１２、及び外部インタフェース１３が電気的に接続されたコンピュータである。なお、図２では、外部インタフェースを「外部Ｉ／Ｆ」と記載している。
【００４４】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ＲＡＭ、ＲＯＭ等で構成される。本実施形態では、記憶部１２は、運転支援プログラム１２１、学習結果データ１２２等の各種情報を記憶する。
【００４５】
運転支援プログラム１２１は、車両１００の運転の支援を制御する後述の情報処理（図６）を運転支援装置１に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。学習結果データ１２２は、運転支援装置１において利用する学習済みの学習器の設定を行うためのデータである。詳細は後述する。
【００４６】
外部インタフェース１３は、外部装置と接続するためのインタフェースであり、接続する外部装置に応じて適宜構成される。本実施形態では、外部インタフェース１３は、例えば、ＣＡＮ（Controller Area Network）を介して、ナビゲーション装置３０、操作部３１、及びカメラ３２に接続される。
【００４７】
ナビゲーション装置３０は、車両１００の走行時に経路案内を行うコンピュータである。ナビゲーション装置３０には、公知のカーナビゲーション装置が用いられてよい。ナビゲーション装置３０は、ＧＰＳ（Global Positioning System）信号に基づいて自車位置を測定し、地図情報及び周辺の建物等に関する周辺情報を利用して、経路案内を行うように構成される。なお、以下では、ＧＰＳ信号に基づいて測定される自車位置を示す情報を「ＧＰＳ情報」と称する。
【００４８】
操作部３１は、例えば、ハンドル、アクセル、ブレーキ、操作パネル等であり、車両１００の運転操作に利用される。操作部３１の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。運転支援装置１は、外部インタフェース１３を介して操作部３１と接続されることで、運転者Ｄによる操作部３１に対する運転操作に応じた操作指令の内容を示す操作情報を取得することができる。
【００４９】
カメラ３２は、車両１００に乗車した乗員を撮影するように配置される。図１の例では、カメラ３２は、少なくとも運転者Ｄの上半身を撮影範囲とするように、運転席の前方上方に配置されている。しかしながら、カメラ３２の配置場所は、このような例に限定されなくてもよく、運転者Ｄ、運転者Ｄ以外の他の乗員等の車両１００に乗車した乗員を撮影可能であれば、実施の形態に応じて適宜決定されてよい。なお、カメラ３２には、一般のデジタルカメラ、ビデオカメラ等が用いられてよい。運転支援装置１は、外部インタフェース１３を介してカメラ３２に接続されることで、乗員の状態を含む車内の状況が写る撮影画像をカメラ３２から取得することができる。
【００５０】
外部インタフェース１３には、上記以外の外部装置が接続されてよい。例えば、外部インタフェース１３には、ネットワークを介してデータ通信を行うための通信モジュールが接続されてもよい。外部インタフェース１３に接続する外部装置は、上記の各装置に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、図２の例では、運転支援装置１は、１つの外部インタフェース１３を備えている。しかしながら、外部インタフェース１３は、接続する外部装置毎に設けられてもよい。外部インタフェース１３の数は、実施の形態に応じて適宜選択可能である。
【００５１】
なお、運転支援装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＥＣＵ（Electronic Control Unit）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。記憶部１２は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。また、運転支援装置１には、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータが用いられてもよい。
【００５２】
＜学習装置＞
次に、図３を用いて、本実施形態に係る学習装置２のハードウェア構成の一例について説明する。図３は、本実施形態に係る学習装置２のハードウェア構成の一例を模式的に例示する。
【００５３】
図３に示されるとおり、本実施形態に係る学習装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置２４、出力装置２５、及びドライブ２６が電気的に接続されたコンピュータである。なお、図３では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００５４】
制御部２１は、上記制御部１１と同様に、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部２２は、制御部２１で実行される学習プログラム２２１、学習器の機械学習に利用する学習用データセット２２２、学習プログラム２２１を実行して作成した学習結果データ１２２等の各種情報を記憶する。
【００５５】
学習プログラム２２１は、後述する機械学習の処理（図７）を学習装置２に実行させ、当該機械学習の結果として学習結果データ１２２を生成させるためのプログラムである。学習用データセット２２２は、画像に写る状況に応じて運転動作の補正値を決定する能力を学習器に習得させるための機械学習に利用されるデータである。詳細は後述する。
【００５６】
通信インタフェース２３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置２は、当該通信インタフェース２３を介して、作成した学習結果データ１２２を外部の装置に配信してもよい。
【００５７】
入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置２５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置２４及び出力装置２５を介して、学習装置２を操作することができる。
【００５８】
ドライブ２６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ２６の種類は、記憶媒体９２の種類に応じて適宜選択されてよい。上記学習プログラム２２１及び学習用データセット２２２は、この記憶媒体９２に記憶されていてもよい。
【００５９】
記憶媒体９２は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置２は、この記憶媒体９２から、上記学習プログラム２２１及び学習用データセット２２２を取得してもよい。
【００６０】
ここで、図３では、記憶媒体９２の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９２の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００６１】
なお、学習装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＥＣＵ等で構成されてよい。学習装置２は、複数台の情報処理装置で構成されてもよい。また、学習装置２には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ等が用いられてもよい。
【００６２】
［ソフトウェア構成］
＜運転支援装置＞
次に、図４を用いて、本実施形態に係る運転支援装置１のソフトウェア構成の一例について説明する。図４は、本実施形態に係る運転支援装置１のソフトウェア構成の一例を模式的に例示する。
【００６３】
運転支援装置１の制御部１１は、記憶部１２に記憶された運転支援プログラム１２１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された運転支援プログラム１２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図４に示されるとおり、本実施形態に係る運転支援装置１は、運転制御部１１１、画像取得部１１２、及び動作補正部１１３をソフトウェアモジュールとして備えるコンピュータとして動作する。
【００６４】
運転制御部１１１は、車両１００の運転の支援を指示する支援コマンド５０であって、運転動作の所定の属性に関する指令値を含む支援コマンド５０に基づいて、車両１００の運転の支援を制御する。実施する支援の内容は、実施の形態に応じて適宜決定されてよい。例えば、運転制御部１１１は、運転者Ｄによる車両１００の操作部３１に対する運転操作に応じた操作指令の内容を示す操作情報５１を取得してもよい。そして、運転制御部１１１は、取得した操作情報５１により示される操作指令の内容に基づいて、実行する支援コマンド５０の種類を決定してもよい。
【００６５】
画像取得部１１２は、車両１００に乗車した乗員を撮影するように配置されたカメラ３２から撮影画像５２を取得する。動作補正部１１３は、画像に写る状況に応じて運転動作を補正するための機械学習を行った学習済みのニューラルネットワーク６を学習済みの学習器として含む。ニューラルネットワーク６は、本発明の「学習器」の一例である。動作補正部１１３は、学習済みのニューラルネットワーク６に操作情報５１及び撮影画像５２を入力し、学習済みのニューラルネットワーク６の演算処理を実行する。これにより、動作補正部１１３は、支援コマンド５０の指令値に対する補正値５３を学習済みのニューラルネットワーク６から取得する。運転制御部１１１は、取得した補正値により支援コマンド５０の指令値を補正し、指令値を補正した後の支援コマンド５０に基づいて、車両１００の運転の支援を制御する。
【００６６】
（学習器）
次に、学習器の一例であるニューラルネットワーク６について説明する。図４に示されるとおり、本実施形態に係るニューラルネットワーク６は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層６１、中間層（隠れ層）６２、及び出力層６３を備えている。
【００６７】
なお、図４の例では、ニューラルネットワーク６は、１層の中間層６２を備えており、入力層６１の出力が中間層６２に入力され、中間層６２の出力が出力層６３に入力されている。ただし、中間層６２の数は、１層に限られなくてもよく、ニューラルネットワーク６は、２層以上の中間層６２を備えてもよい。
【００６８】
各層６１〜６３は、１又は複数のニューロンを備えている。例えば、入力層６１のニューロンの数は、入力される操作情報５１及び撮影画像５２に応じて設定することができる。中間層６２のニューロンの数は、実施の形態に応じて適宜設定することができる。また、出力層６３のニューロンの数は、補正値５３に応じて設定することができる。
【００６９】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）は機械学習の結果に基づいて設定される。図４の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。また、機械学習の結果に基づいて、各ニューロンには閾値が設定される。基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。
【００７０】
動作補正部１１３は、操作情報５１及び撮影画像５２を入力層６１に入力し、ニューラルネットワーク６の演算処理として各層に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、動作補正部１１３は、支援コマンド５０の指令値に対する補正値５３を出力層６３から取得する。
【００７１】
なお、このようなニューラルネットワーク６の構成（例えば、各ネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習結果データ１２２に含まれている。動作補正部１１３は、学習結果データ１２２を参照して、撮影画像５２に写る状況に応じて、支援コマンド５０に基づく運転動作の支援に対する補正の内容を決定する処理に用いる学習済みのニューラルネットワーク６の設定を行う。
【００７２】
＜学習装置＞
次に、図５を用いて、本実施形態に係る学習装置２のソフトウェア構成の一例について説明する。図５は、本実施形態に係る学習装置２のソフトウェア構成の一例を模式的に例示する。
【００７３】
学習装置２の制御部２１は、記憶部２２に記憶された学習プログラム２２１をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された学習プログラム２２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図５に示されるとおり、本実施形態に係る学習装置２は、学習データ取得部２１１、及び学習処理部２１２をソフトウェアモジュールとして備えるコンピュータとして構成される。
【００７４】
学習データ取得部２１１は、操作情報２２３及び撮影画像２２４と補正値２２５との組み合わせを学習用データセット２２２として取得する。操作情報２２３及び撮影画像２２４は、入力データ（訓練データ）として利用され、補正値２２５は、教師データ（正解データ）として利用される。
【００７５】
操作情報２２３は、運転者による車両の操作指令を示す。この車両は、上記車両１００と同種であってもよいし、異種であってもよい。また、撮影画像２２４は、車両に乗車した乗員を撮影するように配置された撮影装置により得られる。この撮影装置は、上記カメラ３２と同種であってもよいし、異種であってもよい。補正値２２５は、操作情報２２３及び撮影画像２２４に反映された状況に応じた所望の運転動作の補正を実施可能なように適宜決定される。
【００７６】
学習処理部２１２は、取得した学習用データセット２２２を利用して、ニューラルネットワーク７の機械学習（教師あり学習）を実施する。すなわち、学習処理部２１２は、操作情報２２３及び撮影画像２２４を入力すると、補正値２２５を出力値として出力するようにニューラルネットワーク７の学習処理を行う。
【００７７】
ニューラルネットワーク７は、学習対象となる学習器の一例である。ニューラルネットワーク７は、上記ニューラルネットワーク６と同様に構成される。すなわち、ニューラルネットワーク７は、入力層７１、中間層（隠れ層）７２、及び出力層７３を備える。各層７１〜７３は、上記ニューラルネットワーク６の各層６１〜６３と同様に構成される。
【００７８】
学習処理部２１２は、ニューラルネットワークの学習処理により、操作情報２２３及び撮影画像２２４が入力層７１に入力されると、補正値２２５を出力層７３から出力するようにニューラルネットワーク７を学習させる。これにより、学習済みのニューラルネットワーク６が構築される。そして、学習処理部２１２は、学習後のニューラルネットワーク７（すなわち、学習済みのニューラルネットワーク６）の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を学習結果データ１２２として記憶部２２に格納する。
【００７９】
つまり、運転の操作及び車内の乗員の状況に応じて運転動作の補正内容を決定する能力をニューラルネットワーク７に習得させるため、本実施形態に係る学習用データセット２２２は、操作情報２２３及び撮影画像２２４と、当該操作情報２２３及び撮影画像２２４に反映された状況に応じた所望の補正値２２５との組み合わせにより構成される。ただし、車内の乗員の状況に応じて運転動作の補正内容を決定する能力をニューラルネットワーク７に習得させるための学習用データセットの組み合わせは、このような例に限定されなくてもよい。例えば、学習用データセットは、操作情報２２３及び撮影画像２２４と所望の補正値２２５を得るためのインデックスとの組み合わせにより構成されてよい。また、所望の補正値２２５を得るためのインデックスは、画像に写る状況（例えば、人物の状態等）に対応していてもよい。
【００８０】
なお、操作情報２２３及び撮影画像２２４と所望の補正値２２５との組み合わせは、実施の形態に応じて適宜決定されてよい。例えば、学習処理部２１２は、画像に写る人物の状態に応じて運転動作を補正するように学習済みのニューラルネットワーク６を構築してもよい。この場合、撮影画像２２４に写る人物の状態に応じて決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像に写る人物の状態に応じて運転動作の補正内容を決定する学習済みのニューラルネットワーク６を構築することができる。
【００８１】
人物の状態に対応付ける補正の内容（補正値）は、実施の形態に応じて適宜決定されてよい。例えば、学習処理部２１２は、画像に写る人物の表情に応じて運転動作を補正するように学習済みのニューラルネットワーク６を構築してもよい。この場合、撮影画像２２４に写る人物の表情に応じて決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像に写る人物の表情に応じて運転動作の補正内容を決定する学習済みのニューラルネットワーク６を構築することができる。
【００８２】
なお、人物の表情に対応付ける補正の内容（補正値）は、実施の形態に応じて適宜決定されてよい。具体例として、学習処理部２１２は、画像に写る人物の表情が怖がっていることに応じて運転の支援を軽減する又は打ち消す補正を行うように学習済みのニューラルネットワーク６を構築してもよい。この場合、運転の支援を軽減する又は打ち消すように決定された、換言すると、対応する支援コマンド５０の指令値を小さくする又は打ち消すように決定された補正値２２５が、怖がった表情を浮かべている人物の写る撮影画像２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像に写る人物の表情が怖がっていることに応じて運転の支援を軽減する又は打ち消す補正を行うことを決定する学習済みのニューラルネットワーク６を構築することができる。
【００８３】
ここで、支援を軽減する補正は、支援コマンドによる運転の支援の動作を弱めることであり、例えば、支援コマンドの指令値により車両のアクセル量が規定されている場合に、運転の支援を軽減する補正を行うことで、このアクセル量を小さくすることができる。また、支援の打ち消す補正は、支援コマンドによる運転の支援の動作を停止することであり、例えば、支援コマンドにより自動運転モードが実施されている場合に、運転の支援を打ち消す補正を行うことで、自動運転モードで走行している車両を停車させることができる。
【００８４】
また、例えば、学習処理部２１２は、画像に写る人物のジェスチャに応じて運転動作を補正するように学習済みのニューラルネットワーク６を構築してもよい。この場合、撮影画像２２４に写る人物のジェスチャに応じて決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像に写る人物のジェスチャに応じて運転動作の補正内容を決定する学習済みのニューラルネットワーク６を構築することができる。
【００８５】
なお、人物のジェスチャと補正の内容（補正値）との対応関係は、実施の形態に応じて適宜決定されてよい。例えば、停止のサインを行っている人物の写る撮影画像２２４と、運転の支援を軽減する又は打ち消すように決定された補正値２２５とが組み合わせられてもよい。この場合、学習処理部２１２は、画像に写る人物が停止のサインを行っていることに応じて運転の支援を軽減する又は打ち消す補正を行うことを決定する学習済みのニューラルネットワーク６を構築することができる。
【００８６】
以上のとおり、操作情報２２３及び撮影画像２２４と所望の補正値２２５との組み合わせは、実施の形態に応じて適宜決定されてよい。なお、制御に利用する操作情報５１及び撮影画像５２と学習に利用する操作情報２２３及び撮影画像２２４とを呼び分ける場合、操作情報５１及び撮影画像５２はそれぞれ「第１操作情報」及び「第１撮影画像」と称し、操作情報２２３及び撮影画像２２４をそれぞれ「第２操作情報」及び「第２撮影画像」と称してもよい。
【００８７】
＜その他＞
運転支援装置１及び学習装置２の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、運転支援装置１及び学習装置２の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、運転支援装置１及び学習装置２それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００８８】
§３  動作例
［運転支援装置］
次に、図６を用いて、運転支援装置１の動作例について説明する。図６は、運転支援装置１の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の「運転支援方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００８９】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、運転制御部１１１として動作し、外部インタフェース１３を介して接続された操作部３１に対する運転者Ｄの運転操作を監視して、当該運転操作に応じた操作指令の内容を示す操作情報５１を取得する。
【００９０】
操作情報５１の内容は、実施の形態に応じて適宜決定されてよい。例えば、制御部１１は、ハンドル、ブレーキペダル、及びアクセルペダルそれぞれの操作に応じて、ハンドル操舵角、ブレーキ量、及びアクセル量それぞれを示す操作情報５１を取得する。また、例えば、制御部１１は、手動運転モードから自動運転モードに動作モードを切り替える操作を操作パネルに対して行われたことに応じて、自動運転モードの実施を示す操作情報５１を取得する。操作情報５１を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００９１】
（ステップＳ１０２）
ステップＳ１０２では、制御部１１は、運転制御部１１１として動作し、車両１００の運転の支援を指示する支援コマンド５０であって、運転動作の所定の属性に関する指令値を含む支援コマンド５０に基づいて、車両１００の運転の支援を制御する。運転の支援の制御を開始すると、制御部１１は、次のステップＳ１０３に処理を進める。
【００９２】
なお、実行する支援コマンド５０の種類、すなわち、実施する運転の支援の内容は、実施の形態に応じて適宜決定されてよい。例えば、運転支援装置１は、操作部３１による操作指令と支援コマンド５０とを対応付けたテーブル形式等の支援参照情報（不図示）を記憶部１２に保持していてもよい。この場合、制御部１１は、この支援参照情報を参照することで、ステップＳ１０１で取得した操作情報５１により示される操作指令に応じて、実行する支援コマンド５０を決定することができる。
【００９３】
具体例として、ハンドル、ブレーキペダル、又はアクセルペダルが操作されたことに応じて、支援コマンド５０は、ハンドル、ブレーキペダル、又はアクセルペダルの操作の補助を行うことを指示してもよい。この場合、支援コマンド５０に含まれる指令値により規定される運転動作の属性は、例えば、ハンドル操舵角、ブレーキ量、又はアクセル量であってよい。このとき、支援コマンド５０に含まれる指令値、換言すると、ハンドル操舵角、ブレーキ量、又はアクセル量の補助量は、テンプレートにより与えられてよい。
【００９４】
また、手動運転モードから自動運転モードに動作モードを切り替える操作を操作パネルに対して行われたことに応じて、支援コマンド５０は、自動運転モードを実施することを指示してもよい。この場合、支援コマンド５０に含まれる指令値により規定される運転動作の属性は、例えば、自動運転中における、車両１００のハンドルの操舵角、ブレーキ量、アクセル量等であってよい。このとき、支援コマンド５０に含まれる指令値、換言すると、自動運転中における、車両１００のハンドルの操舵角、ブレーキ量、アクセル量等の値は、テンプレートにより与えられてよい。また、ハンドルの操舵角、ブレーキ量、及びアクセル量は、これらの組み合わせの結果として得られる、車両１００の走行速度、他の車両と車両１００との車間距離、走行車線等の２次的な指標に基づいて決定されていてもよい。この場合、指令値は、走行速度、車間距離、走行車線等の２次的な指標に対して与えられてもよい。
【００９５】
（ステップＳ１０３）
ステップＳ１０３では、制御部１１は、画像取得部１１２として動作し、車両１００に乗車した乗員を撮影するように配置されたカメラ３２から撮影画像５２を取得する。撮影画像５２は、動画像であってもよいし、静止画像であってもよい。
【００９６】
本実施形態では、運転支援装置１は、外部インタフェース１３を介してカメラ３２に接続されている。そのため、制御部１１は、外部インタフェース１３を介してカメラ３２から撮影画像５２を取得する。撮影画像５２を取得すると、制御部１１は、次のステップＳ１０４に処理を進める。
【００９７】
ただし、撮影画像５２を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、運転支援装置１とは異なる他の情報処理装置が、カメラ３２に接続されていてもよい。この場合、運転支援装置１は、他の情報処理装置からの撮影画像５２の送信を受け付けることにより、当該撮影画像５２を取得してもよい。
【００９８】
（ステップＳ１０４及びＳ１０５）
ステップＳ１０４では、制御部１１は、動作補正部１１３として動作し、学習済みのニューラルネットワーク６に撮影画像５２を入力し、学習済みのニューラルネットワーク６の演算処理を実行する。これにより、ステップＳ１０５では、制御部１１は、支援コマンド５０の指令値に対する補正値５３を学習済みのニューラルネットワーク６から取得する。
【００９９】
具体的には、制御部１１は、ステップＳ１０３で取得した撮影画像５２を学習済みのニューラルネットワーク６の入力層６１に入力する。そして、制御部１１は、入力側から順に、各層６１〜６３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、補正値５３に対応する出力値を出力層６３から取得する。
【０１００】
なお、出力層６３から得られる出力値の形式は、実施の形態に応じて適宜選択されてよい。例えば、出力層６３から得られる出力値は、そのまま補正値５３として利用されてもよい。この場合、制御部１１は、学習済みのニューラルネットワーク６の出力層６３から補正値５３を直接取得することができる。また、例えば、出力層６３から得られる出力値は、補正値５３を決定するためのインデックスを示してもよい。この場合、運転支援装置１は、出力層６３から得られる出力値と補正値５３との対応付けたテーブル形式等の補正参照情報（不図示）を記憶部１２に保持していてもよい。制御部１１は、ステップＳ１０５において、この補正参照情報を参照することにより、出力層６３から得られた出力値に対応する補正値５３を決定することができる。このインデックスは、例えば、運転者の眠気の程度等のような個々の状況に対応していてもよい。補正値５３を取得すると、制御部１１は、次のステップＳ１０６に処理を進める。
【０１０１】
（ステップＳ１０６及びＳ１０７）
ステップＳ１０６では、制御部１１は、運転制御部１１１として動作し、ステップＳ１０５で取得した補正値５３により、実行中の支援コマンド５０に含まれる指令値を補正する。そして、ステップＳ１０７では、制御部１１は、指令値を補正した後の支援コマンド５０に基づいて、車両１００の運転の支援を制御する。
【０１０２】
つまり、制御部１１は、ステップＳ１０５で取得した補正値５３を利用して、支援コマンド５０の指令値により規定された、ハンドルの操舵角、ブレーキ量、アクセル量等の値を変更する。これにより、制御部１１は、撮影画像５２に写る状況に応じて、支援コマンド５０による運転動作の支援の内容を修正する。
【０１０３】
例えば、上記のとおり、学習済みのニューラルネットワーク６は、画像に写る人物の状態に応じて運転動作を補正するように構築されていてもよい。この場合、制御部１１は、ステップＳ１０５において、ステップＳ１０３で取得した撮影画像５２に写る人物の状態に応じて決定された補正値５３を学習済みのニューラルネットワーク６から取得することができる。これにより、ステップＳ１０６及びＳ１０７では、撮影画像５２に写る人物の状態に応じて、支援コマンド５０による運転動作の支援の内容を修正することができる。
【０１０４】
また、例えば、学習済みのニューラルネットワーク６は、画像に写る人物の表情に応じて運転動作を補正するように構築されていてもよい。この場合、制御部１１は、ステップＳ１０５において、ステップＳ１０３で取得した撮影画像５２に写る人物の表情に応じて決定された補正値５３を学習済みのニューラルネットワーク６から取得することができる。これにより、ステップＳ１０６及びＳ１０７では、撮影画像５２に写る人物の表情に応じて、支援コマンド５０による運転動作の支援の内容を修正することができる。
【０１０５】
具体例として、学習済みのニューラルネットワーク６は、画像に写る人物の表情が怖がっていることに応じて運転の支援を軽減する又は打ち消す補正を行うように構築されていてもよい。この場合、制御部１１は、ステップＳ１０５において、ステップＳ１０３で取得した撮影画像５２に写る人物が怖がった表情を浮かべていることに応じて、運転の支援を軽減する又は打ち消す、換言すると、支援コマンド５０の指令値を小さくする又は打ち消す補正値５３を取得することができる。これにより、ステップＳ１０６及びＳ１０７では、撮影画像５２に写る人物の表情が怖がっていることに応じて、支援コマンド５０による運転動作の支援を軽減する又は打ち消すことができる。例えば、支援コマンド５０の指令値により車両１００のアクセル量が規定されている場合には、制御部１１は、ステップＳ１０６及びＳ１０７により、車両１００のアクセル量を小さくしたり、車両１００を停車させたりすることができる。
【０１０６】
また、例えば、学習済みのニューラルネットワーク６は、画像に写る人物のジェスチャに応じて運転動作を補正するように構築されていてもよい。この場合、制御部１１は、ステップＳ１０５において、ステップＳ１０３で取得した撮影画像５２に写る人物のジェスチャに応じて決定された補正値５３を学習済みのニューラルネットワーク６から取得することができる。これにより、ステップＳ１０６及びＳ１０７では、撮影画像５２に写る人物のジェスチャに応じて、支援コマンド５０による運転動作の支援の内容を修正することができる。
【０１０７】
これにより、運転動作の支援の内容を修正すると、制御部１１は、本動作例に係る処理を終了する。この後、制御部１１は、ステップＳ１０１から一連の処理を繰り返すことで、車両１００の運転の支援を継続的に制御してもよい。また、制御部１１は、ステップＳ１０３から一連の処理を繰り返すことで、支援コマンド５０の指令値を繰り返し補正してもよい。
【０１０８】
［学習装置］
次に、図７を用いて、学習装置２の動作例について説明する。図７は、学習装置２の処理手順の一例を例示するフローチャートである。なお、以下で説明する学習器の機械学習に関する処理手順は、コンピュータによる学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【０１０９】
（ステップＳ２０１）
ステップＳ２０１では、制御部２１は、学習データ取得部２１１として動作し、操作情報２２３及び撮影画像２２４と補正値２２５との組み合わせを学習用データセット２２２として取得する。
【０１１０】
学習用データセット２２２は、画像に写る状況に応じて運転動作の補正の内容を決定する能力をニューラルネットワーク７に習得させるための機械学習に利用される。このような学習用データセット２２２は、実施の形態に応じて適宜生成されてよい。例えば、カメラを備える車両を用意し、運転者に運転の操作をさせ、支援コマンドにより運転の支援を実施しながら、車両に乗車した乗員を様々な条件で撮影する。そして、得られた操作情報２２３及び撮影画像２２４に対して、撮影画像２２４に写る状況に応じた所望の補正値２２５を組み合わせる。これにより、学習用データセット２２２を生成することができる。
【０１１１】
この学習用データセット２２２の生成は、学習装置２により行われてもよい。この場合、制御部２１は、オペレータによる入力装置２４の操作に応じて、学習用データセット２２２を生成してもよい。また、制御部２１は、学習プログラム２２１の処理により、得られる操作情報２２３及び撮影画像２２４に対して補正値２２５を適宜決定して、学習用データセット２２２を自動的に生成してもよい。この生成処理を実行することで、本ステップＳ２０１では、制御部２１は、学習用データセット２２２を取得することができる。
【０１１２】
また、学習用データセット２２２の生成は、学習装置２以外の他の情報処理装置により行われてもよい。他の情報処理装置では、学習用データセット２２２は、オペレータにより手動で生成されてもよいし、プログラムの処理により自動的に生成されてもよい。この場合、本ステップＳ２０１では、制御部２１は、ネットワーク、記憶媒体９２等を介して、他の情報処理装置により生成された学習用データセット２２２を取得してもよい。
【０１１３】
本ステップＳ２０１で取得する学習用データセット２２２の件数は、実施の形態に応じて適宜決定されてよく、例えば、ニューラルネットワーク７の機械学習を実施可能な程度に適宜決定されてよい。これにより、学習用データセット２２２を取得すると、制御部２１は、次のステップＳ２０２に処理を進める。
【０１１４】
なお、上記のとおり、学習用データセット２２２における操作情報２２３及び撮影画像２２４と所望の補正値２２５との組み合わせは、実施の形態に応じて適宜決定されてよい。
【０１１５】
例えば、撮影画像２２４に写る人物の状態に応じて決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられてもよい。また、例えば、撮影画像２２４に写る人物の表情に応じて決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられてもよい。具体例として、撮影画像２２４に写る人物の表情が怖がっていることに応じて、運転の支援を軽減する又は打ち消すように決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられてもよい。また、例えば、撮影画像２２４に写る人物のジェスチャに応じて決定された補正値２２５が、操作情報２２３及び当該撮影画像２２４に組み合わせられてもよい。
【０１１６】
（ステップＳ２０２）
ステップＳ２０２では、制御部２１は、学習処理部２１２として動作し、ステップＳ２０１で取得した学習用データセット２２２を用いて、操作情報２２３及び撮影画像２２４を入力層７１に入力すると、出力値として補正値２２５を出力層７３から出力するようにニューラルネットワーク７の機械学習を実施する。
【０１１７】
具体的には、まず、制御部２１は、学習処理を行う対象となるニューラルネットワーク７を用意する。用意するニューラルネットワーク７の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部２１は、再学習を行う対象となる学習結果データ１２２に基づいて、ニューラルネットワーク７を用意してもよい。
【０１１８】
次に、制御部２１は、ステップＳ２０１で取得した学習用データセット２２２に含まれる操作情報２２３及び撮影画像２２４を入力データとして用い、補正値２２５を教師データとして用いて、ニューラルネットワーク７の学習処理を実行する。このニューラルネットワーク７の学習処理には、確率的勾配降下法等が用いられてよい。
【０１１９】
例えば、制御部２１は、操作情報２２３及び撮影画像２２４を入力層７１に入力し、入力側から順に各層７１〜７３に含まれる各ニューロンの発火判定を行う。これにより、制御部２１は、出力層７３から出力値を得る。次に、制御部２１は、出力層７３から得た出力値と補正値２２５との誤差を算出する。続いて、制御部２１は、誤差逆伝搬（Back propagation）法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。そして、制御部２１は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
【０１２０】
制御部２１は、各件の学習用データセット２２２について、ニューラルネットワーク７から出力される出力値が補正値２２５と一致するまでこの一連の処理を繰り返す。これにより、制御部２１は、操作情報２２３及び撮影画像２２４を入力すると対応する補正値２２５を出力するニューラルネットワーク７（すなわち、学習済みのニューラルネットワーク６）を構築することができる。
【０１２１】
例えば、撮影画像２２４に写る人物の状態に応じて決定された補正値２２５と操作情報２２３及び当該撮影画像２２４とが組み合わせられた学習用データセット２２２を利用したケースを想定する。この場合には、本ステップＳ２０２により、制御部２１は、画像に写る人物の状態に応じて運転動作の補正内容を決定するニューラルネットワーク７を構築することができる。
【０１２２】
また、例えば、撮影画像２２４に写る人物の表情に応じて決定された補正値２２５と操作情報２２３及び当該撮影画像２２４とが組み合わせられた学習用データセット２２２を利用したケースを想定する。この場合には、本ステップＳ２０２により、制御部２１は、画像に写る人物の表情に応じて運転動作の補正内容を決定するニューラルネットワーク７を構築することができる。
【０１２３】
具体例として、怖がった表情を浮かべている人物の写る撮影画像２２４と運転の支援を軽減する又は打ち消すように決定された補正値２２５とが組み合わせられた学習用データセット２２２を利用したケースを想定する。この場合には、本ステップＳ２０２により、制御部２１は、画像に写る人物の表情が怖がっていることに応じて運転の支援を軽減する又は打ち消す補正を行うことを決定するニューラルネットワーク７を構築することができる。
【０１２４】
また、例えば、撮影画像２２４に写る人物のジェスチャに応じて決定された補正値２２５と操作情報２２３及び当該撮影画像２２４とが組み合わせられた学習用データセット２２２を利用したケースを想定する。この場合には、本ステップＳ２０２により、制御部２１は、画像に写る人物のジェスチャに応じて運転動作の補正内容を決定するニューラルネットワーク７を構築することができる。ニューラルネットワーク７の学習処理が完了すると、制御部２１は、次のステップＳ２０３に処理を進める。
【０１２５】
（ステップＳ２０３）
ステップＳ２０３では、制御部２１は、学習処理部２１２として動作して、機械学習後のニューラルネットワーク７の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を学習結果データ１２２として記憶部２２に格納する。これにより、制御部２１は、本動作例に係るニューラルネットワーク７の学習処理を終了する。
【０１２６】
なお、制御部２１は、上記ステップＳ２０３の処理が完了した後に、作成した学習結果データ１２２を運転支援装置１に転送してもよい。また、制御部２１は、上記ステップＳ２０１〜Ｓ２０３の学習処理を定期的に実行することで、学習結果データ１２２を定期的に更新してもよい。そして、制御部２１は、作成した学習結果データ１２２を学習処理の実行毎に運転支援装置１に転送することで、運転支援装置１の保持する学習結果データ１２２を定期的に更新してもよい。また、例えば、制御部２１は、作成した学習結果データ１２２をＮＡＳ（Network Attached Storage）等のデータサーバに保管してもよい。この場合、運転支援装置１は、このデータサーバから学習結果データ１２２を取得してもよい。また、学習装置２により作成された学習結果データ１２２は、運転支援装置１に予め組み込まれてもよい。
【０１２７】
［特徴］
以上のように、本実施形態に係る運転支援装置１は、上記ステップＳ１０１及びＳ１０３の処理により、操作情報５１及び撮影画像５２を取得する。次に、運転支援装置１は、上記ステップＳ１０４及びＳ１０５において、操作情報５１及び撮影画像５２を学習済みのニューラルネットワーク６に入力することで、撮影画像５２に写る状況に応じて決定された補正値５３を取得する。この学習済みのニューラルネットワーク６は、上記学習装置２により、操作情報２２３及び撮影画像２２４と補正値２２５との組み合わせで構成された学習用データセット２２２を利用した機械学習（教師あり学習）によって生成される。そして、運転支援装置１は、上記ステップＳ１０６及びＳ１０７において、取得した補正値５３を利用して、運転動作の内容を修正する。
【０１２８】
したがって、本実施形態によれば、学習済みのニューラルネットワークを利用することで、車両１００の運転の支援を指示する支援コマンドの指令値に対して、乗員を撮影するように配置されたカメラ３２から得られた撮影画像５２に写る個々の状況に応じた異なる補正値５３を得ることができる。これにより、上記ステップＳ１０６及びＳ１０７では、支援コマンド５０の指令値に補正値５３を適用することで、運転を支援する動作のバリエーションを実現することができるため、個々の状況に適した動作の入力を行う手間を省略することができる。加えて、本実施形態では、支援コマンド５０の指令値をテンプレートにより与えておけば、この支援コマンド５０に補正値５３を適用することで、運転を支援する動作のバリエーションを実現することができる。そのため、個々の状況に適した運転を支援する支援コマンド５０を個別に用意しなくてもよく、当該運転を支援する動作に効率的にバリエーションを持たせることができる。したがって、本実施形態によれば、簡便かつ効率的な方法で運転を支援する方法にバリエーションを持たせることができ、これにより、個々のユーザ、車両の特性等に起因する個別の状況に適した運転の支援を実現することができる。
【０１２９】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１３０】
＜４．１＞
上記実施形態では、各ニューラルネットワーク（６、７）は、全結合ニューラルネットワークである。しかしながら、各ニューラルネットワーク（６、７）の構成及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各ニューラルネットワーク（６、７）は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてよい。
【０１３１】
＜４．２＞
上記実施形態では、学習器の一例として、ニューラルネットワークを利用している。しかしながら、学習器の種類は、撮影画像を入力として利用可能であれば、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。利用可能な学習器として、例えば、サポートベクターマシン、自己組織化マップ、強化学習により機械学習を行う学習器等を挙げることができる。
【０１３２】
＜４．３＞
上記実施形態では、学習結果データ１２２は、学習済みのニューラルネットワーク６の構成を示す情報を含んでいる。しかしながら、学習結果データ１２２の構成は、このような例に限定されなくてもよく、学習済みの学習器の設定に利用可能であれば、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合には、学習結果データ１２２は、学習済みのニューラルネットワーク６の構成を示す情報を含んでいなくてもよい。
【０１３３】
＜４．４＞
上記実施形態では、学習用データセット２２２は、操作情報２２３及び撮影画像２２４と補正値２２５との組み合わせにより構成されており、学習済みのニューラルネットワーク６には撮影画像５２と共に操作情報５１が入力されている。しかしながら、ニューラルネットワークの入力は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。
【０１３４】
例えば、操作情報５１は省略されてもよい。この場合、上記学習用データセット２２２は、撮影画像２２４と補正値２２５との組み合わせにより構成されてよく、学習済みのニューラルネットワーク６には撮影画像５２のみが入力されてよい。また、例えば、操作情報５１に代えて支援コマンド５０が入力されてもよい。この場合、学習用データセット２２２は、支援コマンド及び撮影画像２２４と補正値２２５との組み合わせにより構成されてよく、学習済みのニューラルネットワーク６には撮影画像５２と共に支援コマンド５０が入力されてよい。
【０１３５】
＜４．５＞
上記実施形態では、車両１００の運転の支援を行う場面に本発明を適用した例を示している。しかしながら、本発明の適用範囲は、このような車両１００の運転の支援を行う場面に限られなくてもよい。本発明は、対象装置の動作を制御するあらゆる場面に広く適用可能である。
【０１３６】
図８は、本発明が適用される他の場面の一例を模式的に例示する。本変形例に係る動作制御装置１Ａは、利用者ＵＡにより利用される対象装置ＲＡの動作を制御するように構成される。図８の例では、利用者ＵＡは製造ラインにおける作業者であり、対象装置ＲＡは、製造ラインで利用者ＵＡと協働する産業用ロボットである。ただし、対象装置ＲＡは、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。利用者ＵＡが製造ラインにおける作業者である場合、対象装置ＲＡは、例えば、ベルトコンベア等の製造ラインに設けられる装置であってよい。
【０１３７】
図９及び図１０は、本変形例に係る動作制御装置１Ａのハードウェア構成及びソフトウェア構成の一例を模式的に例示する。処理対象が車両１００から対象装置ＲＡに置き換わる点を除き、動作制御装置１Ａは、上記運転支援装置１と同様に構成されてよい。すなわち、図９に示されるとおり、動作制御装置１Ａのハードウェア構成は、上記運転支援装置１のハードウェア構成と同じであってよい。また、図１０に示されるとおり、運転制御部１１１が動作制御部１１１Ａに置き換わる点を除き、動作制御装置１Ａのソフトウェア構成は、上記運転支援装置１のソフトウェア構成と同じであってよい。
【０１３８】
具体的に、図９に示されるとおり、動作制御装置１Ａの記憶部１２は、動作制御プログラム１２１Ａ、学習結果データ１２２Ａ等の各種情報を記憶する。動作制御プログラム１２１Ａは、上記運転支援装置１と同様の処理手順により、対象装置ＲＡの動作を制御する情報処理を動作制御装置１Ａに実行させるためのプログラムであり、当該情報処理の一連の命令を含む。学習結果データ１２２Ａは、画像に写る状況に応じて対象装置ＲＡの動作を補正するための機械学習を行った学習済みの学習器（学習済みのニューラルネットワーク６Ａ）の設定を行うためのデータである。また、動作制御装置１Ａは、外部インタフェース１３を介して、制御する対象となる対象装置ＲＡ及びカメラ３２と接続している。カメラ３２は、対象装置ＲＡの利用者ＵＡを撮影可能な場所に適宜配置される。
【０１３９】
また、図１０に示されるとおり、動作制御装置１Ａは、制御部１１により動作制御プログラム１２１Ａを実行することで、動作制御部１１１Ａ、画像取得部１１２、及び動作補正部１１３をソフトウェアモジュールとして備えるコンピュータとして動作する。動作制御部１１３Ａは、対象装置ＲＡに所定の動作を指示する指示コマンド５０Ａであって、当該動作の所定の属性に関する指令値を含む指示コマンド５０Ａに基づいて、対象装置ＲＡの動作を制御する。
【０１４０】
また、本変形例に係る動作補正部１１３は、学習済みのニューラルネットワーク６Ａを含んでいる。動作補正部１１３は、画像に写る状況に応じて対象装置ＲＡの動作を補正するための機械学習を行った学習済みのニューラルネットワーク６Ａに撮影画像５２を入力し、学習済みのニューラルネットワーク６Ａの演算処理を実行することで、指示コマンド５０Ａの指令値に対する補正値を学習済みのニューラルネットワーク６Ａから取得する。動作制御部１１１Ａは、取得した補正値により指令値を補正し、指令値を補正した後の指示コマンド５０Ａに基づいて、対象装置ＲＡの動作を制御する。
【０１４１】
なお、学習済みのニューラルネットワーク６Ａは、撮影画像を入力すると、入力した撮影画像に写る状況に応じた補正値（又は、その補正値を取得するためのインデックス）を出力するように適宜構築される。学習装置２は、この学習済みのニューラルネットワーク６Ａを上記実施形態と同様の処理手順（上記ステップＳ２０１〜Ｓ２０３の処理）に構築可能である。また、学習装置２は、構築された学習済みのニューラルネットワーク６Ａの構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を学習結果データ１２２Ａとして保存する。動作補正部１１３は、この学習結果データ１２２Ａを参照して、学習済みのニューラルネットワーク６Ａの設定を行う。
【０１４２】
本変形例に係る動作制御装置１Ａは、上記運転支援装置１とほぼ同様の処理手順により、対象装置ＲＡの動作を制御する。具体的には、ステップＳ１０２では、制御部１１は、動作制御部１１１Ａとして動作し、対象装置ＲＡに所定の動作を指示する指示コマンド５０Ａであって、当該動作の所定の属性に関する指令値を含む指示コマンド５０Ａに基づいて、対象装置ＲＡの動作を制御する。指令値により規定される動作の属性は、対象装置ＲＡの動作のあらゆる属性を含んでもよい。図８に例示されるとおり、対象装置ＲＡが産業用ロボットである場合、指令値により規定される動作の属性は、産業用ロボットのモータの駆動量等であってよい。
【０１４３】
ステップＳ１０３では、制御部１１は、画像取得部１１２として動作し、対象装置ＲＡを利用する利用者ＵＡを撮影するように配置されたカメラ３２から撮影画像５２を取得する。ステップＳ１０４では、制御部１１は、動作補正部１１３として動作し、画像に写る状況に応じて動作を補正するための機械学習を行った学習済みのニューラルネットワーク６Ａに撮影画像５２を入力し、学習済みのニューラルネットワーク６Ａの演算処理を実行する。これにより、ステップＳ１０５では、制御部１１は、指示コマンド５０Ａの指令値に対する補正値を学習済みのニューラルネットワーク６Ａから取得する。
【０１４４】
上記実施形態と同様に、学習済みのニューラルネットワーク６Ａは、画像に写る人物の状態に応じて対象装置ＲＡの動作を補正するように構築されていてもよい。学習済みのニューラルネットワーク６Ａは、画像に写る人物の表情に応じて対象装置ＲＡの動作を補正するように構築されていてもよい。学習済みのニューラルネットワーク６Ａは、画像に写る人物の表情が怖がっていることに応じて対象装置ＲＡの動作を軽減する又は打ち消す補正を行うように構築されていてもよい。学習済みのニューラルネットワーク６Ａは、画像に写る人物のジェスチャに応じて対象装置ＲＡの動作を補正するように構築されていてもよい。学習装置２は、上記実施形態と同様に機械学習により、各形態の学習済みのニューラルネットワーク６Ａを構築可能である。
【０１４５】
ステップＳ１０６では、制御部１１は、動作制御部１１１Ａとして動作し、ステップＳ１０５で取得した補正値により指示コマンド５０Ａの指令値を補正する。そして、ステップＳ１０７では、制御部１１は、動作制御部１１１Ａとして動作し、指令値を補正した後の指示コマンド５０Ａに基づいて、対象装置ＲＡの動作を制御する。これにより、撮影画像５２に写る状況に応じて、対象装置ＲＡの動作のバリエーションを実現することができる。例えば、利用者ＵＡ（作業者）が怖がった表情をした場合に、動作制御装置１Ａは、対象装置ＲＡ（産業用ロボット）の動作を軽減する又は打ち消す補正を行うことができる。
【符号の説明】
【０１４６】
１…運転支援装置、
１１…制御部、１２…記憶部、１３…外部インタフェース、
１１１…運転制御部、１１２…画像取得部、
１１３…動作補正部、
１２１…運転支援プログラム、１２２…学習結果データ、
２…学習装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…入力装置、２５…出力装置、２６…ドライブ、
２１１…学習データ取得部、２１２…学習処理部、
２２１…学習プログラム、２２２…学習データ、
９２…記憶媒体、
３０…ナビゲーション装置、
３１…操作部、３２…カメラ、
５０…支援コマンド、
５１…操作情報、５２…撮影画像、
５３…補正値、
６…ニューラルネットワーク（学習済みの学習器）、
６１…入力層、６２…中間層（隠れ層）、６３…出力層、
７…ニューラルネットワーク、
７１…入力層、７２…中間層（隠れ層）、７３…出力層
【図１】
2019159930.tif 000003
【図２】
2019159930.tif 000004
【図３】
2019159930.tif 000005
【図４】
2019159930.tif 000006
【図５】
2019159930.tif 000007
【図６】
2019159930.tif 000008
【図７】
2019159930.tif 000009
【図８】
2019159930.tif 000010
【図９】
2019159930.tif 000011
【図１０】
2019159930.tif 000012