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

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

▶ キヤノン株式会社の特許一覧

特許7523919電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム
<>
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図1
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図2
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図3
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図4
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図5
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図6
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図7
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図8
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図9
  • 特許-電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラム
(51)【国際特許分類】
   G06F 18/2433 20230101AFI20240722BHJP
   G06N 20/00 20190101ALI20240722BHJP
【FI】
G06F18/2433
G06N20/00 130
【請求項の数】 13
(21)【出願番号】P 2020018948
(22)【出願日】2020-02-06
(65)【公開番号】P2021125037
(43)【公開日】2021-08-30
【審査請求日】2023-01-30
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【弁理士】
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】芝 秀規
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2017-139812(JP,A)
【文献】特開2013-164531(JP,A)
【文献】特開2010-243667(JP,A)
【文献】特許第6626549(JP,B1)
【文献】特開2018-056890(JP,A)
【文献】特開2007-005849(JP,A)
【文献】米国特許出願公開第2010/0253792(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 18/2433
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
電子機器であって、
前記電子機器の外部音声データおよび内部音声データを取得する取得手段と、
取得された前記外部音声データおよび前記内部音声データを、機械学習された学習済みモデルに入力して、前記電子機器が持たれている状態であるかの推定を行う推定手段と、
前記推定の結果に応じて、省電力の制御を行う制御手段と、
を備えることを特徴とする電子機器。
【請求項2】
前記学習済みモデルは、学習用の外部音声データおよび学習用の内部音声データを入力とし、前記学習用の外部音声データおよび前記学習用の内部音声データが取得されたときに前記電子機器が持たれていたか否かを示す情報を教師データとして機械学習されることにより得られることを特徴とする請求項1に記載の電子機器。
【請求項3】
前記学習用の外部音声データおよび前記学習用の内部音声データが取得されたときに、前記電子機器が手ブレ補正を実施していた場合、前記教師データに前記電子機器が持たれていたことを示す情報が設定されることを特徴とする請求項2に記載の電子機器。
【請求項4】
前記学習用の外部音声データおよび前記学習用の内部音声データが取得されたときに、前記電子機器が固定部材に固定されていた場合、前記教師データに前記電子機器が持たれていなかったことを示す情報が設定されることを特徴とする請求項2または3に記載の電子機器。
【請求項5】
前記電子機器に装着可能な部材が装着されている場合と装着されていない場合とのそれぞれに対応する前記学習用の外部音声データと前記学習用の内部音声データと前記教師データとを用いて、前記機械学習が行われることを特徴とする請求項2乃至4のうち何れか1項に記載の電子機器。
【請求項6】
前記取得手段は、一定時間の前記学習用の外部音声データおよび前記学習用の内部音声データを取得する際に、前記一定時間より短い時間間隔で、前記学習用の外部音声データおよび前記学習用の内部音声データを取得することを特徴とする請求項2乃至5のうち何れか1項に記載の電子機器。
【請求項7】
電子機器であって、
前記電子機器の外部音声データおよび内部音声データを取得する取得手段と、
取得された前記外部音声データおよび前記内部音声データを、前記外部音声データおよび前記内部音声データを機械学習された学習済みモデルに入力して前記電子機器が持たれている状態であるかの推定を行う推定装置に送信し、前記推定装置から推定結果を受信する通信手段と、
受信した前記推定結果に応じて、省電力の制御を行う制御手段と、
を備えることを特徴とする電子機器。
【請求項8】
学習用の電子機器の外部音声データおよび学習用の電子機器の内部音声データを入力とし、前記学習用の電子機器の外部音声データおよび前記学習用の電子機器の内部音声データが取得されたときに電子機器が持たれていたか否かを示す情報を教師データとして学習モデルの機械学習を行う学習手段、
を備えることを特徴とする学習装置。
【請求項9】
電子機器を制御する電子機器の制御方法であって、
前記電子機器の外部音声データおよび内部音声データを取得する工程と、
取得された前記外部音声データおよび前記内部音声データを、機械学習された学習済みモデルに入力して、前記電子機器が持たれている状態であるかの推定を行う工程と、
前記推定の結果に応じて、省電力の制御を行う工程と、
を備えることを特徴とする電子機器の制御方法。
【請求項10】
学習装置によって実行される学習方法であって、
学習用の電子機器の外部音声データおよび学習用の電子機器の内部音声データを入力とし、前記学習用の電子機器の外部音声データおよび前記学習用の電子機器の内部音声データが取得されたときに電子機器が持たれていたか否かを示す情報を教師データとして学習モデルの機械学習を行う工程、
を備えることを特徴とする学習方法。
【請求項11】
推論装置によって実行される学習済みモデルであって、
学習用の電子機器の外部音声データおよび学習用の電子機器の内部音声データを入力とし、前記学習用の電子機器の外部音声データおよび前記学習用の電子機器の内部音声データが取得されたときに電子機器が持たれていたか否かを示す情報を教師データとして学習モデルの機械学習を行うことにより生成され、前記電子機器の外部音声データと前記電子機器の内部音声データが入力されることにより前記電子機器が持たれていたか否かを示す情報を出力すよう、前記推論装置を機能させるための学習済みモデル。
【請求項12】
請求項1乃至7のうち何れか1項に記載の電子機器の各手段をコンピュータに実行させるためのプログラム。
【請求項13】
請求項8に記載の学習装置の学習手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器、学習装置、電子機器の制御方法、学習方法、学習済みモデルおよびプログラムに関する。
【背景技術】
【0002】
例えば、デジタルカメラは、撮像センサの高画素化や処理負荷の増大等に起因して、通常動作しているときの消費電力が増大している傾向にある。消費電力が増大すると、デジタルカメラに内蔵されているバッテリが長持ちしなくなる。そこで、電源の省電力化を図る技術が用いられている。関連する技術として、特許文献1の技術が提案されている。特許文献1の技術は、ストラップ取付部にかかる張力の検出結果と、カメラ本体の動きの検出結果とに基づいて、少なくとも1つの機能を停止する省電力モードに移行する制御を行う。
【0003】
また、関連する技術として、特許文献2の技術が提案されている。特許文献2の技術は、電子機器本体に取り付けられたストラップと、ストラップに設けられた圧力センサと、圧力センサの出力結果とに基づいて、通常モードから節電モードへ切り換える。さらに、関連する技術として、特許文献3の技術が提案されている。特許文献3の技術は、角速度センサへ電力の供給を制御する電力供給制御手段を有している。この電力供給制御手段は、加速度センサにより携帯端末自体の加速度が検出されたとき、角速度センサへ電力を供給する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2010-153991号公報
【文献】特開2013-225785号公報
【文献】特開2015-46797号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した特許文献1および特許文献2の技術では、省電力化を図るために、ストラップの張力を検出する圧力センサを必要とするため、装置構成が複雑化する。また、デジタルカメラにストラップが用いられない場合、省電力化を図ることができない。特許文献3の技術は、加速度センサを用いて省電力化を図っているため、例えば、ユーザが、デジタルカメラを持ちながら歩いて使用する場合や、カバン等の中にデジタルカメラを入れている場合に、省電力化を図ることができない。以上の問題は、デジタルカメラだけではなく、任意の電子機器にも生じ得るものである。
【0006】
本発明は、電子機器の省電力化を図ることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明の電子機器は、前記電子機器の外部音声データおよび内部音声データを取得する取得手段と、取得された前記外部音声データおよび前記内部音声データを、機械学習された学習済みモデルに入力して、前記電子機器が持たれている状態であるかの推定を行う推定手段と、前記推定の結果に応じて、省電力の制御を行う制御手段と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、電子機器の省電力化を図ることができる。
【図面の簡単な説明】
【0009】
図1】本実施形態のシステムの一例を示す図である。
図2図1の各装置のハードウェア構成を示す図である。
図3】音声入力部のハードウェア構成を示す図である。
図4図2の各装置のソフトウェア機能のブロックを示す図である。
図5】学習モデルの入力データおよび出力データ示す図である。
図6】入力データおよび教師データの対応関係を示すテーブルである。
図7】システムにおけるデータの流れを示す図である。
図8】デジタルカメラの第1の処理の流れおよびクライアント端末の処理の流れの一例を示すフローチャートである。
図9】データサーバーおよび学習サーバーの処理の流れの一例を示すフローチャートである。
図10】デジタルカメラの第2の処理の流れ一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
【0011】
以下、図面を参照して、本実施形態について説明する。図1は、本実施形態のシステム100の一例を示す図である。デジタルカメラ101は、ユーザが使用する電子機器である。以下、電子機器はデジタルカメラ101(撮像装置)であるものとして説明するが、本実施形態は任意の電子機器に適用できる。例えば、電子機器は、スマートフォンやタブレット端末等のモバイル端末であってもよいし、デジタルカメラ等であってもよい。デジタルカメラ101は、クライアント端末102と、通信部103を介して、通信可能に接続されている。通信部103を介した通信は、有線通信であってもよいし、無線通信であってもよい。
【0012】
学習サーバー104は、学習モデルを機械学習させることが可能な学習装置である。以下、学習サーバー104は、機械学習としてディープラーニングを行うものとして説明する。ただし、学習サーバー104が行う機械学習は、ディープラーニングには限定されない。例えば、学習サーバー104は、決定木やサポートベクターマシン等の任意の機械学習アルゴリズムを用いて機械学習を行ってもよい。
【0013】
学習サーバー104は、ローカルネットワーク106を介して、データサーバー105と通信可能に接続されている。クライアント端末102は、ローカルネットワーク106を介して、有線通信または無線通信により、学習サーバー104と通信を行うことができる。学習サーバー104は、例えば、クラウドサーバやエッジコンピュータ等である。
【0014】
図2は、図1の各装置のハードウェア構成を示す図である。まず、デジタルカメラ101について説明する。CPU201は、デジタルカメラ101の全体の制御を行う。また、CPU201は、電源を制御する制御手段に対応する。バッテリ200Bは、デジタルカメラ101の電源である。CPU201は、電源としてのバッテリ200Bを制御することができる。ROM202は、CPU201が動作するためのプログラムやデータを記憶する。RAM203は、CPU201がROM202から読み出したプログラムや動作上のデータを一時的に展開するためのメモリである。CPU201が、RAM203に展開されたプログラムを実行することで、本実施形態のデジタルカメラ101の処理が実現される。GPU204は、画像処理用の演算や行列演算等を高速で行い、多くのデータを並列処理できるように演算処理に特化した集積回路である。GPU204は、データを多く並列処理することで効率的な演算を行うことができる。GPU204が行う演算は、例えば、積和演算である。
【0015】
GPU204は、ディープラーニングで学習させた学習済みモデルで推定処理を行う場合に好適に用いられる。そこで、本実施形態では、GPU204が、ディープラーニングで学習させた学習済みモデルを用いた推定処理を行うものとする。ただし、推定処理は、CPU201により行われてもよいし、CPU201とGPU204とが協働して行われてもよい。
【0016】
音声入力部205は、デジタルカメラ101の外部音声および内部音声を取得して、音声データに変換する。音声入力部205のハードウェア構成の詳細については後述する。I/F206は、デジタルカメラ101とクライアント端末102との間で通信部103を介してデータの授受を行うためのインタフェースである。I/F206は、通信手段に対応する。入力部207は、画像センサやモーションセンサ等を含んで構成される。画像センサは、デジタルカメラ101が撮影を行うためのセンサである。モーションセンサは、手ブレ補正を行うための動きを検知する。また、入力部207は、ユーザからの指示を受け付ける機能を有する。例えば、入力部207は、デジタルカメラ101に対する撮影の指示やカメラの動作モードの指定をするスイッチを用いた指示等を受け付ける。
【0017】
表示部208は、入力部207の画像センサで撮影中の画像や撮影済みの画像、動作状態等を表示することができる。カメラエンジン209は、入力部207の画像センサが取得した画像を処理する。また、カメラエンジン209は、記憶部210に記憶された画像を表示部208に表示するための画像処理を行う。記憶部210は、デジタルカメラ101が撮影した静止画や動画の画像データを記憶する。システムバス211は、デジタルカメラ101を構成する各ブロックを接続する。
【0018】
次に、クライアント端末102について説明する。CPU212は、クライアント端末102の全体の制御を行う。HDD213は、CPU212が動作するためのプログラムやデータを記憶する。RAM214は、CPU212がHDD213から読み出したプログラムや動作上のデータを一時的に展開するためのメモリである。CPU212が、RAM214に展開されたプログラムを実行することで、本実施形態におけるクライアント端末102の処理が実現される。NIC215は、ローカルネットワーク106を介して、学習サーバー104やデータサーバー105と通信するインターフェースカードである。
【0019】
I/F216は、クライアント端末102とデジタルカメラ101の間で通信部103を介してデータの授受を行うインタフェースである。入力部217は、クライアント端末102を操作するためのキーボードやマウス等である。表示部218は、クライアント端末102に入力されている情報等を表示する。システムバス219は、クライアント端末102を構成する各ブロックを接続する。
【0020】
次に、学習サーバー104について説明する。CPU220は、学習サーバー104の全体の制御を行う。HDD221は、CPU220が動作するためのプログラムやデータを記憶する。RAM222は、CPU220がHDD221から読み出したプログラムや動作上のデータを一時的に展開するためのメモリである。CPU220が、RAM222に展開されたプログラムを実行することで、本実施形態における学習サーバー104の処理が実現される。GPU223は、GPU204と同様、多くのデータを並列処理することが可能な集積回路である。このため、GPU223は、学習処理に好適な回路である。学習サーバー104が行う学習処理は、GPU223が行うものとする。ただし、学習処理は、CPU220が行ってもよいし、CPU220とGPU223とが協働して行ってもよい。本実施形態では、学習サーバー104が行う学習処理は、学習モデルを含む学習プログラムが実行されることにより実現される。
【0021】
NIC224は、ローカルネットワーク106を介して、クライアント端末102やデータサーバー105と通信するインターフェースカードである。入力部225は、学習サーバー104を操作するためのキーボードやマウス等である。表示部226は、学習サーバー104に入力されている情報等を表示する。表示部226は、例えば、ディスプレイ等である。システムバス227は、学習サーバー104を構成する各ブロックを接続する。
【0022】
次に、データサーバー105について説明する。CPU228は、データサーバー105の全体の制御を行う。HDD229は、CPU228が動作するためのプログラムやデータを記憶する。RAM230は、CPU228がHDD229から読み出したプログラムや動作上のデータを一時的に展開するためのメモリである。CPU228が、RAM230に展開されたプログラムを実行することで、本実施形態におけるデータサーバー105の処理が実現される。NIC231は、ローカルネットワーク106を介して、クライアント端末102や学習サーバー104と通信するインターフェースカードである。入力部232は、データサーバー105を操作するためのキーボードやマウス等である。表示部233は、データサーバー105に入力されている情報等を表示する。表示部233は、例えば、ディスプレイ等である。システムバス234は、データサーバー105を構成する各ブロックを接続する。
【0023】
次に、音声入力部205について説明する。図3は、音声入力部205のハードウェア構成を示す図である。外部音声取得部301は、デジタルカメラ101の外部の音声を取得するためのマイク等である。ゲイン部302は、外部音声取得部301が取得した音声信号を増幅する。ADC部303は、外部音声取得部301が取得したアナログ音声信号をデジタル処理するため、増幅されたアナログ音声信号をデジタル音声信号に変換する。
【0024】
内部音声取得部304は、デジタルカメラ101の内側の音声を取得するためのマイク等である。ゲイン部305は、内部音声取得部304で取得した音声信号を増幅する。ADC部306は、内部音声取得部304が取得したアナログ音声信号をデジタル処理するため、増幅されたアナログ音声信号をデジタル音声信号に変換する。音声処理部307は、ADC部303およびADC部306でデジタル信号に変換された音声信号をデジタル処理する。音声処理部307が、外部音声信号をデジタル処理することで、外部音声データが生成され、内部音声信号をデジタル処理することで、内部音声データが生成される。
【0025】
次に、図2の各装置のソフトウェア機能を説明する。図4は、図2の各装置のソフトウェア機能のブロックを示す図である。デジタルカメラ101のカメラ制御部401は、デジタルカメラ101全体を制御する制御手段である。カメラ制御部401は、CPU201がRAM203に展開されたプログラムを実行することで実現される。カメラ制御部401は、入力部207が受け付けたユーザ操作に応じて、画像センサからの入力をカメラエンジン209で処理させる。また、カメラ制御部401は、入力部207が受け付けたユーザ操作に応じて、記憶部210に記憶された画像データを表示部208に表示させる制御も行う。
【0026】
推定部402は、取得された外部音声データおよび内部音声データを学習済みモデルに入力して、推定処理を実行する推定手段である。推定部402は、GPU204により実現される。データ取得部403は、音声入力部205から入力される外部音声データ(デジタルカメラ101の外部の音声)および内部音声データ(デジタルカメラ101の内部の音声)を取得する。データ取得部403は、音声入力部205に対応する取得手段である。データ取得部403は、取得した外部音声データおよび内部音声データを推定部402に受け渡す。データ送受信部404は、データ取得部403が取得した外部音声データおよび内部音声データを、クライアント端末102に送信する。また、データ送受信部404は、学習サーバー104が機械学習した学習済みモデルを、クライアント端末102からI/F206を経由して受信する。
【0027】
クライアント端末102のクライアント端末制御部405は、クライアント端末102全体を制御する。例えば、ユーザが、表示部218を視認しながら、学習用データの送信要求の指示を入力部217に対して行ったとする。この場合、クライアント端末制御部405は、入力部217に対する指示に基づき、デジタルカメラ101から学習用データを取得して、取得した学習用データをデータサーバー105に送信する指示を行う。また、ユーザが、表示部218を視認しながら、学習済みモデルの送信要求の指示を入力部217に対して行ったとする。クライアント端末制御部405は、入力部217に対する指示に基づき、学習サーバー104から学習済みモデルを取得して、取得した学習済みモデルをデジタルカメラ101に送信する指示を行う。
【0028】
データ送受信部406は、デジタルカメラ101が送信した学習用データをI/F216で受信し、NIC215を介して、データサーバー105に送信する。また、データ送受信部406は、学習サーバー104が学習して生成された学習済みモデルデータを、NIC215で受信し、I/F216を介して、デジタルカメラ101に送信する。
【0029】
データサーバー105のデータサーバー制御部407は、データサーバー105全体を制御する。データサーバー制御部407は、クライアント端末102から学習用データを受信した場合、学習用データをデータ記憶部409に記憶する。また、データサーバー制御部407は、学習サーバー104から学習用データの送信要求を受信した場合、学習用データを学習サーバー104に送信する制御を行う。データ収集提供部408は、クライアント端末102が送信した学習用データをNIC231で受信してデータを収集する。データ記憶部409は、NIC231で受信した学習用データをHDD229に記憶する。また、データ記憶部409は、学習サーバー104が機械学習するための学習用データを、HDD229から読み出して、読み出した学習用データをNIC231に受け渡す。データ収集提供部408は、学習サーバー104が機械学習するための学習用データを、NIC231を介して、学習サーバー104に送信する。
【0030】
学習サーバー104の学習サーバー制御部410は、学習サーバー104全体を制御する。例えば、ユーザが、表示部226を視認しながら、学習処理の指示を行ったとする。学習サーバー制御部410は、学習処理の指示に基づき、データサーバー105から学習用データを取得する制御を行う。そして、学習サーバー制御部410は、学習部414に機械学習を行わせる。学習サーバー制御部410は、学習部414が行う機械学習により生成される学習済みモデルをクライアント端末102に送信する制御を行う。データ送受信部411は、データサーバー105から送信される学習用データを、NIC224を介して受信する。また、データ送受信部411は、学習サーバー104が送信する学習済みモデルを、NIC224、介してクライアント端末102に送信する。
【0031】
データ管理部412は、データ送受信部411が受信した学習用データを使用するか、またはデータ送受信部411から学習済みモデルを送信するかを判定する。学習用データは、全てのデータが学習済みモデルに対する入力データとして用いられるのではなく、一部が検証用データとして用いられてもよい。学習用データを、学習済みモデルに対する入力データと検証用データとに分割する手法としては、例えば、ホールドアウト法等が適用され得る。データ加工部413は、学習用データを、学習済みモデルに対する入力データと検証用データとに分割する処理等を行う。データ加工部413が加工したデータは、RAM222またはHDD221に記憶される。
【0032】
学習部414は、RAM222またはHDD221に記憶されている学習用データを使用して、学習モデルの機械学習を行う学習手段である。学習部414の機能は、GPU223により実現され得る。学習モデルの機械学習が終了すると、学習済みモデルが得られる。学習部414が行う機械学習の詳細については後述する。データ記憶部415は、機械学習された学習済みモデルを記憶する。データ記憶部415は、HDD221等により実現される。
【0033】
図5および図6を用いて、学習部414が行う機械学習について説明する。図5は、学習モデルの入力データおよび出力データ示す図である。本実施形態では、学習モデル501はニューラルネットワークであるものとして説明する。ただし、学習モデル501は、ニューラルネットワークには限定されない。学習モデル501には、外部音声データおよび内部音声データが入力される。外部音声データは、音声入力部205の外部音声取得部301で取得されたデジタルの音声データである。内部音声データは、音声入力部205の内部音声取得部304で取得されたデジタルの音声データである。学習モデル501は、外部音声データおよび内部音声データを入力として、推定処理を行い、推定の結果(推定結果)として、手持ち判定結果を出力する。手持ち判定結果は、デジタルカメラ101がユーザの手等により持たれているか否かを示す推定結果である。
【0034】
図6は、学習部414が学習モデル501の機械学習を行う際の入力データおよび教師データの対応関係を示すテーブルである。本実施形態では、学習部414は、学習モデル501の教師あり学習を行う。図6に示されるテーブルのうち、学習用データIDは、学習用データを識別する識別番号を示す。図6に示されるように、学習用の外部音声データ(Wav_EX_01)と学習用の内部音声データ(Wav_IN_01)とは、セットで記憶されている。学習用の外部音声データ(Wav_EX_01)と学習用の内部音声データ(Wav_IN_01)とは、同時刻に外部音声取得部301と内部音声取得部304とから取得された音声データである。また、学習用データIDには、入力データと教師データとが対応付けられている。
【0035】
教師データは、外部音声データおよび内部音声データが取得されたときと同時刻に、デジタルカメラ101が持たれていたかを否かを示すデータである。教師データが「True」である場合、デジタルカメラ101が持たれていたことを示す。この場合、ユーザが、デジタルカメラ101を手で持っていたことを示す。教師データが「False」である場合、デジタルカメラ101が持たれていなかったことを示す。この場合、ユーザが、デジタルカメラ101を手で持っていなかったことを示す。デジタルカメラ101が持たれていたか否かを示す情報は、デジタルカメラ101による撮影時に、ユーザが入力部207を用いて設定されてもよい。これにより、外部音声データおよび内部音声データが取得されたときと同時刻に、ユーザがデジタルカメラ101を手で持っていたか否かを特定することができる。
【0036】
また、デジタルカメラ101のカメラ制御部401は、撮影時に手ブレ補正を実施している場合は、手で持っていると判定できる。この場合、カメラ制御部401は、外部音声データおよび内部音声データが取得されたときと同時刻に、ユーザがデジタルカメラ101を手で持っていたと判定できる。従って、カメラ制御部401は、対応する教師データとしてデジタルカメラ101が持たれていたことを示す「True」を設定する。
【0037】
一方、デジタルカメラ101が三脚等の固定部材に固定されている場合、ユーザはデジタルカメラ101を手で持っていないと想定される。このため、デジタルカメラ101が固定部材を検出した場合、外部音声データおよび内部音声データが取得されたときと同時刻に、ユーザがデジタルカメラ101を手で持っていないと判定できる。従って、カメラ制御部401は、対応する教師データとしてデジタルカメラ101が持たれていなかったことを示す「False」を設定する。以上のようにして、教師データが設定される。
【0038】
ここで、ユーザがデジタルカメラ101を持っているとき(握っているとき)と、持っていないとき(握っていないとき)とでは、外部音声がデジタルカメラ101内部に音声を伝達する伝達関数が変化する。従って、外部音声と内部音声とに基づいて、ユーザがデジタルカメラ101を持っているか否かを判断することは可能である。ただし、ユーザによるデジタルカメラ101の持ち方によっては、伝達関数は無数に変化する。このため、伝達関数を算出して、算出された伝達関数に基づいて、ユーザがデジタルカメラ101を持っているか否かを判定することは難しい。
【0039】
そこで、本実施形態では、学習部414が、上述した入力データおよび教師データを用いて、学習モデル501の機械あり学習(ディープラーニング)を行い、学習済みモデルを生成する。これにより、学習モデル501の係数パラメータが、誤差逆伝搬法等により調整されていく。学習処理が行われた学習モデル501が、学習済みモデルである。そして、学習済みモデルに対して、未知の外部音声データおよび未知の内部音声データが入力されたときに、推定結果として手持ち判定結果が出力される。この場合、伝達関数の算出および判定は不要である。学習済みモデルの推定精度を向上させるためには、多様な学習用データで、学習モデル501の機械学習が行われることが望ましい。
【0040】
例えば、デジタルカメラ101に交換可能なレンズが装着されている場合と装着されていない場合との学習用データを用いて、学習モデル501の機械学習が行われることが望ましい。また、デジタルカメラ101に着脱可能なアクセサリが装着されている場合と装着されていない場合との学習用データを用いて、学習モデル501の機械学習が行われることが望ましい。以上のように、デジタルカメラ101に装着可能な部材が装着されているか否かの多様な状況における学習用データを用いて、学習モデル501の機械学習が行われることで、多様な状況における推定精度が向上する。
【0041】
次に、データの流れについて説明する。図7は、システム100におけるデータの流れを示す図である。1番目として、デジタルカメラ101のCPU201は、音声入力部205からの外部音声データおよび内部音声データを取得するとともに、同時刻にユーザがデジタルカメラ101を手で持っているか否かを示す情報を取得する。取得された各情報は、学習用データである。2番目として、CPU201は、取得した学習用データをクライアント端末102に送信する制御を行う。3番目として、クライアント端末102のCPU212は、受信した学習用データをデータサーバー105に送信する制御を行う。
【0042】
4番目として、データサーバー105のCPU228は、受信した学習用データを記憶する制御を行う。5番目として、クライアント端末102のCPU212は、学習サーバー104に対して、デジタルカメラ101に送信するための学習済みモデルの送信要求を出力する制御を行う。6番目として、学習サーバー104のCPU220は、学習済みモデルの送信要求を受信したことに応じて、データサーバー105に対して、学習用データの送信要求を出力する制御を行う。7番目として、データサーバー105のCPU228は、学習用データの送信要求を受信したことに応じて、その時点で記憶している学習用データを、学習サーバー104に送信する制御を行う。
【0043】
8番目として、学習サーバー104のCPU220は、データサーバー105から受信した学習用データを使用して学習モデル501の機械学習を行う。例えば、学習サーバー104は、機械学習の学習回数が所定回数に達したときに学習処理を終了してもよいし、ユーザ操作からの学習終了の指示を受け付けたときに、学習処理を終了してもよい。9番目として、学習サーバー104のCPU220は、学習モデルの学習処理が終了した後、学習済みモデルをクライアント端末102に送信する制御を行う。本実施形態における学習済みモデルの送信は、学習済みモデル自体のデータの送信であってもよいし、学習済みモデルの学習済み係数パラメータの送信であってもよい。10番目として、クライアント端末102のCPU212は、学習サーバー104から受信した学習済みモデルをデジタルカメラ101に送信する制御を行う。11番目として、デジタルカメラ101のCPU201は、クライアント端末102から受信した学習済みモデルのデータを記憶する制御を行う。
【0044】
以上の1番目から10番目までのデータの流れで、デジタルカメラ101に学習済みモデルが搭載される。12番目として、ユーザは、デジタルカメラ101を用いて撮影等の操作を行う。デジタルカメラ101の音声入力部205は、撮影等の操作を行ったときの外部音声データおよび内部音声データを取得する。13番目として、デジタルカメラ101のCPU201は、取得された外部音声データおよび内部音声データを、学習済みモデルに入力して、デジタルカメラ101が持たれているか否かの推定を行う。
【0045】
14番目として、デジタルカメラ101のCPU201は、学習済みモデルによる推定結果に応じて、バッテリ200Bの電源制御を行う。つまり、デジタルカメラ101のCPU201は、推定結果が、デジタルカメラ101が持たれていないことを示している場合、低消費電力モードに移行する制御を行う。低消費電力モードは、完全に電源OFFのモードであってもよいし、通常よりも消費電力が少ないモードであってもよい。以上により、ユーザがデジタルカメラ101を手で持っていないとき、つまりデジタルカメラ101を使用していないときに、デジタルカメラ101は自動的に低消費電力モードに移行する。つまり、CPU201は、デジタルカメラ101の省電力を行う。これにより、デジタルカメラ101のバッテリ200Bの電力消費が抑制される。
【0046】
次に、デジタルカメラ101の第1の処理の流れについて説明する。図8(a)は、デジタルカメラ101の処理の流れの一例を示すフローチャートである。S801において、CPU201は、学習用データの取得を行うか、学習済みモデルの記憶を行うかを判定する。S801において、CPU201は、学習用データの取得を行うと判定した場合、処理をS802に進める。S802において、音声入力部205は、外部音声取得部301から外部音声を取得し、内部音声取得部304から内部音声を取得する。そして、CPU201は、外部音声データおよび内部音声データを取得したときと同時刻におけるカメラ状態の情報を取得する。カメラ状態の情報は、デジタルカメラ101が持たれているか否かを示す情報である。
【0047】
S803において、CPU201は、カメラ状態の情報に基づいて、デジタルカメラ101が持たれているかを判定する。この場合、デジタルカメラ101がユーザの手で持たれているかの判定が行われる。CPU201は、S803でYESと判定した場合、処理をS804に進める。S803の判定は、上述したように、ユーザによる設定に基づいて行われてもよいし、手ブレ補正が実施されているかに基づいて行われてもよいし、三脚等の固定部材に固定されているかに基づいて行われてもよい。S804において、CPU201は、教師データを「Ture」に設定する。CPU201は、S804でNOと判定した場合、処理をS805に進める。S805において、CPU201は、教師データを「False」に設定する。設定された教師データは、例えば、RAM203等に記憶される。
【0048】
S804の処理またはS805の処理が実行された後、S806において、CPU201は、取得された外部音声データおよび内部音声データと教師データとを関連付けて学習用データを生成する。そして、S807において、CPU201は、生成した学習用データをクライアント端末102に送信する制御を行う。これにより、クライアント端末102に学習用データが送信される。その後、S808において、CPU201は、学習用データの取得を続けるかを判定する。例えば、学習用データの取得回数が、予め定められた一定回数に達したときに、CPU201は、S808でNOと判定してもよい。CPU201は、S808でNOと判定した場合、処理をS802に戻し、学習用データを続ける。一方、CPU201は、S808でYESと判定した場合、処理を終了させる。
【0049】
S801において、CPU201は、学習済みモデルの記憶を行うと判定した場合、処理をS809に進める。S809において、CPU201は、クライアント端末102から学習済みモデルを受信したかを判定する。CPU201は、S809でNOと判定した場合、処理をS809に戻し、学習済みモデルを受信するまで待機する。一方、CPU201は、S809でYESと判定した場合、つまり学習済みモデルを受信した場合、処理をS810に進める。S810において、CPU201は、受信した学習済みモデルをGPU204またはRAM203に記憶する。そして、CPU201は、処理を終了させる。
【0050】
次に、クライアント端末102の処理について説明する。図8(b)は、クライアント端末102の処理の流れの一例を示すフローチャートである。S821において、クライアント端末102のCPU212は、デジタルカメラ101から学習用データを受信したかを判定する。CPU212は、S821でNOと判定した場合、つまり学習用データを受信していない場合は、処理をS822に進める。S822において、CPU212は、デジタルカメラ101に学習済みモデルを送信するかを判定する。CPU212は、S822でNOと判定した場合、学習用データを受信しておらず、学習済みモデルの送信も行わないため、処理を終了させる。
【0051】
CPU212は、S822でYESと判定した場合、つまり学習済みモデルをデジタルカメラ101に送信する場合、処理をS823に進める。S823において、CPU212は、学習サーバー104に学習済みモデルの送信要求を出力する制御を行う。そして、S824において、CPU212は、学習サーバー104から学習済みモデルデータを受信したかを判定する。CPU212は、S824でNOと判定した場合、つまり学習済みモデルを受信していない場合、処理をS824に戻し、学習済みモデルを受信するまで待機する。CPU212は、S824でYESと判定した場合、つまり学習済みモデルを受信した場合、処理をS825に進める。S825において、CPU212は、受信した学習済みモデルをデジタルカメラ101へ送信する。そして、CPU212は、処理を終了させる。
【0052】
CPU212は、S821でYESと判定した場合、つまり学習用データを受信した場合、処理をS826に進める。S826において、CPU212は、受信した学習用データをデータサーバー105に送信する。そして、CPU212は、処理を終了させる。
【0053】
次に、データサーバー105の処理について説明する。図9(a)は、データサーバー105の処理の流れの一例を示すフローチャートである。S931において、データサーバー105のCPU228は、クライアント端末102から学習用データを受信したかを判定する。CPU228は、S932でYESと判定した場合、つまり学習用データを受信した場合、処理をS932に進める。S932において、CPU228は、受信した学習用データをHDDD229に記憶する制御を行う。そして、CPU228は、処理をS933に進める。CPU228は、S931でNOと判定した場合、つまり学習用データを受信していない場合、処理をS933に進める。
【0054】
S933において、CPU228は、学習サーバー104から学習用データの送信要求を受信したかを判定する。CPU228は、S933でYESと判定した場合、つまり学習用データの送信要求があった場合、処理をS934に進める。S934において、CPU228は、HDD229に記憶している学習用データを読み出して、読み出した学習用データを学習サーバー104に送信する制御を行う。これにより、学習用データが学習サーバー104に送信される。そして、CPU228は、処理をS931に戻す。CPU228は、S933でNOと判定した場合、つまり学習用データの送信要求を受信していない場合、処理をS931に戻す。
【0055】
次に、学習サーバー104の処理について説明する。図9(b)は、学習サーバー104の処理の流れの一例を示すフローチャートである。S941において、学習サーバー104のCPU220は、クライアント端末102から学習済みモデルの送信要求を受信したかを判定する。CPU220は、S941でNOと判定した場合、つまり学習済みモデルの送信要求を受信していない場合、処理をS941に戻し、学習済みモデルを受信するまで待機する。CPU220は、S941でYESと判定した場合、つまり学習済みモデルの送信要求を受信した場合、処理をS942に進める。
【0056】
S942において、CPU220は、データサーバー105に対して、学習用データの送信要求を出力する制御を行う。S943において、CPU220は、学習用データを受信したかを判定する。CPU220は、S943でNOと判定した場合、つまり学習用データを受信していない場合、処理をS943に戻し、学習用データを受信するまで待機する。CPU220は、S943でYESと判定した場合、つまり学習用データを受信した場合、処理をS944に進める。
【0057】
S944において、CPU220は、データサーバー105から取得した複数の学習用データを学習モデル501に入力する。各学習用データに含まれる外部音声データおよび内部音声データのセットには、教師データ(正解データ)が関連付けられている。S945において、GPU223は、学習用の外部音声データおよび学習用の内部音声データを入力とし、教師データを「True」または「False」とした教師あり学習を行う。これにより、学習モデル501の機械学習の学習処理が行われる。
【0058】
S946において、CPU220は、学習処理を終了するかを判定する。CPU220は、学習処理を終了するか否かを、データサーバー105から取得した複数の学習用データの全てを学習モデル501に入力したか否かに基づいて、判定する。CPU220は、S946でNOと判定した場合、つまり学習処理が終了していない場合、処理をS944に戻す。この場合、学習モデル501に入力されていない学習用データが存在する。一方、CPU220は、S946でYESと判定した場合、処理をS947に進める。この場合、学習処理が終了しており、学習済みモデルが生成されている。S947において、CPU220は、生成した学習済みモデルをクライアント端末102に送信する制御を行う。これにより、学習済みモデルがクライアント端末102に送信される。上述したように、学習サーバー104は、学習済みモデル自体を送信してもよいし、学習済みモデルの学習済み係数パラメータを送信してもよい。
【0059】
次に、デジタルカメラ101の第2の処理について説明する。デジタルカメラ101の第2の処理は、デジタルカメラ101の電源制御の処理である。図10は、デジタルカメラ101の第2の処理の流れの一例を示すフローチャートである。S1001において、CPU201は、デジタルカメラ101の入力部207の電源スイッチがONになっているかを判定する。CPU201は、S1001でNOと判定した場合、つまり電源スイッチがOFFである場合、処理をS1002に進めず、電源スイッチがONになるまで待機する。CPU201は、S1001でYESと判定した場合、つまり電源スイッチがONになった場合、処理S1003に進める。
【0060】
S1002において、CPU201は、音声入力部205から外部音声データおよび内部音声データを取得する。そして、S1003において、CPU201は、取得した外部音声データおよび内部音声データを、学習済みモデルに入力する。S1004において、GPU204は、学習済みモデルによる推定処理を行う。これにより、推定結果が得られる。上述したように、学習済みモデルは、推定結果としてカメラ状態(手持ち判定結果)を出力する。つまり、推定結果として、デジタルカメラ101が持たれているか否かを示す情報が出力される。
【0061】
S1005において、CPU201は、学習済みモデルからの出力であるカメラ状態が、デジタルカメラ101が持たれていることを示しているかを判定する。CPU201は、S1005でYESと判定した場合、つまりデジタルカメラ101が持たれていると判定した場合、低消費電力モードに移行する必要がないため、処理をS1002に戻す。一方、CPU201は、S1005でNOと判定した場合、つまりデジタルカメラ101が持たれていないと判定した場合、処理をS1006に進める。S1006において、CPU201は、デジタルカメラ101の動作状態を低消費電力モードに移行する制御を行う。そして、CPU201は、処理を終了させる。
【0062】
以上、説明したように、本実施形態では、外部音声データおよび内部音声データのセットにカメラ状態が教師データとして関連付けられた学習用データを用いて、学習モデルの機械学習が行われることで、学習済みモデルが生成される。電子機器は、外部音声データおよび内部音声データを取得し、取得した外部音声データおよび内部音声データを学習済みモデルに入力することで、カメラ状態を推定する。これにより、カメラ状態を検出する別途のセンサを要することなく、電子機器の省電力の制御を行うことができる。このため、電子機器の構成が複雑化することなく電子機器の省電力化を図ることができる。その結果、バッテリを長持ちさせることができる。
【0063】
ここで、一定時間の学習用の外部音声データおよび学習用の内部音声データが取得されたとする。デジタルカメラ101の音声入力部205は、上記一定時間より短い時間間隔で、一定時間の学習用の外部音声データおよび学習用の内部音声データを取得してもよい。これにより、一定時間ごとに学習用の外部音声データおよび学習用の内部音声データを取得する場合よりも、多くの学習用の外部音声データおよび学習用の内部音声データを取得することができる。つまり、機械学習を行う際の学習用データを多く用意することができる。
【0064】
また、上述した実施形態では、CPU201の推定部402が推定処理を行う例について説明したが、デジタルカメラ101の外部の装置が推定処理を行ってもよい。例えば、クライアント端末102がエッジコンピュータであるような場合、クライアント端末102が推定処理を行ってもよい。この場合、クライアント端末102は推定処理を行う機能を有する推定装置となる。デジタルカメラ101のCPU201は、取得された外部音声データおよび内部音声データを、I/F206を介して、クライアント端末102に送信する制御を行う。クライアント端末102のCPU212は、推定部402と同様の推定処理を行い、推定結果をデジタルカメラ101に送信する制御を行う。これにより、クライアント端末102のCPU212は、推定結果を受信することができる。そして、デジタルカメラ101CPU201は、推定結果に応じて、電源制御を行う。この場合でも、上述した実施形態と同様の効果を得ることができる。
【0065】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0066】
101 デジタルカメラ
102 クライアント端末
104 学習サーバー
105 データサーバー
200B バッテリ
201 CPU
204 GPU
205 音声入力部
206 I/F
220 CPU
223 GPU
301 外部音声取得部
304 内部音声取得部
401 カメラ制御部
414 学習部
501 学習モデル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10