- HOME
- 【画像処理マスターへの道】ライブラリ新機能のご紹介 ~ダイナミックレンジを広げる~
装置メーカー 画像処理ハード
【画像処理マスターへの道】
ライブラリ新機能のご紹介
~ダイナミックレンジを広げる~
画像処理に関連するさまざまな情報をお届けする連載です。
今回は、2026年3月末から5月末にかけてリリースされたライブラリの新機能の中から、HDR合成機能をご紹介します。
この他にも2値ブロブ解析の上限撤廃(fnFIE_measure2シリーズ)も追加されていますので、リリースノートもあわせてご参照ください。
はじめに
カメラで画像を撮るにはダイナミックレンジ(カメラが一度に写せる明るさの幅)の制約があります。
身近な例では、夕日を背にこちらを向いている人物の表情がよく見えないことがあります。夕日と人物の顔の明暗差が大きすぎて両方に対応できないこと(ダイナミックレンジを超えてしまった状態)が原因です。カメラで写真を撮るときには、人間の目で見るときよりも顕著に表れやすい現象です。
FA業界の画像処理でも、強い反射で明るい金属と黒っぽく暗い樹脂の2種類の素材が組み合わされた部品をカメラで撮像するときなどに、類似の難しさがあります。暗い部分にちょうどよく撮ると明るい部分の情報が失われ(白飛び)、明るい部分にちょうどよく撮ると暗い部分の情報が失われ(黒潰れ)ます。
これらの複数の露光時間で撮影した画像から白飛びと黒潰れを抑制した画像を合成する手法がHDR(High Dynamic Range)です。当社のライブラリでも今回のアップデートでHDR合成の機能を追加しましたので、いくつかのサンプルワークを撮像、処理した画像をご紹介します。
ダイナミックレンジとは
現実世界には連続的な明るさ(色合い)の変化がありますが、カメラのイメージセンサーでデジタル信号に変換すると離散的な数値になります。8bitの画像では0から255までの整数だけの256階調です。
例えば、現実には0から500までの範囲の明るさがあって、100から355までを8bitの画像で取り出すことを考えます。このとき、100未満の明るさは全て100(画像では0、真っ黒)になります。逆に355以上の明るさは全て355(画像では255、真っ白)になります。本当は100未満または355以上にも明るさの差があるのに画像上では表現されなくなってしまう現象が、黒潰れまたは白飛びです。
8bitよりも階調の幅(ダイナミックレンジ)の広い10bitや12bitなどのカメラもありますが、あくまでも有限ではありますし、描画用には8bitにせざるを得ないこともあります。
HDR合成の概要
HDR合成では露光量(主に露光時間)を変えた複数枚の画像とその露光量の比(絶対値ではなくても比で可能)を準備します。
純粋なHDR合成では、最初に逆カメラ応答関数のキャリブレーションを行います。逆カメラ応答関数とはカメラの画像上での明るさと受け取った光の量(の比)の対応関係です。キャリブレーションの方法には、線形を仮定したものと収束により最適化するRobertson法が選べます。このキャリブレーション結果は撮像環境が変わらない限りは最初に1度行っておけばその情報を流用できます。以降はこのキャリブレーション結果に基づき、HDR画像合成を行います。
HDR画像はDOUBLE型の画像で人が見るのには向かないので、トーンマッピング処理で人が見易い画像に変換します。こうして得られた画像は厳密にはLDR画像と呼ばれますが、便宜上、特に区別をせずにHDR画像と呼ばれることもあります。トーンマッピング処理では、ガンマ変換とHood法が選べます。
逆カメラ応答関数のキャリブレーションを省き、入力画像と露光量の比から全体的な階調を最適化する手法として、MertensのExposure Fusionと呼ばれる手法(以下、Mertens法)も選択できます。

HDR合成機能の概要
Mertens法は逆カメラ応答関数のキャリブレーションが不要なので手軽ですが、2Mピクセルなどになると処理時間が目立ってきます。
純粋なHDR合成はキャリブレーションが必要なかわりに、HDR画像合成の処理自体は高速です。Robertson法のキャリブレーションにはやや時間が掛かりますが、その分だけ物理的な整合性が高い結果が得られます。
表:各手法の特徴
| キャリブレーション | 可視化 | 処理時間 | 特徴 | |
|---|---|---|---|---|
| Mertens法の Exposure fusion |
不要 | 不要 | やや低速 | コントラストがはっきりしやすい パラメータが少ない |
| 線形応答関数と トーンマッピング |
高速 | Double画像から トーンマッピング |
高速 | 自然な見た目 パラメータが少ない |
| Robertson法と トーンマッピング |
やや低速 | Double画像から トーンマッピング |
高速 | 物理的な整合性が高い パラメータはやや多い |
撮像画像例
明暗差が大きくてどちらもちょうどよく見えるように撮ることが難しいものから、コントラスト改善まで、4種類のサンプルワークを準備しました。
露光時間を変えて撮像した複数枚の画像を入力してHDR合成を行います。ライブラリの新機能で追加されたHDR合成ではいくつかの手法が選択できますので、処理結果画像もいくつか掲載しています。
例①:光沢部分(白色)と濃色部分(黒色)
例②:光沢部分(金属光沢)と濃色部分(黒色)
例③:マークのコントラスト変化
例④:シェーディング補正
例①:光沢部分(白色)と濃色部分(黒色)
アナログテスタのメーター部分には白色の背景に銀色のメモリのバーがあり、モード切り替えのダイヤル部分は黒色の背景に
灰色の文字が書かれていて、明暗差の大きい対象物です。

撮像画像
上段左から露光時間500us、1000us、2000us、 下段左から露光時間4000us、8000us、12000us
処理結果画像 左図:Robertson法+Hood法、右図:Mertens法
手法によってやや結果は異なりますが、HDR合成の機能を使用することで、露光時間4000usと8000usの間のような画像を得られ、明るいメーター部分の白飛びと暗いダイヤル部分の黒潰れを抑制することができています。
例②:光沢部分(金属光沢)と濃色部分(黒色)
銀色のSSDのパッケージには地模様があり、端子台は黒色の中に同色の凹凸の刻印があり、明暗差の大きい対象物です。

撮像画像 上段左から露光時間1000us、2000us、4000us、6000us、 下段左から露光時間10000us、15000us、20000us

処理結果画像 左図:Liner法+Hood法、右図:Mertens法
手法によって特に端子台の部分の結果に差が見て取れますが、HDR合成の機能を使用することで、明るい銀色の中の地模様の白飛びと暗い端子台の刻印の黒潰れの両方を抑制することができています。
例③:マークのコントラスト変化
位置合わせ用などの同じマークでもワークの個体差によって背景とのコントラストが一定でないことがあります。
特に回転対称でないマークに対してFPMでサーチする場合には、エッジ検出の感度を調整する必要も出てきます。薄いエッジも検出できるようにするとノイズも増えて処理時間にも影響してきます。
この課題に対するHDR合成の有効性を確認するため、濃さを変えた灰色の背景の上に同じ濃さの黒色の円マークを印刷した
サンプルを用意しました。

左から順に、背景色の印刷設定、露光時間1ms、5ms、10ms、線形+Hood法、Mertens法
真っ白な背景に真っ黒なマークとするところまではできませんでしたが、HDR合成の機能を使用することで、いずれの手法も背景色とマークのコントラストの差を抑制できています。
例④:シェーディング補正
ローアングルでバー照明を当てると、どうしても照明からの距離で画像の明るさが変わってしまうことがあります。シェーディング成分を引き算することでキャンセルできますが、表現できる階調の幅が狭くなりますので、センシングされていない階調を補完することはできません。単純に濃度値を2倍すると偶数の濃度値だけになり、ヒストグラムが櫛状になってしまうためです。
この課題に対するHDR合成の有効性を確認するため、ワンショットのシェーディング除去にガンマ変換を掛けたものとのヒストグラムを比較しました。

撮像画像 上段左から順に、露光時間5000us、7500us、10000us 下段は上段の画像からシェーディング成分を引き算した画像

処理結果画像 左図:Robertson法+Hood法、右図:Mertens法
ヒストグラムを比較する画像は、露光時間7500usの撮像画像から、露光時間5000usで計算したシェーディング成分を引き算し、
ガンマ変換(パラメータ:5.0)を掛けた画像です。

左からシェーディング成分の画像、ガンマ変換の画像、Robertson法+Hood法の画像


上段:2つの画像のヒストグラム(濃度値の分布をプロットしたグラフ、0から255まで) 下段左図:ガンマ変換のヒストグラムの拡大図(赤丸の部分がデータ欠損) 下段右図:Robertson法+Hood法のヒストグラムの拡大図(データ欠損が無い)
8bitから8bitに変換するガンマ変換では階調の途中に欠損を生じますが、Robertson法+Hood法はDOUBLE型のHDR画像を経由するので階調の途中に欠損が起きないことが見て取れます。
調整のポイント
HDR合成機能のパラメータはそう多くはありません。ここまでのサンプルでの結果の傾向も踏まえて、いくつかの調整のポイントをご紹介します。
逆カメラ応答関数のキャリブレーション
純粋なHDR合成では初めに逆カメラ応答関数のキャリブレーションを行います。その手法には、線形モードとRobertson法が選択できます。線形モードが文字通りに濃度値と線形に対応することを仮定するのに対して、Robertson法は収束により非線形な応答関数の形状に対応できます。
逆カメラ応答関数は基本的には右肩上がりのグラフになりますので、撮像画像の例①のアナログテスタのように、入力画像に黒潰れから白飛びまでが含まれているときには、線形モードとRobertson法のキャリブレーション結果は類似します。
一方で、例④のシェーディング補正のように、入力画像に一部の明るさの範囲しか含まれないときには、線形モードでは入力画像に存在しない明るさの範囲を含めて線形を仮定してしまうのに対して、Robertson法では入力画像の明るさの範囲を反映した結果が得られます。

逆カメラ応答関数の形状の違い 左図:線形モード、右図:Robertson法
Robertson法のパラメータには収束回数と打ち切り閾値があります。
実験的には30回程度で収束しますが、稀に100回程度まで変化する現象も見られます。ただし、やみくもに収束回数を多くすると処理時間も掛かりますから、変化の小さくなったところで打ち切るための閾値が設定できます。

左から順に、線形モード、Robertson法(収束回数:30回)、Robertson法(収束回数:1回)
トーンマッピングの手法とそれぞれのパラメータの効果
純粋なHDR合成のDOUBLE型のHDR画像を人が見易いように変換する処理がトーンマッピング処理です。この手法には、ガンマ変換とHood法の2種類を選択できます。もちろん用途に応じて、DOUBLE型のHDR画像から、ノイズ成分として上位と下位の10%を除外して残りの範囲を0から255までの範囲にリニアに対応させるような独自のトーンマッピング処理を実装することもできます。
ガンマ変換もHood法もそれぞれ1個のパラメータを持ちます。パラメータを変化させたときの様子は次図の通りです。ここまでの処理結果のサンプルでは推奨値を使用しています。

それぞれの手法でパラメータを変化させたときの様子
まとめ
今回はライブラリの新機能の中からHDR合成の機能をご紹介しました。
もちろん、元画像を定数倍することで閾値設定の余裕を持たせられる(S/N比を向上させられる)ことでも十分なことはありますし、HDR合成のための複数枚の画像を撮像するには対象物が静止していることが必要という制限はあります。また、白飛びしそうなところと黒潰れしそうなところを処理範囲で分ける、という考え方もあります。
それでも、白飛びと黒潰れを同時に抑制することで処理範囲の設定の手間を抑制したいことや、コントラストを改善したいことなどはしばしばあります。撮像した後の8bitの画像1枚からは生み出せない豊かな情報を得られることがHDR合成の魅力です。
今回のご紹介はHDR合成でしたが、2値ブロブ解析の上限撤廃という、その後の画像処理の機能強化も進めております。画像を撮るところの工夫から、その後の画像処理まで、引き続きみなさまのお役に立てる機能を開発してまいりますので、今後ともご相談・ご要望をお気軽にご連絡いただけますと幸いです。



