JP6261187B2 - 画像処理装置、画像処理方法およびプログラム - Google Patents

画像処理装置、画像処理方法およびプログラム Download PDF

Info

Publication number
JP6261187B2
JP6261187B2 JP2013107479A JP2013107479A JP6261187B2 JP 6261187 B2 JP6261187 B2 JP 6261187B2 JP 2013107479 A JP2013107479 A JP 2013107479A JP 2013107479 A JP2013107479 A JP 2013107479A JP 6261187 B2 JP6261187 B2 JP 6261187B2
Authority
JP
Japan
Prior art keywords
feature point
area
priority
image
feature points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013107479A
Other languages
English (en)
Other versions
JP2014229030A (ja
JP2014229030A5 (ja
Inventor
小林 正明
正明 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013107479A priority Critical patent/JP6261187B2/ja
Priority to US14/278,440 priority patent/US9402025B2/en
Publication of JP2014229030A publication Critical patent/JP2014229030A/ja
Publication of JP2014229030A5 publication Critical patent/JP2014229030A5/ja
Application granted granted Critical
Publication of JP6261187B2 publication Critical patent/JP6261187B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/235Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • H04N23/611Control of cameras or camera modules based on recognised objects where the recognised objects include parts of the human body
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/633Control of cameras or camera modules by using electronic viewfinders for displaying additional information relating to control or operation of the camera
    • H04N23/635Region indicators; Field of view indicators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像の特徴点を検出する画像処理装置、画像処理方法およびプログラムに関するものである。
コンピュータビジョン分野には、特徴点検出(もしくは、特徴点抽出)と呼ばれる処理がある。非特許文献1によれば、特徴点検出の方式には、ハリス作用素など、様々な方式が存在する。
特徴点検出の応用としては、例えば、連続する画像から特徴点を検出し、画像間で検出した特徴点を対応付けた場合、その相対位置は特徴点の移動量とみなすことができる。この移動量から、特徴点が含まれる被写体や画像全体の動きを求めることが可能となる。
例えば、画像に手ブレによる動きが含まれている場合、移動量を補正する形で、幾何変換を行えば、手ブレ補正処理が行える。また、左右2つの画像から構成されるステレオ画像から特徴点を検出し、画像間で対応付けられた特徴点の相対位置からは、三角測量の原理を使って、特徴点の奥行きを推定することができる。つまり、ステレオ画像から3次元画像を構成することができる。このように、特徴点検出の産業上の利用範囲は広い。
電子情報通信学会誌 87(12),1043−1048,2004−12−01
特徴点検出処理は、画像全画素に対し、特徴点であるか否かの判定処理を行うため、負荷の重い処理である。また、検出する特徴点数が多いと、対応付けなどの後工程の処理負荷も高くなる。一方、特徴点検出数を安易に減らすと対応付けなどの後工程で必要な数の特徴点数が得られず、後工程での処理精度が落ちるという問題があった。
上記の課題を鑑み、本発明は、分割領域毎に行う特徴点検出処理の負荷を軽減することが可能な画像処理技術の提供を目的とする。
上記の目的を達成する本発明の一つの側面に係る画像処理装置は、画像の特徴点を検出する画像処理装置であって、
画像を複数に分割した分割領域ごとに特徴点の検出数を設定する設定手段と、
前記設定手段により設定された検出数の特徴点を分割領域から検出する検出手段と、
を備え
前記設定手段は、前記画像の撮影時の撮影モードに応じて優先領域を設定し、前記優先領域からの特徴点の検出数が非優先領域からの特徴点の検出数よりも多くなるように前記分割領域ごとの検出数を設定することを特徴とする。
本発明によれば、分割領域毎に行う特徴点検出処理の負荷を軽減することが可能になる。
領域分割を用いた特徴点検出方法を説明する図。 第1実施形態の分割領域単位の特徴点検出処理を説明する図。 第2実施形態の分割領域単位の特徴点検出処理を説明する図。 ユーザー設定情報UIの表示例を説明する図。 分割領域の優先度の設定例を説明する図。 特徴点検出部の処理を説明する図。 (a)、(b)特徴点情報生成部の処理を説明する図、(c)特徴点情報のフォーマットの例を説明する図。 (a)画像処理装置の内部構成を説明する図、(b)撮像装置の内部構成を説明する図。 領域指定UI画面を説明する図。 (a)ユーザー設定情報のデータフォーマットの例を説明する図、(b)固定分割パターンにおける分割画像の例を説明する図。
以下、図面を参照して、本発明の実施形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
(第1実施形態)
ユーザー設定情報に基づく特徴点検出方法について説明する。本実施形態では、表示装置が接続された画像処理装置内で、CPUがユーザー設定情報に基づく特徴点の検出処理を行うものとして説明する。以下、画像処理装置の構成と各モジュールの動作について、図8(a)を使って説明する。図8(a)は、画像処理装置の内部構成を説明する図である。
1001はバスである。1002はRAMである。1003はグラフィックプロセッサである。1004はディスプレイである。1005はCPUである。1006はユーザーインターフェース(I/F)である。本実施形態では、ユーザーインターフェース(I/F)1006としてタッチパネルを例として説明するが、これに限定されず、例えば、マウスなどでもよい。1007は不揮発性の外部ストレージである。
1008はネットワークインターフェース(I/F)である。1009は外部撮像部(外部カメラ)である。本実施形態では、実行されるプラグラムおよび、データは、外部ストレージ1007に記録されており、外部ストレージ1007からプログラムおよびデータをRAM1002へ入力し、CPU1005が実行、および、処理する構成をとる。プログラムおよびデータはバス1001を介して入出力が行われる。画像データを外部ストレージ1007に格納するフォーマットは、静止画の場合はEXIFデータ付きのJPEG、動画の場合はMPEG−2とするが、本発明の趣旨は、ここで説明したフォーマットに限定されるものではない。EXIFデータには、フォーカスエリアや画像の撮影シーンを示すシーンタイプなどの撮影時のカメラ情報が記録されている。
また、画像データを入力する場合には、とくに記述がない場合、外部ストレージ1007が画像データを読み込み、内部画像フォーマット形式に変換して読み込むものとして説明する。また、画像データの入力は外部カメラ1009やネットワークI/F1008から行うことも可能である。ディスプレイ1004(表示部)は、UI(ユーザーインターフェース)画面や画像データの処理結果を、グラフィックプロセッサ1003を介して、表示することができる。ユーザーインターフェース(I/F)1006は、ディスプレイ1004上の任意の座標位置(座標情報)とディスプレイ1004の表示画面にタッチされたか否かの情報を入力することができる。プログラムは、外部ストレージ1007またはRAM1002に記憶されているデータを他のプログラムと共有して使用することができる。 以下、領域分割を用いた静止画の特徴点検出方法の具体的な処理について、図1を使って説明する。なお、解像度は、1920画素×1080画素であるものとして説明するが、本発明の趣旨は、ここで説明した解像度に限定されるものではない。
図1は領域分割を用いた特徴点検出方法を説明する図である。ステップS101では、画面にユーザー設定情報UIを表示し、ユーザー設定情報として、ユーザーに、特徴点検出の優先モードを選択させる。
ユーザー設定情報UIの詳細を、図4を使って説明する。図4(a)は、ユーザー設定情報UIとして、優先モード選択UI画面の表示例を説明する図である。本実施形態では、図4(a)に示されるように、中央優先、周辺優先、顔優先、シーンモード連動、フォーカスエリア連動、直接指定から選択する画面を表示する。なお、本実施形態では、ユーザー設定情報UI画面上に表示されたボタンをタッチすることによって、ユーザーは優先モードを設定することが可能である。尚、優先モードの選択方法は、この例に限定されるものではなく、例えば、マウス操作やその他の入力デバイスによって選択を行ってもよい。フォーカスエリア連動は、画像データからフォーカス情報を取得できる場合、あるいは、外部に存在する撮像部のフォーカス情報を取得できる場合に有効となる。また、直接指定ボタン隣の設定がタッチされた場合、画面は、図9(a)の領域指定UI画面に遷移する。図9の領域指定UI画面において、網掛け部分は優先領域を示し、白抜き部分は非優先領域を示す。図9(a)は領域指定の初期状態を示す図であり、全てが非優先領域となっている。図9(b)は、領域指定を変更した変更後の状態を例示する図である。図9(b)において、領域指定UI画面の中央部付記の分割領域が優先領域として指定され、網掛け部分として表示されている。
図9で説明される画面では、分割された領域(分割領域)をタッチすることにより、優先して特徴点を検出する領域(優先特徴点検出領域)の設定のON/OFFを切り替えることができる。また、背景にサンプル画像が表示される。以下、ユーザーの操作例について説明する。
図9(a)の初期状態を示す図には、入口と、入口付近の人とが表示されている。例えば、入口付近について特徴点を検出したい場合、入口付近の領域をユーザー自身がタッチして、優先領域(網掛け)に指定すると、図9(b)のように画面は切替えられる。OKボタンが押された場合には、ユーザー設定情報の一部として、優先領域情報を更新して、図4(a)に戻る。キャンセルボタンが押された場合には、優先領域情報を更新せずに、図4(a)に戻る。
ここで、ユーザー設定情報のデータフォーマットについて、図10(a)を使って説明する。図10(a)の第一列は、データのシンタックス(入れ子構造を表現する構文)、および、データエントリー名を表している。第二列はデータのサイズをビット値で表現している。本実施形態では、データは符号なし整数で表現されるものとする。if,for文は、C言語と同等の制御構造を表現するが、命令を記述するのでなく、データエントリー名が記述される。動画モードフラグは、撮像画像が動画であるか静止画であるかを示すフラグである。ファイル、または、カメラから入力される画像が動画の場合、「1」が第二列のデータ欄に設定され、静止画の場合、「0」が第二列のデータ欄に設定される。優先モードは、ステップS101において、図4(a)の優先モード選択UI画面を介して設定される情報である。シーンタイプは、撮影された画像の撮影シーンを示す情報であり、ポートレート、風景モードなど、ユーザーが指定する撮影モードを示す情報である。この情報をシーンタイプ情報とする。優先領域フラグは、分割領域の優先領域設定のON/OFFを示し、図10(b)で示した分割領域に割り当てられた識別情報(例えば、ID=0、1、2、・・・14)順に格納される情報である。図10(b)は、固定分割パターンにおける分割画像の例として、各分割領域に割り当てられた識別情報(ID)を説明する図である。なお、本実施形態では、画像を3(行)×5(列)に分割し、一つの分割領域の大きさは384画素×360画素であるとして説明する。優先領域フラグは画像の分割数である15個の数が存在する。なお、分割数や分割のパターンはこれに限定されない。
説明を図1に戻し、ステップS102では、入力画像に対し、優先領域の領域座標情報を設定する。領域情報は、優先領域の数と各分割領域の領域座標情報(領域左上、右上、左下、右下の座標)とからなる。本実施形態においては、固定の分割パターンによる各分割領域の領域座標情報はプログラム上に埋め込まれた定数として扱うものとして説明している。しかし、これに限定はなく、領域座標情報を外部プログラムから変更可能な変数として扱うことも可能である。
ステップS103では、ユーザー設定情報に基づいて、特徴点を検出する画像を分割した分割領域ごとに、特徴点検出処理を制御するための特徴点検出パラメータとして上限の特徴点検出数を設定する。本実施形態では、面全体に上限として、例えば、360点の特徴点を設定するものとする。ユーザー設定情報には、中央優先、周辺優先、顔優先、直接指定、シーンモード連動、フォーカスエリア連動の何れかを識別する優先モード情報が含まれているため、優先モードによって特徴点検出パラメータの設定方法が異なる。
図5は、優先モードごとの特徴点検出パラメータとして特徴点検出数の設定例を説明する図である。優先モードが中央優先の場合、図5(a)の網掛け部分のように、画面中央に優先領域が設定され、優先領域の特徴点検出数が多くなるように各分割領域の特徴点検出数を設定する。図5(a)に示すように画面中央に優先領域が設定された場合、5つの優先領域に対し、360点の特徴点を面積配分し、1分割領域あたり72点の特徴点が検出されるように特徴点検出数を設定する。非優先領域に対しては、特徴点検出数を0に設定する。
優先モードが周辺優先の場合、図5(b)の網掛け部分のように画面周辺に優先領域が設定され、優先領域の特徴点検出数が多くなるように各分割領域の特徴点検出数を設定する。図5(b)に示すように画面周辺に優先領域が設定された場合、6つの優先領域に対し、360点の特徴点を面積配分し、1つの分割領域あたり60点の特徴点が検出されるように特徴点検出数を設定する。非優先領域に対しては、特徴点検出数を0に設定する。
シーンモード連動は、画像データから、シーンタイプ情報を取得して、シーンタイプが想定する主要被写体を含む分割領域に多くの特徴点検出数が設定されるように、各分割領域の上限の特徴点検出数を設定する。以下、シーンタイプごとの動作を説明する。シーンタイプ情報が、ポートレートを示す場合に、画像中央に被写体が存在することが多い。そのため、図5(a)の網掛け部分のように、画像中央に優先領域が設定され、優先領域の特徴点検出数が多くなるように各分割領域の特徴点検出数を設定する。図5(a)に示すように、5つの優先領域に対し、360点の特徴点を面積に応じて配分し、1分割領域あたり72点の特徴点が検出されるように特徴点検出数を設定する。非優先領域に対しては、特徴点検出数を0に設定する。
風景優先の場合、主要被写体は画面全面になるため図5(d)の網掛け部分にように全分割領域に優先領域が設定される。本実施形態では、360点が各分割領域に等配分され、各分割領域には24点の特徴点が検出されるように特徴点検出数を設定する。なお、シーンタイプ情報は、EXIFデータに記録されたデータを利用することができる。
フォーカス連動では、画像データからフォーカスエリア情報を取得して、フォーカスを合わせた位置として特定される位置を含む分割領域から多くの特徴点検出されるように優先領域を設定し、各分割領域の特徴点検出数を設定する。フォーカスエリア情報は、EXIFデータに記録されたデータを利用することができる。
直接指定では、図5(c)の網掛け部分のように分割領域を個別に指定する。優先領域を面全体の特徴点数を面積比で配分した個数を検出数として設定する。非優先領域に対しては、特徴点検出数を0に設定する。
本実施形態では、各工程内で、全ての分割領域の処理を実施するように記載しているが、これに限定されない。例えば、分割領域ごとに、各工程の処理を実行し、分割領域の数だけループ処理を実行する構成も可能である。また、上述の説明では、面全体の特徴点検出数を設定し、優先領域に対して配分する構成をとっているが、優先領域の面積に対し、一定の比率の特徴点を検出するように構成してもよい。例えば、384画素×360画素の優先領域から、その画素数の0.05%である69点を検出数とすることもできる。この場合、優先領域の数によって、画面全体の特徴点検出数は変化する。
ステップS104では、特徴点検出パラメータに基づいて、分割領域内の特徴点を検出する。以下、分割領域単位の特徴点検出処理を、図2を使って説明する。図2は、第1実施形態の分割領域単位の特徴点検出処理を説明する図である。
ステップS201では、設定された特徴点検出数が1以上であるか否かを判定し、1以上の場合は(S201−Yes)、ステップS202に処理を進める。一方、ステップS201の判定で、設定された特徴点検出数が1未満の場合(S201−No)には処理を終了する。
ステップS202では、分割領域内の画素をラスター順に走査し、画素ごとに特徴点スコアを含む特徴点情報を算出し、特徴点スコアを含む特徴点情報をソートバッファに出力する。ここで、特徴点情報およびソートバッファについて図7(c)を使って説明する。図7(c)は、特徴点情報のフォーマットの例を説明する図である。特徴点情報は、図7(c)に示されるように、特徴点情報は、一つの特徴点ごとに、x座標、y座標(位置情報)、および、特徴点スコアの情報を有する。ソートバッファは、図7(c)に示すような複数の特徴点情報を格納することができるバッファである。
本実施形態では、特徴点スコアは、例えば、ハリス作用素で算出するものとする。ハリス作用素で特徴点スコアを算出する場合、対象となる画像は輝度画像である。入力画像がRGB画像の場合、あらかじめ輝度画像に変換しておくものとする。
ステップS203では、ソートバッファ内の特徴点情報を特徴点スコアに基づいてソートする。ソート方式としては、例えば、クイックソートを使用することができるが、ソート方式は、この例に限定されるものではなく、例えば、バブルソートなど、他のソート方式でもよい。なお、ハリス作用素は、そのスコア値が高いほど、コーナーの度合いが高いことを示す作用素である。よって、コーナーの度合いが高い特徴点が図7(c)で示されるバッファ構造の先頭に集まるように、降順でソートする。
ステップS204では、ソートされた上位の特徴点の特徴点情報を出力する。バッファの先頭から、ステップS103で設定された特徴点検出数(特徴点情報)を出力する。本実施形態ではハリス作用素を用いたがそれ以外の特徴点スコアの算出方式を適用することも可能である。他の特徴点スコアの算出方式では特徴点スコアの算出方式が低スコア値ほど特徴の度合いが高い場合もあり、その場合は昇順でソートすることになる。画像単位の特徴点情報は配列として記憶され、領域単位の特徴点情報が出力するたびに、配列の末尾に追加されるものとする。ただし、画像の特徴点情報の管理方法はこれに限らない。これらの処理は、動画にも適用することが可能である。その場合、連続画像データに対し、ステップS102からS104を繰り返し適用することによって、実現される。
本実施形態によれば、特徴点を検出する領域を優先領域に限定している。つまり、特徴点検出数が0に設定される非優先領域は、特徴点検出処理を実行する必要はなく、処理時間を短縮することができる。ただし、非優先領域から検出する特徴点数の個数は、必ずしも0に設定する必要はない。例えば、画面全体の特徴点検出数の設定を優先領域に固定せず、検出特徴点のうち所定数、例えば、半数の特徴点検出数を非優先領域に設定する構成をとってもよい。この場合も、非優先領域の特徴点検出数と優先領域の特徴点検出数とを同数に設定する場合に比べて、扱う特徴点検出数を減らせるため処理量の軽減を図ることが可能になる。このように、ユーザー設定情報に基づいて特徴点を検出する領域を限定しているため、特徴点の取りこぼしが少なくユーザーの意図に合致した特徴点の検出が可能になる。
特徴点検出を用いて動画のブレを補正する場合の効果を一例として説明する。画面中央を優先領域に設定した場合、構図的に画面中央に存在しがちな主要被写体の特徴点と動き量を求めることができる。一方、背景のブレを防振する場合には、画面周辺に優先領域が設定され、構図的に画面周辺に存在しがちな背景の特徴点とその動き量を求めることができる。これら被写体の動き量から補正を行うことにより、ユーザーが補正したいと考える被写体のブレの補正を行うことができる。また、このユーザー設定は、フォーカスエリア設定に連動させることも可能であるが、フォーカスエリア設定と非連動であってもよい。これにより、主要被写体にフォーカスを合わせつつ、主要被写体でない、例えば、背景を対象としたブレ補正も可能となる。
特徴点検出を用いて動き量を算出したり、ブレ補正をする場合には、ステップS101の処理で説明したUIは、特徴点検出の優先領域を指定するため、動き量を算出する優先領域の指定やブレ補正対象の指定のためのUIとしてユーザーに提示される。
(第2実施形態)
第1実施形態では、特徴点検出処理として特徴点検出数の上限を設定する処理を説明したが、本実施形態では、特徴点検出のための閾値を設定し、画素の特徴点スコアと閾値との比較結果に基づいて特徴点を検出する方法を説明する。第1実施形態と共通する内容については説明を省略し、以下、相違する処理について説明する。 第1実施形態で説明した図1のステップS103では、特徴点検出パラメータとして特徴点検出数を設定する構成を説明した。本実施形態では、特徴点検出パラメータとして特徴点スコアの閾値を、特徴点を検出する画像を分割した分割領域ごとに設定する。特徴点スコアの閾値は、特徴点の検出感度であり、特徴点スコアの閾値が大きいほど特徴点が検出されにくくなる。
特徴点スコアの閾値を基準値に対して変更することによって、特徴点の検出量(検出数)を調整することができる。特徴点スコアが閾値を超えた場合に特徴点が検出される。特徴点スコアの閾値を、基準閾値よりも大きい値に設定した場合、特徴点は検出されにくくなるように特徴点の検出処理が制御される。基準閾値はあらかじめ設定された値であり、基準閾値に係数をかけて特徴点スコアの閾値を算出する。
また、ステップS104では、特徴点検出パラメータとして、特徴点スコアの閾値に基づいて、分割領域内の特徴点を検出する。優先モードごとの特徴点スコアの閾値の設定を例示的に説明する。優先モードとして、中央優先では、図5(a)の網掛けで示されるように画面中央に優先領域が設定され、白抜きの非優先領域は、例えば、基準閾値の2倍の値が特徴点スコアの閾値として設定される。
優先モードとして周辺優先は、図5(b)の網掛けで示されるように画面周辺に優先領域が設定され、白抜きの非優先領域は基準閾値の2倍の値が特徴点スコアの閾値として設定される。優先モードとしてフォーカス連動では、画像データからフォーカスエリア情報を取得して、フォーカスを合わせると指定された位置以外の領域に対し、基準閾値の2倍の値が特徴点スコアの閾値として設定される。優先モードとして直接指定では、図5(c)の網掛け部分が優先領域として示され、非優先領域として指定した網かけなしの領域に対し、基準閾値の2倍の値が特徴点スコアの閾値として設定される。
シーンモード連動の場合、シーンタイプ情報が、ポートレートを示す場合、画面中央に被写体が存在することが多い。図5(a)の網掛けで示されるように画面中央に優先領域が設定され、白抜きの非優先領域は基準閾値の2倍の値が特徴点スコアの閾値として設定される。風景優先の場合、主要被写体は画面全面になるため図5(d)の網掛けで示されるように画面全面に優先領域が設定され、白抜きの非優先領域は基準閾値の2倍の値が特徴点スコアの閾値として設定される。以上の処理により、非優先領域の特徴点スコアの閾値は優先領域の特徴点の閾値(基準閾値)に比べて2倍(検出感度は1/2)となる。これにより優先領域に比べて、非優先領域では特徴点は検出されにくくなるように特徴点の検出処理が制御される。
本実施形態の特徴点スコアの閾値の算出処理と特徴点検出処理とを、図3を用いて説明する。ステップS301では、対象画素を設定し、特徴点スコアを算出する。対象画素の設定は、分割領域内の画素をラスター順に走査することによって行われる。本実施形態では、第1実施形態と同様に特徴点スコアの算出は、ハリス作用素を用いている。
ステップS302では、特徴点スコアの閾値と、ステップS301で算出した特徴点スコアとを比較する。比較の結果、特徴点スコアが閾値より大きい場合(S302−Yes)、処理をステップS303に進める。特徴点スコアが閾値以下の場合(S302−No)、処理をステップS304に進める。
ステップS303では、閾値よりも大きいと判定された特徴点情報を出力する。非優先領域の特徴点の閾値は優先領域の特徴点の閾値(基準閾値)に比べて大きい値が設定されている場合、優先領域に比べて非優先領域では特徴点スコアが閾値を超えにくくなる。本実施形態では、非優先領域の特徴点の閾値は基準閾値に比べて2倍の値が設定されている。このため、非優先領域の特徴点情報は、優先領域に比べて出力されにくいように特徴点の検出個数が調整される。一方、優先領域の特徴点情報は、非優先領域に比べて出力されやすいように特徴点の検出個数が調整される。
ステップS304では、分割領域内の画素の特徴点検出処理が全て完了したかを判定し、完了の場合には(S304−Yes)、処理を終了させる。一方、分割領域内の全ての画素について特徴点検出処理が終了していない場合(S304−No)、処理をステップS301に戻し、同様の処理を実行する。
本実施形態によれば、第1実施形態と同様に、分割領域ごとに特徴点の検出個数を制御することができる。これにより、非優先領域の特徴点の検出個数を低減することができ、処理時間の削減を図ることが可能になる。本実施形態で説明した閾値の設定と、第1実施形態で説明した上限の特徴点検出数を設定する構成を組み合わせて、分割領域ごとに特徴点の検出個数を制御することも可能である。
(第3実施形態)
本実施形態では、ユーザー設定情報に基づく特徴点検出処理を実行可能な特徴点検出部と、撮像部と、を有する撮像装置(カメラ)の構成を説明する。以下、カメラの内部構成と各構成要素の動作について、図8(b)を使って説明する。図8(b)は、カメラの内部構成を説明する図である。1001はバスである。1002はRAMである。1003はグラフィックプロセッサである。1004はディスプレイである。1005はCPUである。1006は、ユーザーインターフェース(I/F)である。本実施形態では、ユーザーインターフェース(I/F)1006としてタッチパネルを例として説明する。1007は不揮発性の外部ストレージである。1008はネットワークインターフェース(I/F)である。
特徴点検出部1010はユーザー設定情報に基づく特徴点検出処理を実行する。撮像部1011は、センサー、光学系、現像処理部を有する。光学系を介してセンサーで撮像されたRAW画像データは、現像処理部によりデジタル現像処理され、フォーカスエリア情報を含む撮影時のカメラ情報とともに、RAM1002に画像データとして記憶され、各モジュールと共有される。
本実施形態では、UI画面や処理画像結果などは、グラフィックプロセッサ1003を介して、ディスプレイ1004上に表示することができる。ユーザーインターフェース(I/F)1006は、ディスプレイ1004上の任意の座標位置(座標情報)とディスプレイ1004の表示画面にタッチされたか否かの情報を入力することができる。また、プログラムは、外部ストレージ1007またはRAM1002に記憶されているデータを他のプログラムと共有して使用することができる。
CPU1005は、第1実施形態で説明した方法と同様の方法で、ユーザー設定情報を生成する。ユーザー設定情報UIは、図4で説明したとおりである。本実施形態では、カメラのユーザーインターフェース(I/F)1006に表示されるメニューボタンを押すことによって、図4(a)、(b)、(c)で例示されるUI画面を介して、ユーザーは、種々のモードを説明することができる。
図4(a)に示した優先モード選択UI画面を介して、ユーザーは優先モードを設定する。図4(b)のUI画面を介して、ユーザーは、動画、静止画いずれかの撮影を行うかを選択する。図4(c)のUI画面を介して、ユーザーは、シーンタイプ選択する。シーンタイプには、ポートレートモードや、風景モードがあり、このシーンタイプに応じて、撮影時のフォーカスエリアやホワイトバランスなどが決定される。図4(a)、(b)、(c)の画面の表示に関して、階層的なメニュー構成に画面が遷移し表示される。なお、動画、静止画の選択やシーンタイプの選択は、UI画面による選択に限定されず、カメラが有する物理的な操作部(例えば、ダイアル)の操作により選択することも可能である。以下、静止画像を分割した分割領域ごとに特徴点を検出する特徴点検出部1010の処理を、図6を使って説明する。
特徴点検出パラメータ設定部601は、被写体に対するフォーカスエリア示すフォーカスエリア情報を含むカメラ情報およびユーザー設定情報の入力を受け付ける。特徴点検出パラメータ設定部601はフォーカスエリア情報を含むカメラ情報を撮像部1011から取得する。特徴点検出パラメータ設定部601は、第1実施形態で説明した方法と同様の方法により、ユーザー設定情報を用いて特徴点検出数を設定する。ここで、ユーザー設定情報がシーンモード連動を示す場合、特徴点検出パラメータ設定部601はシーンタイプに基づいて優先領域を設定し、第1実施形態と同様に特徴点検出パラメータとして特徴点の検出個数を設定する。
また、ユーザー設定情報がフォーカス連動を示す場合、撮像部1011から取得したカメラ情報に含まれるフォーカスエリア情報を用いて第1実施形態と同様に特徴点検出パラメータとして特徴点検出数を設定する。なお、特徴点検出パラメータ設定部601の処理は、汎用的な処理を行うCPUで実行することも可能である。
画像分割部602は、予め設定された分割パターンに基づいて、入力された画像を分割し、分割した画像を特徴点情報生成部603へ出力する。ここで、予め設定された分割パターンの例を図10(b)に示す。
特徴点情報生成部603は、特徴点検出パラメータ設定部601で設定した特徴点検出パラメータに基づいて、画像分割部602で分割した分割画像ごとに特徴点を検出し、検出した特徴点情報を出力する。
以下、特徴点情報生成部603の処理の詳細を、図7(a)を使って説明する。特徴点スコア生成部701は、分割画像の画素を走査順に特徴点スコアを計算し、特徴点スコア上位点抽出部702へ出力する。本実施形態では、特徴点スコアは、第1実施形態と同様に、例えば、ハリス作用素で算出するものとする。
特徴点スコア上位点抽出部702には、特徴点パラメータとして特徴点検出数が設定されており、特徴点検出数だけ特徴点情報(特徴点スコア)を保持する。例えば、優先領域について設定されている特徴点検出の個数がN個(Nは整数)とする。この場合、保持している上位からN番目の特徴点情報よりもスコアが高い特徴点情報が特徴点スコア生成部701から入力されると、スコアが低いN番目の特徴点情報を破棄する。そして、入力されたスコアが高い特徴点情報をN番目の特徴点情報として保持する。分割画像の全画素の処理が終了した時点で、保持していた特徴点情報を出力する。例えば、特徴点検出数がN個設定されている場合、最も特徴点情報の値の大きい最上位の特徴点情報から降順にN番目までの特徴点情報を出力する。
本実施形態によれば、特徴点を検出する領域を優先領域に限定している。つまり、非優先領域について特徴点検出数が0個の場合には特徴点検出処理を実行する必要はなく、処理時間を短縮することができる。
(第4実施形態)
第3実施形態では、特徴点スコア上位点抽出部702に特徴点検出数の上限を設定する処理を説明したが、本実施形態では、特徴点検出のための閾値を設定し、画素の特徴点スコアと閾値との比較結果に基づいて特徴点を検出する方法を説明する。
第3実施形態で説明した図6の特徴点検出パラメータ設定部601で設定する特徴点検出パラメータは特徴点検出数であった。本実施形態では、特徴点検出パラメータは特徴点検出数でなく特徴点スコアの閾値である。
本実施形態では、あらかじめ基準閾値が設定されており、基準閾値に係数をかけた特徴点スコアの閾値を、分割領域ごとの特徴点検出パラメータとする。
特徴点検出パラメータ設定部601は、フォーカスエリア示すフォーカスエリア情報を含むカメラ情報およびユーザー設定情報の入力を受け付ける。特徴点検出パラメータ設定部601は、第2実施形態と同様に分割領域ごとの特徴点検出パラメータとして特徴点スコアの閾値を、特徴点を検出する画像を分割した分割領域ごとに設定する。
ここで、ユーザー設定情報がシーンモード連動示す場合は、特徴点検出パラメータ設定部601はシーンタイプに基づいて、特徴点スコアの閾値を第2実施形態で説明したように設定する。また、ユーザー設定情報がフォーカス連動を示す場合、特徴点検出パラメータ設定部601は、撮像部1011から取得したカメラ情報に含まれるフォーカスエリア情報を取得する。そして、特徴点検出パラメータ設定部601はフォーカスを合わせると指定された位置以外の領域に対し、基準閾値よりも大きい値の閾値(例えば、基準閾値の2倍の値)を特徴点スコアの閾値として設定する。その他、ユーザー設定情報に応じた優先モードに応じた特徴点スコアの閾値の設定は第2実施形態で説明したとおりである。特徴点検出パラメータ設定部601は、優先領域の特徴点の閾値(基準閾値)に比べて大きい値(例えば、基準閾値の2倍など)を非優先領域の特徴点スコアの閾値として設定する。これにより優先領域に比べて、非優先領域では特徴点は検出されにくくなるように特徴点の検出処理が制御される。
特徴点情報生成部603は、特徴点検出パラメータ設定部601で設定した特徴点検出パラメータに基づいて、画像分割部602で分割した分割画像ごとに特徴点の閾値を設定する。そして、特徴点スコアが閾値を超えた場合に特徴点情報生成部603は特徴点を検出し、検出した特徴点情報を出力する。以下、特徴点情報生成部603の詳細について、図7(b)を使って説明する。
特徴点スコア生成部801は分割画像の画素を走査順に特徴点スコアを計算し、特徴点スコア閾値判定部802へ出力する。特徴点スコア閾値判定部802は、図3のステップS302で説明した方法と同様に、特徴点スコアの閾値と、特徴点スコア生成部801で生成された特徴点スコアとを比較する。比較の結果、特徴点スコアが閾値より大きい場合、閾値よりも大きいと判定された特徴点スコア(特徴点情報)を出力する。この処理は図3のステップS303に対応するものである。一方、特徴点スコアが閾値以下の場合、特徴点スコア(特徴点情報)を出力せず、分割領域内の画素の特徴点検出処理が全て完了したかを判定し、完了の場合には、処理を終了する。この処理は図3のステップS304に対応するものである。
本実施形態によれば、分割領域ごとに特徴点の検出数を制御することができる。これにより、非優先領域の特徴点検出数を低減することができ、処理時間の削減を図ることが可能になる。本実施形態で説明した閾値の設定と、第1実施形態で説明した上限の特徴点検出数を設定する構成を組み合わせて、分割領域ごとに特徴点の検出数を制御することも可能である。
上記の各実施形態によれば、用途やユーザーの設定に応じて、分割領域毎に必要最低限の数の特徴点を検出することによって、特徴点検出処理の負荷を軽減することが可能になる。これにより、後工程での処理精度を落とすことなく、処理負荷を削減することが可能となる。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. 画像の特徴点を検出する画像処理装置であって、
    画像を複数に分割した分割領域ごとに特徴点の検出数を設定する設定手段と、
    前記設定手段により設定された検出数の特徴点を分割領域から検出する検出手段と、
    を備え、
    前記設定手段は、前記画像の撮影時の撮影モードに応じて優先領域を設定し、前記優先領域からの特徴点の検出数が非優先領域からの特徴点の検出数よりも多くなるように前記分割領域ごとの検出数を設定することを特徴とする画像処理装置。
  2. 前記設定手段は、前記分割領域ごとに検出する特徴点の上限の個数を設定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記設定手段は、撮影モードがポートレートである場合、画像の中央に優先領域を設定する
    ことを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記設定手段は、撮影モードが風景優先の場合、前記非優先領域を設定せずに、領域ごとの検出数を設定する
    ことを特徴とする請求項3に記載の画像処理装置。
  5. 画像の特徴点を検出する画像処理装置の画像処理方法であって、
    前記画像処理装置の設定手段が、画像を複数に分割した分割領域ごとに特徴点の検出数を設定する設定工程と、
    前記画像処理装置の検出手段が、前記設定された検出数の特徴点を分割領域から検出する検出工程と、
    を有し、
    前記設定工程は、前記画像の撮影時の撮影モードに応じて優先領域を設定し、前記優先領域からの特徴点の検出数が非優先領域からの特徴点の検出数よりも多くなるように前記分割領域ごとの検出数を設定することを特徴とする画像処理方法。
  6. 前記設定工程は、前記分割領域ごとに検出する特徴点の上限の個数を設定することを特徴とする請求項に記載の画像処理方法。
  7. 前記設定工程は、撮影モードがポートレートである場合、画像の中央に優先領域を設定する
    ことを特徴とする請求項またはに記載の画像処理方法。
  8. 前記設定工程は、撮影モードが風景優先の場合、前記非優先領域を設定せずに、領域ごとの検出数を設定する
    ことを特徴とする請求項に記載の画像処理方法。
  9. コンピュータを、請求項1乃至のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2013107479A 2013-05-21 2013-05-21 画像処理装置、画像処理方法およびプログラム Active JP6261187B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013107479A JP6261187B2 (ja) 2013-05-21 2013-05-21 画像処理装置、画像処理方法およびプログラム
US14/278,440 US9402025B2 (en) 2013-05-21 2014-05-15 Detection apparatus, method for detecting feature point and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013107479A JP6261187B2 (ja) 2013-05-21 2013-05-21 画像処理装置、画像処理方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2014229030A JP2014229030A (ja) 2014-12-08
JP2014229030A5 JP2014229030A5 (ja) 2016-06-30
JP6261187B2 true JP6261187B2 (ja) 2018-01-17

Family

ID=51935151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013107479A Active JP6261187B2 (ja) 2013-05-21 2013-05-21 画像処理装置、画像処理方法およびプログラム

Country Status (2)

Country Link
US (1) US9402025B2 (ja)
JP (1) JP6261187B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6338429B2 (ja) * 2014-04-15 2018-06-06 キヤノン株式会社 被写体検出装置、被写体検出方法及びプログラム
JP6584083B2 (ja) * 2015-02-13 2019-10-02 キヤノン株式会社 画像処理装置および画像処理プログラム
CN106203244B (zh) * 2015-05-08 2019-08-27 无锡天脉聚源传媒科技有限公司 一种镜头类型的确定方法及装置
JP6685188B2 (ja) * 2016-06-29 2020-04-22 キヤノン株式会社 撮像装置、画像処理装置及びそれらの制御方法、プログラム
CN108024003A (zh) * 2016-10-31 2018-05-11 努比亚技术有限公司 一种移动终端及拍摄方法
CN108012071A (zh) * 2016-10-31 2018-05-08 努比亚技术有限公司 一种移动终端及拍摄方法
US10818018B2 (en) 2016-11-24 2020-10-27 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP6894725B2 (ja) * 2017-03-09 2021-06-30 キヤノン株式会社 画像処理装置及びその制御方法、プログラム、記憶媒体
WO2019013215A1 (ja) * 2017-07-12 2019-01-17 シャープ株式会社 補正装置、撮像装置、補正装置の制御方法、および制御プログラム
CN108712605A (zh) * 2018-05-04 2018-10-26 努比亚技术有限公司 一种拍摄方法、终端及计算机可读存储介质
JP2022076346A (ja) 2020-11-09 2022-05-19 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
JP2022165815A (ja) 2021-04-20 2022-11-01 キヤノン株式会社 画像処理装置、画像処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040207743A1 (en) * 2003-04-15 2004-10-21 Nikon Corporation Digital camera system
JP2007094906A (ja) * 2005-09-29 2007-04-12 Toshiba Corp 特徴点検出装置および方法
GB0607143D0 (en) * 2006-04-08 2006-05-17 Univ Manchester Method of locating features of an object
JP5202037B2 (ja) * 2008-02-29 2013-06-05 キヤノン株式会社 特徴点位置決定方法及び装置
JP5517435B2 (ja) * 2008-10-22 2014-06-11 キヤノン株式会社 自動合焦装置および自動合焦方法、ならびに、撮像装置
JP5269707B2 (ja) * 2009-07-01 2013-08-21 富士フイルム株式会社 画像合成装置及び方法
JP2011029905A (ja) * 2009-07-24 2011-02-10 Fujifilm Corp 撮像装置、方法およびプログラム
EP2579210A4 (en) * 2010-05-26 2018-01-17 Nec Corporation Face feature-point position correction device, face feature-point position correction method, and face feature-point position correction program
CN102918858B (zh) * 2010-12-24 2014-09-03 富士胶片株式会社 立体全景图像创建设备和方法、立体全景图像再现设备和方法
WO2012096163A1 (ja) * 2011-01-13 2012-07-19 パナソニック株式会社 画像処理装置、画像処理方法、及びそのプログラム
WO2012176441A1 (ja) * 2011-06-23 2012-12-27 株式会社ニコン 撮像装置
JP2013055381A (ja) * 2011-08-31 2013-03-21 Ricoh Co Ltd 撮像装置及び撮像方法並びに携帯情報端末装置
CN104221031B (zh) * 2011-11-18 2019-06-11 苹果公司 将影像特征与参考特征相匹配之方法及其所用集成电路

Also Published As

Publication number Publication date
US20140347513A1 (en) 2014-11-27
US9402025B2 (en) 2016-07-26
JP2014229030A (ja) 2014-12-08

Similar Documents

Publication Publication Date Title
JP6261187B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP6682559B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
KR101450782B1 (ko) 화상 처리 장치 및 프로그램
JP2013197918A5 (ja)
US10970807B2 (en) Information processing apparatus and storage medium
JP5870586B2 (ja) プロジェクタ制御装置、表示装置及びプログラム。
JP2018195084A (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
US9536169B2 (en) Detection apparatus, detection method, and storage medium
JP2016085380A (ja) 制御装置、制御方法、及び、プログラム
JP2014127773A5 (ja)
US9842260B2 (en) Image processing apparatus and image processing method of performing image segmentation
JP6564284B2 (ja) 画像処理装置および画像処理方法
US9270883B2 (en) Image processing apparatus, image pickup apparatus, image pickup system, image processing method, and non-transitory computer-readable storage medium
JP2017076240A (ja) 画像処理装置、画像処理方法、およびプログラム
JP5927265B2 (ja) 画像処理装置及びプログラム
JP5834253B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP6704712B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP6614799B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP6381212B2 (ja) 撮像装置及びその制御方法
JP2017034608A (ja) 画像処理装置、画像処理方法及びプログラム
JP2019192048A (ja) 撮像装置
JP2016171406A (ja) デジタル画像における画像処理方法
EP2624210B1 (en) Multi-touch recognition apparatus and control method thereof
JP2018072895A (ja) 画像処理装置、画像処理方法及びプログラム
TW201827911A (zh) 影像擷取裝置及其對焦方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160510

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171212

R151 Written notification of patent or utility model registration

Ref document number: 6261187

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151