マシンビジョンシステムではCCDやCMOSといったイメージセンサで光の明暗を捉えており、イメージセンサによるカメラでの撮像と、人間の目で見た場合の違いを十分理解しておく必要がある。
人間の目は波長が400~780nmの可視光領域しか見ることはできず、555nmをピークとする山状の感度曲線となる。この感度は個人差があるので、CIE標準比視感度曲線として標準化したものが国際的に規定されている。
ちなみに明るさに関する単位として、ルクス、ルーメン、カンデラ等があるが、いずれも人間の視覚による心理物理量であるため、すべて標準比視感度の係数がかかっている。単色光のLEDの光を照度計で測定した時、標準比視感度のピークに近い緑色LEDの照度(ルクス)は、赤色LEDや青色LEDにくらべて高い数値を示すが、イメージセンサで撮像すると結果は大きく異なり、相対的に暗いことが多い。
イメージセンサは、可視光よりも短い400nm以下の紫外線や、780nmを超える赤外線領域まで感度があるのが一般的である。紫外や赤外に特化した特殊なカメラもある。カメラの分光感度特性は仕様として明示されているので、確認しておく必要がある。
物体からの光の明暗は、受光するカメラの波長毎の感度の違いによって画像の濃淡に変換されることとなるため、その特性を理解した上で光源を選定する必要がある。
ここで人間の目やカメラが色の違いをどのように認識しているかを考えてみる。一般的に物体には色があると考えるのが普通であるが、実際は物体に色はない。照射する光の波長を変えると、今までの物体の色は全く別の色になってしまうのである。物体に色があるのではなく、光を反射する性質に波長毎の違いがあり、その結果反射される光に変化を及ぼし、その光の明暗を色として認識しているに過ぎない。
ある物体を見た時、人間の目は網膜上のL細胞・M細胞・S細胞が、それぞれR・G・Bの明暗を感じ、この明暗の組み合わせを色として認識している。カラーカメラもこのイメージセンサにRGBのフィルタを通すことで、R・G・Bそれぞれの波長域での光を受光して、人間の目の見え方に近づけている。
この色の識別は、物体の分光反射率の差で光の明暗を判別することになる。分光反射率とは、どの波長をどれだけ反射するかという特性である。この分光反射率の違いを、画像の濃淡として認識する方法は、カメラで特定の波長のみ受光するか、照明で特定の波長の光を照射するかのいずれかとなる。マシンビジョンにもカラーカメラが一般化してきており、白色照明を使ってイメージセンサ上のRGB画素がそれぞれの濃淡を認識して色を識別することが多くなってきた。モノクロカメラの場合は、照明側で特定の波長を照射することで、その照明の波長に対する分光反射率の違いを濃淡として特徴を最大化する。いずれにしても単色と白色の光源いずれも選択できるLED照明が有効となる。
照明の波長を変えて特徴抽出する例を上げる。白色の不織布に薄い黄ばみのような汚れがあっても、目視では認識しにくい、同じく白色光を照射してカラーカメラで観察しても同様に認識は難しい。これに青色光を照射する。背景である白い不織布は明るく撮像され、黄ばみ汚れは青い光に対して分光反射率が低いため、黒く撮像される。特徴点の変化量が最大化する波長を選択することで、認識率が向上する。