(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-23
(45)【発行日】2024-09-02
(54)【発明の名称】撮像システム、撮像装置、情報処理サーバー、撮像方法、情報処理方法、及びコンピュータプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240826BHJP
H04N 23/63 20230101ALI20240826BHJP
H04N 23/67 20230101ALI20240826BHJP
H04N 23/70 20230101ALI20240826BHJP
【FI】
G06T7/00 350C
H04N23/63
H04N23/67 100
H04N23/70
(21)【出願番号】P 2022012054
(22)【出願日】2022-01-28
【審査請求日】2023-06-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】辻 良介
【審査官】稲垣 良一
(56)【参考文献】
【文献】特許第6914562(JP,B1)
【文献】特開2011-90410(JP,A)
【文献】特開2021-43881(JP,A)
【文献】特開2021-77377(JP,A)
【文献】石野純也,モバイルサービスフロントライン 新iPhone、真価は機械学習の進化,テレコミュニケーション,日本,株式会社リックテレコム,2018年10月25日,第35巻、第11号,p.22
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
H04N 23/63
H04N 23/67
H04N 23/70
G06N 20/00
CSDB(特許庁)
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークに基づき被写体検出を行う撮像システムにおいて、
前記被写体検出のための教師データを入力する教師データ入力手段と、
前記被写体検出におけるネットワーク構造に関する情報を指定するネットワーク構造指定手段と、
前記教師データと前記ネットワーク構造に関する情報に基づき前記被写体検出のための辞書データを生成する辞書生成手段と、
前記辞書生成手段によって生成された前記辞書データに基づき前記被写体検出を行い、前記被写体検出により検出された被写体に対して所定の撮像制御を行う撮像装置と、を有し、
前記ネットワーク構造指定手段は、前記撮像装置の機種を指定することにより前記ネットワーク構造に関する情報を指定し、
前記辞書データには、ヘッダ情報として該辞書データの生成に用いられた教師データの枚数の情報を含むことを特徴とする撮像システム。
【請求項2】
前記撮像装置は、前記辞書データを受信する通信部を備えると共に、前記通信部によって受信された前記辞書データに基づき前記被写体検出をすることを特徴とする請求項1に記載の撮像システム。
【請求項3】
前記ネットワーク構造に関する情報は、入力データの画像サイズ、前記入力データのチャンネル数、ネットワークのパラメータ数、メモリ容量、レイヤーの種類や活性化関数の種類、積和演算仕様の少なくとも1つに関する情報を含むことを特徴とする請求項1又は2に記載の撮像システム。
【請求項4】
前記ヘッダ情報には、前記辞書データについての作成日、作成者、更新日、バージョンのうち少なくとも1つに関する情報を含むことを特徴とする請求項1~3のいずれか1項に記載の撮像システム。
【請求項5】
前記ヘッダ情報の少なくとも一部を表示部に表示する表示手段を有することを特徴とする請求項4に記載の撮像システム。
【請求項6】
前記教師データは、画像データおよび該画像データに含まれる正事例あるいは負事例としての被写体領域の情報を含むことを特徴とする請求項1~4のいずれか1項に記載の撮像システム。
【請求項7】
前記教師データを表示部に表示する表示手段を有することを特徴とする請求項6に記載の撮像システム。
【請求項8】
前記辞書生成手段は、前記撮像装置とは異なる情報処理サーバーに設けられていることを特徴とする請求項1~7のいずれか1項に記載の撮像システム。
【請求項9】
前記情報処理サーバーは、
前記被写体検出のための前記教師データを取得する教師データ取得手段と、
前記ネットワーク構造に関する情報を取得するするネットワーク構造取得手段と、
前記辞書生成手段と、
前記辞書生成手段により生成した前記辞書データを前記撮像装置へ送信する辞書データ送信手段を有することを特徴とする請求項8に記載の撮像システム。
【請求項10】
前記辞書生成手段は、予め用意した複数の前記辞書データから前記教師データの被写体に適した辞書を選定することを特徴とする請求項1~9のいずれか1項に記載の撮像システム。
【請求項11】
前記辞書生成手段は、前記教師データに基づき学習をすることによって前記辞書データを生成することを特徴とする請求項1~10のいずれか1項に記載の撮像システム。
【請求項12】
前記教師データ入力手段と、前記ネットワーク構造指定手段は、前記撮像装置とは異なる情報処理端末に設けられていることを特徴とする請求項1~11のいずれか1項に記載の撮像システム。
【請求項13】
前記教師データは、画像データと、目的とする被写体が存在する前記画像データの領域情報を含むことを特徴とする請求項1~12のいずれか1項に記載の撮像システム。
【請求項14】
前記辞書生成手段によって生成された前記辞書データを有効化する辞書有効化手段を備え、
前記辞書有効化手段によって前記辞書データが有効化されている場合、前記撮像装置は、前記被写体検出により検出された被写体に対して前記所定の撮像制御を行い、
前記辞書有効化手段によって前記辞書データが有効化されていない場合、前記撮像装置は、前記所定の撮像制御を行わないことを特徴とする請求項1~
13のいずれか1項に記載の撮像システム。
【請求項15】
前記被写体検出の結果を枠として、前記撮像装置からの画像に重畳させて表示する表示手段を有することを特徴とする請求項1~
14のいずれか1項に記載の撮像システム。
【請求項16】
前記辞書有効化手段は、課金により前記辞書データを有効化することを特徴とする請求項
14に記載の撮像システム。
【請求項17】
前記辞書有効化手段は、前記辞書生成手段によって生成された前記辞書データが複数ある場合に、課金により前記辞書データ毎の有効化をすることを特徴とする請求項
14に記載の撮像システム。
【請求項18】
前記撮像装置は、前記教師データを生成する教師データ生成手段を備えることを特徴とする請求項1~
17のいずれか1項に記載の撮像システム。
【請求項19】
ニューラルネットワークに基づき被写体検出を行う撮像装置であって、
前記被写体検出のための教師データを入力する教師データ入力手段と、
前記被写体検出におけるネットワーク構造に関する情報を指定するネットワーク構造指定手段と、
前記教師データと前記ネットワーク構造に関する情報を情報処理サーバーに送信する通信部と、
前記情報処理サーバーにおいて、前記教師データと前記ネットワーク構造に関する情報に基づき生成された前記被写体検出のための辞書データを、前記通信部を介して前記情報処理サーバーから取得し、前記辞書データに基づき前記被写体検出を行い、前記被写体検出により検出された被写体に対して所定の撮像制御を行う撮像制御手段と、を有し、
前記ネットワーク構造指定手段は、前記撮像装置の機種を指定することにより前記ネットワーク構造に関する情報を指定し、
前記辞書データには、ヘッダ情報として該辞書データの生成に用いられた教師データの枚数の情報を含むことを特徴とする撮像装置。
【請求項20】
前記ネットワーク構造に関する情報は、入力データの画像サイズ、前記入力データのチャンネル数、ネットワークのパラメータ数、メモリ容量、レイヤーの種類や活性化関数の種類、積和演算仕様の少なくとも1つに関する情報を含むことを特徴とする請求項
19記載の撮像装置。
【請求項21】
前記被写体検出の結果を枠として、画像に重畳させて表示する表示手段を有することを特徴とする請求項
19又は
20に記載の撮像装置。
【請求項22】
前記ヘッダ情報には、前記辞書データについての作成日、作成者、更新日、バージョンのうち少なくとも1つに関する情報を含むことを特徴とする請求項
19~
21のいずれか1項に記載の撮像装置。
【請求項23】
ニューラルネットワークに基づき被写体検出を行う撮像方法において、
教師データ入力手段が、前記被写体検出のための教師データを入力する教師データ入力ステップと、
ネットワーク構造指定手段が、前記被写体検出におけるネットワーク構造に関する情報を指定するネットワーク構造指定ステップと、
辞書生成手段が、前記教師データと前記ネットワーク構造の制約に基づき前記被写体検出のための辞書データを生成する辞書生成ステップと、
撮像手段が、前記辞書生成ステップによって生成された前記辞書データに基づき前記被写体検出を行い、前記被写体検出により検出された被写体に対して所定の撮像制御を行う撮像ステップと、を有し、
前記ネットワーク構造指定ステップでは、前記撮像装置の機種を指定することにより前記ネットワーク構造に関する情報を指定し、
前記辞書データには、ヘッダ情報として該辞書データの生成に用いられた教師データの枚数の情報を含むことを特徴とする撮像方法。
【請求項24】
ニューラルネットワークに基づき被写体検出を行う撮像方法であって、
教師データ入力手段が、前記被写体検出のための教師データを入力する教師データ入力ステップと、
ネットワーク構造指定手段が、前記被写体検出におけるネットワーク構造に関する情報を指定するネットワーク構造指定ステップと、
前記教師データと前記ネットワーク構造に関する情報を情報処理サーバーに送信する通信ステップと、
撮像制御手段が、前記情報処理サーバーにおいて、前記教師データと前記ネットワーク構造に関する情報に基づき生成された前記被写体検出のための辞書データを、前記情報処理サーバーから取得し、前記辞書データに基づき前記被写体検出を行い、前記被写体検出により検出された被写体に対して所定の撮像制御を行う撮像制御ステップと、を有し、
前記ネットワーク構造指定ステップでは、前記撮像装置の機種を指定することにより前記ネットワーク構造に関する情報を指定し、
前記辞書データには、ヘッダ情報として該辞書データの生成に用いられた教師データの枚数の情報を含むことを特徴とする撮像方法。
【請求項25】
請求項1~
18のいずれか1項に記載の撮像システム、又は請求項
19~
22のいずれか1項に記載の撮像装置の各手段をコンピュータにより制御するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークを用いる撮像システム、撮像装置、情報処理サーバー、撮像方法、情報処理方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
被写体検出はコンピュータビジョン研究の分野の1つであり、これまで広く研究されている。コンピュータビジョンはコンピュータに入力された画像を理解し、その画像の様々な特性を自動的に認識する技術である。その中で被写体検出は、自然画像内に存在する被写体の位置と種類を推定するタスクである。被写体検出は撮像装置のオートフォーカス技術等に応用されている。
【0003】
近年では、ニューラルネットワーク等に代表される機械学習手法により被写体を検出する撮像装置が知られている。このような撮像装置は、特定の被写体に対応した学習済みモデル(辞書データ)を利用して、特定の被写体を検出し撮像制御を行う。特定被写体の種類は、人物、犬や猫などの動物、自動車などの乗物が代表的であり、撮像装置のオートフォーカス機能としてニーズの高い被写体である。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2011-90410号公報
【文献】特開2011-90413号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、所定の場所に存在する被写体認識の辞書データをサーバー装置から受信する画像処理装置が開示されている。状況に応じて辞書データを切り替えているものの、ユーザーによる任意の特定被写体を検出可能な構成にはなっていない。
【0006】
又、特許文献2では、追加学習によってユーザーにとって好適な被写体検出器を実現する画像処理装置が開示されている。追加学習であるため、ユーザーによる任意の新たな被写体を検出することは難しい。又、画像処理装置において、学習と推論が実行される状況が前提となっているが、例えば撮像装置等においては被写体検出のネットワーク構造の制約等が異なる場合があるため、追加学習が適切にできない場合がある。
【0007】
本発明は、複本発明は上述した課題に鑑みてなされたものでありユーザーによる任意の辞書データを生成可能な撮像システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述の課題を解決するため、本発明は、
ニューラルネットワークに基づき被写体検出を行う撮像システムにおいて、
前記被写体検出のための教師データを入力する教師データ入力手段と、
前記被写体検出におけるネットワーク構造の制約を指定するネットワーク構造指定手段
と、
前記教師データと前記ネットワーク構造の制約に基づき前記被写体検出のための辞書デ
ータを生成する辞書生成手段と、
前記辞書生成手段によって生成された前記辞書データに基づき前記被写体検出を行い、
前記ネットワーク構造指定手段は、前記撮像装置の機種を指定することにより前記ネットワーク構造に関する情報を指定し、
前記被写体検出により検出された被写体に対して所定の撮像制御を行う撮像装置と、を有
することを特徴とする。
【発明の効果】
【0009】
本発明によれば、ユーザーによる任意の辞書データを生成可能な撮像システムを実現できる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施例1に係る撮像システムの構成図である。
【
図2】実施例1の撮像装置100の構成例を示すブロック図である。
【
図3】実施例1に係るニューラルネットワーク処理部205の概略構成を示すブロック図である。
【
図4】ネットワーク構造の観点で制約条件の例を示した図である。
【
図5】サーバー110のハードウェア構成例を示すブロック図である。
【
図6】携帯端末120のハードウェア構成例を示すブロック図である。
【
図7】実施例1に係る撮像装置の処理を示すフローチャートである。
【
図8】辞書データに基づく被写体検出の例を説明するための図である。
【
図9】実施例1に係るサーバーの処理を示すフローチャートである。
【
図10】実施例1に係る辞書データ生成の処理の流れを説明するためのフローチャートである。
【
図11】実施例1に係る携帯端末120で実行される処理の流れの例を示すフローチャートである。
【
図12】実施例1に係る携帯端末の表示部604の教師データ及びネットワーク構造の入力画面例を説明するための図である。
【
図13】実施例2の係る撮像システムの構成例を示す図である。
【
図14】実施例2に係る撮像装置における処理例を示すフローチャートである。
【
図15】ユーザーカスタム辞書の有効化前後の撮像制御に関して説明する図である。
【
図16】実施例3に係る撮像システムの構成図である。
【
図17】実施例3における撮像装置100の処理を説明するためのフローチャートである。
【
図18】
図17(B)における教師データ入力の処理の流れを説明するフローチャートである。
【
図19】
図18における教師データ入力画面の1例を示す図である。
【
図20】撮像装置100での辞書データの情報確認の例を説明するための図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して、本発明の好適な実施の形態について実施例を用いて説明する。尚、各図において、同一の部材ないし要素については同一の参照番号を付し、重複する説明は省略ないし簡略化する。
【0012】
又、実施例においては、撮像装置としてデジタルスチルカメラに適用した例について説明する。しかし、撮像装置はデジタルムービーカメラ、カメラ付きのスマートフォン、カメラ付きのタブレットコンピュータ、ネットワークカメラ、車載カメラ、ドローンカメラ、ロボットに搭載されたカメラなどの撮像機能を有する電子機器等を含む。
【0013】
<実施例1>
以下、本発明の実施例1に係る撮像システムに関して、以下に詳細に説明する。
【0014】
図1は、本発明の実施例1に係る撮像システムの構成図であり、撮像システムは、撮像装置100、情報処理サーバーとしてのサーバー110、撮像装置100とは異なる情報処理端末としての携帯端末120等からなる。撮像装置100とサーバー110は例えば無線による通信ネットワークにより接続される。又、サーバー110と携帯端末120は例えば無線による通信ネットワークにより接続される。
【0015】
尚、
図1に示されるサーバー110、携帯端末120内の機能ブロックは夫々サーバー110、携帯端末120に含まれるコンピュータに、記憶媒体としてのメモリに記憶されたコンピュータプログラムを実行させることによって夫々実現されている。尚、これは後出の
図13、
図16等においても当てはまる。
【0016】
実施例1に係る撮像システムは、ニューラルネットワークに基づく被写体検出を行うと共に、ユーザーによる任意の被写体を検出可能とする。被写体検出の代表的な手法として、コンボリューショナル・ニューラル・ネットワーク(以下、CNNと略記する)と呼ばれる手法がある。CNNでは、画像信号と処理パラメータである辞書データに基づき推論処理が実行され、辞書データは予め教師データに基づき学習処理によって生成しておく。
【0017】
実施例1の撮像システムでは、携帯端末120は、被写体検出のための教師データを入力する教師データ入力手段としての教師データ入力部121を有している。又、教師データ入力部121は被写体検出のための教師データを入力する教師データ入力ステップを実行する。
【0018】
又、教師データ入力部121では、教師データとして、画像データと、目的とする被写体が存在する前記画像データの被写体領域情報とをセットとし、複数セットの教師データを入力可能であって、その複数セットをサーバー110へ送信可能である。
【0019】
サーバー110では、携帯端末120から送信された教師データを取得し、取得した教師データに基づき辞書データ生成部111で辞書データを生成する。生成された辞書データは撮像装置100へ送信される。実施例1では、辞書生成手段としての辞書データ生成部111は、撮像装置とは異なる情報処理サーバーとしてのサーバー110に設けられている。
【0020】
撮像装置100では、サーバー110から送信された辞書データを受信し、受信した辞書データに基づき被写体検出部101でニューラルネットワークに基づく推論処理を行う。次いで、推論結果に基づき、撮像制御部102においてオートフォーカスなどの撮像制御を実行する。即ち、撮像装置100は、辞書データに基づき被写体検出を行い、被写体検出により検出された被写体に対して所定の撮像制御(オートフォーカスや露出制御等)を行う。
【0021】
撮像装置100の機種によって、被写体検出のネットワーク構造の制約が異なる場合がある。その場合、ネットワーク構造の制約に応じて辞書データも異なる。そこで、携帯端末120には、ネットワーク構造指定手段としてのネットワーク構造指定部122が設けられている。ネットワーク構造指定部122では、撮像装置の機種名やIDなどを指定することによって、ネットワーク構造の制約条件等をネットワーク構造に関する情報として指定し、サーバー110へ送信する。
【0022】
即ち、ネットワーク構造指定部122はネットワーク構造に関する情報を指定するネットワーク構造指定ステップを実行する。
【0023】
サーバー110における、辞書データ生成部111は、教師データとネットワーク構造に関する情報に基づき被写体検出のための辞書データを生成する。
【0024】
図2は実施例1の撮像装置100の構成例を示すブロック図である。
図2に示すように、撮像装置100は、CPU201と、メモリ202と、不揮発性メモリ203と、操作部204と、ニューラルネットワーク処理部205と、撮像部212と、画像処理部213と、符号化処理部214とを有している。更に、撮像装置100は、表示制御部215と、表示部216と、通信制御部217と、通信部218と、記録媒体制御部219と、内部バス230とを有している。
【0025】
又、撮像装置100は、撮影レンズ211を用いて被写体の光学像を撮像部212の画素アレイに結像するが、撮影レンズ211は、撮像装置100のボディ(筐体、本体)から、着脱不能であっても良いし、着脱可能であっても良い。又、撮像装置100は、記録媒体制御部219を介して画像データの書き込み及び読み出しを記録媒体220に対して行うが、記録媒体220は、撮像装置100に着脱可能であっても良いし、着脱不能であっても良い。
【0026】
CPU201は、不揮発性メモリ203に記憶されているコンピュータプログラムを実行することによって、内部バス230を介して撮像装置100の各部(各機能ブロック)の動作を制御する。
【0027】
メモリ202は、書き換え可能な揮発性メモリである。メモリ202は、撮像装置100の各部の動作を制御するためのコンピュータプログラム、撮像装置100の各部の動作に関するパラメータ等の情報、通信制御部217によって受信される情報等を一時的に記録する。又、メモリ202は、撮像部212によって取得された画像、画像処理部213、符号化処理部214等によって処理された画像及び情報を一時的に記録する。メモリ202は、これらを一時的に記録するために十分な記憶容量を備えている。
【0028】
不揮発性メモリ203は、電気的に消去及び記録が可能なメモリであり、例えばEEPROM、ハードディスク等が用いられる。不揮発性メモリ203は、撮像装置100の各部の動作を制御するコンピュータプログラム及び撮像装置100の各部の動作に関するパラメータ等の情報を記憶する。かかるコンピュータプログラムにより、撮像装置100によって行われる各種動作が実現される。更に、不揮発性メモリ203は、ニューラルネットワーク処理部205で使用する、ニューラルネットワークの処理内容を記述したコンピュータプログラムと、重み係数やバイアス値等の学習済み係数パラメータを格納する。
【0029】
尚、重み係数とはニューラルネットワークにおいてノード間の接続の強さを示すための値であり、バイアスは重み係数と入力データの積算値に対してオフセットを与えるための値である。不揮発性メモリ203は、学習済み係数パラメータと、ニューラルネットワークの処理を記述したコンピュータプログラムとを夫々複数保持することが可能である。
【0030】
尚、メモリ203ではなくメモリ202に、上述したニューラルネットワーク処理部205で使用する、ニューラルネットワークの処理を記述したコンピュータプログラム及び学習済み係数パラメータを、夫々一時的に複数格納するようにしても良い。尚、ニューラルネットワークの処理を記述したコンピュータプログラム及び学習済み係数パラメータが、被写体検出の辞書データに相当する。
【0031】
操作部204は、撮像装置100を操作するためのユーザインタフェースを提供する。操作部204は、電源ボタン、メニューボタン、撮影用のレリーズボタン、動画録画ボタン、キャンセルボタン等の各種ボタンを含んでおり、各種ボタンはスイッチ、タッチパネル等により構成される。CPU201は、操作部204を介して入力されたユーザーの指示に従って撮像装置100を制御する。
【0032】
尚、ここでは、操作部204を介して入力される操作に基づいてCPU201が撮像装置100を制御する場合を例に説明したが、これに限定されるものではない。例えば、不図示のリモートコントローラ、携帯端末120から通信部218を介して入力される要求に基づいて、CPU201が撮像装置100を制御しても良い。
【0033】
ニューラルネットワーク処理部205では、辞書データに基づく被写体検出部101の推論処理を行う。詳細は、
図3を用いて後述する。
【0034】
撮影レンズ(レンズユニット)211は、ズームレンズ、フォーカスレンズ等を含むレンズ群、不図示のレンズ制御部、不図示の絞り等によって構成される。撮影レンズ211は、画角を変更するズーム手段として機能し得る。撮影レンズ211のレンズ制御部は、CPU201から送信される制御信号により、焦点の調整及び絞り値(F値)の制御を行う。
【0035】
撮像部212は、動画像を含む複数の画像を順次取得する取得手段として機能し得る。撮像部212としては、例えばCCD(電荷結合素子)イメージセンサ、CMOS(相補型金属酸化膜半導体)イメージセンサ等が用いられる。撮像部212は、被写体の光学像を電気信号に変換する光電変換部(画素)が行列状、即ち、2次元的に配列された不図示の画素アレイを有している。当該画素アレイには、被写体の光学像が撮影レンズ211によって結像される。撮像部212は、撮像した画像を画像処理部213やメモリ202に出力する。尚、撮像部212は、静止画像を取得することも可能である。
【0036】
画像処理部213は、撮像部212から出力される画像データ、又は、メモリ202から読み出された画像データに対し、所定の画像処理を行う。当該画像処理の例としては、ダイナミックレンジ変換処理、補間処理、縮小処理(リサイズ処理)、色変換処理等が挙げられる。又、画像処理部213は、撮像部212によって取得された画像データを用いて、露光制御、測距制御等のための所定の演算処理を行う。
【0037】
そして画像処理部213による演算処理によって得られた演算結果に基づいて、露光制御、測距制御等がCPU201によって行われる。具体的には、AE(Auto Exposure)処理、AWB(Auto White Balance)処理、AF(Auto Focus)処理等がCPU201によって行われる。これら撮影制御は、ニューラルネットワーク処理部205による被写体検出結果を参照して行われる。
【0038】
符号化処理部214は、画像処理部213からの画像データに対してフレーム内予測符号化(画面内予測符号化)、フレーム間予測符号化(画面間予測符号化)等を行うことによって、画像データのサイズを圧縮する。
【0039】
表示制御部215は、表示部216を制御する。表示部216は、不図示の表示画面を備える。表示制御部215は、表示部216の表示画面に表示可能な画像を生成し、当該画像、即ち、画像信号を表示部216に出力する。又、表示制御部215は表示部216に画像データを出力するだけでなく、通信制御部217を介して外部機器に画像データを出力することも可能である。表示部216は、表示制御部215から送られてくる画像信号に基づいて、表示画面に画像を表示する。
【0040】
表示部216は、表示画面にメニュー等の設定画面を表示する機能であるOSD(On Screen Display)機能を備えている。表示制御部215は、画像信号にOSD画像を重畳して表示部216に画像信号を出力し得る。ニューラルネットワーク処理部205による被写体検出結果に基づき被写体枠を生成して、画像信号に重畳して表示することもできる。表示部216は、液晶ディスプレイ、有機ELディスプレイ等により構成されており、表示制御部215から送られてきた画像信号を表示する。表示部216は、例えばタッチパネルを含んでも良い。表示部216がタッチパネルを含む場合、表示部216は、操作部204としても機能し得る。
【0041】
通信制御部217は、CPU201に制御される。通信制御部217は、IEEE802.11等のような無線通信規格に適合する変調信号を生成して、当該変調信号を通信部218に出力すると共に、外部の機器からの変調信号を、通信部218を介して受信する。又、通信制御部217は映像信号の制御信号を送受信することが可能である。例えば、通信部218を制御して、HDMI(登録商標)(High Definition Multimedia Interface)やSDI(Serial Digital Interface)などの通信規格に準拠した映像信号を送るようにしても良い。
【0042】
通信部218は映像信号と制御信号を物理的な電気信号に変換して外部機器と送受信する。尚、通信部218によって映像信号や制御信号の送受信を行うだけでなく、ニューラルネットワーク処理部205における被写体検出のための辞書データの受信等も行う。
【0043】
記録媒体制御部219は、記録媒体220を制御する。記録媒体制御部219は、CPU201からの要求に基づいて、記録媒体220を制御するための制御信号を記録媒体220に出力する。記録媒体220としては、例えば不揮発性メモリや磁気ディスク等が用いられる。記録媒体220は、上述したように、着脱可能であっても良いし、着脱不能であっても良い。記録媒体220は、符号化された画像データ等を、記録媒体220のファイルシステムに適合した形式でファイルとして保存する。
【0044】
各々の機能ブロック201~205、212~215、217、219は、内部バス230を介して互いにアクセス可能となっている。
【0045】
尚、
図2に示される機能ブロックの一部は、撮像装置100に含まれるコンピュータとしてのCPU201に、記憶媒体としての不揮発性メモリ203等に記憶されたコンピュータプログラムを実行させることによって実現されている。しかし、それらの一部又は全部をハードウェアで実現するようにしても構わない。ハードウェアとしては、専用回路(ASIC)やプロセッサ(リコンフィギュラブルプロセッサ、DSP)などを用いることができる。
【0046】
図3は、実施例1に係るニューラルネットワーク処理部205の概略構成を示すブロック図である。
【0047】
ニューラルネットワーク処理部205は予め学習済み係数パラメータを用いてニューラルネットワークの処理を実行する。尚、ニューラルネットワークの処理は、例えばCNNの全結合層などで構成されるものであるが、これに限定するものではない。また上述の学習済み係数パラメータは、全結合層では各層のノード間を結ぶエッジ毎に持つ重み係数やバイアス値、CNNにおけるカーネルの重み係数やバイアス値に相当する。
【0048】
図3に示すように、ニューラルネットワーク処理部205はニューラルコア300の中に、CPU301、積和演算回路302、DMA(Dynamic Memory Access)303、内部メモリ304等が含まれる。
【0049】
CPU301は、ニューラルネットワークの処理内容を記述したコンピュータプログラムを、内部バス230を介してメモリ202又は不揮発性メモリ203から、或いは内部メモリ304から取得し、これを実行する。またCPU301は積和演算回路302及びDMA303の制御も行う。
【0050】
積和演算回路302は、ニューラルネットワークにおける積和演算を行う回路である。積和演算回路302は、積和演算部を複数有し、これらは並列に積和演算の実行をすることが可能である。又、積和演算回路302は、複数の積和演算部により並列に実行される積和演算の際に算出される中間データを、DMA303を介して内部メモリ304に出力する。
【0051】
DMA303は、CPU301を介さずにデータ転送に特化した回路であり、内部バス230を介してメモリ202又は不揮発性メモリ203と内部メモリ304との間のデータ転送を行う。又、DMA303は積和演算回路302と内部メモリ304と間のデータ転送も行う。DMA303が転送するデータとしては、ニューラルネットワークの処理内容を記述したコンピュータプログラムや、学習済み係数パラメータ、積和演算回路302で算出した中間データ等である。
【0052】
内部メモリ304は、ニューラルネットワークの処理内容を記述したコンピュータプログラムや、学習済み係数パラメータ、積和演算回路302で算出した中間データ等を格納する。又、内部メモリ304は複数のバンクを有してもよく、動的にバンクを切り替えても良い。
【0053】
尚、内部メモリ304の容量や、積和演算回路302の演算仕様には制約があり、所定の制約を満たしてニューラルネットワークの処理をすることとなる。撮像装置の機種によって、制約条件は異なる場合があり、制約条件が異なればコンピュータプログラムや、学習済み係数パラメータが異なる。つまり、被写体検出の辞書データが異なる。
【0054】
図4は、ネットワーク構造の観点で制約条件の例を示した図である。
【0055】
図4では横軸が撮像装置の機種名、縦軸が各ネットワーク構造の制約等のネットワーク構造に関する情報を示している。入力データの画像サイズ、入力データのチャンネル数、ネットワークのパラメータ数は内部メモリ304の容量に依存する制約であり、撮像装置Bに対して撮像装置Aはメモリ容量が少なく、制約が大きい。
【0056】
又、レイヤーの種類や活性化関数の種類は、積和演算回路302の演算仕様の制約であり、撮像装置Bに対して撮像装置Aは表現可能な演算の種類が少なく制約が大きい。即ち、ネットワーク構造に関する情報は、入力データの画像サイズ、入力データのチャンネル数、ネットワークのパラメータ数、メモリ容量、レイヤーの種類や活性化関数の種類、積和演算仕様の少なくとも1つに関する情報を含む。
【0057】
図5は、サーバー110のハードウェア構成例を示すブロック図である。
【0058】
図5に示す様に、サーバー110は、CPU501と、メモリ502と、表示部503と、操作部505と、記録部506と、通信部507と、ニューラルネットワーク処理部508とを有している。
【0059】
尚、
図5に示される機能ブロックの一部は、サーバー110に含まれるコンピュータとしてのCPU501に、記憶媒体としての記録部506等に記憶されたコンピュータプログラムを実行させることによって実現されている。しかし、それらの一部又は全部をハードウェアで実現するようにしても構わない。ハードウェアとしては、専用回路(ASIC)やプロセッサ(リコンフィギュラブルプロセッサ、DSP)などを用いることができる。
【0060】
CPU501は、記録部506に記憶されているコンピュータプログラムを実行することによって、サーバー110を構成するすべての処理ブロックの制御を行う。
【0061】
メモリ502は、主にCPU501のワークエリアや、データの一時バッファ領域として使用されるメモリである。
【0062】
表示部503は、液晶パネル、又は有機ELパネル等で構成され、CPU501の指示に基づいて、操作画面等の表示を行う。
【0063】
内部バス504は、サーバー110内の各処理ブロックを相互に接続するためのバスである。
【0064】
操作部505は、キーボード、マウス、ボタン、タッチパネル、又はリモコン等によって構成され、ユーザーの操作指示を受け付ける。操作部505から入力された操作情報は、CPU501に送信され、CPU501は操作情報に基づいて各処理ブロックの制御を実行する。
【0065】
記録部506は記録媒体によって構成され、CPU501の指示に基づいて記録媒体に様々なデータを格納したり読み出したりする処理ブロックである。記録媒体は、例えばEEPROM、内蔵フラッシュメモリ、内蔵ハードディスク、或いは着脱可能なメモリカード等で構成される。記録部506には、コンピュータプログラムの他に、ニューラルネットワーク処理部508における学習用データである入力データと教師データや辞書データなどを保存しておく。
【0066】
通信部507は、無線LAN及び有線LANの通信を行うためのハードウェア等を備えている。無線LANにおいては、例えばIEEE802.11n/a/g/b方式の処理を行う。通信部507は、外部のアクセスポイントと無線LANで接続し、アクセスポイント経由で他の無線通信機器と無線LAN通信を行う。又、通信部507は有線LANにおいてEthernetケーブル等により外部ルータ、又はスイッチングハブを介して通信を行う。通信部507は、撮像装置100を含む、外部の機器と通信を行い、教師データ、辞書データなどの情報のやり取りを行う。
【0067】
ニューラルネットワーク処理部508は、通信部507を介して得られた教師データと、通信部507を介して取得したネットワーク構造の制約情報より、ニューラルネットワークのモデルを選定して、ニューラルネットワークの学習処理を行う。ニューラルネットワーク処理部508は、
図1の辞書データ生成部111に相当し、教師データを用いて異なるクラスの被写体の夫々に対応する辞書データを構築するための学習処理を行う。
【0068】
ニューラルネットワーク処理部508はGPU(Graphic Processing Unit)や、DSP(Digital Signal Processor)等で構成される。又、ニューラルネットワーク処理部508により行われた学習処理の結果である、辞書データは記録部506に保持される。
【0069】
図6は、携帯端末120のハードウェア構成例を示すブロック図である。
【0070】
図6に示す様に、携帯端末120は、CPU601と、メモリ602と、撮像部603と、表示部604と、操作部605と、記録部606と、通信部607と、内部バス608とを有している。
図6に示される機能ブロックの一部は、携帯端末120に含まれるコンピュータとしてのCPU601に、記憶媒体としての記録部606等に記憶されたコンピュータプログラムを実行させることによって実現されている。しかし、それらの一部又は全部をハードウェアで実現するようにしても構わない。ハードウェアとしては、専用回路(ASIC)やプロセッサ(リコンフィギュラブルプロセッサ、DSP)などを用いることができる。
【0071】
CPU601は、記録部606に記憶されているコンピュータプログラムを実行することによって、携帯端末120を構成するすべての処理ブロックの制御を行う。
【0072】
メモリ602は、主にCPU601のワークエリアや、データの一時バッファ領域として使用されるメモリである。OS(Operation System)やアプリケーションソフト等のプログラムは、メモリ602上に展開され、CPU601により実行される。
【0073】
撮像部603は、光学レンズ、CMOSセンサ、デジタル画像処理部等を備え、光学レンズを介して入力される光学像を撮像し、デジタルデータに変換することにより撮像画像データを取得する。撮像部603によって取得された撮影画像データは、メモリ602に一時的に格納され、CPU601の制御に基づいて処理される。例えば、記録部606による記録媒体への記録や、通信部607による外部機器への送信などが行われる。また撮像部603は、レンズ制御部も備えており、CPU601からの指令に基づいて、ズーム、フォーカス、絞り調整等の制御を行う。
【0074】
表示部604は、液晶パネル、又は有機ELパネル等で構成され、CPU601の指示に基づいて、表示を行う。撮影画像から教師データの画像を選択すると共に、ネットワーク構造を指定するために、操作画面や、撮影画像等の表示を行う。
【0075】
操作部605は、キーボード、マウス、ボタン、十字キー、タッチパネル、又はリモコン等によって構成され、ユーザーの操作指示を受け付ける。操作部605から入力された操作情報は、CPU601に送信され、CPU601は操作情報に基づいて各処理ブロックの制御を実行する。
【0076】
記録部606は、大容量の記録媒体によって構成され、CPU601の指示に基づいて記録媒体に様々なデータを格納したり読み出したりする処理ブロックである。記録媒体は、例えば内蔵フラッシュメモリ、内蔵ハードディスク、或いは着脱可能なメモリカード等で構成される。
【0077】
通信部607は、アンテナ、無線LAN、有線LAN等の通信を行うための処理ハードウェア等を備え、例えばIEEE802.11n/a/g/b方式の無線LAN通信を行う。通信部607は、外部のアクセスポイントと無線LANで接続し、アクセスポイント経由で他の無線通信機器と無線LAN通信を行う。通信部607によって、ユーザーから操作部605を介して入力された教師データや、ネットワーク構造をサーバー110へ送信する。
【0078】
内部バス608は、携帯端末SP内の各処理ブロックを相互に接続するためのバスである。
【0079】
図7は、実施例1に係る撮像装置の処理を示すフローチャートであり、
図7を用いて、実施例1において撮像装置100で実行される辞書データを受信し、被写体検出を行って撮像制御する処理の流れについて説明する。この動作は、撮像装置100の電源がオンの状態において、不揮発性メモリ203に格納されているコンピュータプログラムがメモリ202に展開され、CPU201がメモリ202のコンピュータプログラムを読み出して実行することにより実現される。
【0080】
ステップS701において、撮像装置100は、サーバー110から未だ受信していない辞書データがないかを、通信部218を介してサーバー110に確認する。サーバー110から受信していない辞書データがサーバー110にあれば(ステップS701でYESと判定)、ステップS702において、通信部218を介してサーバー110から辞書データを取得し、不揮発性メモリ203へ記憶する。サーバー110から受信していない辞書データがなければ(ステップS701でNOと判定)、ステップS703へ進む。
【0081】
ステップS703では、不揮発性メモリ203に記録されている辞書データを用いて、ニューラルネットワーク処理部205で被写体検出を行う。辞書データは、不揮発性メモリ203から、メモリ202又は、ニューラルネットワーク処理部205の内部メモリ304へコピーして、被写体検出で使用するようにしても良い。又、ステップS703における被写体検出は、撮像部212によって取得された画像データを入力データとして行われる。
【0082】
ステップS704では、被写体検出結果に基づき撮像部212でオートフォーカスなどの撮像制御を行う。即ち、検出された被写体にピントを合わせると共に、適正露出となるようにオートフォーカスや露出制御などの撮像制御を行う。ここで、ステップS703,S704は、辞書データに基づき被写体検出を行い、被写体検出により検出された被写体に対して所定の撮像制御を行う撮像ステップとして機能している。
【0083】
本実施例では、サーバーから辞書データを取得するステップと、取得した辞書データに基づく被写体検出および撮影制御を同一フローで行っている。しかし、これに限らず、たとえば非撮影時にあらかじめサーバーに問合せ辞書データを取得するモードないしタイミングが設けられていてもよい。また、被写体検出に用いられる辞書データは、必ずしもサーバーに問合せて、未取得であった辞書データを取得し、それをそのまま使わなくても良い。例えば、辞書データを利用する前に(例えば、ステップS704の前に)辞書データを決定するためのステップとして、例えばユーザー操作を受け付けるステップや自動で決定するステップを設けても良い。
【0084】
図8は、辞書データに基づく被写体検出の例を説明するための図である。
【0085】
実施例1の辞書データは、二ューラルネットワーク処理部205で被写体検出タスクを実行するための処理内容を記述したコンピュータプログラムや、学習済み係数パラメータを被写体の種類ごとに持っている。
【0086】
例えば、被写体の種類としては、人物や動物の犬、猫や自動車などの乗物、バイクなどがある。
【0087】
図8の801、805は表示部216のメニュー画面の例を示しており、検出する被写体を、操作部204を介してユーザーが設定する。
図8の(A)では、検出する被写体として「人物」802が設定されている。「人物」が設定されている場合、予め不揮発性メモリ203に格納されている「人物」の辞書データを用いて被写体検出を行う。803は表示部216で表示されている撮影画像であり、「人物」の顔が検出され、枠804が重畳されて表示されている状態を示している。
【0088】
図8(B)では、検出する被写体として「カスタム」806が設定されている。「カスタム」の場合は、サーバー110より受信したカスタム用の辞書データとして例えば「魚」を用いて被写体検出を行う。803は表示部216で表示されている撮影画像であり、「カスタム」の辞書データが「魚」の場合であり、検出された魚に枠806が重畳されて表示された状態を示している。
【0089】
図9は、実施例1に係るサーバーの処理を示すフローチャートである。
【0090】
尚、
図9の処理は、サーバー110の電源がオンの状態において、記録部506に格納されているコンピュータプログラムがメモリ502に展開され、CPU501がメモリ502のコンピュータプログラムを読み出して実行することにより実現される。
【0091】
図9を用いて、携帯端末120から教師データとネットワーク構造に関する情報を取得し、辞書データを生成し、生成した辞書データを撮像装置100へ送信するサーバー110の処理に関して抜粋して説明する。
【0092】
ステップS901において、サーバー110は、通信部507を介して、携帯端末120より教師データを取得する。ここで、ステップS901は被写体検出のための教師データを取得する教師データ取得手段として機能している。又、ステップS902において、通信部507を介して、携帯端末120よりネットワーク構造に関する情報も取得し、ネットワーク構造を特定する。ネットワーク構造に関する情報とは、例えば、撮像装置の機種名等であり、撮像装置の機種名とネットワーク構造との対応関係が記録部506に記録されているものとする。ステップS902は、ネットワーク構造に関する情報を取得するネットワーク構造取得手段として機能している。
【0093】
次いで、ステップS903において、辞書データ生成に必要なデータが揃っているかを確認する。データが揃っていれば(ステップS903でYESと判定)、ステップS904へ進む。データが揃っていなければ(ステップS903でNOと判定)、ステップS907へ進む。
【0094】
例えば、教師データに画像データはあるが、被写体領域が設定されていないケースではステップS903でNOと判定される。
【0095】
ステップS904において、ニューラルネットワーク処理部508で辞書データの生成を行う。辞書データの生成としては、予め多数の辞書データを生成しておき、教師データから適切な辞書データを選択する方法(例えば
図10(A))がある。又、教師データから学習によって辞書データを生成する方法(例えば
図10(B))も適用可能である。ステップS904は辞書生成手段(辞書生成ステップ)として機能している。
【0096】
図10は、実施例1に係る辞書データ生成の処理の流れを説明するためのフローチャートである。
【0097】
図10(A)は選択に基づく辞書データ生成例の処理の流れを示すフローチャートである。ステップS1001aにおいて、教師データの画像データから被写体検出を行う。ここでの被写体検出は、複数種類の被写体を検出できるものとして、YOLOやFastR-CNNなど公知の被写体検出方法が適用できる。
【0098】
検出結果として、xy座標の位置情報、サイズ、検出スコア、被写体種類等が出力される。ステップS1002aにおいて、教師データの領域情報と被写体検出結果の位置情報及びサイズから、教師データの領域と合致する検出結果を抽出する。
【0099】
ステップS1003aにおいて、抽出した検出結果から教師データの種類を推定する。複数の教師データがある場合、被写体種類毎のスコアの平均値から被写体の種類を決める。
【0100】
ステップS1004aにおいて、推定した辞書データを選定する。辞書データは、ネットワーク構造の種類毎に予め複数用意しておき、目的とするネットワーク構造の辞書データを選定する。ここで、ステップS1004aは、予め用意した複数の辞書データから前記教師データの被写体に適した辞書を選定する辞書生成手段として機能している。
【0101】
図10(B)は学習に基づく辞書データ生成例の処理の流れを示すフローチャートである。辞書データの初期値が乱数の状態から学習をするとなると多数の教師データが必要となる。多数の教師データが必要となるとユーザーの教師データを入力する手間がかかるため、少数の教師データで学習する方法が望まれる。
【0102】
そこで、ステップS1001bにおいて、多種多様な物体を予め学習した辞書データを初期値に設定する。ステップS1002bにおいて、教師データに基づき学習を行う。辞書データの初期値が乱数ではなく、物体らしさを学習したものであるので、所謂ファインチューニングとなる。ここで、ステップS1002bは、教師データに基づき学習をすることによって前記辞書データを生成する辞書生成手段として機能している。
【0103】
図9のフローチャートの説明に戻る。ステップS904において辞書データ生成を行うと、ステップS905で辞書データ生成に成功できたか否かを判定する。辞書データの生成が
図10(A)のような選定に基づく手法の場合には、辞書選択できた場合は成功、教師データに属する検出結果が得られなかったなど辞書選択ができなかった場合は失敗となる。又、辞書データの生成が
図10(B)のような学習に基づく手法の場合には、例えば、学習の損失関数の値が、所定の閾値以下であれば成功、所定の閾値よりも大きければ失敗とする。
【0104】
辞書データの生成に成功すれば(ステップS905でYESと判定)、ステップS906において、辞書データを通信部507へ介して、撮像装置100へ送信する。ここでステップS906は辞書生成手段により生成した辞書データを撮像装置100へ送信する辞書データ送信手段として機能している。
【0105】
辞書データの生成に失敗すれば(ステップS905でNOと判定)、ステップS907において、通信部507へ介して、携帯端末120へエラーが発生したことを通知する。
【0106】
図11は、実施例1に係る携帯端末120で実行される処理の流れの例を示すフローチャートである。
【0107】
携帯端末120において、教師データとネットワーク構造に関する情報を入力し、サーバー110へ学習開始を通知するための、携帯端末120での処理に関して抜粋して説明する。この動作は、携帯端末120の電源がオンの状態において、記録部606に格納されているコンピュータプログラムがメモリ602に展開され、CPU601がメモリ602のコンピュータプログラムを読み出して実行することにより実現される。
【0108】
図12を用いて、
図11のフローチャートの処理の流れを説明する。
【0109】
図12は、実施例1に係る携帯端末の表示部604の教師データ及びネットワーク構造の入力画面例を説明するための図である。
【0110】
図11のステップS1101において、ユーザーは、操作部605を介して、記録部606に記憶されている撮影画像の中から教師データとして利用する画像の選択を行う。
図12(A)は、表示部604による画像選択画面の例を示す図であり、1201に示すように撮影画像が12個表示されている。ユーザーはこの12個の撮影画像の中から操作部605によるタッチ等で教師データを例えば2つ選択する。1202のように撮影画像の左上に丸が表示されているものが選択された教師データの画像とする。
【0111】
ステップS1102において、ユーザーは、操作部605を介して、教師データとして選択した2つの画像に対して、画像中の目的とする被写体領域を指定する。
図12(B)は、表示部604による被写体領域の入力画面の例を示す図であり、1203の矩形枠は、ユーザーが入力した被写体領域を示す。教師データとして選択した各画像に対して、被写体領域を設定する。被写体領域の設定方法としては、操作部605の一部であり表示部604と一体のタッチパネルを介して表示された画像から領域選択を直接行っても良い。或いは、CPU601などにより簡易的にエッジ等の特徴量で検出された被写体枠から選択、微調整するなどして選択しても良い。
【0112】
ステップS1103において、ユーザーは、操作部605を介して、ネットワーク構造の制約を指定(ネットワーク構造に関する情報を指定)する。具体的には、例えば撮像装置の種別を選定する。
図12(C)は、表示部604によるネットワーク構造の入力画面の例を示す図であり、撮像装置の機種名が複数個表示されている。この中からユーザーは辞書データを用いた撮像制御を行いたい撮像装置の機種名を1つ選択する。1204が選択されたたものとする。
【0113】
ステップS1104において、ユーザーは、操作部605を介して、辞書データ生成の開始を決定する。
図12(D)は、表示部604による辞書データ生成の開始の確認画面例を示す図であり、YESかNOかを入力する。1205に示すYESが選択されれば、通信部607を介して、サーバー110へ教師データと撮像装置の種別の情報が送信され、サーバー110において辞書データ生成が行われる。
図12(D)で、NOが選択されれば、処理を終了する。
【0114】
尚、教師データの画像データ中の被写体領域が正事例、その他の領域が負事例として、サーバー110での辞書データ生成で扱われる。上述した説明では、被写体領域が存在する画像を選択する例を示したが、被写体領域が存在しない画像を選択しても良い。その場合は、被写体領域の情報は入力せず、画像全体を負事例として扱う。
【0115】
以上のように、実施例1の撮像システムによれば、撮像装置で利用可能な、ユーザーによる任意の辞書データが生成可能となる。
【0116】
<実施例2>
本発明の実施例2に係る撮像システムに関して、以下に詳細に説明する。実施例1と同様な部分に関しては、説明を省略する。
【0117】
図13は、実施例2の係る撮像システムの構成例を示す図であり、撮像システムは撮像装置100、情報処理装置としてのサーバー110、情報入力装置としての携帯端末120からなる。又、撮像装置100とサーバー110と携帯端末120が無線よる通信ネットワークにより接続される。
【0118】
実施例2においても、実施例1と同様の方法で、携帯端末120にインストールされた所定のアプリケーションソフトを用いて、ユーザーによる任意の(カスタムの)被写体検出の辞書データが生成可能となる。但し、実施例2では、課金によりユーザーによるカスタムの辞書データ(ユーザーカスタム辞書と呼ぶ。)を生成するサービスを、撮像装置100で有効化できるものとする。
【0119】
この課金サービスにおいて、ユーザーカスタム辞書が意図したものになっているかを確認できなければ、辞書データの価値が判断できない。
【0120】
そこで、撮像装置100で、ユーザーカスタム辞書に基づく検出結果を枠表示する。それにより検出能力の評価が可能となる。そして、当該辞書データを購入することで、撮像装置100においてユーザーカスタム辞書を用いた撮像制御機能が有効(利用可能)となる課金システムとする。
【0121】
携帯端末120では、辞書有効化部123を備える。そして、ユーザーカスタム辞書が、携帯端末120における課金によって有効化されれば、撮像装置100においてユーザーカスタム辞書を用いた被写体検出結果に基づく撮像制御を可能とする。ここで、辞書有効化部123は、辞書生成手段によって生成された辞書データを課金によって有効化する辞書有効化手段として機能している。
【0122】
図14は、実施例2に係る撮像装置における処理例を示すフローチャートであり、
図14を用いて、実施例2における撮像装置100で実行される処理の流れに関して説明する。このフローチャートの動作は、撮像装置100の電源がオンの状態において、不揮発性メモリ203に格納されているコンピュータプログラムがメモリ202に展開され、CPU201がメモリ202のコンピュータプログラムを読み出して実行することにより実現される。
【0123】
ステップS1401において、ニューラルネットワーク処理部205では、ユーザーカスタム辞書を用いて被写体検出を行う。尚、
図8(B)で説明したように、撮像装置100はカスタム辞書を使う状態に設定されているものとする。
【0124】
ステップS1402において、表示制御部215によって、被写体検出結果を枠として撮像装置の撮影画像に重畳して表示手段としての表示部216で表示する。これによって、ユーザーは、被写体検出の辞書データがユーザーの意図したものになっているかを確認できる。目的としている被写体が検出され、目的としている被写体以外が検出されない状態であれば、ユーザーの意図した辞書データが生成できていると評価できる。被写体検出の辞書データがユーザーの意図したものでなければ、ユーザーは携帯端末12において教師データを追加して、辞書データを再生成しても良い。すなわち、ステップS1402で被写体検出結果を表示するとともに辞書データの再生成フロー(
図11)へ移行するか否かを選択させる画面を表示してもよい。
【0125】
ステップS1403において、CPU201は、ユーザーカスタム辞書が有効な状態であるかを判定する。ユーザーカスタム辞書の初期状態は無効状態とし、携帯端末120より、有効状態に変更される。携帯端末120において、操作部605を介して、課金により辞書データを有効にする処理が実行されれば、通信部607を介して、撮像装置100へそのことが通知される。
【0126】
ステップS1403において、ユーザーカスタム辞書が有効な状態であれば、ステップS1404において、当該辞書データによる検出結果を用いた撮像制御が行われる。ステップS1403において、ユーザーカスタム辞書が無効な状態であれば、ステップS1405において、当該辞書データによる検出結果を利用せずに撮像制御が行われる。
【0127】
即ち、辞書有効化手段によって辞書データが有効化されている場合には、撮像装置100は、被写体検出により検出された被写体に対してユーザーカスタム辞書データに基づく所定の撮像制御(AFやAEなど)を行う。又、辞書有効化手段によって辞書データが有効化されていない場合には、撮像装置100は、ユーザーカスタム辞書データに基づく所定の撮像制御を行わないように制御される。
【0128】
図15は、ユーザーカスタム辞書の有効化前後の撮像制御に関して説明する図であり、
図15(A)は、ユーザーカスタム辞書の有効化後の表示部216の撮影画像の例である。撮影画像1501は、撮像装置100の静止画記録スイッチがOFFな状態であり、ユーザーカスタム辞書に基づく被写体検出結果1502が枠として撮像装置の撮影画像に重畳されて表示されている。撮影画像1503では、撮像装置100の静止画記録スイッチがONになり、ユーザーカスタム辞書による被写体検出結果1504に基づき、オートフォーカスや露出制御などの撮像制御を行っている状態を示す。
【0129】
図15(B)は、ユーザーカスタム辞書の有効化前の表示部216の撮影画像の例である。撮影画像1505は、撮像装置100の静止画記録スイッチがOFFな状態であり、ユーザーカスタム辞書に基づく被写体検出結果1506が枠として撮像装置の撮影画像に重畳されて表示される。ここで、
図15(A)では被写体検出結果1502は実線となっているのに対して、被写体検出結果1506は点線で表現している。これは、ユーザーカスタム辞書が未だ有効でない(無効)ことをユーザーが確認しやすいようにするためである。尚、実線と点線に限らず、枠の形状や色などを変えても良い。
【0130】
撮影画像1507では、撮像装置100の静止画記録スイッチがONになり、ユーザーカスタム辞書とは異なる被写体検出結果1508に基づき、オートフォーカスや露出制御などの撮像制御が行なわれている状態を示す。撮影画像1507では、ユーザーカスタム辞書とは異なる、「人物」の顔に関する辞書データが用いられて、被写体検出結果1508として、人物の顔に枠が重畳表示されている。
【0131】
上述した説明では、ユーザーカスタム辞書が1種類の場合を説明したが、1種類に限定されず複数種類設定できるようにしても良い。その場合、ユーザーカスタム辞書毎に課金によって有効/無効の処理が適用される。即ち、辞書有効化手段は、辞書生成手段によって生成された辞書データが複数ある場合に、課金により辞書データ毎の有効化を行う。
【0132】
また、上述した説明では、ユーザーカスタム辞書の有効/無効を課金対象とする例を示したが、予め各装置内やサーバーに登録された、サービス提供者により作成された既成の辞書データについても、課金により辞書を追加するサービスとして成立する。すなわち、各装置のメモリ内あるいはサーバー110に予め記憶させた既成の辞書データに対しても、辞書有効化手段による有効、無効の設定が可能となるようにしても良い。
【0133】
以上のように、実施例2の撮像システムによれば、取得した辞書データの被写体検出性能を撮像装置100で確認したうえで、当該辞書データの購入判断が可能となる。また、当該辞書データの被写体検出性能が十分であるか否かを確認できるので、教師データを再度提供し、作成した辞書の被写体検出性能をさらに強化することが可能となる。
【0134】
<実施例3>
本発明の実施例3に係る撮像システムに関して、以下に詳細に説明する。実施例1と同様な部分に関しては、説明を省略する。
【0135】
図16は、実施例3に係る撮像システムの構成図であり、実施例3に係る撮像システムは、撮像装置100、情報処理装置としてのサーバー110からなるシステムであり、撮像装置100とサーバー110とが無線よる通信ネットワークにより接続される。実施例1との違いは、情報処理端末としての携帯端末120が存在せず、撮像装置100において、教師データとネットワーク構造の入力の役割を担う点にある。
【0136】
実施例1の撮像システムでは、ユーザーによる任意の辞書データが生成可能となる。ただし、ユーザーによる教師データの作成が必要であり、手間がかかる。この手間を解消するため、実施例3では教師データの作成をアシストするように構成されている。即ち、実施例3に係る撮像システムでは、撮像装置100に教師データ生成手段としての教師データ生成部103を備え、その結果に基づきユーザーが教師データ入力部121で教師データの入力を行う。
【0137】
教師データ生成部103では、被写体検出部101(ニューラルネットワーク処理部205)での推論結果を利用する。被写体検出部101(ニューラルネットワーク処理部205)における処理は、撮影時の撮影制御向けの処理をする場合と、非撮影時の教師データ生成向けの処理をする場合とで処理内容が異なる。詳細は後述する。
【0138】
実施例1の撮像システムでは、ネットワーク構造指定部122は撮像装置とは異なる携帯端末120に備えられ、撮像装置の機種によって、ネットワーク構造の制約が異なるため、撮像装置の機種名をユーザーが指定するように構成されていた。一方、実施例3の撮像システムでは、ネットワーク構造指定部122は撮像装置100に備えられており、ユーザーではなく撮像装置100のCPU201がネットワーク構造を指定して、通信部218を介して、サーバー110へ通知するもとのとする。
【0139】
尚、
図16に示される機能ブロックの一部は、撮像装置100に含まれるコンピュータとしてのCPU201に、記憶媒体としての不揮発性メモリメモリ203等に記憶されたコンピュータプログラムを実行させることによって実現されている。しかし、それらの一部又は全部をハードウェアで実現するようにしても構わない。ハードウェアとしては、専用回路(ASIC)やプロセッサ(リコンフィギュラブルプロセッサ、DSP)などを用いることができる。
【0140】
図17は、実施例3における撮像装置100の処理を説明するためのフローチャートである。
図17を用いて、実施例3における撮像装置100の撮影時の撮影制御向けと非撮影時の教師データ生成向けのニューラルネットワーク処理の差異に着眼して、処理の流れを説明する。
図17(A)は撮影時の処理の流れを示すフローチャート、
図17(B)は非撮影時の処理の流れを示すフローチャートである。
【0141】
これらの動作は、撮像装置100の電源がオンの状態において、不揮発性メモリ203に格納されているコンピュータプログラムがメモリ202に展開され、CPU201がメモリ202のコンピュータプログラムを読み出して実行することにより実現される。後述の
図18のフローチャートについても同様である。
【0142】
図17(A)の撮影時の処理では、ステップS1701aにおいて、撮像手段から画像を取得する。当該画像を用いて、ステップS1702aにおいて、被写体検出部101(ニューラルネットワーク処理部205)で被写体検出を行う。この検出結果に基づき、ステップS1703aにおいて、撮像制御部102によって撮像制御を行う。オートフォーカスなどの撮像制御において被写体検出結果を用いるため、被写体検出部101(ニューラルネットワーク処理部205)での被写体検出は高速に処理する必要がある。
【0143】
高速処理を行うため、検出する被写体の種類は限定する。例えば、
図8を用いて説明したように、メニュー設定で検出する被写体を選択し、選択した被写体のみを検出する辞書データを利用する。検出する被写体を限定することで、被写体の特徴を表現するパラメータが少なくてよく、特徴抽出のため積和演算回数が少なくなるため、高速処理が可能になる。
【0144】
一方で、
図17(B)の非撮影時の処理では、ステップS1701bにおいて、記録手段としての記録媒体220或いはサーバー等から画像を取得する。当該画像を用いて、ステップS1702bにおいて、被写体検出部101(ニューラルネットワーク処理部205)で被写体検出を行う。この検出結果に基づき、ステップS1703bにおいて、教師データの生成を行う。
【0145】
ステップS1703bにおいては、ユーザーによる任意の教師データの作成が目的であるため、被写体検出部101(ニューラルネットワーク処理部205)での被写体検出では多種の被写体を検出する必要がある。多種の被写体を検出するためには、被写体の特徴を表現するパラメータを多くする必要があり、特徴抽出のため積和演算回数が多くなる。そのため、低速に処理することになる。
【0146】
図18は、
図17(B)における教師データ入力の処理の流れを説明するフローチャートである。又、
図19は、
図18における教師データ入力画面の1例を示す図である。
【0147】
教師データの入力は、ユーザーが撮像装置100の表示部216の画面1900(
図19)に表示された情報に基づき、操作部204を介して、入力することで行われる。
【0148】
ステップS1801において、ユーザーは、記録媒体220に記録されている撮影画像から教師データに利用したい画像を選択する。
【0149】
ステップS1802において、ユーザーは選択した画像が正事例であるか、負事例であるかを選択する。選択した画像に目的とする被写体が存在すれば、正事例を選択して、ステップS1803へ進む。一方で、選択した画像に目的とする被写体が存在しなければ、負事例を選択して処理を終了する。この場合、画像全体が負事例の領域として扱われる。例えば、検出したくない被写体を選択する際に利用される。
【0150】
ステップS1803において、選択した画像に対して、目的とする被写体の位置を指定する。例えば、操作部204がタッチパネルの場合、タッチすることで目的とする被写体の位置を指定できる。撮影時のフォーカス領域を目的とする被写体の位置の初期値としても良い。
図19の1901が選択した画像であり、1902に指定位置の例を示す。
【0151】
ステップS1804において、表示部216の画面1900に教師データ候補を表示させ、目的とする被写体領域があるかを確認する。ニューラルネットワーク処理部205の被写体検出結果に基づき、指定位置に近い被写体領域を教師データ候補とする。
図19の(B)に教師データ候補の例を示す。被写体としては同じであるものの、領域が異なる3つの教師データ候補の例を示す。1902は全身を、1903は顔を、1904は瞳を教師データ候補としている。
【0152】
ステップS1804において、教師データ候補の中に目的する被写体領域があれば、ステップS1805へ進み、教師データ候補の1つを教師データの正領域とする。ステップS1804において、教師データ候補の中に目的とする被写体領域がなければ、ステップS1806へ進み、ユーザーが教師データとする被写体領域を入力する。
【0153】
以上のように、実施例3の撮像システムによれば、撮像装置100自身を用いて教師データ生成ができると共に、教師データ生成のユーザーの負担を軽減できる。
【0154】
上述した実施例では、ユーザーカスタムの辞書データは1つの場合に関して説明した。しかしこれに限らず、複数の辞書データを作成し、複数の辞書データを撮像装置100で受信可能な構成であってもよい。このとき、各辞書データを区別・区分する情報が必要となる。そこで、記録部506に記録され、撮像装置100に送信される辞書データには、コンピュータプログラムや学習済み係数パラメータに加え、辞書を識別(表現)する情報がヘッダ情報として付与されるものとする。ヘッダ情報としては例えば辞書データの名称、検出する被写体の種類(分類)、辞書データの作成日、更新日、辞書データの作成者名、辞書データ生成に用いた教師データの枚数(正事例、負事例を区別してもしなくてもよい)、現在のバージョン情報などである。また、辞書データを識別するあるいは評価する上で有効な情報として学習に利用した教師データそのものを付与してもよい。もしくは教師データはサーバー110に記憶され、辞書データには、サーバー110内の該当する教師データのアドレスを記憶しておいてもよい。これらの情報によって、各辞書データが、どのような教師データを使用したかを確認することができる。辞書データに教師データを付帯させる場合、教師データ数が多いとデータ量が多くなってしまうので、付帯上限枚数を設定し、一部の教師データを付帯させるよう構成してもよい。付帯する教師データはユーザーが指定してもよいし、サーバー110のCPU501が評価値に基づいて選択してもよい。
【0155】
図20に撮像装置100での辞書データの確認画面の例を示す。
図20のメニュー2001、2003、2007、2009はCPU201が辞書データ内容の確認時に表示部216に表示させるメニュー画面の例を示している。メニュー2001は、検出する被写体を、操作部204を介してユーザーが設定するメニュー画面であり、「カスタム」2002を設定している。サーバー110より受信したカスタム用の辞書データが複数ある場合は、カスタム辞書データを選択するメニュー2003へ遷移する。メニュー2003では、カスタム辞書データとして、「魚」、「カブトムシ」、「マスコットA」が撮像装置100に受信された状態を示す。「魚」、「カブトムシ」、「マスコットA」の辞書データの名称は、辞書データのヘッダ情報に記憶されている。この名称は、携帯端末120で、教師データの設定時に操作部605を介して、ユーザーが設定する。メニュー2003では、辞書データとして「魚」2005が選択されており、「魚」の辞書データを用いて被写体検出を行う。ここで、「INFO」2006が操作部204を介して選択されると、「魚」のヘッダ情報を表示したメニュー画面2007へ遷移する。メニュー2007では、「魚」辞書データのヘッダ情報として記憶されている、辞書データ作成日、辞書データ作成者、学習データ枚数、辞書のバージョンを表示している例を示す。辞書データ作成日はサーバー100で辞書データ生成を行った日付を辞書データのヘッダ情報に記憶しておく。辞書データ作成者は、携帯端末120での所有者情報から辞書データのヘッダ情報へ記憶する。教師データ枚数は、教師データの設定時の画像枚数に基づき、辞書データに記憶しておく。これらのヘッダ領域に記憶されているヘッダ情報は、教師データの設定(受信)時にユーザーが直接数値、名称を入力してもよい。
【0156】
また辞書データは一度生成した後であっても更新が可能である構成としてもよい。たとえば、現在の学習済み係数パラメータを初期値として、新たに教師データを追加して、再学習することができる。メニュー2007のバージョンはその更新情報を示し、再学習の度に、サーバーが割り当てるものとする。これらのヘッダ情報によって、辞書データの概要は把握できるものの、どのような被写体を検出しやすいかなどの詳細を把握しにくい。被写体検出の特性を把握するためには、教師データそのものを確認するのが最適である。そこで、「INFO」2008を、操作部204を介して選択すると、「魚」辞書データの教師データを示すメニュー2009へ遷移する。辞書データに、サーバー100に記憶されている教師データのアドレスが記憶されており、本実施形態では通信部218を介してCPU201が表示部216に表示させる。このとき正事例および負事例のいずれであるか、また該当する被写体領域を示す枠情報、またこれに限らず、上述した通り少なくとも一部の教師データは辞書データに付帯して受信・記録されていてもよい。この場合、CPU201は記録媒体220あるいはメモリ202に辞書データとともに記録された、該辞書データに対応する教師データを表示部216に表示させる。
【0157】
以上によって、複数のカスタム辞書データがある場合でも、辞書データの違いを確認することができる。上述では、撮像装置100で辞書データの情報を確認する内容に関して説明したが、携帯端末120でも確認できる構成であってもよい。この場合、辞書データのヘッダ情報としては、教師データ入力時に設定したネットワーク構造の制約を示す撮像装置種類が辞書データに追加で記憶されており、表示部604で表示するものとする。
【0158】
また本実施形態では辞書データ生成のための教師データの生成、供給が携帯端末120で辞書データ受信、被写体検出処理に利用する装置が撮像装置100と別個の装置である実施例を示したが、これに限らず、両装置が同一の装置で構成されていてもよい。
【0159】
<他の実施例>
以上、本発明をその好適な実施例に基づいて詳述してきたが、本発明は上記実施例に限定されるものではなく、本発明の主旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。
【0160】
本発明が適用され得る対象は、上述の実施例で説明した撮像装置100、サーバー110、携帯端末120等に限定されるものではない。例えば、撮像装置100を複数の装置から構成されるシステムとした場合であっても上述の実施例と同様の機能を実現することが可能である。更に、撮像装置100の処理の一部をネットワーク上の外部装置により実施して実現することが可能である。
【0161】
尚、本実施例における制御の一部又は全部を上述した実施例の機能を実現するコンピュータプログラムをネットワーク又は各種記憶媒体を介して撮像システム等に供給するようにしてもよい。そしてその撮像システム等におけるコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行するようにしてもよい。その場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することとなる。
【符号の説明】
【0162】
100 撮像装置
101 被写体検出部
102 撮像制御部
110 サーバー
111 辞書データ生成部
120 携帯端末
121 教師データ入力部
122 ネットワーク構造指定部