画像処理・Computer Vision

カメラの画質や認識精度は、なぜ一つの部品だけでは決まらないのか?

カメラの画質や画像認識の精度は、レンズ、センサー、ISP、AE・AWB・AF、画像処理、認識アルゴリズムのいずれか一つだけで決まるものではなく、求める結果から逆算してシステム全体を見る必要があります。

画質を良くしたい。認識の精度を上げたい。このとき、まず思い浮かぶのは、より高性能な部品に置き換えることかもしれません。解像度の高いセンサーにする、良いレンズにする、処理性能の高いデバイスを使う、といった方法です。

しかし、各部品の性能を上げれば、必ず製品全体が良くなるとは限りません。カタログ上の性能が高くても、目的に合っていなければ結果は変わらないためです。むしろ、コストや消費電力だけが増えることもあります。

カメラの画質や認識の精度は、複数の層の関係によって決まります。この記事では、どの層に原因があるのかをどう判断するのか、という考え方を説明します。

カメラの問題は、一つの部品だけでは決まらない

「画質が良くない」「認識がうまくいかない」という課題に対して、原因が一つの部品にあることは、実はあまり多くありません。

たとえば、対象がぼやけて見えるとき、原因はレンズかもしれませんし、ピント制御かもしれません。撮影のたびに明るさが変わるのであれば、露出の制御かもしれませんし、そもそも照明環境が安定していないのかもしれません。ノイズが多いなら、センサーの条件かもしれませんし、その後の処理で強調されているのかもしれません。

同じ症状でも、原因になりうる場所は複数あります。そして、原因ではない場所に手を入れても、結果は変わりません。

まず「どんな画像・結果が欲しいか」を決める

どの層を見るべきかは、何を実現したいかによって変わります。だから最初に決めるのは、部品でも処理でもなく、求める結果です。

人が見て自然だと感じる写真が欲しいのか。機械が安定して判定できる画像が欲しいのか。同じ「良い画像」でも、目的が違えば条件が変わります。

人が見るための画質と、機械が認識するための画質は違う

人が見る場合は、実際の見えに近い自然な色や明るさが求められます。一方、機械が判定する場合に必要なのは、判定に使う情報が安定して残っていることです。

たとえば、人にとって見やすいように明るさや色を整える処理が、判定に必要な微妙な差を目立たなくしてしまうことがあります。逆に、人には少し暗く見える画像のほうが、機械にとっては判定しやすいこともあります。

求める出力が変われば、最適な画像の条件も変わります。まずここを決めておかないと、どの層を見るべきかの判断もできません。

画像は、複数の層を通って出来上がる

カメラが結果を出すまでには、いくつもの段階があります。それぞれの段階で、画像に含まれる情報は変わっていきます。

光学条件とレンズ

まず、対象にどのように光が当たっているか、そしてその光がどのようにレンズを通るかで、得られる画像が決まります。明るさ、被写界深度、画角といった条件のほか、歪み、解像感、周辺部の画質、色のにじみなども、レンズの特性によって変わります。

ここで失われた情報は、後段の処理では取り戻せません。判定に必要な特徴が写っていなければ、その先で何をしても限界があります。

イメージセンサーとISP、AE・AWB・AF

レンズを通った光は、イメージセンサーで信号に変わります。感度、ダイナミックレンジ、ノイズの出かたは、この段階の条件に左右されます。明るい部分と暗い部分の差が大きい場面では、どちらを優先するかで見え方が変わります。

その信号は、ISPでノイズ低減や色の補正、階調の調整などを経て画像になります。さらに、AE(露出)・AWB(ホワイトバランス)・AF(ピント)の制御が、撮影条件の変化に合わせて働いています。

画像処理と画像認識、処理デバイスと出力

できあがった画像に対して、必要な前処理を行い、判定や認識を行います。そしてそれらは、実際の機器の上で、決められた時間内に動く必要があります。最後に、結果を人が見るのであれば、表示側の条件も見え方に影響します。

重要なのは、この並びを覚えることではありません。課題が起きたときに、どの段階まで戻って考えるかという視点を持つことです。

問題がどの層にあるのかを切り分ける

課題を解決するうえで、最も時間を左右するのが、この切り分けです。原因が特定できていれば、対処は難しくないことも多くあります。

認識精度が上がらないとき、AIモデルだけを見ない

たとえば、認識の精度が要求に届かないという課題があったとします。モデルを変更し、学習データを増やし、パラメータを調整する。それでも改善しないことがあります。

このとき、入力されている画像そのものを確認します。照明は安定しているか。レンズの解像感は足りているか。センサーの感度やノイズは条件に合っているか。露出が撮影のたびに変動していないか。ISPの処理で、判定に必要な特徴が失われていないか。

原因が撮像側にあった場合、モデルを作り込むよりも、認識しやすい画像を得られる条件を作るほうが早く、そして安定します。条件を整えたうえで、あらためて評価する。この順番で進めます。

これはAIが有効でないという話ではありません。AIは有力な手段です。ただし、入力が安定していなければ、どの手段を使っても結果は安定しない、ということです。

上流から順に確認する

切り分けるときは、できるだけ上流から確認します。照明や光学条件のように早い段階で決まってしまうものほど、後段では取り返しにくいためです。

  • 照明・撮影条件:対象が安定して写る条件になっているか
  • レンズ:必要な解像感や画角が得られているか
  • センサー:感度やダイナミックレンジが撮影条件に合っているか
  • ISP・画質:処理の過程で必要な情報が失われていないか
  • AE・AWB・AF:撮影のたびに明るさ・色・ピントが変動していないか
  • 画像処理・認識:判定の方式が課題に合っているか
  • 処理デバイス:必要な時間内に処理が終わっているか

個別の性能を上げれば良くなるとは限らない

各層の性能を上げれば、システム全体が良くなる。直感的にはそう思えますが、必ずしもそうはなりません。

カタログ上の性能と、システムとしての最適は違う

たとえば、解像度の高いセンサーに変えれば、必ず認識精度が上がるとは限りません。1枚あたりのデータ量が増えれば処理時間も増え、必要な処理が間に合わなくなることがあります。画素が小さくなることで、暗い場所での条件が変わることもあります。

処理性能の高いデバイスに変えても、原因が撮像側にあるなら結果は変わりません。良いレンズに変えても、必要としているのが解像感ではなく明るさであれば、目的には届きません。処理を追加しても、失われた情報が戻るわけではありません。

見るべきなのは、単体の性能ではなく、目的に対して必要な条件が揃っているかどうかです。

後段の処理を増やす前に、上流を見直せないか

課題に直面したとき、後段の処理を足して対処することはできます。補正を入れる、判定を補う、例外処理を追加する。ただし処理を足せば、その分だけ処理時間も消費電力も増えます。

そこで、処理を足す前に確認します。その処理は、なぜ必要になったのか。上流の条件を変えることで、そもそも必要なくならないか。

照明の当て方を変えれば、補正が要らなくなることがあります。撮影のタイミングを変えれば、ぶれの対策が要らなくなることがあります。上流で解決できれば、後段はその分だけ軽くなり、余裕を別の処理に回せます。

層のあいだで、役割分担を変えるという考え方

同じ目的の処理でも、どの層で行うかには選択肢があることがあります。そして、どこで行うかによって、結果も条件も変わります。

センサー側で行うか、ISPで行うか、ソフトウェアで行うか

たとえばノイズへの対処は、撮影条件を整えて発生そのものを抑える方法もあれば、ISPの処理で低減する方法も、後段のソフトウェアで扱う方法もあります。明暗差への対処も、撮影の仕方で対応するか、画像処理で対応するかで変わります。

どこで行うかによって、次のような違いが出ます。

  • 処理量:どの層で処理するかで、必要な計算量が変わる
  • 柔軟性:後段で行うほど調整しやすいが、失われた情報は戻らない
  • 画質:早い段階で対処したほうが有利な場合がある
  • 消費電力・処理時間:処理の置き場所によって条件が変わる
  • 構成:機器側で行うか、別の場所で行うかで全体の構成が変わる

つまり、「何をするか」だけでなく「どこでするか」も設計の対象です。層ごとの役割を固定して考えると、この選択肢が見えなくなります。

処理デバイスも「必要な性能」から選ぶ

処理をどの機器で動かすかも、システム全体の一部です。マイコン、CPU、GPU、SoC、エッジ機器と選択肢がありますが、処理性能の高いものを選ぶこと自体が目的ではありません。

必要な処理量と処理時間を見積もり、そのうえでコスト、消費電力、サイズ、設置条件に収まる構成を選びます。処理性能だけで決めると、製品として成立しないことがあります。

逆に、上流で条件を整えて処理量を減らせるなら、より小さな構成で成立することもあります。ここでも、層をまたいだ判断が効いてきます。

最終的な出力まで含めて評価する

評価するのは、途中の画像ではなく、最終的に必要とされる結果です。

機械が判定する場合は、現場の条件でどれだけ安定して正しく判定できるかが評価軸になります。人が見る場合は、表示する側の条件も影響します。表示機器のガンマ、輝度、コントラスト、色の再現性、そして見る環境の明るさによって、同じ画像でも見え方は変わります。

撮る側だけを整えても、見る側の条件が合っていなければ、目的の見え方にはなりません。最後にどう使われるのかまで含めて確認します。

NeoTech Innovationが考えるCross-Layer Engineering

私たちがカメラの課題に取り組むとき、最初に確認するのは、実現したい画像や結果です。そこから逆算して、どの層に原因があるのかを判断します。

レンズやイメージセンサー、ディスプレイ、プロセッサそのものを製造しているわけではありません。私たちの役割は、それぞれの層で何が決まるのかを理解したうえで、必要な場所を見極め、設計・調整・変更していくことです。必要であれば、レンズやセンサーの条件そのものを見直す提案も含めて検討します。

照明を変えるだけで解決することもあれば、画質の調整で足りることもあります。処理の置き場所を変えたほうがよいこともあります。どこに手を入れるのが最も合理的かを見極めることが、設計の中心にあると考えています。

まとめ

カメラの画質や認識精度は、一つの部品では決まりません。整理すると、次のようになります。

  • まず、どんな画像・結果が欲しいのかを決める(人が見るのか、機械が判定するのか)
  • 画像は、照明・レンズ・センサー・ISP・3A・画像処理・認識・処理デバイス・出力という複数の層を通って出来上がる
  • 課題が起きたら、できるだけ上流から順に、どの層に原因があるかを切り分ける
  • 認識精度が上がらないときは、モデルだけでなく入力画像の条件を確認する
  • 個別の性能を上げても、目的に合っていなければ結果は変わらない
  • 後段の処理を足す前に、上流の条件でその処理を不要にできないか検討する
  • 同じ処理でも、どの層で行うかによって処理量・画質・消費電力・構成が変わる
  • 処理デバイスは、必要な性能とコスト・電力・サイズの条件から選ぶ
  • 評価は、最終的にどう使われるかまで含めて行う

大切なのは、すべての層を作ることではなく、どの層に原因があるのかを判断できることです。そのうえで、必要な場所を見直していく。それが、結果として最も早く、安定した解決につながります。

Contact

画像処理・Computer Vision について相談する

カメラ選定から画像処理、Computer Vision、AIまでを含めたシステム全体の設計を、NTIがご相談段階から支援します。

画像処理・Computer Visionについて相談する