JP2020035289A - 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム - Google Patents

検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム Download PDF

Info

Publication number
JP2020035289A
JP2020035289A JP2018162682A JP2018162682A JP2020035289A JP 2020035289 A JP2020035289 A JP 2020035289A JP 2018162682 A JP2018162682 A JP 2018162682A JP 2018162682 A JP2018162682 A JP 2018162682A JP 2020035289 A JP2020035289 A JP 2020035289A
Authority
JP
Japan
Prior art keywords
detector
face image
learning data
data sets
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018162682A
Other languages
English (en)
Other versions
JP2020035289A5 (ja
JP7035912B2 (ja
Inventor
成典 長江
Shigenori Nagae
成典 長江
倭 竹内
Yamato Takeuchi
倭 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018162682A priority Critical patent/JP7035912B2/ja
Priority to PCT/JP2019/010186 priority patent/WO2020044629A1/ja
Publication of JP2020035289A publication Critical patent/JP2020035289A/ja
Publication of JP2020035289A5 publication Critical patent/JP2020035289A5/ja
Application granted granted Critical
Publication of JP7035912B2 publication Critical patent/JP7035912B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

【課題】ノイズの影響にロバストで、対象物をより高精度に検出可能な検出器を生成するための技術を提供する。【解決手段】検出器生成装置は、第1顔画像及び顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得し、取得した複数の学習データセットを利用して、検出器の機械学習を実施する。機械学習を実施することは、検出器を利用して各第1顔画像において特定される第1検出位置と位置情報により示される位置との第1誤差の合計値を算出すること、各第1顔画像に幾何変換を適用することで各第2顔画像を生成すること、検出器を利用して各第2顔画像において特定される第2検出位置と各第1検出位置との第2誤差の合計値を算出すること、及び各誤差の合計値が小さくなるように検出器を訓練することを含む。【選択図】図8A

Description

本発明は、検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラムに関する。
近年、脇見等に起因する自動車の交通事故を防止するために、運転者の状態を監視する技術の開発が進んでいる。また、自動車の自動運転の実現に向けた動きが加速している。自動運転は、システムにより自動車の操舵を制御するものであるが、システムに代わって運転者が運転しなければならない場面もあり得ることから、自動運転中であっても、運転者が運転操作を行える状態にあるか否かを監視する必要性があるとされている。この自動運転中に運転者の状態を監視する必要性があることは、国連欧州経済委員会(UN−ECE)の政府間会合(WP29)においても確認されている。この点からも、運転者の状態を監視する技術の開発が進められている。
運転者の状態を監視する技術の一つとして、視線方向等の運転者の顔の状態を推定するために、運転者を撮影することで得られた画像から運転者の顔の器官を検出する技術がある。顔の器官を検出することができれば、検出した器官の位置関係に基づいて、運転者の状態を推定することができる。例えば、顔画像から各目を検出し、各目の位置を特定することができれば、特定した各目の位置関係に基づいて、運転者の視線方向を推定することができる。
人物の器官を検出する技術として、例えば、特許文献1では、畳み込みニューラルネットワーク(Convolutional Neural Networks)を利用して、顔の器官を検出するための装置が提案されている。具体的には、この装置は、畳み込みニューラルネットワークを使用して、顔の器官に関連する特徴点の候補を顔画像データから抽出し、抽出した各候補に対して幾何学的な補正処理を実行することで、各特徴点の位置を決定する。これにより、当該装置は、決定した各特徴点の位置に基づいて、対象人物を認識することができる。
特開2012−243285号公報
従来、特許文献1で例示されるように、顔の器官の位置を検出するために、ニューラルネットワーク等の学習モデルにより構成された検出器を採用することがある。この検出器は、機械学習により、入力された顔画像から顔の器官の位置を検出することができるようになる。検出器の機械学習を実施するためには、顔の写る顔画像及び顔の器官の位置を示す位置情報が用意される。機械学習では、用意した顔画像が入力されると、位置情報に対応する出力値を出力するように検出器のパラメータが調整される。この機械学習により、顔画像から顔の器官の位置を検出する能力を獲得した学習済みの検出器が生成される。
本件発明者らは、このような学習済みの検出器を用いる従来の方法では、図1に示すような問題点が生じることを見出した。図1は、従来の方法により顔の器官の位置を検出する場面の一例を模式的に例示する。図1では、顔の器官の一例として目(具体的には、目尻)を検出する場面を例示する。機械学習により、検出器は、同一の顔画像に対して同一の出力値を出力するように、換言すると、同一の顔画像に対して同一の位置を対象の器官の検出位置として回答する能力を獲得する。したがって、運転者が顔の器官を動かさなければ、本来、検出器から回答される器官の検出位置は一定のはずである。
しかしながら、機械学習の正解データとして利用される位置情報にはノイズが含まれ得る。つまり、位置情報は、常に一定の基準に従って対象の器官の位置を正確に示すとは限らないという不安定性を有している。例えば、位置情報が人間により入力される場合に、位置情報を入力する人物が異なれば、器官の存在する位置として指定される位置は異なり得る。また、同一の人物が位置情報を入力したとしても、同一の顔画像に対して完全に一致する位置を複数回指定するのは困難である。
具体例として、図1に例示される目尻の位置を位置情報として入力する場面を想定する。この場面において、複数の異なる人物が顔画像に対して目尻の位置を指定する場合に、各人物の間には、目尻の位置の定義に対する解釈に微妙な差が存在し得る。そのため、同一の顔画像に対して各人物が目尻の位置を指定したとしても、各人物により指定される目尻の位置は微妙に相違し得る。また、同一の人物により目尻の位置を指定したとしても、完全に一致する位置を複数回指定するのは困難である。そのため、同一の顔画像に対して同一の人物が目尻の位置を指定したとしても、各回に指定される目尻の位置は微妙に相違し得る。
したがって、複数の異なる人物が位置情報を入力する場合は勿論のこと、同一の人物が位置情報を入力する場合であっても、入力された位置情報は、常に一定の基準に従って対象の器官の位置を正確に示すとは限らない。すなわち、位置情報により示される器官の存在する位置は変動し得る。このようなノイズを含む位置情報を機械学習の正解データとして利用した場合、検出器は、顔画像に対して与えられた器官の位置だけではなく、このノイズをも再現するように学習してしまう。これに起因して、運転者が顔の器官を動かしていないにも関わらず、学習済みの検出器から回答される器官の検出位置にぶれが生じてしまう。すなわち、図1の示すように、器官(目尻)を動かしていないにも関わらず、機械学習に利用した位置情報に含まれるノイズを学習した影響によって、各顔画像間で器官の検出位置が変動してしまうという問題点が生じ得ることを本件発明者らは見出した。
運転者が顔の器官を動かしていないにも関わらず、検出器による器官の検出位置にぶれが生じてしまうと、この検出結果の変動に起因して、運転者の状態を推定する精度が低くなってしまう。例えば、上記の視線方向を推定する例では、運転者が視線を変えていないにも関わらず、各目の検出位置がぶれてしまうことにより、運転者の視線方向の推定結果が変動してしまうことになる。これにより、例えば、運転者が前方を注視しているにも関わらず運転者が脇見をしていると認識してしまう等のように、システムが運転者の状態を誤認識してしまう可能性が生じる。
なお、この課題は、上記のような運転者の顔の器官を検出する場面ではなく、例えば、運転者以外の対象者の顔の器官を検出する場面、対象者の顔の器官以外の対象物を検出する場面等の、対象物を検出するあらゆる場面で生じ得る。例えば、生産ラインを流れる製品、製品に形成された傷等の対象物を検出する場合に、従来の検出器を用いた方法では、対象物が動いていないにも関わらず、複数の画像間で対象物の検出位置がぶれてしまうという問題点が生じ得る。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、正解データのノイズの影響にロバストで、対象物をより高精度に検出可能な検出器を生成するための技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係る検出器生成装置は、車両を運転する被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部と、前記複数の学習データセットを利用して、検出器の機械学習を実施する学習処理部と、を備える。そして、前記検出器の機械学習を実施することは、前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、を含む。
上記構成に係る検出器生成装置は、機械学習の過程において、第1顔画像を検出器に入力することで第1出力値を取得し、取得した第1出力値に基づいて特定される器官の第1検出位置と位置情報により示される位置との第1誤差の合計値を算出する。この第1誤差の合計値は、検出器により第1顔画像から器官を検出した結果と位置情報により指定される器官の位置の正解との間の損失に相当する。そこで、上記構成に係る検出器生成装置は、この第1誤差の合計値が小さくなるように検出器を訓練する。これにより、位置情報により示される正解と一致するように、第1顔画像から器官を検出する能力を習得した検出器が構築される。
加えて、上記構成に係る検出器生成装置は、第1顔画像に所定の幾何変換を適用することで第2顔画像を生成し、生成した第2顔画像を検出器に入力することで第2出力値を取得する。そして、上記構成に係る検出器生成装置は、取得した第2出力値に基づいて特定される器官の第2検出位置と上記第1検出位置との第2誤差の合計値を算出する。
各第1顔画像に付与される位置情報が、常に一定の基準に従って対象の器官(図1の例では、目尻)の位置を正確に示していた場合には、第1誤差に基づく機械学習により構築される検出器は、一定の基準に対応する対象の器官の何らかの特徴を捉えて、当該対象の器官の位置を正確に検出することができるようになる。そのため、この検出器は、第1顔画像を幾何変換することで生成された第2顔画像に対しても、その特徴に基づいて、対象の器官の位置を正確に検出することができる。
一方、各第1顔画像に付与される位置情報が一定の基準に従って対象の器官の位置を示すものではない場合、第1誤差に基づく機械学習により構築される検出器は、上記の特徴を正確には捉えることができず、対象の器官の検出する位置がぶれてしまう。そのため、この検出器は、第1顔画像を幾何変換することで生成された第2顔画像に対して、対象の器官の位置を正確に検出することができない可能性が高い。なお、各第1顔画像に付与される位置情報が一定の基準に従って対象の器官の位置を示すものではないケースとは、例えば、各第1顔画像において顔の位置がずれているにも関わらず、各顔画像に対して一定の位置を示す位置情報が各第1顔画像に付与されるケースである。
上記第2誤差の合計値は、検出器による器官の検出結果のブレであって、このような顔画像における幾何的なノイズの影響によって生じるブレの損失に相当する。そこで、当該構成に係る検出器生成装置は、上記第1誤差の合計値と共に、第2誤差の合計値が小さくなるように検出器を訓練する。これにより、位置情報に含まれる幾何的なノイズによる影響にロバストな検出器を構築することができる。
したがって、上記構成に係る検出器生成装置によれば、位置情報により示される正解と一致するように第1顔画像から器官を検出し、かつその検出結果が位置情報(正解データ)に含まれ得るノイズによる影響を受け難い、ように訓練された検出器を構築することができる。よって、正解データのノイズの影響にロバストで、対象物(上記一側面では、顔の器官)をより高精度に検出可能な検出器を生成することができる。
なお、所定の幾何変換(幾何学的な変換)は、例えば、平行移動、回転移動、反転、拡大、縮小又はこれらの組み合わせであってよい。具体例として、所定の幾何変換は、平行移動及び回転移動を伴う変換であってよい。これにより、平行移動及び回転移動による影響にロバストな検出器を構築することができる。
また、検出器は、機械学習を実施可能な学習モデルにより構成される。このような検出器は、例えば、ニューラルネットワークにより構成されてよい。顔画像から検出される器官の種類は、顔に含まれる何らかの部位であれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。検出の対象となる器官は、例えば、目、鼻、口、眉、顎及びこれらの組み合わせから選択されてよい。また、検出の対象となる器官には、顔の輪郭が含まれてもよい。
上記一側面に係る検出器生成装置において、前記検出器の機械学習を実施することは、前記各学習データセットの前記第1顔画像にノイズを付与することで、前記各学習データセットの前記第1顔画像に対して第3顔画像を生成するステップと、前記各第3顔画像を前記検出器に入力することで、前記各第3顔画像に対する第3出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第3顔画像に対して得られた前記第3出力値に基づいて特定される前記器官の第3検出位置との第3誤差の合計値を算出するステップと、を更に含んでもよく、前記訓練するステップでは、前記学習処理部は、前記第1誤差の合計値、前記第2誤差の合計値及び前記第3誤差の合計値が小さくなるように前記検出器を訓練してもよい。当該構成に係る検出器生成装置によれば、検出結果が、画像のノイズによる影響を受け難い、ように更に訓練された検出器を構築することができる。
上記一側面に係る検出器生成装置において、前記各学習データセットの前記位置情報は、当該位置情報に組み合わせられる前記第1顔画像を、機械学習を実施済みの他の検出器に入力することで、当該他の検出器から得られる出力値に基づいて与えられてよい。当該構成によれば、他の検出器による検出結果を位置情報として利用するため、上記人為的なノイズが位置情報に含まれるのを防止することができる。これにより、位置情報に含まれ得るノイズによる影響にロバストな検出器を構築することができる。
なお、他の検出器は、機械学習により最終的な検出器を得る過程で生成される暫定的な検出器であってよい。つまり、検出器生成装置は、学習データセットを利用した機械学習による検出器の構築する処理と、構築された検出器により位置情報を更新する処理とを交互に繰り返し実行してもよい。上記人為的なノイズによる影響にロバストな検出器を構築するために、この検出器を構築する処理と位置情報を更新する処理とを交互に実行する部分のみを抽出して、新たな形態に係る検出器生成装置が構成されてもよい。
例えば、本発明の一側面に係る検出器生成装置は、車両を運転する被験者の顔の写る顔画像、及び前記顔画像に写る前記顔の器官の位置を示す第1位置情報の組み合わせによりそれぞれ構成される複数の第1学習データセットを取得する学習データ取得部と、前記複数の第1学習データセットを利用して、第1検出器の機械学習を実施することで、前記各第1学習データセットの前記顔画像が入力されると、入力された前記顔画像に組み合わせられた前記第1位置情報に対応する出力値を出力する第1検出器を構築する学習処理部と、を備える。そして、前記学習データ取得部は、前記各第1学習データセットの前記顔画像、及び構築された前記第1検出器に当該顔画像を入力することで、当該第1検出器から得られる出力値に基づいて与えられる第2位置情報の組み合わせによりそれぞれ構成される複数の第2学習データセットを更に取得する。また、前記学習処理部は、前記複数の第2学習データセットを利用して、第2検出器の機械学習を実施することで、前記各第2学習データセットの前記顔画像が入力されると、入力された前記顔画像に組み合わせられた前記第2位置情報に対応する出力値を出力する第2検出器を更に構築する。なお、第1検出器は、上記「他の検出器」、すなわち、暫定的な検出器の一例である。また、第2学習データセットの取得及び第2検出器の構築を繰り返す場合、あるステップで構築される第2検出器が、次のステップの第1検出器と利用される。そして、最後に構築される第2検出器が、上記「検出器」、すなわち、最終的な検出器の一例である。
また、本発明の一側面に係るモニタリング装置は、車両を運転する運転者の顔の写る顔画像を取得するデータ取得部と、上記いずれかの形態に係る検出器生成装置による機械学習を実施済みの前記検出器に取得した前記顔画像を入力することで、前記運転者の前記顔の器官を検出した結果に対応する出力値を前記検出器から取得する検出部と、前記運転者の顔の器官を検出した結果に関する情報を出力する出力部と、を備える。当該構成に係るモニタリング装置によれば、正解データのノイズの影響にロバストな検出器により、運転者の顔の器官を高精度に検出することができる。したがって、例えば、運転操作中における運転者の状態等を精度よく認識することができる。
また、上記各形態に係る検出器生成装置及びモニタリング装置は、車両の運転者の顔の器官を検出する場面だけではなく、例えば、生産ラインの作業者の顔の器官を検出する場面等、運転者以外の対象者の顔の器官を検出するあらゆる場面に適用されてよい。更に、上記各形態に係る検出器生成装置及びモニタリング装置は、対象者の顔の器官を検出する場面だけではなく、例えば、生産ラインを流れる製品の何らかの特徴(例えば、傷)の位置を検出する場面等、人物以外の対象物の写る画像から当該対象物の位置を検出するあらゆる場面に適用されてよい。
例えば、本発明の一側面に係る検出器生成装置は、被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部と、前記複数の学習データセットを利用して、検出器の機械学習を実施する学習処理部と、を備える。そして、前記検出器の機械学習を実施することは、前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、を含む。
また、例えば、本発明の一側面に係る検出器生成装置は、対象物の写る第1画像、及び前記第1画像に写る前記対象物の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部と、前記複数の学習データセットを利用して、検出器の機械学習を実施する学習処理部と、を備える。そして、前記検出器の機械学習を実施することは、前記各学習データセットの前記第1画像を前記検出器に入力することで、前記各学習データセットの前記第1画像に対する第1出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1画像に対して得られた前記第1出力値に基づいて特定される前記対象物の第1検出位置と当該第1画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、前記各学習データセットの前記第1画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1画像に対して第2画像を生成するステップと、前記各第2画像を前記検出器に入力することで、前記各第2画像に対する第2出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1画像に対して生成された前記第2画像に対して得られた前記第2出力値に基づいて特定される前記対象物の第2検出位置との第2誤差の合計値を算出するステップと、前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、を含む。
例えば、本発明の一側面に係る検出器生成装置は、被験者の顔の写る顔画像、及び前記顔画像に写る前記顔の器官の位置を示す第1位置情報の組み合わせによりそれぞれ構成される複数の第1学習データセットを取得する学習データ取得部と、前記複数の第1学習データセットを利用して、第1検出器の機械学習を実施することで、前記各第1学習データセットの前記顔画像が入力されると、入力された前記顔画像に組み合わせられた前記第1位置情報に対応する出力値を出力する第1検出器を構築する学習処理部と、を備える。そして、前記学習データ取得部は、前記各第1学習データセットの前記顔画像、及び構築された前記第1検出器に当該顔画像を入力することで、当該第1検出器から得られる出力値に基づいて与えられる第2位置情報の組み合わせによりそれぞれ構成される複数の第2学習データセットを更に取得する。また、前記学習処理部は、前記複数の第2学習データセットを利用して、第2検出器の機械学習を実施することで、前記各第2学習データセットの前記顔画像が入力されると、入力された前記顔画像に組み合わせられた前記第2位置情報に対応する出力値を出力する第2検出器を更に構築する。
また、例えば、本発明の一側面に係る検出器生成装置は、対象物の写る画像、及び前記画像に写る前記対象物の位置を示す第1位置情報の組み合わせによりそれぞれ構成される複数の第1学習データセットを取得する学習データ取得部と、前記複数の第1学習データセットを利用して、第1検出器の機械学習を実施することで、前記各第1学習データセットの前記画像が入力されると、入力された前記画像に組み合わせられた前記第1位置情報に対応する出力値を出力する第1検出器を構築する学習処理部と、を備える。そして、前記学習データ取得部は、前記各第1学習データセットの前記画像、及び構築された前記第1検出器に当該画像を入力することで、当該第1検出器から得られる出力値に基づいて与えられる第2位置情報の組み合わせによりそれぞれ構成される複数の第2学習データセットを更に取得する。また、前記学習処理部は、前記複数の第2学習データセットを利用して、第2検出器の機械学習を実施することで、前記各第2学習データセットの前記画像が入力されると、入力された前記画像に組み合わせられた前記第2位置情報に対応する出力値を出力する第2検出器を更に構築する。
なお、検出器を訓練することは、検出器のパラメータを調節することである。検出器のパラメータは、何らかの対象物を画像から検出する(出力値を得る)ための演算処理に利用される。検出器がニューラルネットワークにより構成される場合、パラメータは、例えば、各ニューロン間の結合の重み、各ニューロンの閾値等である。
対象物の種類は、画像に写り得るものであれば特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。人間の写る画像が第1画像として取得される場合、対象物は、例えば、顔の器官、顔そのもの、顔以外の身体部位等であってよい。また、生産ラインで生産される製品の写る画像が第1画像として取得される場合、対象物は、例えば、製品そのもの、製品に含まれる何らかの特徴(例えば、傷)等であってよい。
各検出位置は、各画像に対して検出器が対象物を検出した位置である。第2誤差は、幾何変換画像(第2顔画像、第2画像)に対する対象物の検出位置と元の画像(第1顔画像、第1画像)に対する対象物の検出位置との相対的な差分に相当する。この第2誤差は、幾何変換画像から検出した位置に幾何変換の逆変換を適用することで得られた位置と元の画像から検出した位置との差分を算出することで導出されてよい。あるいは、第2誤差は、幾何変換画像から検出した位置と元の画像から検出した位置に幾何変換を適用することで得られた位置との差分を算出することで導出されてもよい。つまり、「第1出力値に基づいて特定される器官の第1検出位置と第2出力値に基づいて特定される器官の第2検出位置との第2誤差」を計算することは、幾何変換画像から検出した位置に幾何変換の逆変換を適用することで得られた位置と元の画像から検出した位置との差分を算出すること、及び幾何変換画像から検出した位置と元の画像から検出した位置に幾何変換を適用することで得られた位置との差分を算出することを含んでよい。第3誤差は、ノイズ画像(第3顔画像、第3画像)に対する対象物の検出位置と元の画像(第1顔画像、第1画像)に対する対象物の検出位置との差分に相当する。検出器は、「学習器」と称されてもよい。また、機械学習後の検出器は、「学習済みの学習器」と称されてもよい。位置情報の形式は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。位置情報は、例えば、対象物の座標値により構成されてもよいし、対象物の領域を示す情報により構成されてもよい。
上記各形態に係る検出器生成装置及びモニタリング装置それぞれの別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明の一側面に係る検出システムは、上記いずれかの形態に係る検出器生成装置及びモニタリング装置により構成されてもよい。
例えば、本発明の一側面に係る検出器生成方法は、コンピュータが、車両を運転する被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを利用して、検出器の機械学習を実施するステップと、を実行する、情報処理方法である。そして、前記検出器の機械学習を実施するステップは、前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、を含む。
また、例えば、本発明の一側面に係る検出器生成プログラムは、コンピュータに、車両を運転する被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを利用して、検出器の機械学習を実施するステップと、を実行させるための、プログラムである。そして、前記検出器の機械学習を実施するステップは、前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、を含む。
本発明によれば、正解データのノイズの影響にロバストで、対象物をより高精度に検出可能な検出器を生成することができる。
図1は、従来の検出器に生じる問題点を説明するための図である。 図2は、本発明が適用される場面の一例を模式的に例示する。 図3は、実施の形態に係る検出器生成装置のハードウェア構成の一例を模式的に例示する。 図4は、実施の形態に係るモニタリング装置のハードウェア構成の一例を模式的に例示する。 図5は、実施の形態に係る検出器生成装置のソフトウェア構成の一例を模式的に例示する。 図6は、実施の形態に係るモニタリング装置のソフトウェア構成の一例を模式的に例示する。 図7は、実施の形態に係る検出器生成装置の処理手順の一例を例示する。 図8Aは、実施の形態に係る機械学習の処理手順の一例を例示する。 図8Bは、実施の形態に係る機械学習の処理手順の一例を例示する。 図9は、機械学習を繰り返し実施する場面の一例を模式的に例示する。 図10は、実施の形態に係るモニタリング装置の処理手順の一例を例示する。 図11は、変形例に係る検出器生成装置のソフトウェア構成の一例を模式的に例示する。 図12は、本発明が適用される場面のその他の例を模式的に例示する。 図13は、本発明が適用される場面のその他の例を模式的に例示する。 図14は、変形例に係る検出器生成装置のソフトウェア構成の一例を模式的に例示する。 図15は、変形例に係る検出器生成装置のソフトウェア構成の一例を模式的に例示する。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図2を用いて、本発明が適用される場面の一例について説明する。図2は、本実施形態に係る検出システム100の適用場面の一例を模式的に例示する。図2の例では、車両を運転する運転者の顔を撮影し、得られる顔画像から顔の器官を検出する場面を想定している。顔画像は、本発明の「画像」の一例であり、顔の器官は、本発明の「対象物」の一例である。しかしながら、本発明の適用対象は、このような例に限定されなくてもよく、何らかの対象物を画像から検出するあらゆる場面に適用可能である。
図2に示されるとおり、本実施形態に係る検出システム100は、ネットワークを介して互いに接続される検出器生成装置1及びモニタリング装置2を備えており、顔の器官を検出するための検出器を生成し、生成した検出器により運転者の顔の器官を検出するように構成される。検出器生成装置1及びモニタリング装置2の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
本実施形態に係る検出器生成装置1は、機械学習を実施することにより、顔画像から顔の器官を検出するための検出器5を構築するように構成されたコンピュータである。具体的には、検出器生成装置1は、車両を運転する被験者Tの顔の写る顔画像611、及び顔画像611に写る顔の器官の位置A1を示す位置情報612の組み合わせによりそれぞれ構成される複数の学習データセット61を取得する。顔画像611は、本発明の「第1顔画像」の一例である。顔画像611は、例えば、被験者Tの顔を撮影可能な車両内の位置に設置されたカメラ31により得られる。顔画像611は、機械学習における訓練データ(入力データ)に対応し、位置情報612は、正解データ(教師データ)に対応する。検出器生成装置1は、このような複数の学習データセット61を利用して、検出器5の機械学習を実施する。
具体的に、機械学習の処理として、検出器生成装置1は、まず、各学習データセット61の顔画像611を検出器5に入力することで、各学習データセット61の顔画像611に対する第1出力値を検出器5から取得する。検出器5は、顔画像の入力を受け付け、入力された顔画像に写る顔の器官の位置を検出した結果に対応する出力値を出力するように構成される。つまり、第1出力値は、顔画像611に写る被験者Tの顔の器官の位置を検出器5が検出した結果に対応する。このような検出器5は、機械学習を実施可能な学習モデルにより構成される。本実施形態では、検出器5は、後述するニューラルネットワークにより構成される。
次に、検出器生成装置1は、各学習データセット61の顔画像611に対して得られた第1出力値に基づいて特定される器官の検出位置V1と当該顔画像611に組み合わせられた位置情報612により示される位置A1との誤差71の合計値を算出する。検出位置V1は、本発明の「第1検出位置」の一例であり、誤差71は、本発明の「第1誤差」の一例である。つまり、検出器生成装置1は、各学習データセット61について、顔画像611に対して得られた検出位置V1、及び対応する位置情報612により示される位置A1の差分を誤差71として算出し、算出した各誤差71を足し合わせることで、誤差71の合計値を算出する。
また、検出器生成装置1は、各学習データセット61の顔画像611に所定の幾何変換を適用することで、各学習データセット61の顔画像611に対して顔画像66を生成する。顔画像66は、本発明の「第2顔画像」の一例である。所定の幾何変換(幾何的な変換)は、例えば、平行移動、回転移動、反転、拡大、縮小又はこれらの組み合わせであってよい。具体例として、所定の幾何変換は、平行移動及び回転移動を伴う変換であってよい。図2の例では、平行移動及び回転移動を伴う変換を顔画像611に適用した場面を例示している。
続いて、検出器生成装置1は、生成した各顔画像66を検出器に入力することで、各顔画像66に対する第2出力値を検出器5から取得する。更に、検出器生成装置1は、各学習データセット61の顔画像611に対して得られた第1出力値に基づいて特定される第1検出位置と当該顔画像611に対して生成された顔画像66に対して得られた第2出力値に基づいて特定される器官の第2検出位置との第2誤差の合計値を算出する。
ここで、顔画像66は、顔画像611に幾何変換を適用することで得られるため、顔画像66の座標軸と顔画像611の座標軸とは幾何変換の分だけずれている。そのため、顔画像611に対する器官の検出結果と顔画像66に対する器官の検出結果とを比較するため、検出器生成装置1は、顔画像611の座標軸と顔画像66の座標軸とを一致させる変換処理を実行する。
図2の例では、まず、検出器生成装置1は、検出器5から取得した第2出力値に基づいて、顔画像66の座標軸における器官の検出位置V30を特定する。次に、検出器生成装置1は、特定した検出位置V30の座標値に所定の幾何変換の逆変換を適用し、顔画像66の座標軸を顔画像611の座標軸に一致させて、顔画像611の座標軸における検出位置V31を特定する。そして、検出器生成装置1は、各学習データセット61について、顔画像611に対して得られた検出位置V1、及び対応する顔画像66に対して得られた検出位置V31の差分を誤差73として算出し、算出した各誤差73を足し合わせることで、誤差73の合計値を算出する。このケースでは、検出位置V31が、本発明の「第2検出位置」の一例であり、誤差73が、本発明の「第2誤差」の一例である。
しかしながら、第1検出位置と第2検出位置との第2誤差の合計値を算出する方法は、このような例に限定されなくてもよい。検出器生成装置1は、顔画像611の座標軸における検出位置V1の座標値に所定の幾何変換を適用することで、顔画像611の座標軸を顔画像66の座標軸に一致させて、顔画像66の座標軸における第1検出位置を特定してもよい。そして、検出器生成装置1は、顔画像66の座標軸における第1検出位置と検出位置V30とを差分を第2誤差として算出してもよい。このケースでは、検出位置V30が、本発明の「第2検出位置」の一例である。
そして、検出器生成装置1は、誤差71の合計値及び誤差73の合計値が小さくなるように検出器5を訓練する。検出器5を訓練することは、詳細には、検出器5のパラメータを調節することである。検出器5のパラメータは、何らかの対象物を画像から検出する(出力値を得る)ための演算処理に利用されるものである。本実施形態では、検出器5は後述するニューラルネットワークにより構成される。そのため、このパラメータは、例えば、各ニューロン間の結合の重み、各ニューロンの閾値等である。この検出器5のパラメータの調整には、例えば、誤差逆伝播法等の公知の学習アルゴリズムが用いられてよい。
誤差71の合計値は、検出器5により顔画像611から器官を検出した結果と位置情報612により指定される器官の位置の正解との間の損失に相当する。また、誤差73の合計値は、検出器5による器官の検出結果のブレであって、位置情報612に含まれる幾何学的なノイズの影響によって生じるブレの損失に相当する。そのため、上記機械学習により、検出器生成装置1は、位置情報612により示される正解と一致するように顔画像611から器官を検出し、かつその検出結果が、位置情報612に含まれ得る幾何的なノイズによる影響を受け難い、ように訓練された(学習済みの)検出器5を構築(生成)することができる。
一方、本実施形態に係るモニタリング装置2は、検出器生成装置1により構築された学習済みの検出器5を利用して、車両を運転する運転者Dの顔の器官を顔画像から検出するように構成されたコンピュータである。具体的には、モニタリング装置2は、車両を運転する運転者Dの顔の写る顔画像を取得する。顔画像は、例えば、運転者Dの顔を撮影可能な車両内の位置に設置されたカメラ41により得られる。
続いて、モニタリング装置2は、検出器生成装置1による機械学習を実施済みの検出器5に取得した顔画像を入力することで、運転者Dの顔の器官を検出した結果に対応する出力値を検出器5から取得する。そして、モニタリング装置2は、運転者Dの顔の器官を検出した結果に関する情報を出力する。例えば、モニタリング装置2は、検出した顔の器官の位置に基づいて、視線方向等の運転者Dの状態を推定することができる。そこで、モニタリング装置2は、検出結果に関する情報として、検出結果に基づいて運転者Dの状態を推定した結果を出力してもよい。これにより、モニタリング装置2は、運転者Dの状態を監視することができる。
上記のとおり、検出器5は、位置情報612に含まれ得るノイズの影響にロバストに構築される。そのため、モニタリング装置2は、この検出器5を利用することで、運転者Dの顔の器官を高精度に検出することができる。したがって、モニタリング装置2は、例えば、運転操作中における運転者Dの視線方向等の状態を精度よく推定することができる。
なお、図2の例では、検出器生成装置1及びモニタリング装置2は別個のコンピュータである。しかしながら、検出システム100の構成は、このような例に限定されなくてもよい。検出器生成装置1及びモニタリング装置2は一体のコンピュータで構成されてもよい。また、検出器生成装置1及びモニタリング装置2はそれぞれ複数台のコンピュータにより構成されてもよい。更に、検出器生成装置1及びモニタリング装置2はネットワークに接続されていなくてもよい。この場合、検出器生成装置1及びモニタリング装置2の間のデータのやりとりは、不揮発メモリ等の記憶媒体を介して行われてもよい。
また、説明の便宜のため、図2では、検出の対象となる顔の器官の一例として、目(詳細には、目尻)を例示している。しかしながら、検出の対象となる顔の器官は、目に限定されなくてもよい。検出の対象となる顔の器官は、例えば、目、鼻、口、眉、顎及びこれらの組み合わせから選択されてよい。また、検出の対象となる器官には、顔の輪郭が含まれてもよい。後述する図5及び図11においても同様である。
§2 構成例
[ハードウェア構成]
<検出器生成装置>
次に、図3を用いて、本実施形態に係る検出器生成装置1のハードウェア構成の一例について説明する。図3は、本実施形態に係る検出器生成装置1のハードウェアの一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る検出器生成装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図3では、通信インタフェースを「通信I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、検出器生成プログラム81、複数の学習データセット61、学習結果データ121等の各種情報を記憶する。
検出器生成プログラム81は、検出器生成装置1に、後述する機械学習の情報処理(図7、図8A、図8B)を実行させ、学習済みの検出器5を構築させるためのプログラムである。検出器生成プログラム81は、この情報処理の一連の命令を含む。各学習データセット61は、上記顔画像611及び位置情報612により構成される。学習結果データ121は、各学習データセット61を利用した機械学習により構築された学習済みの検出器5の設定を行うためのデータである。学習結果データ121は、検出器生成プログラム81の実行結果として生成される。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。検出器生成装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、モニタリング装置2)と行うことができる。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を利用することで、検出器生成装置1を操作することができる。
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記検出器生成プログラム81及び複数の学習データセット61の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。検出器生成装置1は、この記憶媒体91から、上記検出器生成プログラム81及び複数の学習データセット61の少なくともいずれかを取得してもよい。
ここで、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、検出器生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。検出器生成装置1は、カメラ31と接続するための外部インタフェースを更に備えてもよい。この外部インタフェースは、モニタリング装置2の後述する外部インタフェース24と同様に構成されてよい。検出器生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検出器生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
<モニタリング装置>
次に、図4を用いて、本実施形態に係るモニタリング装置2のハードウェア構成の一例について説明する。図4は、本実施形態に係るモニタリング装置2のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係るモニタリング装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。なお、図4では、通信インタフェース及び外部インタフェースをそれぞれ「通信I/F」及び「外部I/F」と記載している。
モニタリング装置2の制御部21〜通信インタフェース23及び入力装置25〜ドライブ27はそれぞれ、上記検出器生成装置1の制御部11〜ドライブ16それぞれと同様に構成されてよい。すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、モニタリングプログラム82、学習結果データ121等の各種情報を記憶する。
モニタリングプログラム82は、学習済みの検出器5を利用して、運転者Dの状態を監視する後述の情報処理(図10)をモニタリング装置2に実行させるためのプログラムである。モニタリングプログラム82は、この情報処理の一連の命令を含む。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モニタリング装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、検出器生成装置1)と行うことができる。
外部インタフェース24は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース24の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、モニタリング装置2は、外部インタフェース24を介して、カメラ41に接続される。
カメラ41は、運転者Dの顔を撮影することで、顔画像を取得するのに利用される。カメラ41の種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラ41には、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。また、カメラ41は、例えば、少なくとも運転者Dの上半身を撮影範囲とするように、運転席の前方上方に配置されてよい。なお、カメラ41が通信インタフェースを備える場合、モニタリング装置2は、外部インタフェース24ではなく、通信インタフェース23を介して、カメラ41に接続されてもよい。
入力装置25は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置26は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。運転者D等のオペレータは、入力装置25及び出力装置26を利用することで、モニタリング装置2を操作することができる。
ドライブ27は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記モニタリングプログラム82及び学習結果データ121のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、モニタリング装置2は、記憶媒体92から、上記モニタリングプログラム82及び学習結果データ121のうちの少なくともいずれかを取得してもよい。
なお、モニタリング装置2の具体的なハードウェア構成に関して、上記検出器生成装置1と同様に、実施の形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26及びドライブ27の少なくともいずれかは省略されてもよい。モニタリング装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モニタリング装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のデスクトップPC、ノートPC、タブレットPC、スマートフォンを含む携帯電話等が用いられてよい。
[ソフトウェア構成]
<検出器生成装置>
次に、図5を用いて、本実施形態に係る検出器生成装置1のソフトウェア構成の一例について説明する。図5は、本実施形態に係る検出器生成装置1のソフトウェア構成の一例を模式的に例示する。
検出器生成装置1の制御部11は、記憶部12に記憶された検出器生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された検出器生成プログラム81をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図5に示されるとおり、本実施形態に係る検出器生成装置1は、学習データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、検出器生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
学習データ取得部111は、車両を運転する被験者Tの顔の写る顔画像611、及び顔画像611に写る顔の器官の位置を示す位置情報612の組み合わせによりそれぞれ構成された複数の学習データセット61を取得する。対象となる器官は、例えば、目、鼻、口、眉、顎及びこれらの組み合わせから選択されてよい。また、対象となる器官には、顔の輪郭が含まれてもよい。
学習処理部112は、複数の学習データセット61を利用して、検出器5の機械学習を実施する。具体的には、機械学習の処理として、学習処理部112は、まず、各学習データセット61の顔画像611を検出器5に入力することで、各学習データセット61の顔画像611に対する第1出力値を検出器5から取得する。続いて、学習処理部112は、各学習データセット61の顔画像611に対して得られた第1出力値に基づいて特定される器官の検出位置V1と当該顔画像611に組み合わせられた位置情報612により示される位置A1との誤差71の合計値を算出する。
また、学習処理部112は、各学習データセット61の顔画像611に所定の幾何変換を適用することで、各学習データセット61の顔画像611に対して顔画像66を生成する。続いて、学習処理部112は、生成した各顔画像66を検出器5に入力することで、各顔画像66に対する第2出力値を検出器5から取得する。そして、学習処理部112は、各学習データセット61の顔画像611に対して得られた第1出力値に基づいて特定される第1検出位置と当該顔画像611に対して生成された顔画像66に対して得られた第2出力値に基づいて特定される器官の第2検出位置との第2誤差の合計値を算出する。本実施形態では、学習処理部112は、各学習データセット61について、各顔画像611に対して得られた検出位置V1と対応する顔画像66に対して得られた検出位置V31との差分を誤差73として算出する。
更に、本実施形態では、学習処理部112は、各学習データセット61の顔画像611にノイズを付与することで、各学習データセット61の顔画像611に対して顔画像63を生成する。顔画像63は、「第3顔画像」の一例である。続いて、学習処理部112は、生成した各顔画像63を検出器5に入力することで、各顔画像63に対する第3出力値を検出器5から取得する。そして、学習処理部112は、各学習データセット61の顔画像611に対して得られた第1出力値に基づいて特定される検出位置V1と当該顔画像611に対して生成された顔画像63に対して得られた第3出力値に基づいて特定される器官の検出位置V2との誤差72の合計値を算出する。具体的には、学習処理部112は、各顔画像611に対して得られた検出位置V1と対応する顔画像63に対して得られた検出位置V2との差分を誤差72として算出する。そして、学習処理部112は、算出した各誤差72を足し合わせることで、誤差72の合計値を算出する。検出位置V2は、「第3検出位置」の一例であり、誤差72は、「第3誤差」の一例である。
以上の各処理によって、各誤差71〜73の合計値が算出される。学習処理部112は、誤差71の合計値、誤差72の合計値、及び誤差73の合計値が小さくなるように検出器5を訓練する。これにより、学習処理部112は、運転者の顔の器官を検出するための学習済みの検出器5を構築する。
(検出器)
次に、検出器5の構成の一例について説明する。図5に示されるとおり、本実施形態に係る検出器5は、ニューラルネットワークにより構成されている。具体的には、検出器5は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されており、入力層51、中間層(隠れ層)52、及び出力層53を備えている。
なお、図5の例では、検出器5を構成するニューラルネットワークは、1層の中間層52を備えており、入力層51の出力が中間層52に入力され、中間層52の出力が出力層53に入力されている。ただし、検出器5の構成は、このような例に限定されなくてもよい。中間層52の数は、1層に限られなくてもよい。検出器5は、2層以上の中間層52を備えてもよい。
各層51〜53は、1又は複数のニューロンを備えている。例えば、入力層51のニューロンの数は、顔画像611の画素数に応じて設定されてよい。中間層52のニューロンの数は、実施の形態に応じて適宜設定されてよい。また、出力層53のニューロンの数は、検出する器官の数、位置表現等に応じて設定されてよい。
隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。図5の例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。つまり、これらの各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される検出器5のパラメータの一例である。学習処理部112は、各顔画像(611、63、66)を入力層51に入力し、これらのパラメータを利用して、検出器5の演算処理を実行する。
この演算処理の結果、学習処理部112は、各顔画像(611、63、66)に対する器官の検出結果として、出力層53から各出力値を取得する。続いて、学習処理部112は、上記のとおり、取得した各出力値に基づいて、各誤差71〜73の合計値を算出する。そして、学習処理部112は、上記訓練処理として、各誤差71〜73の合計値が小さくなるように、検出器5のパラメータを調節する。これにより、運転者の顔の器官を検出するための学習済みの検出器5が構築される。
保存処理部113は、構築された学習済みの検出器5の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、及び演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値)を示す情報を学習結果データ121として記憶部12に保存する。
<モニタリング装置>
次に、図6を用いて、本実施形態に係るモニタリング装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係るモニタリング装置2のソフトウェア構成の一例を模式的に例示する。
モニタリング装置2の制御部21は、記憶部22に記憶されたモニタリングプログラム82をRAMに展開する。そして、制御部21は、RAMに展開されたモニタリングプログラム82をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係るモニタリング装置2は、データ取得部211、検出部212、及び出力部213をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モニタリング装置2の各ソフトウェアモジュールも、上記検出器生成装置1と同様に、制御部21(CPU)により実現される。
データ取得部211は、車両を運転する運転者Dの顔の写る顔画像221を取得する。例えば、データ取得部211は、カメラ41により運転者Dの顔を撮影することで、顔画像221を取得する。検出部212は、学習結果データ121を保持することで、学習済みの検出器5を含んでいる。具体的には、検出部212は、学習結果データ121を参照し、学習済みの検出器5の設定を行う。そして、検出部212は、取得された顔画像221を検出器5に入力することで、運転者Dの顔の器官を顔画像221より検出した結果に対応する出力値を検出器5から取得する。出力部213は、運転者Dの顔の器官を検出した結果に関する情報を出力する。
<その他>
検出器生成装置1及びモニタリング装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、検出器生成装置1及びモニタリング装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、検出器生成装置1及びモニタリング装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[検出器生成装置]
次に、図7を用いて、検出器生成装置1の動作例について説明する。図7は、本実施形態に係る検出器生成装置1の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、本発明の「検出器生成方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、学習データ取得部111として動作し、顔画像611(第1顔画像)及び位置情報612の組み合わせによりそれぞれ構成された複数の学習データセット61を取得する。
複数件の学習データセット61を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、カメラ31を搭載した車両及び被験者Tを用意し、車両を運転する被験者Tをカメラにより様々な条件で撮影することで、被験者Tの顔の写る複数の顔画像611を取得することができる。用意する車両及び被験者Tの数は、実施の形態に応じて適宜決定されてよい。そして、得られた各顔画像611に対して、各顔画像611に写る対象の器官の位置を示す位置情報612を組み合わせることで、各学習データセット61を生成することができる。対象の器官は、例えば、目、鼻、口、眉、顎及びこれらの組み合わせから選択されてよい。また、対象の器官には、顔の輪郭が含まれてもよい。
この各学習データセット61は、自動的に生成されてもよいし、手動的に生成されてもよい。また、各学習データセット61の生成は、検出器生成装置1により行われてもよいし、検出器生成装置1以外の他のコンピュータにより行われてもよい。
各学習データセット61が検出器生成装置1により生成される場合、制御部11は、外部インタフェース、ネットワーク、記憶媒体91等を介して、各顔画像611をカメラ31から取得する。次に、制御部11は、各顔画像611に付与する位置情報612を生成する。位置情報612を手動的に生成する場合、制御部11は、オペレータによる入力装置14を介する器官の位置の指定を受け付ける。続いて、制御部11は、オペレータによる入力装置14の操作に応じて、指定された器官の位置を示す位置情報612を生成する。他方、位置情報612を自動的に生成する場合、制御部11は、各顔画像611から対象の器官の位置を検出する。この検出には、エッジ検出、パターンマッチング等の公知の画像処理方法が用いられてもよいし、後述する暫定的に生成された検出器が用いられてもよい。続いて、制御部11は、検出された器官の位置を示す位置情報612を生成する。そして、制御部11は、生成した位置情報612を顔画像611に組み合わせることで、各学習データセット61を生成する。これにより、制御部11は、複数の学習データセット61を取得してもよい。
一方、各学習データセット61が他のコンピュータにより生成される場合、本ステップS101では、制御部11は、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット61を取得してもよい。他のコンピュータでは、上記検出器生成装置1と同様の方法で、各学習データセット61が生成されてよい。
なお、顔画像611及び位置情報612のデータ形式は、実施の形態に応じて適宜選択されてよい。位置情報612は、座標値等により器官の位置を点で示してもよいし、器官の位置を領域で示してもよい。また、取得する学習データセット61の件数は、特に限定されなくてもよく、検出器5の機械学習を実施可能な程度に適宜決定されてよい。複数の学習データセット61を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、ステップS101により取得した複数の学習データセット61を利用して、検出器5の機械学習を実施する。機械学習の処理手順は後述する。これにより、学習済みの検出器5を構築すると、制御部11は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により構築された検出器5の構成及び演算パラメータを示す情報を学習結果データ121として生成する。そして、制御部11は、生成した学習結果データ121を記憶部12に保存する。これにより、制御部11は、本動作例に係る処理を終了する。
なお、学習結果データ121の保存先は、記憶部12に限られなくてもよい。制御部11は、例えば、NAS(Network Attached Storage)等のデータサーバに学習結果データ121を格納してもよい。また、学習済みの検出器5を構築した後、制御部11は、生成した学習結果データ121を任意のタイミングでモニタリング装置2に転送してもよい。
モニタリング装置2は、検出器生成装置1から転送を受け付けることで学習結果データ121を取得してもよいし、検出器生成装置1又はデータサーバにアクセスすることで学習結果データ121を取得してもよい。また、学習結果データ121は、モニタリング装置2に予め組み込まれてもよい。
<機械学習の処理>
次に、図8A及び図8Bを用いて、上記ステップS102の処理の一例を詳細に説明する。図8A及び図8Bは、本実施形態に係る検出器生成装置1による機械学習の処理手順の一例を示すフローチャートである。本実施形態に係るステップS102の処理は、以下のステップS201〜S210の処理を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
ステップS201の処理を開始する前に、制御部11は、機械学習を実施する対象となるニューラルネットワーク(学習前の検出器5)を用意する。用意するニューラルネットワークの構成及び各パラメータは、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を実施する場合には、制御部11は、再学習の対象となる学習結果データ121に基づいて、ニューラルネットワークを用意してもよい。これにより、学習前の検出器5の用意が完了すると、制御部11は、ステップS201の処理を開始する。
(ステップS201)
ステップS201では、制御部11は、各学習データセット61の顔画像611を検出器5に入力し、検出器5の演算処理を実行する。具体的には、制御部11は、各顔画像611を検出器5の入力層51に入力し、入力側から順に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、各顔画像611に対する第1出力値を出力層53から取得する。各第1出力値は、現段階における検出器5が各顔画像611から器官の位置を検出した結果に対応する。各第1出力値を取得すると、制御部11は、次のステップS202に処理を進める。
なお、検出器5の出力値は、器官を検出した位置を示し得るものであれば、検出器5の出力値の形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、検出器5の出力値は、座標値等のように、器官の位置を直接的に示すものであってもよい。また、例えば、検出器5の出力値は器官の位置を間接的に示し、検出器5の出力値に何らかの演算処理を適用することにより、器官の位置を示す情報が得られてもよい。いずれの形式であっても、検出器5の出力値は同様に取り扱うことができる。そのため、以下では、説明の便宜上、検出器5の出力値は、器官の位置を直接示すものとして取り扱うことにする。
(ステップS202)
ステップS202では、制御部11は、各第1出力値に基づいて特定される器官の検出位置V1(第1検出位置)と対応する位置情報612により示される位置A1との誤差71(第1誤差)の合計値を算出する。具体的には、制御部11は、各学習データセット61について、各顔画像611に対して得られた検出位置V1と対応する位置情報612により示される位置A1との差分を誤差71として算出する。そして、制御部11は、算出した各誤差71を足し合わせることで、誤差71の合計値を算出する。
なお、検出位置V1と位置A1との差分は、器官の位置を指定する形式に応じて適宜算出されてよい。例えば、器官の位置が点で指定される場合、制御部11は、検出位置V1と位置A1との間の距離(ノルム)を差分として算出してもよい。また、例えば、器官の位置が領域で指定される場合、制御部11は、IoU(Intersection Over Union)等の指標を利用して、検出位置V1と位置A1との差分を算出してもよい。誤差71の合計値を算出すると、制御部11は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部11は、各学習データセット61の顔画像611に所定の幾何変換を適用することで、各顔画像66(第2顔画像)を生成する。各顔画像611に適用する幾何変換は、例えば、平行移動、回転移動、反転、拡大、縮小又はこれらの組み合わせであってよい。具体例として、各顔画像611に適用する幾何変換は、平行移動及び回転移動を伴う変換であってよい。各顔画像66に適用する幾何変換は、同じであってもよいし、異なっていてもよい。制御部11は、幾何変換のパラメータをランダムに変更しながら、各顔画像66を生成してもよい。幾何変換のパラメータは、例えば、各変換量(平行移動量、回転量等)である。各顔画像66を生成すると、制御部11は、次のステップS204に処理を進める。
(ステップS204)
ステップS204では、制御部11は、生成した各顔画像66を検出器5に入力し、検出器5の演算処理を実行する。この検出器5の演算処理は、上記ステップS201と同様であってよい。これにより、制御部11は、各顔画像66に対する第2出力値を検出器5の出力層53から取得する。各第2出力値は、現段階における検出器5が各顔画像66から器官の位置を検出した結果に対応する。各第2出力値を取得すると、制御部11は、次のステップS205に処理を進める。
(ステップS205)
ステップS205では、制御部11は、各第1出力値に基づいて特定される器官の第1検出位置と対応する顔画像66に対して得られた第2出力値に基づいて特定される器官の第2検出位置との第2誤差の合計値を算出する。具体的には、制御部11は、各顔画像611に対して得られた第2出力値から導出される検出位置V30に幾何変換の逆変換を適用して、検出位置V31を算出する。そして、制御部11は、各学習データセット61について、各顔画像611に対して得られた検出位置V1(第1検出位置)と対応する顔画像66に対して得られた検出位置V31(第2検出位置)との差分を誤差73(第2誤差)として算出する。この差分を算出する方法は、上記ステップS202と同様であってよい。また、上記のとおり、制御部11は、検出位置V1に幾何変換を適用することで導出される位置と検出位置V30との差分を誤差73として算出してもよい。そして、制御部11は、算出した各誤差73を足し合わせることで、誤差73の合計値を算出する。誤差73の合計値を算出すると、制御部11は、次のステップS206に処理を進める。
(ステップS206)
ステップS206では、制御部11は、各学習データセット61の顔画像611にノイズを付与することで、各顔画像63(第3顔画像)を生成する。各顔画像611に付与するノイズの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ノイズには、例えば、ガウシアンノイズ、ポアソンノイズ、一様乱数によるノイズ等が用いられてよい。例えば、制御部11は、ランダムなガウシアンノイズを各顔画像611に付与してもよい。また、例えば、制御部11は、局所平均フィルタ等のフィルタを各顔画像611に適用することで、各顔画像611にノイズを付与してもよい。各顔画像611に付与するノイズの種類は、同じであってもよいし、異なっていてもよい。また、例えば、制御部11は、敵対的な例(Adversarial example)を形成するように、検出器5による検出が変化しやすい位置にノイズを付与してもよい。検出が変化しやすいか否かは、例えば、ノイズを付与したことによる検出位置の変化量と閾値との比較に基づいて判定することができる。各顔画像63を生成すると、制御部11は、次のステップS207に処理を進める。
(ステップS207)
ステップS207では、制御部11は、生成した各顔画像63を検出器5に入力し、検出器5の演算処理を実行する。この検出器5の演算処理は、上記ステップS201と同様であってよい。これにより、制御部11は、各顔画像63に対する第3出力値を検出器5の出力層53から取得する。各第3出力値は、現段階における検出器5が各顔画像63から器官の位置を検出した結果に対応する。各第3出力値を取得すると、制御部11は、次のステップS208に処理を進める。
(ステップS208)
ステップS208では、制御部11は、各第1出力値に基づいて特定される器官の検出位置V1(第1検出位置)と対応する顔画像63に対して得られた第3出力値に基づいて特定される器官の検出位置V2(第3検出位置)との誤差72(第3誤差)の合計値を算出する。具体的には、制御部11は、各学習データセット61について、各顔画像611に対して得られた検出位置V1と対応する顔画像63に対して得られた検出位置V2との差分を誤差72として算出する。この差分を算出する方法は、上記ステップS202と同様であってよい。そして、制御部11は、算出した各誤差72を足し合わせることで、誤差72の合計値を算出する。誤差72の合計値を算出すると、制御部11は、次のステップS209に処理を進める。
(ステップS209)
ステップS209では、制御部11は、算出した各誤差71〜73の合計値が閾値以下であるか否かを判定する。閾値は、顔画像から器官を適切に検出するように検出器5が十分に訓練されたか否かを判定するための基準となる。この閾値は、適宜設定されてよい。
各誤差71〜73の合計値が閾値以下であることは、換言すると、各誤差71〜73の合計値が十分に小さいことは、顔画像から器官を適切に検出可能に検出器5が十分に訓練されたことを示す。そのため、各誤差71〜73の合計値が閾値以下であると判定した場合には、制御部11は、本動作例に係る機械学習の処理を終了し(すなわち、ステップS102の処理を完了し)、上記ステップS103に処理を進める。
一方、各誤差71〜73の合計値が閾値を超えていることは、換言すると、各誤差71〜73の合計値が大きいことは、検出器5がまだ十分には訓練されていないことを示す。そのため、各誤差71〜73の合計値が閾値を超えていると判定した場合には、制御部11は、次のステップS210に処理を進める。
(ステップS210)
ステップS210では、制御部11は、各誤差71〜73の合計値が小さくなるように検出器5の訓練を行う。具体的には、制御部11は、各誤差71〜73の合計値が小さくなるように、検出器5のパラメータを調節する。このパラメータの調整には、誤差逆伝播法等の公知の方法が採用されてよい。すなわち、制御部11は、各誤差71〜73の合計値を利用して、出力層53側から順に、各ニューロン間の結合の重み、各ニューロンの閾値等の各パラメータの誤差を算出する。そして、制御部11は、算出した誤差に基づいて、各パラメータの値を更新する。各パラメータの更新幅を定める学習率は、適宜設定されてよい。
各層51〜53のパラメータの値の更新が完了すると、制御部11は、ステップS201から処理を繰り返す。制御部11は、ステップS201〜S210の処理を繰り返すことで、各誤差71〜73の合計値が十分に小さくなるように、検出器5のパラメータを最適化する。なお、学習時間を短縮化するために、このパラメータの最適化には、確率的勾配降下法等の公知の方法が採用されてもよい。これにより、検出器5は、各誤差71〜73の合計値が小さくなるように訓練される。すなわち、ステップS209において、各誤差71〜73の合計値が閾値以下であると判定されるようになり、本動作例に係る機械学習の処理が完了する。
なお、上記処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。例えば、ステップS202の処理がステップS201の後に実行され、ステップS204の処理がステップS203の後に実行され、ステップS205の処理がステップS201及びS204の後に実行され、ステップS207の処理がステップS206の後に実行され、ステップS208の処理がステップS201及びS207の後に実行されるのであれば、ステップS201〜S208の処理の順序は適宜入れ替えられてよい。
<繰り返し学習>
検出器生成装置1は、上記ステップS101〜S103の処理を繰り返してもよい。この繰り返しの過程で、暫定的に生成される検出器5を利用して、各学習データセット61に含まれる位置情報612を更新してもよい。すなわち、検出器生成装置1は、ステップS102により、各学習データセット61を利用して学習済みの検出器5を生成した後、生成された学習済みの検出器5に各顔画像611を入力し、各顔画像611から器官の位置を検出してもよい。そして、検出器生成装置1は、元の位置(すなわち、学習済みの検出器5を生成する際に位置情報612により示されていた位置)から学習済みの検出器5により検出された位置を示すように、各学習データセット61の位置情報612を更新してもよい。
図9を用いて、この繰り返し学習について詳細に説明する。図9は、機械学習を繰り返し実施する場面の一例を模式的に例示する。図9に示されるとおり、ステップS101〜S103を最初に実施する際に、ステップS101により、制御部11は、顔画像611及び位置情報622aによりそれぞれ構成された複数の学習データセット62aを取得したと想定する。位置情報622aは、上記のとおり、オペレータの指定により与えられてもよいし、公知の画像処理方法により与えられてもよいし、他の検出器から得られる出力値に基づいて与えられてもよい。
1回目の学習処理では、制御部11は、得られた各学習データセット62aを利用して、ステップS102の機械学習の処理を実行する。これにより、制御部11は、各学習データセット62aを与えられると、位置情報622aにより示される正解と一致するように顔画像611から器官を検出するように訓練された学習済みの検出器50aを暫定的に生成する。制御部11は、ステップS103の処理を実行することで、この暫定的に生成した学習済みの検出器50aの学習結果データを所定の記憶領域に保存してもよい。学習済みの検出器50aが生成されることで、1回目の学習処理は終了である。
2回目の学習処理では、制御部11は、暫定的に生成された学習済みの検出器50aを利用して、各学習データセット62aの位置情報622aを更新する。すなわち、制御部11は、1回目の学習処理で生成された学習済みの検出器50aに各顔画像611を入力し、検出器50aの演算処理を実行する。これにより、制御部11は、各顔画像611より器官の位置を検出した結果に対応する出力値を学習済みの検出器50aから取得する。
制御部11は、得られた各出力値に基づいて、学習済みの検出器50aによって各顔画像611から対象の器官を検出した位置を特定する。そして、制御部11は、各学習データセット62aについて、特定した検出位置を示す位置情報622bを生成し、生成した位置情報622bに位置情報622aを置き換える。これにより、ステップS101では、制御部11は、顔画像611及び位置情報622bの組み合わせにより構成された新たな各学習データセット62bを取得する。
つまり、2回目の学習処理では、位置情報622bは、位置情報622bに組み合わせられる顔画像611を、機械学習を実施済みの検出器50aに入力することで、当該検出器50aから得られる出力値に基づいて与えられる。この2回目の学習処理の場面では、学習済みの検出器50aは、本発明の「他の検出器」及び「第1検出器」の一例である。各学習データセット62aは、「第1学習データセット」の一例である。各学習データセット62bは、「第2学習データセット」の一例である。
2回目の学習処理では、制御部11は、この各学習データセット62bを利用して、ステップS102の機械学習の処理を実行する。これにより、制御部11は、各学習データセット62bを与えられると、位置情報622bにより示される正解と一致するように顔画像611から器官を検出するように訓練された学習済みの検出器50bを生成する。1回目の学習処理と同様に、制御部11は、ステップS103の処理を実行することで、この生成した学習済みの検出器50bの学習結果データを所定の記憶領域に保存してもよい。学習済みの検出器50bが生成されることで、2回目の学習処理は終了する。
以上のように、検出器生成装置1は、各学習データセットを利用した機械学習により学習済みの検出器を生成する処理、及び生成された学習済みの検出器を利用して位置情報を更新する処理を交互に繰り返し実行してもよい。検出器生成装置1が、検出器を生成する処理及び位置情報を更新する処理を交互に繰り返し実行した場合、最終的に取得される各学習データセットが上記各学習データセット61に対応し、最終的に生成される学習済みの検出器が上記学習済みの検出器5に対応する。位置情報612は、最終の1回前の学習処理により生成された学習済みの検出器に顔画像611を入力することで、当該学習済みの検出器から得られる出力値に基づいて与えられる。
この検出器の生成処理及び位置情報の更新処理の繰り返しにより、暫定的に生成された検出器による検出結果を位置情報612として利用するため、人為的なノイズが位置情報612に含まれるのを防止することができる。また、初期段階における位置情報622aが、オペレータの入力により与えられることで人為的なノイズを含んでいたとしても、この繰り返しの過程において、暫定的に生成された検出器を利用した位置情報の更新により、位置情報に含まれる人為的なノイズを低減することができる。そのため、位置情報622aに含まれ得る人為的なノイズによる影響にロバストで、対象者の顔の器官を顔画像から検出可能な検出器5を構築することができる。なお、図9では、機械学習の処理を3回以上繰り返す場面を例示している。しかしながら、機械学習の処理を繰り返す回数は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。繰り返しの回数は、2回であってもよい。
[モニタリング装置]
次に、図10を用いて、モニタリング装置2の動作例について説明する。図10は、本実施形態に係るモニタリング装置2の処理手順の一例を示すフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS301)
ステップS301では、制御部21は、データ取得部211として動作し、車両を運転する運転者Dの顔の写る顔画像221を取得する。本実施形態では、モニタリング装置2は、外部インタフェース24を介してカメラ41に接続されている。そのため、制御部21は、カメラ41から顔画像221を取得する。この顔画像221は、動画像データであってもよいし、静止画像データであってもよい。顔画像221を取得すると、制御部21は、次のステップS302に処理を進める。
ただし、顔画像221を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モニタリング装置2とは異なる他のコンピュータが、カメラ41に接続されていてもよい。この場合、制御部21は、他のコンピュータから顔画像221の送信を受け付けることで、顔画像221を取得してもよい。
(ステップS302)
ステップS302では、制御部21は、検出部212として動作し、学習結果データ121を参照して、学習済みの検出器5の設定を行う。続いて、制御部21は、取得した顔画像221を学習済みの検出器5に入力し、検出器5の演算処理を実行する。この検出器5の演算処理は、上記ステップS201と同様であってよい。これにより、制御部21は、運転者Dの顔の器官を顔画像221より検出した結果に対応する出力値を検出器5から取得する。出力値を取得すると、制御部21は、次のステップS303に処理を進める。
(ステップS303)
ステップS303では、制御部21は、出力部213として動作し、運転者Dの顔の器官を検出した結果に関する情報を出力する。出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、ステップS302により運転者Dの顔の器官を顔画像221から検出した結果をそのまま出力装置26を介して出力してもよい。
また、例えば、制御部21は、運転者Dの顔の器官を顔画像221から検出した結果に基づいて、運転者Dの状態を推定する等の何らかの情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を出力してもよい。顔の器官として目を検出した場合、情報処理の一例として、制御部21は、検出した各目の位置関係に基づいて、運転者Dの視線方向を推定してもよい。そして、制御部21は、視線方向を推定した結果に関連する情報を出力してもよい。例えば、視線方向が車両の前方を向いていない場合に、制御部21は、出力装置26を介して、視線方向を前方に向けるように促す警告を出力してもよい。また、情報処理の他の例として、制御部21は、検出した各器官の位置関係に基づいて、運転者Dの表情を推定してもよい。そして、制御部21は、表情を推定した結果に関連する情報を出力してもよい。例えば、運転者Dの表情が疲れている場合に、制御部21は、出力装置26を介して、停車を促すメッセージを出力してもよい。
情報の出力が完了すると、制御部21は、本動作例に係る処理を終了する。なお、運転者Dが車両の運転操作を行っている間、制御部21は、ステップS301〜S303の一連の処理を継続的に繰り返し実行してもよい。これにより、モニタリング装置2は、運転者Dの顔の器官の位置を顔画像から検出することを介して、当該運転者Dの状態を監視することができる。
[特徴]
以上のように、本実施形態に係る検出器生成装置1は、上記ステップS201〜S210の処理により、各誤差71〜73の合計値が小さくなるように検出器5を訓練する。各誤差71〜73のうち誤差71の合計値は、検出器5により顔画像611から器官を検出した結果と位置情報612により指定される器官の位置の正解との間の損失に相当する。また、誤差73の合計値は、検出器5による器官の検出結果のブレであって、位置情報612に含まれる幾何学的なノイズの影響によって生じるブレの損失に相当する。そのため、検出器生成装置1は、上記ステップS201〜S210の機械学習の処理により、位置情報612により示される正解と一致するように顔画像611から器官を検出し、かつその検出結果が、位置情報612に含まれ得る幾何的なノイズによる影響を受け難い、ように訓練された(学習済みの)検出器5を構築(生成)することができる。
また、本件発明者らは、上記正解データに含まれ得るノイズの影響の他、次のような理由によっても、検出器による器官の検出位置が変動してしまうという問題点が生じ得ることを見出した。すなわち、動画像等の連続的に取得される複数の画像には、撮影装置の性能、撮影環境等に応じたノイズがランダムに含まれ得る。このランダムなノイズの影響によって、完全に同一の画像を得ることは難しく、各画像は微妙に異なり得る。この各画像の微妙な相違に起因して、運転者が顔の器官を動かしていないにも関わらず、検出器から回答される器官の検出位置にぶれが生じてしまう。すなわち、上記図1に示されるように、器官(目尻)を動かしていないにも関わらず、各顔画像に含まれるノイズの影響によって、各顔画像間で器官の検出位置が変動してしまうという問題点が生じ得る。
これに対して、本実施形態に係る検出器生成装置1は、上記各誤差(71、73)に加えて、ステップS206〜S208により、ノイズを付与した顔画像63に関する誤差72を算出する。この誤差72の合計値は、検出器5による器官の検出結果のブレであって、顔画像611におけるノイズの有無によって生じるブレの損失に相当する。そのため、検出器生成装置1は、上記ステップS201〜S210の機械学習の処理により、検出結果が画像のノイズによる影響を受け難い、ように更に訓練された検出器5を構築することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、検出器5を構成するニューラルネットワークは、全結合ニューラルネットワークである。しかしながら、検出器5を構成するニューラルネットワークの構造及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、検出器5には、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等が利用されてよい。
<4.2>
上記実施形態では、検出器5は、ニューラルネットワークにより構成されている。しかしながら、画像を入力として利用可能であれば、検出器5を構成する学習モデルの種類は、ニューラルネットワークに限られなくてよく、実施の形態に応じて適宜選択されてよい。また、機械学習の方法は、利用する学習モデルによって適宜選択されてよい。例えば、検出する器官の位置の初期値を与え、その位置を更新することで対象の顔画像に写る器官の位置を適切に検出できるように検出器5を訓練してもよい。学習用の顔画像に与えられた正解データの平均値を器官の位置の初期値として利用することができる。また、位置の更新は、特徴量を用いて行うことができる。この特徴量には、例えば、Haar-like特徴量、輝度差等が用いられてよい。学習モデルには、例えば、サポートベクタマシン、線形回帰モデル、ランダムフォレスト等が用いられてもよい。この場合、検出器5のパラメータは、例えば、重みベクトル、変換ベクトル、各分岐の閾値等である。
<4.3>
上記実施形態では、学習結果データ121は、学習済みのニューラルネットワーク(検出器5)の構成を示す情報を含んでいる。しかしながら、学習結果データ121の構成は、このような例に限定されなくてもよく、学習済みの検出器5の設定に利用可能であれば、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合、学習結果データ121は、学習済みのニューラルネットワークの構成を示す情報を含んでいなくてもよい。
<4.4>
上記実施形態では、検出器生成装置1は、ステップS102の機械学習により、各誤差71〜73の合計値が小さくなるように、検出器5のパラメータを調整している。しかしながら、機械学習の処理は、このような例に限定されなくてもよい。例えば、各誤差71〜73のうち誤差72は省略されてもよい。
図11は、本変形例に係る検出器生成装置1Aのソフトウェア構成の一例を模式的に例示する。検出器生成装置1Aのハードウェア構成は、上記実施形態に係る検出器生成装置1と同様である。また、図11に示されるとおり、検出器生成装置1Aのソフトウェア構成も、上記実施形態に係る検出器生成装置1と同様である。
検出器生成装置1Aは、誤差72を導出する処理を省略する点を除き、上記実施形態に係る検出器生成装置1と同様に動作する。すなわち、検出器生成装置1Aの制御部は、上記検出器生成装置1と同様に、ステップS101及びS103の処理を実行する。また、制御部は、学習処理部112として動作し、ステップS102の処理を実行する。本変形例では、このステップS102の機械学習の処理において、制御部は、上記ステップS206〜S208の処理を省略する。つまり、制御部は、上記検出器生成装置1と同様に、上記ステップS201〜S205の処理を実行した後に、ステップS209の処理を実行する。そして、ステップS209では、制御部は、誤差71の合計値及び誤差73の合計値が閾値以下であるか否かを判定する。
誤差71の合計値及び誤差73の合計値が閾値以下であると判定した場合には、制御部は、機械学習の処理を終了し、上記ステップS103に処理を進める。一方、誤差71の合計値及び誤差73の合計値が閾値を超えていると判定した場合には、制御部は、次のステップS210に処理を進める。ステップS210では、制御部は、誤差71の合計値及び誤差73の合計値が小さくなるように検出器5の訓練を行う。検出器5の訓練、すなわち、検出器5のパラメータを調節する方法は、上記実施形態と同様であってよい。これにより、本変形例に係る検出器生成装置1Aは、上記実施形態と同様に、位置情報612により示される正解と一致するように顔画像611から器官を検出し、かつその検出結果が、位置情報612に含まれ得る幾何的なノイズによる影響を受け難い、ように訓練された(学習済みの)検出器5を構築(生成)することができる。
<4.5>
上記実施形態では、車両を運転する運転者の顔を撮影し、得られる顔画像から顔の器官の位置を検出する場面に本発明を適用した例を示している。しかしながら、本発明の適用可能な範囲は、このような運転者の顔画像から器官の位置を検出する場面に限られなくてもよい。本発明は、運転者以外の対象者の顔の器官を顔画像から検出する場面に広く適用可能である。
図12は、本発明が適用される他の場面の一例を模式的に例示する。具体的に、図12は、生産現場で作業する作業者Uを撮影し、得られる顔画像から作業者Uの顔の器官を検出する場面に本発明を適用した例を示している。本変形例に係る検出器生成装置1Bのハードウェア構成及びソフトウェア構成は、上記実施形態に係る検出器生成装置1と同様である。本変形例に係るモニタリング装置2Bのハードウェア構成及びソフトウェア構成は、上記実施形態に係るモニタリング装置2と同様である。本変形例に係る検出器生成装置1B及びモニタリング装置2Bは、運転者以外の対象者の顔画像を取り扱う点を除いて、上記実施形態に係る検出器生成装置1及びモニタリング装置2と同様に動作する。
すなわち、ステップS101では、検出器生成装置1Bの制御部は、学習データ取得部として動作し、被験者の顔の写る第1顔画像及び第1顔画像に写る顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する。被験者の属性が異なる点を除き、本変形例に係るステップS101の処理は、上記実施形態と同様である。次のステップS102では、制御部は、学習処理部として動作し、取得した複数の学習データセットを利用して、検出器の機械学習を実施する。本変形例に係るステップS102の処理は、上記実施形態と同様であってもよいし、上記<4.4>と同様であってもよい。次のステップS103では、制御部は、保存処理部として動作し、機械学習により構築された検出器の構成及び演算パラメータを示す情報を学習結果データとして保存する。これにより、本変形例に係る検出器生成装置1Bは、運転者以外の対象者の顔の写る顔画像から器官の位置を検出する能力を習得した検出器を生成することができる。
一方、モニタリング装置2Bは、検出器生成装置1Bにより構築された検出器を利用して、生産ラインでロボット装置Rと共に作業を行う作業者Uをカメラ41により撮影し、作業者Uについて得られた顔画像から顔の器官の位置を検出する。ステップS301では、モニタリング装置2Bの制御部は、データ取得部として動作し、ロボット装置Rと共に作業を行う作業者Uの顔の写る顔画像をカメラ41から取得する。次のステップS302では、制御部は、検出部として動作し、検出器生成装置1Bにより構築された学習済みの検出器に得られた顔画像を入力することで、作業者Uの顔の器官を顔画像より検出した結果に対応する出力値を検出器から取得する。次のステップS303では、制御部は、作業者Uの顔の器官を検出した結果に関する情報を出力する。
本変形例に係るステップS303において、出力する情報の内容は、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、顔の器官として目を検出した場合、制御部は、検出した各目の位置関係に基づいて、作業者Uの視線方向を推定し、視線方向を推定した結果に関連する情報を出力してもよい。この情報の一例として、ロボット装置Rとの作業に無関係な方向を視線方向が向いている場合に、制御部は、視線方向を作業に関係のある方向に向けるように促す警告を出力してもよい。また、制御部は、作業者Uの視線方向に適合する動作を実施する指示をロボット装置Rに出力してもよい。これにより、本変形例に係るモニタリング装置2Bは、検出器生成装置1Bにより生成された検出器を利用して、作業者Uの顔を撮影することで得られた顔画像から顔の器官の位置を検出することができる。
<4.6>
上記実施形態及び変形例では、顔の器官の位置を顔画像から検出する場面に適用した例を示している。しかしながら、本発明の適用範囲は、このような顔の器官の位置を顔画像から検出する場面に限られなくてもよい。本発明は、何らかの対象物の位置を画像から検出するあらゆる場面に広く適用可能である。
図13は、本発明が適用される他の場面の一例を模式的に例示する。具体的に、図13は、生産ラインRCを流れる製品UCを撮影し、製品UCに欠陥が存在する場合に、得られる画像から製品UCの欠陥の位置を検出する場面に本発明を適用した例を示している。図14は、本変形例に係る検出器生成装置1Cのソフトウェア構成の一例を模式的に例示する。
本変形例に係る製品UCの欠陥は、本発明の「対象物」の一例である。なお、「対象物」は、このような製品の欠陥に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。人間の写る画像が得られる場合、「対象物」は、顔の器官(上記実施形態)の他、例えば、顔そのもの、顔以外の身体部位等であってよい。また、本変形例と同様に製品の写る画像が得られる場合、「対象物」は、例えば、製品そのもの、製品に含まれる何らかの特徴等であってよい。
本変形例に係る検出器生成装置1Cのハードウェア構成は、上記実施形態に係る検出器生成装置1と同様である。図14に示されるとおり、本変形例に係る検出器生成装置1Cのソフトウェア構成も、上記実施形態に係る検出器生成装置1と同様である。また、本変形例に係るモニタリング装置2Cのハードウェア構成及びソフトウェア構成も、上記実施形態に係るモニタリング装置2と同様である。本変形例に係る検出器生成装置1C及びモニタリング装置2Cは、製品の写る画像を取り扱う点を除いて、上記実施形態に係る検出器生成装置1及びモニタリング装置2と同様に動作する。
すなわち、ステップS101では、検出器生成装置1Cの制御部は、学習データ取得部111として動作し、欠陥を含む製品の写る画像611C、及び画像611Cに写る欠陥の位置を示す位置情報612Cの組み合わせによりそれぞれ構成される複数の学習データセット61Cを取得する。画像611Cは、本発明の「第1画像」の一例である。撮影の対象が異なる点を除き、本変形例に係るステップS101の処理は、上記実施形態と同様である。
次のステップS102では、制御部は、学習処理部112として動作し、取得した複数の学習データセット61Cを利用して、検出器5の機械学習を実施する。
ステップS201では、制御部は、各学習データセット61Cの画像611Cを検出器5に入力し、検出器5の演算処理を実行する。これにより、制御部は、各画像611Cに対する第1出力値を検出器5から取得する。ステップS202では、制御部は、各画像611Cに対して得られた第1出力値に基づいて特定される製品の欠陥の検出位置V1Cと対応する位置情報612Cにより示される位置A1Cとの誤差71Cの合計値を算出する。検出位置V1Cは、本発明の「第1検出位置」の一例であり、誤差71Cは、本発明の「第1誤差」の一例である。
ステップS203では、制御部は、各画像611Cに所定の幾何変換を適用することで、各画像611Cに対して画像66Cを生成する。画像66Cは、本発明の「第2画像」の一例である。ステップS204では、制御部は、生成した各画像66Cを検出器5に入力し、検出器5の演算処理を実行する。これにより、制御部は、各画像66Cに対する第2出力値を検出器5から取得する。ステップS205では、制御部は、各第1出力値に基づいて特定される第1検出位置と対応する画像66Cに対して得られた第2出力値に基づいて特定される第2検出位置との第2誤差(誤差73C)の合計値を算出する。
なお、本変形例に係るステップS205では、上記実施形態と同様に、制御部は、各画像611Cに対して得られた検出位置V1Cと対応する画像66Cに対して導出された検出位置V31Cとの差分を誤差73Cとして算出してもよい。また、制御部は、各画像611Cに対して得られた検出位置V1Cに所定の幾何変換を適用することで導出される位置と検出位置V30Cとの差分を誤差73Cとして算出してもよい。
ステップS206では、制御部は、各画像611Cにノイズを付与することで、各画像611Cに対して画像63Cを生成する。画像63Cは、「第3画像」の一例である。ステップS207では、制御部は、生成した各画像63Cを検出器5に入力し、検出器5の演算処理を実行する。これにより、制御部は、各画像63Cに対する第3出力値を検出器5から取得する。ステップS208では、制御部は、各第1出力値に基づいて特定される検出位置V1Cと対応する画像63Cに対して得られた第3出力値に基づいて特定される検出位置V2Cとの誤差72Cの合計値を算出する。検出位置V2Cは、「第3検出位置」の一例であり、誤差72Cは、「第3誤差」の一例である。
ステップS209では、制御部は、算出した各誤差71C〜73Cの合計値が閾値以下であるか否かを判定する。各誤差71C〜73Cの合計値が閾値以下であると判定した場合、制御部は、機械学習の処理を終了し、次のステップS103に処理を進める。一方、各誤差71C〜73Cの合計値が閾値を超えていると判定した場合、制御部は、次のステップS210に処理を進める。ステップS210では、制御部は、各誤差71C〜73Cの合計値が小さくなるように検出器5の訓練を行う。検出器5の各層51〜53のパラメータの値の更新が完了すると、制御部は、ステップS201から処理を繰り返す。
なお、上記本変形例に係るステップS102の処理手順は、上記実施形態と同様である。しかしながら、本変形例に係るステップS102の処理手順は、このような例に限定されなくてもよく、例えば、上記<4.4>と同様であってもよい。この場合、本変形例に係るステップS102の処理において、上記ステップS206〜S208の処理は省略されてよい。ステップS209では、制御部は、算出した各誤差(71C、73C)の合計値が閾値以下であるか否かを判定してもよい。各誤差(71C、73C)の合計値が閾値以下であると判定した場合に、制御部は、次のステップS103に処理を進めてもよい。一方、各誤差(71C、73C)の合計値が閾値を超えていると判定した場合、制御部は、次のステップS210に処理を進めてもよい。ステップS210では、制御部は、各誤差(71C、73C)の合計値が小さくなるように検出器5の訓練を行ってもよい。
ステップS103では、制御部は、保存処理部113として動作し、機械学習により構築された検出器5の構成及び演算パラメータを示す情報を学習結果データ121Cとして保存する。これにより、本変形例に係る検出器生成装置1Cは、製品の写る画像から欠陥(対象物)の位置を検出する能力を習得した検出器5を生成することができる。
一方、モニタリング装置2Cは、検出器生成装置1Cにより構築された検出器5を利用して、生産ラインRCを流れる製品UCを撮影し、製品UCに欠陥が存在する場合に、得られる画像から製品UCの欠陥の位置を検出する。ステップS301では、モニタリング装置2Cの制御部は、データ取得部として動作し、生産ラインRCを流れる製品UCの写る画像をカメラ41から取得する。次のステップS302では、制御部は、検出部として動作し、学習結果データ121Cを参照して、学習済みの検出器5の設定を行う。続いて、制御部は、学習済みの検出器5に得られた画像を入力することで、製品UCの欠陥を画像より検出した結果に対応する出力値を検出器から取得する。次のステップS303では、制御部は、製品UCの欠陥を検出した結果に関する情報を出力する。
本変形例に係るステップS303において、出力する情報の内容は、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、製品UCに欠陥が存在する場合、制御部は、検出した欠陥の位置を示す情報を出力してもよい。また、例えば、制御部は、欠陥が検出された製品UCを別のラインに流す指示を生産ラインRCに出力してもよい。これにより、本変形例に係るモニタリング装置2Cは、検出器生成装置1Cにより生成された検出器5を利用して、製品UCの写る画像から欠陥を検出することで、生産ラインRCを流れる製品UCの状態を監視することができる。
<4.7>
図9に示されるとおり、上記実施形態に係る検出器生成装置1は、検出器を生成する処理及び位置情報を更新する処理を交互に繰り返すことで、位置情報に含まれ得る人為的なノイズによる影響にロバストで、対象者の顔の器官を顔画像から検出可能な検出器を構築することができる。人為的なノイズによる影響にロバストな検出器を構築するという観点から、この検出器を生成する処理及び位置情報を更新する処理を交互に実行する部分のみを抽出して、新たな形態に係る検出器生成装置が構成されてもよい。
図15は、本変形例に係る検出器生成装置1Dのソフトウェア構成の一例を模式的に例示する。本変形例に係る検出器生成装置1Dのハードウェア構成は、上記実施形態に係る検出器生成装置1と同様である。また、図15に示されるとおり、本変形例に係る検出器生成装置1Dのソフトウェア構成も、上記実施形態に係る検出器生成装置1と同様である。
検出器生成装置1Dは、誤差72及び誤差73を導出する処理を省略する点を除き、上記実施形態に係る検出器生成装置1と基本的には同様に動作する。すなわち、第1回目の学習処理のステップS101では、検出器生成装置1Dの制御部は、学習データ取得部111として動作し、車両を運転する被験者の顔の写る顔画像681及び顔画像681に写る顔の器官の位置を示す第1位置情報682の組み合わせによりそれぞれ構成される複数の第1学習データセット68を取得する。第1位置情報682は、オペレータの指定により与えられてもよい。
ステップS102では、制御部は、学習処理部112として動作し、取得した複数の第1学習データセット68を利用して、第1検出器58の機械学習を実施する。本変形例に係るステップS102では、ステップS203〜S208が省略される。ステップS201では、制御部は、各顔画像681を第1検出器58に入力し、第1検出器58の演算処理を実行する。これにより、制御部は、各顔画像681に対する出力値を第1検出器58から取得する。ステップS202では、制御部は、各顔画像681に対して得られた出力値に基づいて特定される検出位置と対応する第1位置情報682により示される位置との誤差の合計値を算出する。
ステップS209では、制御部は、算出された誤差の合計値が閾値以下であるか否かを判定する。誤差の合計値が閾値以下であると判定した場合に、制御部は、機械学習の処理を終了し、ステップS103に処理を進める。一方、誤差の合計値が閾値を超えていると判定した場合には、制御部は、次のステップS210に処理を進める。ステップS210では、制御部は、誤差の合計値が小さくなるように第1検出器58の訓練を行う。第1検出器58のパラメータを調節する方法は、上記実施形態と同様であってよい。これにより、制御部は、各顔画像681が入力されると、対応する第1位置情報682に対応する出力値を出力するように訓練された検出器5を構築する。ステップS103では、制御部は、保存処理部113として動作し、機械学習により構築された第1検出器58の構成及び演算パラメータを示す情報を学習結果データとして保存する。なお、第1回目の学習処理では、このステップS103の処理は省略されてもよい。
本変形例に係る検出器生成装置1Dは、このような機械学習の一連の処理と暫定的に生成された検出器を利用して位置情報を更新する処理とを交互に繰り返す。第2回目の学習処理のステップS101では、制御部は、顔画像681、及び構築された第1検出器58に顔画像681を入力することで当該第1検出器58から得られた出力値に基づいて与えられる第2位置情報692の組み合わせによりそれぞれ構成された複数の第2学習データセット69を取得する。そして、ステップS102では、制御部は、複数の第2学習データセット69を利用して、第2検出器59の機械学習を実施する。この機械学習の処理は、第1回目の学習処理と同様である。これにより、制御部は、各顔画像681が入力されると、対応する第2位置情報692に対応する出力値を出力するように訓練された第2検出器59を構築する。これにより、本変形例に係る検出器生成装置1Dは、人為的なノイズによる影響にロバストな検出器(第2検出器59)を生成することができる。なお、生成された第2検出器59は、上記検出器5と同様に利用されてよい。
なお、図15では、機械学習の処理を2回繰り返す場面を例示している。しかしながら、機械学習の処理を繰り返す回数は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。繰り返しの回数は、3回以上であってもよい。
また、上記<4.5>で記載のとおり、本変形例は、運転者以外の対象者の顔の器官を顔画像から検出する場面に広く適用可能である。そのため、顔画像681は、運転者以外の被験者の顔の写る顔画像に置き換えられてよい。これにより、運転者以外の対象者の顔の写る顔画像から器官の位置を検出する能力を習得した検出器を構築することができる。
更に、上記<4.6>で記載のとおり、本変形例は、何らかの対象物の位置を画像から検出するあらゆる場面に広く適用可能である。そのため、顔画像681は、何らかの対象物の写る画像に置き換えられてよい。各位置情報(682、692)は、対象物の位置を示す位置情報に置き換えられてよい。これにより、対象物の位置を画像から検出する能力を習得した検出器を構築することができる。
§5 実施例
以下、本発明の実施例について説明する。ただし、本発明は、これらの実施例に限定されるものではない。
[第1実施例]
まず、第1実施例では、目尻を検出するための検出器を生成するために、各学習データセットを以下の条件で用意した。検出器には、畳み込みニューラルネットワーク及び全結合ニューラルネットワークを含む学習ネットワークを用いた。学習ネットワークでは、畳み込みニューラルネットワークの出力を全結合ニューラルネットワークの入力に接続した。そして、検出器生成装置(汎用のパーソナルコンピュータ)を用意し、用意した各学習データセットを利用して、用意した検出器生成装置に上記実施形態に係る各処理を実行させた。これにより、第1実施例に係る学習済みの検出器を得た。
<学習データセットの条件>
・件数:3000枚
・顔画像:64×64ピクセルの画像(目の写る部分のみ抽出)
・抽出方法:オペレータの指定した目頭及び目尻の位置に基づいて目の写る部分を抽出
・顔画像の取得条件:近赤外線カメラにより被験者の顔を撮影
・位置情報:目尻の位置を示す
・位置情報の取得条件:オペレータの入力(オペレータにマウスを操作させて、顔画像内で目尻の位置を指定させた)
[第2実施例]
第1実施例に係る学習済みの検出器を利用して、第1実施例で利用した各学習データセットの顔画像から目尻の位置を検出し、検出結果により位置情報を更新することで、新たな各学習データセットを得た。そして、得られた各学習データセットを利用して、検出器生成装置に上記実施形態に係る機械学習の処理を実行させた。これにより、第2実施例に係る学習済みの検出器を得た。つまり、第2実施例に係る学習済みの検出器は、上記実施形態に係る機械学習の処理を2回繰り返すことで生成された学習済みの検出器に相当する。
[第3実施例]
第2実施例に係る学習済みの検出器を利用して、第2実施例で利用した各学習データセットの顔画像から目尻の位置を検出し、検出結果により位置情報を更新することで、新たな各学習データセットを得た。そして、得られた各学習データセットを利用して、検出器生成装置に上記実施形態に係る機械学習の処理を実行させた。これにより、第3実施例に係る学習済みの検出器を得た。つまり、第3実施例に係る学習済みの検出器は、上記実施形態に係る機械学習の処理を3回繰り返すことで生成された学習済みの検出器に相当する。
[比較例]
上記第1実施例において、誤差72(第3誤差)及び誤差73(第2誤差)の計算を省略することで、比較例に係る検出器を得た。すなわち、比較例では、上記実施形態に係る処理手順のうち、ステップS203〜S208の処理を省略した。そして、ステップS209及びS210では、各誤差71〜73を誤差71(第1誤差)に置き換えた。
<評価方法>
次に、第1〜第3実施例及び比較例に係る検出器の検出精度を次の方法で評価した。すなわち、カメラにより対象者の顔を撮影し、学習用の顔画像と同様に、評価用の5000枚の顔画像(64×64ピクセル)を用意した。各顔画像を各検出器に入力し、各顔画像に対する目尻の位置の第1検出結果を各検出器から得た。また、評価用の各顔画像を幾何変換(平行移動+回転移動)することで変換画像を生成した。生成した各変換画像を各検出器に入力し、各変換画像に対する目尻の位置の第2検出結果を各検出器から得た。続いて、各検出器の第1検出結果の示す位置と第2検出結果の示す位置に上記幾何変換の逆変換を適用することで得られた位置との差分(ずれ)をピクセル単位で算出した。そして、得られた差分の平均及び標準偏差を算出した。差分の平均及び標準偏差の算出結果は、以下の表1のとおりである。
┌───────┬─────┬──────┬─────┬──────┐
│ 第1実施例 │第2実施例 第3実施例 │比較例 │
├───────┼─────┼──────┼─────┼──────┤
平均(pixel) 0.252 │0.131 0.0866 │0.83 │
├───────┼─────┼──────┼─────┼──────┤
標準偏差(pixel) 0.101 │0.0581 0.0336 │0.41 │
└───────┴─────┴──────┴─────┴──────┘
表1に示されるとおり、第1誤差と共に第2誤差及び第3誤差の学習を実施する第1〜第3実施例に係る検出器の検出のブレは、第2誤差及び第3誤差の学習を実施しない比較例よりも小さかった。このことから、上記実施形態によれば、第1誤差のみの学習を実施するケースよりも検出結果のブレの少ない検出器を生成可能であることが分かった。また、第1実施例から第3実施例になるにつれ、検出器による目尻の検出のブレが低減した。このことから、検出器を生成する処理と位置情報を更新する処理とを交互に繰り返すことで、検出器の検出のブレを抑えることができることが分かった。したがって、上記実施形態によれば、対象物をより高精度に検出可能な検出器を生成可能であることが分かった。
1…検出器生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
111…学習データ取得部、112…学習処理部、
113…保存処理部、
121…学習結果データ、
81…検出器生成プログラム、91…記憶媒体、
2…モニタリング装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
211…データ取得部、212…検出部、
213…出力部、
221…顔画像、
82…モニタリングプログラム、92…記憶媒体、
31…カメラ、41…カメラ、
5…検出器、
51…入力層、52…中間層(隠れ層)、53…出力層、
61…学習データセット、
611…顔画像(第1顔画像)、612…位置情報、
63…顔画像(第3顔画像)、66…顔画像(第2顔画像)、
71…誤差(第1誤差)、72…誤差(第3誤差)、
73…誤差(第2誤差)、
A1…位置、
V1…検出位置(第1検出位置)、V2…検出位置(第3検出位置)、
V30・V31…検出位置(第2検出位置)、
T…被験者、D…運転者(対象者)

Claims (10)

  1. 車両を運転する被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部と、
    前記複数の学習データセットを利用して、検出器の機械学習を実施する学習処理部と、
    を備え、
    前記検出器の機械学習を実施することは、
    前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、
    前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、
    前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、
    前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、
    を含む、
    検出器生成装置。
  2. 前記所定の幾何変換は、平行移動及び回転移動を伴う変換である、
    請求項1に記載の検出器生成装置。
  3. 前記各学習データセットの前記位置情報は、機械学習を実施済みの他の検出器に当該位置情報に組み合わせられる前記第1顔画像を入力することで、当該他の検出器から得られる出力値に基づいて与えられる、
    請求項1又は2に記載の検出器生成装置。
  4. 前記器官は、目、鼻、口、眉、顎及びこれらの組み合わせから選択される、
    請求項1から3のいずれか1項に記載の検出器生成装置。
  5. 前記検出器は、ニューラルネットワークにより構成される、
    請求項1から4のいずれか1項に検出器生成装置。
  6. 車両を運転する運転者の顔の写る顔画像を取得するデータ取得部と、
    請求項1から5のいずれか1項の検出器生成装置による機械学習を実施済みの前記検出器に取得した前記顔画像を入力することで、前記運転者の前記顔の器官を検出した結果に対応する出力値を前記検出器から取得する検出部と、
    前記運転者の顔の器官を検出した結果に関する情報を出力する出力部と、
    を備える、
    モニタリング装置。
  7. コンピュータが、
    車両を運転する被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
    前記複数の学習データセットを利用して、検出器の機械学習を実施するステップと、
    を実行し、
    前記検出器の機械学習を実施するステップは、
    前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、
    前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、
    前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、
    前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、
    を含む、
    検出器生成方法。
  8. コンピュータに、
    車両を運転する被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
    前記複数の学習データセットを利用して、検出器の機械学習を実施するステップと、
    を実行させるための検出器生成プログラムであって、
    前記検出器の機械学習を実施するステップは、
    前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、
    前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、
    前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、
    前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、
    を含む、
    検出器生成プログラム。
  9. 被験者の顔の写る第1顔画像、及び前記第1顔画像に写る前記顔の器官の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部と、
    前記複数の学習データセットを利用して、検出器の機械学習を実施する学習処理部と、
    を備え、
    前記検出器の機械学習を実施することは、
    前記各学習データセットの前記第1顔画像を前記検出器に入力することで、前記各学習データセットの前記第1顔画像に対する第1出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記器官の第1検出位置と当該第1顔画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、
    前記各学習データセットの前記第1顔画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1顔画像に対して第2顔画像を生成するステップと、
    前記各第2顔画像を前記検出器に入力することで、前記各第2顔画像に対する第2出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1顔画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1顔画像に対して生成された前記第2顔画像に対して得られた前記第2出力値に基づいて特定される前記器官の第2検出位置との第2誤差の合計値を算出するステップと、
    前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、
    を含む、
    検出器生成装置。
  10. 対象物の写る第1画像、及び前記第1画像に写る前記対象物の位置を示す位置情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する学習データ取得部と、
    前記複数の学習データセットを利用して、検出器の機械学習を実施する学習処理部と、
    を備え、
    前記検出器の機械学習を実施することは、
    前記各学習データセットの前記第1画像を前記検出器に入力することで、前記各学習データセットの前記第1画像に対する第1出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1画像に対して得られた前記第1出力値に基づいて特定される前記対象物の第1検出位置と当該第1画像に組み合わせられた前記位置情報により示される前記位置との第1誤差の合計値を算出するステップと、
    前記各学習データセットの前記第1画像に所定の幾何変換を適用することで、前記各学習データセットの前記第1画像に対して第2画像を生成するステップと、
    前記各第2画像を前記検出器に入力することで、前記各第2画像に対する第2出力値を前記検出器から取得するステップと、
    前記各学習データセットの前記第1画像に対して得られた前記第1出力値に基づいて特定される前記第1検出位置と当該第1画像に対して生成された前記第2画像に対して得られた前記第2出力値に基づいて特定される前記対象物の第2検出位置との第2誤差の合計値を算出するステップと、
    前記第1誤差の合計値及び前記第2誤差の合計値が小さくなるように前記検出器を訓練するステップと、
    を含む、
    検出器生成装置。
JP2018162682A 2018-08-31 2018-08-31 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム Active JP7035912B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018162682A JP7035912B2 (ja) 2018-08-31 2018-08-31 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム
PCT/JP2019/010186 WO2020044629A1 (ja) 2018-08-31 2019-03-13 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018162682A JP7035912B2 (ja) 2018-08-31 2018-08-31 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム

Publications (3)

Publication Number Publication Date
JP2020035289A true JP2020035289A (ja) 2020-03-05
JP2020035289A5 JP2020035289A5 (ja) 2021-03-04
JP7035912B2 JP7035912B2 (ja) 2022-03-15

Family

ID=69645123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018162682A Active JP7035912B2 (ja) 2018-08-31 2018-08-31 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム

Country Status (2)

Country Link
JP (1) JP7035912B2 (ja)
WO (1) WO2020044629A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008536211A (ja) * 2005-03-31 2008-09-04 フランス テレコム ニューラルネットワークを実現するオブジェクトイメージにおいて興味のあるポイントを位置決めするシステム及び方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008536211A (ja) * 2005-03-31 2008-09-04 フランス テレコム ニューラルネットワークを実現するオブジェクトイメージにおいて興味のあるポイントを位置決めするシステム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
山下隆義 他: "Deep Convolutional Neural Networkによる顔器官点検出における最適なミ", SSII2015 第21回 画像センシングシンポジウム 講演論文集 [CD−ROM] SYMPOSIUM ON S, JPN6022002851, 10 June 2015 (2015-06-10), JP, pages 2 - 13, ISSN: 0004695459 *

Also Published As

Publication number Publication date
WO2020044629A1 (ja) 2020-03-05
JP7035912B2 (ja) 2022-03-15

Similar Documents

Publication Publication Date Title
JP6946831B2 (ja) 人物の視線方向を推定するための情報処理装置及び推定方法、並びに学習装置及び学習方法
US10559062B2 (en) Method for automatic facial impression transformation, recording medium and device for performing the method
JP4950787B2 (ja) 画像処理装置及びその方法
WO2021135827A1 (zh) 视线方向确定方法、装置、电子设备及存储介质
KR20160053612A (ko) 영상 학습 모델을 이용한 영상 생성 방법 및 장치
EP3080779A1 (en) Efficient facial landmark tracking using online shape regression method
CN111696196B (zh) 一种三维人脸模型重建方法及装置
JP7149202B2 (ja) 行動分析装置および行動分析方法
JP2013242757A (ja) 画像処理装置及び画像処理方法、並びにコンピューター・プログラム
JPWO2019003973A1 (ja) 顔認証装置、顔認証方法およびプログラム
JP2018005357A (ja) 情報処理装置および情報処理方法
WO2020044630A1 (ja) 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム
JP6283124B2 (ja) 画像特性推定方法およびデバイス
JP2019148980A (ja) 画像変換装置及び画像変換方法
KR20210018114A (ko) 교차 도메인 메트릭 학습 시스템 및 방법
JP2019012497A (ja) 部位認識方法、装置、プログラム、及び撮像制御システム
WO2020044629A1 (ja) 検出器生成装置、モニタリング装置、検出器生成方法及び検出器生成プログラム
CN115471863A (zh) 三维姿态的获取方法、模型训练方法和相关设备
JP7349290B2 (ja) 対象物認識装置、対象物認識方法、及び対象物認識プログラム
CN116670565A (zh) 用于确定符合性的方法和系统
KR101543150B1 (ko) 행동 인식 장치 및 그의 행동 인식 방법
JP6962450B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2019228195A1 (zh) 空间环境的感知方法及装置
KR20210048622A (ko) 딥러닝 기반 이미지 복원을 이용한 성별 인식 장치 및 방법
Klingner et al. Modeling human movements with self-organizing maps using adaptive metrics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220214

R150 Certificate of patent or registration of utility model

Ref document number: 7035912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150