以下、本発明の実施形態を図面に基づいて説明する。
(第1実施形態)
まず、図1〜図8を参照して、本発明の第1実施形態による輝度制御装置100の構成について説明する。輝度制御装置100は、たとえば、暗視装置などに用いられる。
図1に示すように、輝度制御装置100は、増幅部1と、撮像部2と、制御部3と、レンズ4とを備える。
増幅部1は、たとえば、イメージ・インテンシファイアなどを含む。また、増幅部1は、レンズ4を介して入射する光を増幅して撮像部2に出力するように構成されている。また、増幅部1は、ゲインを制御することにより、入射光に対する出力光の増幅度が調整されるように構成されている。
撮像部2は、CMOS(Complementary Metal Oxide Semiconductor)センサまたはCCD(Charge−Coupled Device)センサなどを含む。また、撮像部2は、増幅部1により増幅された出力光に基づいて画像を撮像するように構成されている。また、撮像部2は、ゲインおよび露出時間を含む撮像パラメータが制御されて、撮像する画像の輝度が調整されるように構成されている。
制御部3は、輝度制御装置100の各部を制御するように構成されている。また、制御部3は、ヒストグラム解析部31を含む。また、制御部3は、撮像部2により撮像された画像の解析結果に基づいて、増幅部1および撮像部2を制御するように構成されている。具体的には、制御部3は、撮像部2により撮像された画像から増幅部1の出力光の輝度を算出して、撮像する画像の輝度が最適となるように増幅部1のゲインを制御するとともに、撮像部2のゲインおよび露出時間を制御するように構成されている。
また、制御部3は、撮像部2により撮像された画像と、撮像部2のゲインおよび露出時間を含む撮像パラメータとに基づいて増幅部1の出力光の輝度を取得するように構成されている。具体的には、制御部3は、ヒストグラム解析部31の解析結果に基づいて増幅部1の出力光の輝度を取得するように構成されている。
また、制御部3は、増幅部1の出力光の輝度が所定の輝度未満となるように増幅部1を制御するように構成されている。なお、所定の輝度は、たとえば、増幅部1が局所的な焼き付きを起こす出力光の輝度が設定されている。つまり、所定の輝度は、増幅部1の増幅限界値に基づいて設定されている。
また、制御部3は、撮像部2により撮像された画像の輝度としての画素値のうち代表画素値が所定の画素値となるように増幅部1および撮像部2を制御するように構成されている。具体的には、制御部3は、ヒストグラム解析部31の解析結果に基づいて代表画素値を取得するように構成されている。この際、図2に示すように、ヒストグラム解析部31は、画素値の大きい側からヒストグラムを順に累算して、累算値が所定の画素数に達した時の画素値を基準画素値として算出する。そして、制御部3は、基準画素値を代表画素値として取得する。
また、図3に示すように、ヒストグラム解析部31は、基準画素値が最大画素値である場合に、画像のヒストグラムは飽和していると判定するように構成されている。また、ヒストグラム解析部31は、画像のヒストグラムが飽和している場合、ヒストグラム飽和領域の幅である推定飽和幅を推定し、最大画素値に推定飽和幅を加えて代表画素値としての推定基準画素値を算出するように構成されている。
具体的には、図4に示すように、ヒストグラム解析部31は、画像のヒストグラムの飽和領域の形状を正方形で推定したときの正方形の幅W1を推定飽和幅として推定するように構成されている。また、図5に示すように、ヒストグラム解析部31は、画像のヒストグラムの飽和領域の形状を長方形で推定したときの長方形の幅W2を、推定飽和幅として推定するように構成されている。そして、制御部3は、正方形の幅として推定した推定飽和幅と、長方形の幅として推定した推定飽和幅とのうち大きい方を推定飽和幅として採用するように構成されている。
また、制御部3は、増幅部1および撮像部2を比例制御により制御するように構成されている。また、制御部3は、増幅部1および撮像部2の制御パラメータを変化させる制御量が第1制御量以上の場合に、制御量を第1制御量に固定するように構成されている。また、制御部3は、増幅部1および撮像部2の制御パラメータを変化させる制御量が第1制御量より小さい第2制御量以下の場合に、制御量を0に固定するように構成されている。なお、比例制御の処理についての詳細は後述する。
また、制御部3は、撮像部2を、制御量が離散的な第1制御パラメータと、制御量が連続的な第2制御パラメータとで制御するとともに、第1制御パラメータの制御量の離散化誤差を制御量が連続的な第2制御パラメータで補償するように構成されている。具体的には、制御部3は、撮像部2を、制御量が離散的な第1制御パラメータとしてのゲイン(増幅度)と、制御量が連続的な第2制御パラメータとしての露光時間とで制御するように構成されている。また、制御部3は、ゲインの制御量の離散化誤差を制御量が連続的な露光時間で補償するように構成されている。なお、離散化誤差を補償する処理についての詳細は後述する。
(ヒストグラム解析)
次に、ヒストグラム解析部31によるヒストグラム解析処理について説明する。
ヒストグラムは、増幅部視野全体および注目視野(たとえば、画像の中心付近など)の2種類が得られる。各ヒストグラムを解析して各ヒストグラム情報を得るアルゴリズムについて説明する。ヒストグラム情報は、ヒストグラム幅histogramWidth、推定飽和幅intSaturation、全出力光量totalIntensity、平均輝度aveBrightness、最大スポット光輝度spotBrightness、および、スポット光推定飽和幅spotSaturationの6つを含む。
図2に示すように、ヒストグラム幅histogramWidthは、画素値0から有意な(ノイズを除いた)画像情報が含まれる最大の画素値までの幅である。具体的には、暗視装置などで撮像する低照度画像はノイズが多く、ヒストグラム幅histogramWidthが不安定になりやすい。そこで、閾値T1を設定して、ヒストグラムを画素値の大きい側(最大画素値)から積分していき、累積ヒストグラム(積分値)が閾値T1を超えた画素値をヒストグラム幅histogramWidthとする。なお、閾値T1は画像の特性に応じて適切に設定する。たとえば、閾値T1は、全画素数の1%の画素数が設定される。これにより、ノイズが多い場合、または、部分的に飽和している場合でも比較的安定してヒストグラム幅を算出することが可能である。
推定飽和幅intSaturationは、画素値が飽和した時、すなわち、ヒストグラム幅histogramWidthが最大画素値に等しい時の飽和領域の推定幅である。なお、飽和していない時には推定飽和幅intSaturation=0となる。推定飽和幅intSaturationは、飽和領域のヒストグラムを正方形(図4参照)または長方形(図5参照)と仮定して、それぞれ推定される。なお、飽和領域の面積は、ヒストグラムの最大画素値maxPixValueの画素数Histogram[maxPixValue]に等しい。ただし、ヒストグラム幅histogramWidthの算出と同様に閾値T1を超えた画素値を飽和領域の幅と推定するため、飽和領域の面積はHistogram[maxPixValue]−T1として扱う。
図4に示すように、正方形モデルで推定する場合、下記の式(1)に示すように、飽和領域の面積Histogram[maxPixValue]−T1の平方根をとることで、正方形の辺の長さとして推定飽和幅W1が推定される。
図5に示すように、長方形モデルで推定する場合、下記の式(2)に示すように、長方形の高さhightを求める。この際、ノイズが多い場合でも安定した値となるように、閾値T2を設定して、ヒストグラムの最大画素値maxPixValueの1つ前の画素値から積分する。そして、閾値T2を超えたときの累積ヒストグラム面積areaを積分区間幅widthで除算することで、平均値として高さhightが算出される。なお、閾値T2は画像の特性に応じて適切に設定する。たとえば、閾値T2は、全画素数の1%の画素数が設定される。また、下記の式(3)に示すように、飽和領域の面積Histogram[maxPixValue]−T2(ヒストグラムの最大画素値の画素数)を高さhightで除算することで、長方形の横辺の長さとして推定飽和幅W2が推定される。
正方形モデルおよび長方形モデルにおいてそれぞれ推定された推定飽和幅W1およびW2のうち、大きい方が最終的な推定飽和幅intSaturationとして採用される。つまり、正方形モデルの推定飽和幅W1は飽和量が大きい時に過小評価され、逆に長方形モデルの推定飽和幅W2は飽和量が小さい時に過小評価されるので、推定飽和幅W1およびW2のうち大きな方を採用することで、飽和量によらず安定して精度の高い推定飽和幅intSaturationを推定することが可能である。
全出力光量totalIntensityは、ヒストグラム解析領域における光量の総和である。ここで、飽和状態で無い場合には局所出力光量∝(画素値i/撮像部ゲインCMGain)となるので、全出力光量totalIntensity∝Σ{画素数Histogram[i]×画素値i/撮像部ゲインCMGain }となる。したがって、全出力光量totalIntensityは、下記の式(4)により算出される。
平均輝度aveBrightnessは、ヒストグラム解析領域の平均輝度である。したがって、平均輝度aveBrightnessは、下記の式(5)に示すように、全出力光量totalIntensityをヒストグラム全面積ROIArea(=ヒストグラム解析領域の面積(画素数))で除算して算出される。
最大スポット光輝度spotBrightnessは、光源などにより局所的に輝度が高い部分の最大の画素値である。また、最大スポット光輝度spotBrightnessは、画素値0から局所的に輝度が高い部分の最大の画素値までの幅である。したがって、最大スポット光輝度spotBrightnessは、上記ヒストグラム幅histogramWidthと同じアルゴリズムにより算出される。ただし、閾値T3は、閾値T1より小さい値に設定する。また、最大スポット光輝度spotBrightnessは、増幅部1の出力光の輝度の絶対値が必要となるので、撮像部ゲインCMGainで除算して正規化される。なお、閾値T3は画像の特性に応じて適切に設定する。たとえば、閾値T3は、全画素数の0.1%の画素数が設定される。
スポット光推定飽和幅spotSaturationは、光源などにより局所的に輝度が高い部分の画素値が飽和した時、すなわち、最大スポット光輝度spotBrightnessが最大画素値に等しい時の飽和領域の推定幅である。したがって、スポット光推定飽和幅spotSaturationは、推定飽和幅intSaturationと同じアルゴリズムにより算出される。また、スポット光推定飽和幅spotSaturationは、増幅部1の出力光の輝度の絶対値が必要となるので、撮像部ゲインCMGainで除算して正規化される。以上により、ヒストグラム情報の6つのパラメータがヒストグラムから算出される。これにより、ヒストグラムを取得すれば、ヒストグラム情報の6つのパラメータが算出可能であり、パラメータ算出のために改めて画像にアクセスする必要がない。
(制御目標値算出)
次に、制御部3による制御目標値算出処理について説明する。
制御目標値は、増幅部視野全体と注目視野(たとえば、画像の中心付近など)の各ヒストグラム情報を統合して算出される。制御目標値は、制御パラメータの目標値である。また、制御目標値は、目標増幅部ゲイン制御値Tgt.APGainValue、目標増幅部ゲートTgt.APGateWid、目標撮像部ゲイン番号Tgt.CMGainNum、および、目標撮像部露出時間Tgt.CMExpTimeの4つを含む。
目標増幅部ゲイン制御値Tgt.APGainValueおよび目標撮像部ゲイン番号Tgt.CMGainNumは、それぞれ、増幅部1および撮像部2のゲインの制御値である。また、目標全ゲインが算出された後に、全ゲインが目標増幅部ゲイン制御値Tgt.APGainValueおよび目標撮像部ゲイン番号Tgt.CMGainNumに振り分けられる。そこで、まずは目標全ゲインの算出アルゴリズムから説明する。
目標全ゲインは、制御前ゲインにさらに目標倍率を乗算した値となる。目標倍率は、制御全ゲインから制御目標全ゲインまでの相対ゲインを表し、ヒストグラム幅目標倍率WidGainと増幅部局所飽和回避目標倍率LclGainとの2つの観点からそれぞれ算出される。
ヒストグラム幅目標倍率WidGainは、ヒストグラム幅が撮像部2のダイナミックレンジ内の最大幅になるようにするための倍率である。また、ヒストグラム幅目標倍率WidGainは、増幅部視野全体ヒストグラム幅目標倍率AllGainと注目領域ヒストグラム幅目標倍率ROIGainとを合成して算出される。ここでは、増幅部視野全体ヒストグラム幅目標倍率AllGainについて説明する。なお、注目領域ヒストグラム幅目標倍率ROIGainも同様の計算で算出される。
まず、ヒストグラム目標幅IdealHistWidthをヒストグラム最大幅(=最大画素値)に対して少し小さくなるように設定する。たとえば、ヒストグラム目標幅IdealHistWidth、をヒストグラム最大幅に対して0.9倍に設定する。次に、下記の式(6)および式(7)に示すように、ヒストグラム幅AllWidを目標幅IdealHistWidthに拡大または縮小する倍率AllGainがそれぞれ算出される。なお、ヒストグラム幅AllWidは、飽和領域も含むため、ヒストグラム情報のヒストグラム幅histogramWidthと推定飽和幅intSaturationとの和になる。
ここで、増幅部視野全体ヒストグラム幅目標倍率AllGainと注目領域ヒストグラム幅目標倍率ROIGainとを重みづけ加算するためのヒストグラム幅目標倍率の注目視野重みmixCoefが算出される。重みは増幅部視野全体平均輝度All.aveBrightnessと注目領域平均輝度ROI.aveBrightnessから輝度差subBrightを算出し、輝度差subBrightから図6に示すような注目視野重みmixCoefに変換する。なお、輝度差subBrightから注目視野重みmixCoefへの変換は各輝度差subBrightにおいて予め設定されている。
そして、下記の式(8)に示すように、算出したヒストグラム幅目標倍率の注目視野重みmixCoefを基に、増幅部視野全体ヒストグラム幅目標倍率AllGainと注目領域ヒストグラム幅目標倍率ROIGainを重みづけ加算して、ヒストグラム幅目標倍率WidGainが算出される。ここで、ヒストグラム幅目標倍率WidGainは、撮像部ゲインを最大値にした場合での倍率として算出される。このため、直前フレームでの撮像部ゲイン番号Pre.CMGainNumと最大撮像部ゲインMaxCMGainとを用いて撮像部ゲインの最大が基準の1倍に正規化される。なお、CMGainLUT[]は事前に測定した撮像部ゲイン番号−撮像部ゲイン変換LUT(ルックアップテーブル)である。
これにより、輝度差が大きい時は、注目領域ヒストグラムを重視し、輝度差が小さい時は増幅部視野全体ヒストグラムが重視される。その結果、注目領域外に高輝度領域があった場合に、注目領域が過度に黒つぶれするのを抑制するとともに、逆に注目領域内に高輝度領域があった場合に、注目領域が過度に白飛びするのを抑制することが可能である。たとえば、撮影シーンが逆光の場合などは、増幅部視野全体ではなく、注目領域の輝度が最適になるように制御される。
増幅部局所飽和回避目標倍率LclGainは、増幅部1の局所飽和が起こらない最大の倍率である。この倍率以下にしておけば、局所飽和が起こらないとともに、同時にスポット光などの局所的に明るい光による増幅部1の局所的な焼き付きを防ぐことが可能である。具体的には、増幅部1に局所的に高輝度光が入射すると、増幅部1の特性によっては、焼き付きに至る前に、局所的な飽和が発生し、その結果入射光量に対する出力光輝度の線形性が崩れ始める場合がある。線形性が崩れると、輝度制御上も安定しなくなるため、局所的飽和が起きないように制御することで、同時に増幅部1の局所的な焼き付きを防ぐことが可能である。
まず、目標最大局所出力光量IdealLocalIntensityを予め測定した局所飽和出力光量を用いて適切な値に設定する。たとえば、目標最大局所出力光量IdealLocalIntensityを予め測定した局所飽和出力光量の0.5倍に設定する。次に、下記の式(9)に示すように、増幅部視野全体最大局所出力光量AllSpotが算出される。ヒストグラム幅と同様に、最大局所出力光量AllSpotは、飽和領域も含むため、ヒストグラム情報の最大スポット光輝度spotBrightnessとスポット光推定飽和幅spotSaturationとの和になる。注目領域最大局所出力光量ROISpotについても最大局所出力光量AllSpotと同様に算出される。
そして、増幅部視野全体最大局所出力光量AllSpotと注目領域最大局所出力光量ROISpotとのうち大きな方を最大局所出力光量maxSpotとし、下記の式(10)に示すように、最大局所出力光量maxSpotを目標最大局所出力光量IdealLocalIntensityに拡大または縮小する倍率LclGainが算出される。
次に、下記の式(11)、式(12)および式(13)に示すように、目標全ゲインが増幅部ゲインと撮像部ゲインに振り分けられる。全ゲインの基準は、増幅部ゲイン最低値で撮像部ゲイン最大値を1倍としている。式(11)に示すように、制御前全ゲインAllGainは、制御前、すなわち直前フレームでの全ゲインであり、直前フレームでの増幅部ゲイン制御値Pre.APGainValueから逆算される。なお、APGainLUT[]は事前に測定した増幅部ゲイン制御値−増幅部ゲイン変換LUTである。また、式(12)に示すように、ヒストグラム幅目標全ゲインTgtWidGainは、ヒストグラム幅から算出した目標全ゲインであり、制御前全ゲインAllGainにヒストグラム幅目標倍率WidGainを乗じて算出される。また、式(13)に示すように、増幅部局所飽和回避目標全ゲインTgtLclGainは、増幅部局所飽和から算出された目標全ゲインであり、制御前全ゲインAllGainに増幅部局所飽和回避目標倍率LclGainを乗じて算出される。
ここで、増幅部ゲインおよび撮像部ゲインの振り分けについて、増幅部1の焼き付きや寿命劣化を防ぐため、増幅部ゲインが優先的に下げられる。そして、増幅部ゲインが最低値の場合でも飽和する時は、撮像部ゲインを下げるように制御される。つまり、撮像部ゲインは基本的に最大となる。そこで、全ゲインの基準は増幅部ゲイン最低値で撮像部ゲイン最大値を1倍(基準)としている。また、増幅部局所飽和が起こっているか否かで、振り分けアルゴリズムを変える必要があるので、ヒストグラム幅目標倍率WidGainが増幅部局所飽和回避目標倍率LclGainより大きいか否かに基づいて、増幅部局所飽和が起こっているか否かを判定する。
増幅部局所飽和が起きていない時(WidGain < LclGain)は、ヒストグラム幅を最大化するだけでよいので、ヒストグラム幅目標全ゲインTgtWidGainが増幅部ゲインおよび撮像部ゲインの両方に振り分けられる。具体的には、下記の式(14)に示すように、ヒストグラム幅目標全ゲインTgtWidGainが最小増幅部ゲインMinAPGain以上であれば、目標増幅部ゲインTgtAPGainをヒストグラム幅目標全ゲインTgtWidGainとする。また、目標撮像部ゲインTgtCMGainを最大撮像部ゲインMaxCMGainとする。一方、増幅部ゲインの制御ダイナミックレンジを超え、ヒストグラム幅目標全ゲインTgtWidGainが最小増幅部ゲインMinAPGain未満であれば、増幅部ゲインで下げきれなかったゲインを目標撮像部ゲインTgtCMGainに振り分けられる。具体的には、目標増幅部ゲインTgtAPGainを最小増幅部ゲインMinAPGainとする。また、目標撮像部ゲインTgtCMGainをMaxCMGain×TgtWidGain/MinAPGainとする。
増幅部局所飽和が起きている時(WidGain >= LclGain)は、局所飽和を回避するように増幅部ゲインを下げる必要がある。一方、撮像部ゲインは局所飽和とは関係ないので、ヒストグラム幅を最大化するように制御される。したがって、制御目標の基準が増幅部ゲインと撮像部ゲインとで異なり、増幅部ゲインは増幅部局所飽和回避目標全ゲインTgtLclGain、撮像部ゲインはヒストグラム幅目標全ゲインTgtWidGainとなる。
下記の式(15)に示すように、増幅部局所飽和回避目標全ゲインTgtLclGainが最小増幅部ゲインMinAPGain以上であれば、目標増幅部ゲインTgtAPGainを増幅部局所飽和回避目標全ゲインTgtLclGainとする。また、目標撮像部ゲインTgtCMGainを最大撮像部ゲインMaxCMGainとする。一方、増幅部局所飽和回避目標全ゲインTgtLclGainが最小増幅部ゲインMinAPGain未満であれば、増幅部ゲインで下げきれなかったゲインを目標撮像部ゲインTgtCMGainに振り分ける。具体的には、目標増幅部ゲインTgtAPGainを最小増幅部ゲインMinAPGainとする。また、目標撮像部ゲインTgtCMGainをMaxCMGain×TgtWidGain/MinAPGainとする。
その後、下記の式(16)に示すように、振り分けられた目標増幅部ゲインTgtAPGainを、対応する目標増幅部ゲイン制御値Tgt.APGainValueに変換する。なお、APGainValueLUT[]は、事前に測定した増幅部ゲインLUTに基づく増幅部ゲイン−増幅部ゲイン制御値変換LUTである。
目標増幅部ゲート幅Tgt.APGateWidは、この段階の輝度制御には用いない。したがって、下記の式(17)に示すように、目標増幅部ゲート幅Tgt.APGateWidには、1フレーム前の制御後増幅部ゲート幅Pre.APGateWidが代入され、初期値に固定される。
目標撮像部ゲイン番号Tgt.CMGainNumは、上記式(14)および式(15)に示したように、増幅部ゲインで下げきれなかった分を撮像部ゲインで下げるために設定される。下記の式(18)に示すように、振り分けられた目標撮像部ゲインTgtCMGainが、対応する目標撮像部ゲイン番号Tgt.CMGainNumに変換される。なお、CMGainNumLUT[]は、カタログ値の撮像部ゲインLUTに基づく撮像部ゲイン−撮像部ゲイン番号変換LUTである。なお、この段階において、撮像部ゲイン番号は整数に離散化しない。
目標撮像部露出時間Tgt.CMExpTimeは、この段階の輝度制御には用い。したがって、式(19)に示すように、目標撮像部露出時間Tgt.CMExpTimeには、1フレーム前の制御後撮像部露出時間Pre.CMExpTimeが代入され、初期値に固定される。
(比例制御)
次に、制御部3による比例制御処理について説明する。
まず、各目標値から、1フレーム前の各制御後制御パラメータの差分をとり、偏差が算出される。各偏差に比例制御ゲインKを乗算することで制御量が算出される。すなわち、制御量が偏差に比例する比例制御となる。そして、1フレーム前の各制御後制御パラメータに各制御量を加えることで、各制御後制御パラメータが算出される。もし偏差=0ならば制御されないことになる。
ここでは、増幅部ゲイン制御値を例にアルゴリズムを詳細に説明する。下記の式(20)に示すように、増幅部ゲイン制御値の目標値Tgt.APGainValueから、1フレーム前の制御後増幅部ゲイン制御値Pre.APGainValueの差分をとり、偏差subAPGainValueが算出される。
また、式(21)に示すように、上限閾値MaxSpeedを設定し、偏差subAPGainValueの絶対値が制御速度上限値以上のときは、偏差subAPGainValueを上限閾値MaxSpeedに置き換え、制御速度が制限される。なお、sign()は符号を取り出す関数であり、正の値に対しては1、負の値に対しては−1、ゼロに対しては0を返す。また、同様に下限閾値MinSpeedを設定し、制御速度下限以下のときは、偏差subAPGainValueを0に置き換え、制御されないようにする。これにより、制御速度を制限することで、過度に急激な制御によるオーバーシュートを防ぐとともに、目標値付近での細かい振動を防ぐことが可能である。
下記の式(22)に示すように、偏差subAPGainValueに比例制御ゲインKを乗算することで、制御量が算出される。そして、1フレーム前の制御後増幅部ゲイン制御値Pre.APGainValueに制御量を加えることで、制御後増幅部ゲイン制御値Pre.APGainValueが算出される。
撮像部ゲイン番号Pre.CMGainNumについては、制御速度制限値が異なるだけで全く同じアルゴリズムである。また、制御速度制限値は各デバイスに適した値が設定される。なお、増幅部ゲート幅Pre.APGateWidと撮像部露出時間Pre.CMExpTimeについては、制御目標値が常に初期値で等しいため、偏差は常に0となり、実質的に制御されない。また、後述するように、撮像部ゲインは離散化するため、離散化誤差が撮像部露出時間で補償される。また、比例制御に離散化の影響が及ぶと振動に繋がるため、補償前制御後制御パラメータPreCtrPrmも記憶しておき、偏差の計算には補償前制御後制御パラメータPreCtrPrmを用いて比例制御される。
(離散化補償)
次に、制御部3による離散化補償処理について説明する。
増幅部ゲイン制御値はアナログなので、制御後増幅部ゲイン制御値Pre.APGainValueは離散化せずに、そのまま補償後制御後増幅部ゲイン制御値Ctr.APGainValueとして用いることができる。また、増幅部ゲート幅と撮像部露出時間についても同様にアナログの制御値であり、離散化しない。一方、制御後撮像部ゲイン番号Pre.CMGainNumは実数で算出されるものの、撮像部2は整数の撮像部ゲイン番号しか設定できないので、各ゲイン番号に対応するゲインも離散的となる。そこで、下記の式(23)に示すように、実際には制御後撮像部ゲイン番号Pre.CMGainNumを整数に離散化した補償後制御後撮像部ゲイン番号Ctr.CMGainNumが設定される。なお、ceil()は整数に切り上げる関数である。
しかし、離散化誤差の分だけゲインにも誤差AdjCMGainが生じるため、滑らかな制御ができず、振動が起こってしまう。そこで、撮像部ゲインの離散化誤差AdjCMGainを撮像部露出時間で補償する。離散化誤差補償を撮像部露出時間で行う理由は、離散化誤差補償を撮像部内で完結できるからである。なお、離散化誤差補償は、増幅部ゲインなどを用いて行ってもよい。この場合、制御遅れが小さいまたは0であることが好ましい。
下記の式(24)に示すように、離散化誤差AdjCMGain(=撮像部露出時間補償量)は離散化前後で撮像部ゲイン値を除算することで得られる。なお、CMGainLUT []は、事前に測定した撮像部ゲインLUTに基づく撮像部ゲイン番号−撮像部ゲイン変換LUTである。また、下記の式(25)に示すように、離散化誤差AdjCMGainを制御後撮像部露出時間Pre.CMExpTimeに乗じて、補償後制御後撮像部露出時間Ctr.ExpTimeが算出される。これにより、撮像部ゲインが離散的であった場合でも、撮像装置全体としては滑らかにゲインが変わっているように制御することが可能である。
次に、図7および図8を参照して、第1実施形態の輝度制御装置100の制御部3による輝度制御の概要について説明する。
制御部3は、安定した制御を行うために、フィードバック制御を行う。制御系を、図7に示すように、ブロック線図で近似する。つまり、画像解析に伴う制御遅れをむだ時間要素G(s)、増幅部ゲインの応答性を一次遅れ要素P(s)と近似する。C(s)は制御器で目標値に対する偏差に基づく比例制御を行う。各要素の伝達関数は下記の式(26)、式(27)および式(28)のように表される。また、画像輝度のステップ応答は図8に示すような挙動を示す。
次に、図9〜図13を参照して、第1実施形態の輝度制御装置100の制御部3による輝度制御処理について説明する。
図9のステップS1において、撮像部2により撮像された画像が取得される。ステップS2において、ヒストグラム解析部31により、増幅部視野全体ヒストグラム解析処理が行われる。具体的には、取得された画像から画像全体のヒストグラム情報(ヒストグラム幅histogramWidth、推定飽和幅intSaturation、全出力光量totalIntensity、平均輝度aveBrightness、最大スポット光輝度spotBrightness、および、スポット光推定飽和幅spotSaturation)が算出される。また、ステップS2と並行して、ステップS3において、ヒストグラム解析部31により、注目視野ヒストグラム解析処理が行われる。具体的には、取得された画像から注目視野(たとえば、画像の中心付近など)のヒストグラム情報が算出される。なお、ステップS2およびステップS3の詳細な動作については後述する。
ステップS4において、制御目標値が算出される。具体的には、増幅部視野全体と注目視野の各ヒストグラム情報を統合して制御目標値(目標増幅部ゲイン制御値Tgt.APGainValue、目標増幅部ゲートTgt.APGateWid、目標撮像部ゲイン番号Tgt.CMGainNum、および、目標撮像部露出時間Tgt.CMExpTime)が算出される。なお、ステップS4の詳細な動作については後述する。
ステップS5において、増幅部ゲイン、増幅部ゲート、撮像部ゲインおよび撮像部露出時間が比例制御される。ステップS6において、撮像部ゲインの離散化誤差が撮像部露出時間により補償される制御が行われる。ステップS7において、最適な画像輝度となるように、増幅部1および撮像部2が制御される。その後、ステップS1に戻って繰り返すことで、動画像が連続的に輝度制御処理される。なお、画像取得から増幅部1および撮像部2の制御までの応答遅れがある場合は、応答遅れが考慮される。たとえば、2フレームの遅れがある場合は、2フレーム前の画像を基に目標値算出が行われる。なお、ステップS5およびステップS6の詳細な動作については後述する。
次に、図9のステップS2およびステップS3におけるヒストグラム解析処理について、図10を参照して詳しく説明する。
図10のステップS11において、取得した画像に基づいてヒストグラム(図2〜図5参照)が作成される。ステップS12において、ヒストグラム幅histogramWidthが算出される。ステップS13において、ヒストグラムが飽和しているか否かが判断される。具体的には、基準画素値が最大画素値であるか否かが判断される。ヒストグラムが飽和していれば、ステップS14において、飽和量が推定されて、推定飽和幅intSaturationが算出される。その後、ステップS18に進む。ヒストグラムが飽和していなければ、そのままステップS18に進む。
ステップS12〜ステップS14と並行して、ステップS15において、最大スポット光輝度spotBrightnessが算出される。ステップS16において、ヒストグラムが飽和しているか否かが判断される。ヒストグラムが飽和していれば、ステップS17において、飽和量が推定されて、スポット光推定飽和幅spotSaturationが算出される。その後、ステップS18に進む。ヒストグラムが飽和していなければ、そのままステップS18に進む。
ステップS18において、全出力光量totalIntensityが算出される。ステップS19において、平均輝度aveBrightnessが算出される。その後、ヒストグラム解析処理が終了される。
次に、図9のステップS4における制御目標値算出処理について、図11を参照して詳しく説明する。
図11のステップS21において、ヒストグラム幅の目標倍率が算出される。また、ステップS21と並行して、ステップS22において、局所飽和回避のための目標倍率が算出される。
ステップS23において、ヒストグラム幅の目標倍率および局所飽和回避のための目標倍率に基づいて、目標全ゲインが算出される。また、目標全ゲインが、増幅部ゲインおよび撮像部ゲインに振り分けられる。
ステップS24において、振り分けられた目標増幅部ゲインが算出される。ステップS25において、目標増幅部ゲインを得るための制御値が算出される。ステップS24およびステップS25と並行して、ステップS26において、振り分けられた目標撮像部ゲインが算出される。ステップS27において、目標撮像部ゲインを得るためのゲイン番号が算出される。その後、制御目標値算出処理が終了される。
次に、図9のステップS5における比例制御処理について、図12を参照して詳しく説明する。
図12のステップS31において、各目標値から、1フレーム前の各制御後制御パラメータの差分をとり、偏差が算出される。ステップS32において、各制御パラメータの制御量が算出される。
ステップS33において、制御量が最大制御速度以上か否かが判断される。最大制御速度以上であれば、ステップS34において、制御量が最大制御速度に制限される。その後、ステップS35に進む。最大制御速度未満であれば、そのまま、ステップS35に進む。
ステップS35において、制御量が最小制御速度以下か否かが判断される。最小制御速度以下であれば、ステップS36において、制御量が最小制御速度(=0)に制限される。その後、ステップS37に進む。最小制御速度より大きければ、そのまま、ステップS37に進む。
ステップS37において、離散化補償前の制御量が算出される。その後、比例制御処理が終了される。
次に、図9のステップS6における離散化誤差補償処理について、図13を参照して詳しく説明する。
図13のステップS41において、離散化補償前の制御量に基づいて、撮像部ゲイン番号が算出される。なお、ゲイン番号は、整数で設定されるため、制御値は離散化する。ステップS42において、補償後撮像部ゲイン番号が算出される。
ステップS42と並行して、ステップS43において、撮像部ゲインの離散化誤差が算出される。ステップS44において、撮像部ゲインの離散化を補償するために、撮像部露出時間を制御する制御量が算出される。その後、離散化誤差補償処理が終了される。
第1実施形態では、上記のように、増幅部1により増幅された出力光に基づく画像の解析結果に基づいて増幅部1および撮像部2を制御する制御部3を設けることによって、増幅部1により増幅された出力光に基づいて増幅部1を制御することができるので、入射光が増幅部1によって過大に増幅されるのを防止することができる。これにより、増幅部1が焼き付きを起こすのを防止することができる。
また、第1実施形態では、上記のように、制御部3を、増幅部1により増幅された出力光の輝度を、撮像部2により撮像された画像と撮像部2の撮像パラメータとに基づいて取得するとともに、出力光の輝度に基づいて、増幅部1および撮像部2を制御するように構成する。これにより、別途増幅部1の出力光の輝度を測定する部品を設ける必要がないので、部品点数の増加および装置構成の複雑化を抑制することができる。
また、第1実施形態では、上記のように、制御部3を、ヒストグラム解析部31の解析結果に基づいて増幅部1の出力光の輝度を取得するように構成する。これにより、画像のヒストグラムに基づいて、画像の局所(輝度の高い部分)の輝度を算出することができるので、増幅部1が局所的に焼き付くのを防止することができる。
また、第1実施形態では、上記のように、制御部3を、増幅部1の出力光の輝度が所定の輝度未満となるように増幅部1を制御するように構成する。これにより、所定の輝度値を増幅部1が局所的な焼き付きを起こす輝度に設定して、増幅部1の局所的な焼き付きを確実に防止することができる。
また、第1実施形態では、上記のように、所定の輝度を増幅部1の増幅限界値に基づいて設定する。これにより、所定の輝度を増幅限界値に基づいて安全を考慮して増幅限界値より低めに設定して、増幅部1の局所的な焼き付きをより確実に防止することができる。
また、第1実施形態では、上記のように、制御部3を、撮像部2により撮像された画像の輝度としての画素値のうち代表画素値が所定の画素値となるように増幅部1および撮像部2を制御するように構成する。これにより、輝度としての代表画素値を所定の画素値になるように制御して、画像の輝度を適切に保つことができる。
また、第1実施形態では、上記のように、制御部3を、ヒストグラム解析部31の解析結果に基づいて代表画素値を取得するように構成する。これにより、ヒストグラムを解析することにより容易に代表画素値を算出して取得することができるので、画像の輝度を容易に適切に保つことができる。
また、第1実施形態では、上記のように、ヒストグラム解析部31を、画素値の大きい側からヒストグラムを順に累算し、累算値が所定の画素数に達した時の画素値を基準画素値として算出するように構成する。これにより、輝度が高い画素値付近のノイズを効果的に取り除くことができるので、輝度制御を安定して行うことができる。
また、第1実施形態では、上記のように、ヒストグラム解析部31を、基準画素値が最大画素値である場合に、画像のヒストグラムは飽和していると判定するとともに、ヒストグラム飽和領域の幅である推定飽和幅を推定し、最大画素値に推定飽和幅を加えて推定基準画素値を算出するように構成する。これにより、ヒストグラムが飽和している場合でも、推定基準画素値を代表画素値とすることにより、画像の輝度を適切に保つことができる。
また、第1実施形態では、上記のように、ヒストグラム解析部31を、画像のヒストグラムの飽和領域の形状を正方形で推定したときの正方形の幅、または、画像のヒストグラムの飽和領域の形状を長方形で推定したときの長方形の幅を、推定飽和幅として推定するように構成する。これにより、推定飽和幅を正方形または長方形を用いて容易に推定することができる。
また、第1実施形態では、上記のように、制御部3を、増幅部1および撮像部2を比例制御により制御するように構成する。これにより、輝度調整の制御処理にタイムラグがある場合でも安定した比例制御によりスムーズな輝度変化の輝度制御を行うことができる。
また、第1実施形態では、上記のように、制御部3を、増幅部1および撮像部2の制御パラメータを変化させる制御量が第1制御量以上の場合に、制御量を第1制御量に固定するように構成する。これにより、制御量が過大となるのを抑制して、オーバーシュートを抑制することができる。
また、第1実施形態では、上記のように、制御部3を、増幅部1および撮像部2の制御パラメータを変化させる制御量が第2制御量以下の場合に、制御量を0に固定するように構成する。これにより、制御目標値近傍での輝度の振動を抑制して、画像がチラつくのを抑制することができる。
また、第1実施形態では、上記のように、制御部3を、撮像部2を、制御量が離散的な第1制御パラメータとしてのゲイン(増幅度)と、制御量が連続的な第2制御パラメータとしての露光時間とで制御するとともに、ゲインの制御量の離散化誤差を制御量が連続的な露光時間で補償するように構成する。これにより、制御量が離散的なゲインと制御量が連続的な露光時間との制御により撮像部2を制御して、画像の輝度を容易に滑らかに変化させる輝度制御を行うことができる。
(第2実施形態)
次に、図14および図15を参照して、本発明の第2実施形態による輝度制御装置200について説明する。第2実施形態では、ヒストグラム幅および局所飽和に基づいて、制御目標値を算出する構成の上記第1実施形態とは異なり、ヒストグラム幅および局所飽和に加えて、全出力光量飽和にも基づいて制御目標値を算出する構成について説明する。
図14に示すように、第2実施形態による輝度制御装置200は、増幅部5と、撮像部2と、制御部3と、レンズ4とを備える。
増幅部5は、たとえば、イメージ・インテンシファイアなどを含む。また、増幅部5は、レンズ4を介して入射する光を増幅して出力するように構成されている。また、増幅部5は、ゲインおよびゲートを制御することにより、入射光に対する出力光の増幅度が調整されるように構成されている。また、増幅部5は、ABC(自動輝度調整)回路51を含む。なお、ABC回路51は、本発明の「制限部」の一例である。
ABC回路51は、増幅部5に入射する光量をゲートを制御して調整するように構成されている。また、ABC回路51は、増幅部5の全出力光量を第1光量以下に制限するように構成されている。具体的には、増幅部5が全体的な焼き付きを起こす出力光量が、第1光量として設定されている。つまり、増幅部5の全出力光量が第1光量より大きくなった場合に、ABC回路51が動作するように構成されている。画像のフレーム単位で間欠的に出力光量を制御する制御部3に対して、ABC回路51は連続的に出力光量を制御するため、入射光量が1フレーム以下の時間で急増した場合でも、増幅部5の全体的な焼き付きを効果的に防止することができる。
制御部3は、全出力光量に基づいて、ABC回路51と協調して、増幅部5および撮像部2を制御するように構成されている。また、制御部3は、増幅部5の全出力光量を、撮像部2により撮像された画像と撮像部2の撮像パラメータとに基づいて取得するように構成されている。具体的には、制御部3は、ヒストグラム解析部31の解析結果に基づいて増幅部5の全出力光量を取得するように構成されている。
また、制御部3は、増幅部5の全出力光量が第1光量より小さい第2光量以下となるように増幅部5を制御するように構成されている。なお、第2光量は、第1光量に基づいて設定されている。たとえば、第2光量は、第1光量の90%の光量に設定されている。
次に、制御部3による増幅部全出力光量飽和回避目標倍率の算出処理について説明する。
増幅部5のABC回路51動作時に増幅部ゲインを制御した場合、その分を打ち消すだけABC回路51により増幅部ゲート幅が直ちに調整されて、制御部3と、ABC回路51の制御とが競合してしまう。競合により、制御部3が不安定となることを抑制するために、ABC回路51動作時には、増幅部ゲインを下げて、ABC回路51の動作状態から脱するように制御される。
増幅部全出力光量飽和回避目標倍率TtlGainは、増幅部5の全出力光量飽和、すなわちABC回路51が動作しない最大の倍率である。この倍率以下にしておけば、全出力光量飽和によるABC回路51の制御が起こらず、制御部3と、ABC回路51との競合を防ぐことが可能である。
まず、目標最大全出力光量飽和値IdealTotalIntensityを予め測定した飽和出力光量値に基づいて設定する。そして、増幅部視野全体の全出力光量飽和量totalIntensityを増幅部全出力光量飽和量AllTotalIntensityとする。下記の式(29)に示すように、増幅部全出力光量飽和量AllTotalIntensityを目標最大全出力光量飽和値IdealTotalIntensityに拡大または縮小する倍率TtlGainが算出される。なお、増幅部視野全体の全出力光量飽和量totalIntensityは、画像が飽和している面積が大きい場合、実際の全出力光量飽和量を過小評価してしまう。しかし、そのような場合はヒストグラム幅を小さくするような制御が行われるので、結果的にゲインを下げる方向の制御となり、制御部3とABC回路51との競合は起こらない。なお、増幅部全出力光量飽和量AllTotalIntensityは、増幅部5の回路から直接全出力光量飽和量に対応する電流値または電圧値などをモニタしてもよい。
そして、目標全ゲインが増幅部ゲインと撮像部ゲインに振り分けられる。全ゲインの基準は、増幅部ゲイン最低値で撮像部ゲイン最大値を1倍としている。制御前全ゲインAllGainは、制御前、すなわち直前フレームでの全ゲインである。また、下記の式(30)に示すように、制御前全ゲインAllGainは、直前フレームでの増幅部ゲイン制御値Pre.APGainValueから逆算される。なお、APGainLUT[]は事前に測定した増幅部ゲイン制御値−増幅部ゲイン変換LUTである。下記の式(31)に示すように、ヒストグラム幅目標全ゲインTgtWidGainは、ヒストグラム幅から算出された目標全ゲインであり、制御前全ゲインAllGainにヒストグラム幅目標倍率WidGainを乗じて算出される。同様に、下記の式(32)に示すように、増幅部局所飽和回避目標全ゲインTgtLclGainは、増幅部局所飽和から算出された目標全ゲインであり、制御前全ゲインAllGainに増幅部局所飽和回避目標倍率LclGainを乗じて算出される。同様に、下記の式(33)に示すように、増幅部全出力光量飽和値飽和回避目標全ゲインTgtTtlGainは、増幅部全出力光量飽和から算出された目標全ゲインであり、制御前全ゲインAllGainに増幅部全出力光量領域飽和回避目標倍率TtlGainを乗じて算出される。
次に、図9のステップS4における制御目標値算出処理について、図15を参照して詳しく説明する。なお、図9のステップS1〜ステップS3およびステップS5〜ステップS7は、第1実施形態と同様である。
図15のステップS51において、ヒストグラム幅の目標倍率が算出される。また、ステップS51と並行して、ステップS52において、局所飽和回避のための目標倍率が算出される。また、ステップS51およびステップS52と並行して、ステップS53において、全出力光量飽和回避のための目標倍率が算出される。
ステップS54において、ヒストグラム幅の目標倍率、局所飽和回避のための目標倍率および全出力光量飽和回避のための目標倍率に基づいて、目標全ゲインが算出される。また、目標全ゲインが、増幅部ゲインおよび撮像部ゲインに振り分けられる。
ステップS24において、振り分けられた目標増幅部ゲインが算出される。ステップS25において、目標増幅部ゲインを得るための制御値が算出される。ステップS24およびステップS25と並行して、ステップS26において、振り分けられた目標撮像部ゲインが算出される。ステップS27において、目標撮像部ゲインを得るためのゲイン番号が算出される。その後、制御目標値算出処理が終了される。
なお、第2実施形態のその他の構成は、上記第1実施形態と同様である。
第2実施形態の構成においても、上記第1実施形態と同様に、増幅部5により増幅された出力光に基づく画像の解析結果に基づいて増幅部5および撮像部2を制御する制御部3を設けることによって、増幅部5が局所的な焼き付きを起こすのを防止することができる。
また、第2実施形態では、上記のように、増幅部5の全出力光量を第1光量以下に制限するABC回路51を設けることによって、全出力光量が第1光量を超えることがないので、入射光量が1フレーム以下の時間で急増した場合でも、増幅部5の全体的な焼き付きを効果的に防止することができる。また、制御部3を、全出力光量に基づいて、ABC回路51と協調して、増幅部5および撮像部2を制御するように構成する。これにより、増幅部5がABC回路51により制限されている場合でも、制御部3とABC回路51とを協調して、増幅部5および撮像部2を制御することによって、制御部3およびABC回路51を競合させることなく、輝度調整をスムーズに行うことができる。
また、第2実施形態では、上記のように、制御部3を、増幅部5の全出力光量を、撮像部2により撮像された画像と撮像部2の撮像パラメータとに基づいて取得するように構成する。これにより、別途増幅部5の全出力光量を測定する部品を設ける必要がないので、部品点数の増加および装置構成の複雑化を抑制することができる。
また、第2実施形態では、上記のように、制御部3を、ヒストグラム解析部31の解析結果に基づいて増幅部5の全出力光量を取得するように構成する。これにより、ヒストグラムを解析することにより容易に増幅部5の全出力光量を算出することができる。
また、第2実施形態では、上記のように、制御部3を、増幅部5の全出力光量が第1光量より小さい第2光量以下となるように増幅部5を制御するように構成する。これにより、ABC回路51が増幅部5を制限し始める第1光量より小さい第2光量以下に増幅部5の全出力光量を制御することができるので、ABC回路51による増幅部5の制限を効果的に抑制することができる。その結果、ABC回路51による増幅部5の制限がない状態で増幅部5および撮像部2を制御することができるので、制御部3とABC回路51が競合することなく、輝度調整を容易にスムーズに行うことができる。
なお、第2実施形態のその他の効果は、上記第1実施形態と同様である。
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態および実施例の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
たとえば、上記第1および第2実施形態では、本発明の輝度制御装置を暗視装置に適用する構成の例を示したが、本発明はこれに限られない。本発明では、輝度制御装置を、撮影装置や医療用検査装置などに適用してもよい。
また、上記第1および第2実施形態では、増幅部がイメージ・インテンシファイアを含む例を示したが、本発明はこれに限られない。本発明では、入射光を増幅することができれば、増幅部がイメージ・インテンシファイア以外であってもよい。
また、第2実施形態では、制限部(ABC回路)が増幅部に内蔵される例を示したが、本発明はこれに限られない。本発明では、増幅部の全出力光量を制限することができれば、制限部が増幅部の外部や制御部に内蔵されていてもよい。
また、上記第1および第2実施形態では、制御部が増幅部ゲインおよび撮像部ゲインを制御する例を示したが、本発明はこれに限られない。本発明では、増幅部の出力光の輝度および画像の輝度を制御することができれば、制御部が増幅部ゲートおよび撮像部露出時間を制御してもよい。
また、上記第1および第2実施形態では、増幅部および撮像部を比例制御により制御する構成の例を示したが、本発明はこれに限られない。本発明では、増幅部および撮像部を比例制御以外の制御により制御してもよい。たとえば、PID(Proportional Integral Derivative)制御など、他の制御方法により制御してもよい。
また、上記第1および第2実施形態では、制御部が、撮像部を、制御量が離散的な第1制御パラメータとしての増幅度と、制御量が連続的な第2制御パラメータとしての露光時間とで制御するとともに、増幅度の制御量の離散化誤差を制御量が連続的な露光時間で補償する構成の例を示したが、本発明はこれに限られない。本発明では、制御部は、増幅部および撮像部のうち少なくとも1つを、制御量が離散的な第1制御パラメータと、制御量が連続的な第2制御パラメータとで制御するとともに、第1制御パラメータの制御量の離散化誤差を制御量が連続的な第2制御パラメータで補償するように構成されていればよい。
また、上記第1および第2実施形態では、説明の便宜上、本発明の制御部の処理を処理フローに沿って順番に処理を行うフロー駆動型のフローチャートを用いて説明したが、本発明はこれに限られない。本発明では、制御部の処理動作を、イベント単位で処理を実行するイベント駆動型(イベントドリブン型)の処理により行ってもよい。この場合、完全なイベント駆動型で行ってもよいし、イベント駆動およびフロー駆動を組み合わせて行ってもよい。