(57)【要約】【課題】人や車両など種類が多く且つそれらを組み合わせたシーンに対応する処理を複数の処理ユニットに適切に行わせることができる車載画像処理装置を提供すること。【解決手段】車載画像処理装置は、複数の処理ユニット４０によって画像処理された処理結果に基づいて、各処理ユニット４０の次回に実行する画像処理の種類と優先度を示すタグ情報を生成し、前回の画像処理時に生成されたタグ情報を用いて各処理ユニット４０で画像処理を行わせるか否かを判定する。【選択図】図１
2011164982.tif 000002
【特許請求の範囲】
【請求項１】
車載カメラで間欠的に撮像される画像の画像処理を行う車載画像処理装置であって、
前記画像から前記画像処理が行われる処理領域のイメージデータを抽出する領域抽出手段と、
該領域抽出手段により抽出されたイメージデータに基づいて画像処理を行う複数の処理ユニットと、
該各処理ユニットにより画像処理された処理結果に基づいて、前記各処理ユニットの次回に実行する画像処理の種類と優先度を示すタグ情報を生成するタグ情報生成手段と、
該タグ情報生成手段によって前回の画像処理時に生成されたタグ情報を用いて前記各処理ユニットで画像処理を行わせるか否かを判定する判定手段と、
を有することを特徴とする車載画像処理装置。
【請求項２】
前記領域抽出手段は、前記タグ情報生成手段によって前回の画像処理時に生成されたタグ情報を用いて前記処理領域を決定することを特徴とする請求項１に記載の車載画像処理装置。
【請求項３】
前記領域抽出手段は、前記画像からピクセル単位、ライン単位、ストライプ単位、ブロック単位の少なくともいずれか一つの単位で前記イメージデータを抽出することを特徴とする請求項１又は２に記載の車載画像処理装置。
【請求項４】
画像処理の種類に対応するプログラムを記憶し、前記タグ情報生成手段によって前回の画像処理時に生成されたタグ情報に基づいて、前記プログラムを前記各処理ユニットに送信する命令バッファを有し、
前記各処理ユニットは、前記命令バッファから受け取ったプログラムに基づいて前記画像処理を行うことを特徴とする請求項１から請求項３のいずれか一項に記載の車載画像処理装置。
【請求項５】
前記各処理ユニットは、前記イメージデータを受け取るよりも前に、前記命令バッファから前記プログラムを受け取り、該プログラムの先読みを行い、次いで、前記イメージデータを受け取ることにより前記画像処理を開始することを特徴とする請求項４に記載の車載画像処理装置。
【請求項６】
前記タグ情報には、画像処理の緊急度が含まれることを特徴とする請求項１から請求項５のいずれか一項に記載の車載画像処理装置。
【請求項７】
前記タグ情報生成手段は、前記タグ情報をパケットとしてまとめて前記処理ユニットに送信することを特徴とする請求項１から請求項６のいずれか一項に記載の車載画像処理装置。
【請求項８】
前記各処理ユニットは、前記タグ情報生成手段によって前回の画像処理時に生成されたタグ情報に基づいて処理の必要性を判断し、必要性がないと判断した場合に、動作モードを通常モードから消費電力の少ないスリープモードに変更して、処理ユニットの消費電力の低減を図ることを特徴とする請求項１から請求項７のいずれか一項に記載の車載画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載される画像処理装置に関するものである。
【背景技術】
【０００２】
車載画像処理装置では、イメージセンサによって撮像された画像から物体を認識し、その認識結果をもとに、車体の制御をしたり、各種の警報を発生することで、アクティブ・セーフティ機能を実現している。
【０００３】
しかし、イメージセンサで撮像された画像には、車両のアクティブ・セーフティの観察対象となる人や車両といった物体のみが存在するわけでないので、物体と思われる全ての領域についてイメージデータを抽出する処理を実行し、抽出したイメージデータが人なのか車両なのかなどの分類するための認識処理を実行する必要がある。
【０００４】
そして、認識した結果、人や車両がどのような状態なのかを判断し、衝突しそうであればブレーキを動作させるもしくはステアリング操作で回避するなどの制御を実行するのか、それとも衝突の可能性は低いが警報を発したほうが良いのか、といった判断を行っており、このような判断の必要なシーン（場面）が無限に存在している。そのため、全てのシーンに対応しようとすると、画像処理装置における抽出処理、認識処理、判断処理の処理負荷が膨大になってしまう。
【０００５】
画像処理装置の処理負荷を軽減する方法として、判断の必要なシーンを限定する方法がある。例えば、自車の近傍に物体が存在するシーンに限定し、一番自車に近い物体に限定して認識や判断を実行する方法である。
【０００６】
一方、複数のＣＰＵを用いて処理負荷に対応する方法もある。マルチプロセッサ方式の画像処理装置の多くは、画面を分割し、それぞれの分割領域にプロセッサに割り当てて処理負荷の均一化を実現している。また、マルチコア方式の画像処理装置の多くは、フィルタリング処理のような任意のピクセルや領域に対して同一の処理を並列に実行するデータ並列処理を実現している（例えば特許文献１、２を参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−８５１６４
【特許文献２】特開平６−２１５１３８
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、判断の必要なシーンを限定する方法では、危険な状況を許容してしまうおそれがある。例えば、自車の近傍に物体が存在するシーンに限定し、一番自車に近い物体に限定して認識や判断を実行する方法において、自車が歩道のない車道を走り、近傍に人が存在し、且つ猛スピードで逆走する車両が存在するシーンでは、一番自車に近い物体である人に限定して認識や判断が行われるが、このようなシーンでは、猛スピードで逆送する車両を優先して認識することが好ましい。
【０００９】
このように、検知したい物体が、人や車両など種類が多く且つそれらを組み合わせたシーンが無限に存在するために、例えば自車から一番近い物体等に限定して処理してしまうと、現実世界で本来回避すべきシーンを網羅できていないという問題があった。
【００１０】
また、画面の各分割領域にＣＰＵやコアを割り当てたマルチプロセッサ方式の場合には、状況に応じて処理負荷の低い領域が発生し、かかる領域に割り当てられたプロセッサの処理能力を有効に活用することができず、無駄が生じていた。そして、任意のピクセルや領域に対して同一の処理を並列に実行するデータ並列処理では、効率が悪く、処理を高速化することができなかった。
【００１１】
本発明は、上記の点に鑑みてなされたものであり、その目的とするところは、人や車両など種類が多く且つそれらを組み合わせたシーンに対応する処理を、複数の処理ユニットに適切に行わせることができる車載画像処理装置を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決する本発明の車載画像処理装置は、複数の処理ユニットによって画像処理された処理結果に基づいて、各処理ユニットの次回に実行する画像処理の種類と優先度を示すタグ情報を生成し、前回の画像処理時に生成されたタグ情報を用いて各処理ユニットで画像処理を行わせるか否かを判定することを特徴としている。
【発明の効果】
【００１３】
本発明の画像処理装置は、複数の処理ユニットによって画像処理された処理結果に基づいて、各処理ユニットの次回に実行する画像処理の種類と優先度を示すタグ情報を生成し、前回の画像処理時に生成されたタグ情報を用いて各処理ユニットで画像処理を行わせるか否かを判定するので、複数の処理ユニットに優先度の高いものから適切に処理を行わせることができる。したがって、現実世界で回避すべきシーンを漏れなく網羅することができ、車両走行時の安全性を飛躍的に向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態における画像処理装置の構成を説明する図。
【図２】画像処理装置の機能ブロック図。
【図３】処理ユニットとコントローラの処理内容を説明するフローチャート。
【図４】処理ユニットから出力されるパケットの一実施例を示す図。
【図５】コントローラで検索されるテーブルの一実施例を示す図。
【図６】車載カメラで撮像した画像を模式的に示す図。
【図７】イメージデータをピクセル抽出する方法を説明するフローチャート。
【図８】イメージデータをライン抽出する方法を説明するフローチャート。
【図９】イメージデータをストライプ抽出する方法を説明するフローチャート。
【図１０】イメージデータをブロック抽出する方法を説明するフローチャート。
【図１１】処理の種類とプログラムを管理する方法を説明する図。
【図１２】コントローラが管理するテーブルの構成を説明する図。
【図１３】画像処理の結果に対する次回の処理の種類と優先度を管理するテーブルの構成を説明する図。
【図１４】優先度設定の一実施例を示す図。
【図１５】処理領域の設定方法の一実施例を示す図。
【図１６】処理領域の設定方法の一実施例を示す図。
【図１７】処理領域と優先度の設定方法の一実施例を示す図。
【図１８】処理ユニットの構成の一実施例を示す図。
【図１９】優先度に応じた処理の方法を説明するフローチャート。
【図２０】処理ユニットにより優先度を決定する一実施例を示す図。
【図２１】処理ユニットにより緊急度を決定する一実施例を示す図。
【図２２】パケットの一実施例を示す図。
【図２３】パケットの一実施例を示す図。
【図２４】画像ＩＤによるプログラムの先読み処理を説明するフローチャート。
【図２５】消費電力の低減方法の一実施例を示すフローチャート。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図を用いて説明する。
【００１６】
図１は、本実施の形態における画像処理装置の構成を説明する図、図２は、画像処理装置の機能ブロック図である。
【００１７】
画像処理装置１は、図１及び図２に示すように、ラインバッファ１０、領域抽出手段２０、イメージバッファ３０、複数の処理ユニット４０、コントローラ７０、命令バッファ８０を有しており、データの送受信、ブロードキャスト及びデータの共有が可能な通信路１００で接続されている。このような通信路１００は、マルチコアシステムでは、リングバスやクロスバーで実現されることが多いが、本発明はこれらのバス形式に限定されるものではない。
【００１８】
車載カメラとして用いられる一般的なイメージセンサは、１ライン毎にイメージデータを出力する構造になっているため、本実施例ではラインバッファ１０を有する。ラインバッファ１０には、車載カメラからの信号が入力されるビデオ入力（Ｖｉｎ）が接続されている。ラインバッファ１０は、一ラインずつ垂直方向に走査することで、一画面分のイメージデータを生成することができる。この垂直走査時間をフレーム周期と呼ぶ。
【００１９】
領域抽出手段２０は、一画面分のイメージデータを生成するまでのフレーム周期の間で、所望の処理領域、少なくともピクセル、ライン、ストライプ、ブロックの単位でイメージデータを分割して、その処理領域のイメージデータを抽出する。領域抽出手段２０は、車載カメラの垂直同期信号等と同期して、ラインバッファ１０から一ライン分のイメージデータを読み出し、必要なピクセルデータを取得する処理を繰り返すことで処理領域のイメージデータを抽出する。
【００２０】
イメージバッファ３０は、領域抽出手段２０で抽出されたイメージデータを格納する。イメージバッファ３０は、処理領域が一つ以上の場合にも対応できるように、複数のイメージデータを格納することが可能である。
【００２１】
複数の処理ユニット４０は、それぞれがＣＰＵやコアなどのプロセッサによって構成されている。各処理ユニット４０は、領域抽出手段２０により抽出されたイメージデータに基づいて画像処理を行う。各処理ユニット４０は、画像処理を実行するか否かの判定手段５０と、記憶装置６０を有する。
【００２２】
判定手段５０は、前回の画像処理時にコントローラ７０によって生成されたタグ情報を用いて各処理ユニット４０で画像処理を行わせるか否かを判定する。記憶装置６０は、プログラム９０やイメージデータを格納するのに利用される。ただし、本発明は、この構成に限定されるものではない。
【００２３】
コントローラ７０は、各処理ユニット４０の処理結果の情報と、処理領域のイメージデータと、処理の種類と、処理の優先度を示す情報、との関係を管理する手段を持つ。コントローラ７０は、処理ユニット４０が出力する画像処理の処理結果に基づいて、各処理ユニット４０の次に実行する画像処理の種類と優先度を示すタグ情報を生成する（タグ情報生成手段）。
【００２４】
命令バッファ８０は、処理ユニット４０で実行される処理の種類と、その処理の種類に対応したプログラム９０を管理するものであり、コントローラ７０によって前回の画像処理時に生成されたタグ情報に基づいて、プログラム９０を処理ユニット４０に送信できるようになっている。
【００２５】
図３は、処理ユニットとコントローラの処理内容を説明するフローチャート、図４は、処理ユニットから出力されるパケットの一実施例を示す図、図５は、コントローラで検索されるテーブルの一実施例を示す図である。
【００２６】
処理ユニット４０は、画像処理を実行し、その処理結果および該処理結果１１２に対応する処理領域の領域情報１１４を生成し、パケット１１０としてコントローラ７０に送信する（Ｓ１０）。
【００２７】
コントローラ７０は、パケット１１０を取得すると、そのパケット１１０に含まれる処理結果１１２と領域情報１１４を用いて図５のテーブル１３０を検索し（Ｓ３０）、対応する処理の種類と該処理の優先度を抽出してパケットを生成し、処理ユニット４０に送信する。
【００２８】
例えば、処理ユニット４０が画像処理として画面全体に対して立体物検知処理を実行し、立体物を検知できなかった場合に、処理ユニット４０は、処理結果として「立体物不検知」情報と、画面全体を示す「領域情報」をパケットとしてまとめてコントローラ７０に送信する。
【００２９】
コントローラ７０は該パケットを通信路１００経由で受信する。コントローラ７０は、処理結果に対して次に実行すべき処理の種類と該処理の優先度とを規定するテーブル１３０を管理しており、そのテーブル１３０を検索する。テーブル１３０は、状態遷移表に相当する。
【００３０】
本実施例では、「立体物不検知」に対する処理の種類として、「遠方検知処理」と「近傍検知処理」が記憶され、「遠方検知処理」の優先度が高く「近傍検知処理」の優先度が低く設定されている。このテーブル１３０に従い、コントローラ７０は、優先度の高い遠方検知処理を実行させる情報と、優先度の低い近傍検知処理を実行させる情報の二つを生成する。これらの情報はそれぞれパケットとしてまとめて送信する。
【００３１】
図６は、車載カメラで撮像した画像を模式的に示す図である。画像１２１は、車載カメラから車両前方を撮像したものであり、車両前方の路面１２１ａと、車両の左右に沿って路面にペイントされた一対の白線１２１ｂがフレーム１２０内に映し出されている。図６に示すように、ピクセル１２３は、画面の中の任意の一点の領域情報であり、ライン１２４は、水平方向のピクセルデータの集合である。そして、ストライプ１２５は、連続するライン１２４の集合であり、ブロック１２６は、画面の中の任意の矩形領域の領域情報である。
【００３２】
図７〜図９は、領域抽出手段により画像から処理領域のイメージデータを抽出する方法を説明する図である。図７は、イメージデータをピクセル抽出する方法を説明するフローチャートである。ここでは、一ライン分のデータから領域情報で指示された処理領域のイメージデータが抽出される。領域情報は、ピクセルの場合は画面上の「Ｘ座標，Ｙ座標」で示されるものとする。
【００３３】
領域抽出手段２０は、Ｙ座標とラインバッファ１０の同期信号の順番を比較して（Ｓ１００）、同一であった場合には、ラインバッファ１０のイメージデータを取り込む（Ｓ１１０）。そして、Ｘ座標と一致しているドットのイメージデータを抽出し（Ｓ１２０）、その抽出したイメージデータと領域情報とを合わせてイメージバッファ３０に転送する（Ｓ１３０）。
【００３４】
図８は、イメージデータをライン抽出する方法を説明するフローチャートである。ここでは、一ライン分のデータから領域情報で指示された処理領域のイメージデータが抽出される。領域情報は、ラインの場合は「Ｙ座標」のみで示される。
【００３５】
領域抽出手段２０は、Ｙ座標とラインバッファ１０の同期信号の順番を比較する（Ｓ２００）。そして、同一であった場合には、ラインバッファ１０のイメージデータをそのままコピーする（Ｓ２１０）。そして、コピーしたイメージデータと、領域情報とを合わせてイメージバッファ３０に転送する（Ｓ２２０）。
【００３６】
図９は、イメージデータをストライプ抽出する方法を説明するフローチャートである。領域情報は、ストライプの場合にはＹ座標の始点及び終点で示される。領域抽出手段２０は、Ｙ座標とラインバッファ１０の同期信号の順番を比較する（Ｓ３００）。そして、Ｙ座標の始点と終点の間であれば、ラインバッファ１０のイメージデータを取り込む（Ｓ３１０）。そして、取り込んだイメージデータを追記する（Ｓ３２０）。そして、Ｙ座標が終点であれば（Ｓ３３０でＹＥＳ）、追記したイメージデータと、領域情報とを合わせてイメージバッファ３０に転送する。
【００３７】
図１０は、イメージデータをブロック抽出する方法を説明するフローチャートである。
領域情報は、ブロックの場合には、Ｘ座標の始点及び終点、Ｙ座標の始点及び終点の組合せで示される。領域抽出手段２０は、Ｙ座標とラインバッファ１０の同期信号の順番を比較して、ラインバッファ１０の同期信号の順番がＹ座標の始点を超えていることを判定する（Ｓ３４０）。そして、Ｙ座標の始点と終点の間であれば、ラインバッファ１０のイメージデータを取り込む（Ｓ３５０）。そして、Ｘ座標の始点から終点までのイメージデータを切り出して（Ｓ３６０）、追記する（Ｓ３７０）。そして、Ｙ座標の終点と同一であった場合には（Ｓ３８０でＹＥＳ）、コピー及び追記したイメージデータと領域情報とを合わせてイメージバッファ３０に転送する。
【００３８】
図１１は、処理の種類とプログラムを管理する方法を説明するフローチャート、図１２は、コントローラが管理するテーブルの構成を説明する図である。命令バッファ８０は、処理の種類と、それに対応するプログラム９０を、合わせて管理する。本実施例では、命令バッファ８０における処理の種類と対応するプログラム９０を簡単にテーブル１４０として表現しているが、この限りではない。
【００３９】
処理ユニット４０は、図１１に示すように、画像処理の実行後にその処理の種類の情報をパケットにして命令バッファに送信する（Ｓ４００）。命令バッファ８０は、処理ユニット４０からパケットを受信すると（Ｓ４１０）、そのパケットに含まれている処理の種類の情報に基づいて、図１２に示すテーブル１４０より検索し（Ｓ４２０）、処理の種類に対応するプログラム９０を抽出し、処理ユニット４０に送信する（Ｓ４３０）。
【００４０】
図１３は、画像処理の結果に対する次回の処理の種類と優先度を管理するためのテーブルの構成を説明する図である。コントローラ７０は、処理結果の情報と、処理の種類と、処理の優先度を示す情報との関係を、状態遷移表に相当するテーブル１５０を用いて管理している。
【００４１】
テーブル１５０は、画像処理の結果に対して次に実行すべき処理の種類と、該処理の優先度とを管理している。例えば、処理結果が「立体物検知済」であれば、次に実行すべき処理は、「人認識処理」と「車両認識処理」の二種類が定義されている。「人認識処理」と「車両認識処理」は同一の優先度となっている。
【００４２】
また、処理結果が「車両認識」であれば、次に実行すべき処理は「回避制御処理」と「衝突警報処理」の二種類が定義されている。ただし、回避と警報では、前者の方が重要度が高いために「回避制御処理」の方が「衝突警報処理」よりも優先度が高くなっている。本例では数値の小さい方が優先度が高いと定義している。なお、本実施例では、状態遷移表に相当するテーブル１５０として表現しているがこの限りではない。
【００４３】
図１４は、優先度を設定する方法を示す図である。例えば、画像処理の結果として、認識物１６０までの距離を計測できる場合には、画面の領域や、認識物１６０までの距離に応じて優先度を割り付けることで、従来システムのような最近傍の物体を選択するのと同等の機能を提供することが可能となる。
【００４４】
本実施例では、図１４（ａ）に示すように、遠方の低優先度領域１６１と、少し先の中優先度領域１６２と、近傍の高優先度領域１６３の三つの領域を定義している。また、図１４（ｂ）に示すように、認識物に個別に優先度を割り当てることも可能である。図１４（ｂ）は、自車からの距離に応じて各認識物に優先度１０〜１５を割り当てた実施例を示す。ただし、従来システムとの違いは、最近傍の物体のみを処理するのではなく、最近傍以外の複数の認識物１６０についても優先度に従って処理を継続することが可能となり、危険物をもれなく監視することが可能となる。
【００４５】
図１５は、処理領域の設定方法の一実施例を示す図である。例えば、画像処理の結果として、遠方に物体を検出すると、時間の経過とともに該物体が自車に接近する場合には、画面上における物体のサイズが大きくなり、処理領域のイメージデータも大きくなる。認識すべきイメージデータが大きくなると処理ユニット４０の処理負荷も増加する。
【００４６】
この場合に、処理ユニット４０の総数と優先度より、処理領域を分割して複数の処理ユニット４０に処理を自律的に分散することで、一つの処理ユニット４０だけに処理負荷が集中することを回避できる。
【００４７】
例えば、図１５（ａ）に示すように、物体を未検出の場合１７２には、広い領域を監視する必要があり、処理領域１７０もそれに対応するように広くする。そして、図１５（ｂ）に示すように、認識物１６０（物体）を検知した場合１７４には、認識物１６０が自車から遠ざかるのか、それとも近づくのか不明なため、そのどちらにも対応できるように監視する範囲を分割し、認識物１６０の近傍に狭域の三つの処理領域１７０を設定する。したがって、三つの処理領域１７０にそれぞれ処理ユニット４０を割り当てることによって、より高精度な画像処理を行うことができる。
【００４８】
そして、認識物１６０が自車に接近すれば、図１５（ｃ）に示すように、画像１２１上でも大きな領域を占めることとなるので、それに対応するように認識物１６０の近傍に狭域の五つの処理領域１７０を設定する。したがって、五つの処理領域１７０にそれぞれ処理ユニット４０を割り当てることによって、より高精度な画像処理を行う。このように、物体の挙動に応じて、監視領域に相当する処理領域を設定し、必要な箇所に適切な数の処理ユニット４０を割り当てることによって、高精度の検出を行うことができ、様々な物体の様々な状況に対応することが可能となる。
【００４９】
図１６は、処理領域の設定方法の一実施例を示す図である。例えば、自車の速度情報が得られた場合には、速度域に応じて処理領域の大きさを設定することができる。例えば、自車の車速が高い場合には、遠方の物体を認識できなければならない。このような高速域では、遠方の物体検知の精度を高める必要がある。したがって、高速域１８２では、図１６（ａ）に示すように、遠方を４つの処理領域１８０に分割して、複数の処理ユニット４０に優先的に処理を分散させて、遠方の物体検知の精度を高めている。
【００５０】
一方、自車の車速が低い場合には、近傍の物体を認識できなければならない。このような低速域では、近傍の物体検知の精度を高める必要がある。したがって、低速域１８４では、図１６（ｂ）に示すように、自車近傍を５つの処理領域１９０に分割して、複数の処理ユニット４０に優先的に処理を分散させて、近傍の物体検知の精度を高めている。
【００５１】
このように自車の挙動に相当する速度域に応じて処理領域を設定することで、物体の様々な状況に対応することが可能である。本実施例では、速度を自車の挙動を示す情報として取り扱ったが、例えばハンドルの操舵角や操舵スピードに応じて処理領域を柔軟に設定することで、カーブや交差点での様々な状況に対応することが可能となる。
【００５２】
図１７は、処理領域と優先度の設定方法の一実施例を示す図である。ここでは、物体検知の状況に応じて、優先度の入れ替えが行われる。例えば、画像処理の結果として、図１７（ａ）に示すように、前方の物体を未検出の場合１７２には、安全機能面では危険度が低いと考えられる。したがって、「車線逸脱警報処理」の優先度を上げて、左右の認識精度を上げるために左右を監視する処理領域２００を左右それぞれについて四つに分割して、複数の処理ユニット４０に優先的に処理を分散させる。そして、緊急性が高い「衝突回避制御処理」の優先度を下げて、前方を監視する処理領域２１０に、予備的に一つの処理ユニット４０を割り当ててその処理を担わせる。
【００５３】
一方、画像処理の結果として、図１７（ｂ）に示すように、前方に認識物１６０として物体を検知した場合には、安全機能面では危険度が高くなると考えられるので、緊急性が高い「衝突回避制御処理」の優先度を上げて、前方の認識精度を上げるために前方を監視する処理領域２１０を分割して、複数の処理ユニット４０に優先的に処理を分散させる。そして、「車線逸脱警報処理」の優先度を下げて、左右の処理領域２００をそれぞれ２つに分割し、予備的にそれぞれ二つの処理ユニット４０を割り当ててその処理を担わせる。このように状態に応じて警報および制御のそれぞれの処理の優先度を変更し、処理の自律的分散を実現できる。
【００５４】
図１８は、処理ユニットの構成の一実施例を示す図、図１９は、図１８の処理ユニットによる優先度に応じた処理の方法を説明するフローチャートである。本実施例において、処理ユニット４０は、図１８に示すように、処理を実行したときに、該処理の優先度を保持するかもしくはリセットした現状優先度６２をメモリ６０上に保持する。
【００５５】
処理ユニット４０は、コントローラ７０から前回の画像処理時に生成されたタグ情報を含むパケットを受信し、処理の種類と優先度の情報を取得する（Ｓ５００）。そして、判定手段５０により、現状優先度と受信した優先度とを比較して判定を行う（Ｓ５１０）。本実施例では、判定手段５０は、単純に受信した優先度が現状優先度より高いか低いかを判定し、高い場合には、該優先度で現状優先度を更新する（Ｓ５２０）。
【００５６】
処理ユニット４０は、処理の種類を命令バッファ８０に送信し（Ｓ５３０）、処理の種類に応じたプログラム９０を命令バッファ８０から受信する（Ｓ５４０）。そして、受信した優先度が低い場合には、現状優先度をリセット（Ｓ５２２）する。
【００５７】
図２０は、処理ユニットにより優先度を決定する一実施例を示す図である。ここでは、処理ユニット４０がプログラム９０の処理結果により、自ら現状優先度を更新する。処理ユニット４０は、コントローラ７０から前回の画像処理時に生成されたタグ情報を含むパケットを受信し、処理の種類と優先度の情報を取得する（Ｓ６００）。処理ユニット４０は、処理の種類を命令バッファ８０に送信し（Ｓ６１０）、処理の種類に応じたプログラム９０を命令バッファ８０から受信し（Ｓ６２０）、そのプログラム９０を実行する（Ｓ６３０）。
【００５８】
処理ユニット４０は、プログラム９０によって優先度を生成し、現状優先度を更新する（Ｓ６４０）。設計段階から一意に優先度が決定できる場合は、本実施例のようにプログラム上で明確に優先度を生成させることで確実な優先度制御を行える。
【００５９】
図２１は、処理ユニットにより緊急度を決定する一実施例を示す図である。ここでは、処理ユニット４０において、緊急でリアルタイムなレスポンスを必要とする処理起動が実現される。上述の図１２のテーブルでは、処理結果を「立体物検知」のような状態だけを定義していたが、本実施例では、このような処理結果状態と、処理結果に応じた緊急度を生成する実施例である。
【００６０】
処理ユニット４０は、コントローラ７０から前回の画像処理時に生成されたタグ情報を含むパケットを受信し、タグ情報から処理の種類と優先度の情報を取得する（Ｓ７００）。処理ユニット４０は、処理の種類を命令バッファ８０に送信する（Ｓ７１０）。処理の種類に応じたプログラム９０を命令バッファ８０から取得する（Ｓ７２０）。処理ユニット４０はプログラム９０を実行し（Ｓ７３０）、緊急度が発生したか否かを確認する（Ｓ７４０）。
【００６１】
緊急度が生成された場合には、緊急度を命令バッファに送信し、該緊急度に対応するプログラム９０を命令バッファ８０から取得する（Ｓ７５０）。処理ユニット４０は、取得した緊急プログラム９０を実行する（Ｓ７６０）。このようなフローにすることで、コントローラ７０を経由することなく、緊急性の高い処理を早く実行することで、リアルタイム性を向上することができる。
【００６２】
図２２と図２３は、パケットの一実施例を示す図である。
【００６３】
パケット２２０は、図２２に示すように、処理の種類２２２と、優先度２２４と、画像ＩＤ２２６を有する。画像ＩＤ２２６は、処理領域の領域情報１１４を有している。処理ユニット４０は画像ＩＤ２２６を指定することで、イメージバッファ３０から処理領域に対応するイメージデータを取得する。
【００６４】
パケット２３０は、図２３に示すように、処理の種類２２２と、優先度２２４と、イメージデータ２２８を有している。イメージデータ２２８は、処理領域の形状を特定するための領域タイプ２４２、処理領域の大きさを特定するための領域サイズ２４４、ピクセルデータ群２４６を組みとする。領域タイプ２４２は、図６に示したピクセル１２３、ライン１２４、ストライプ１２５、ブロック１２６に相当する領域情報を示す識別子である。また、領域サイズは、ピクセル１２３の場合は無効で、ライン１２４の場合にはＹ座標の位置、ストライプの場合にはＹ座標の幅、ブロック１２６の場合には角のＸＹ座標と縦横それぞれの幅である。ピクセルデータは、上記領域に存在するピクセルそれぞれの値である。ピクセルデータは、例えば白黒画像の場合には８ビットつまり０〜２５５の値をとり、カラー画像の場合にはＲＧＢの３つデータが、それぞれ０〜２５５の値を取る。尚、本発明は、白黒及びカラー、８ビットに限定されるものではない。
【００６５】
図２４は、画像ＩＤによるプログラムの先読み処理を説明するフローチャートである。図１の実施例の構成において、コントローラ７０は、処理の種類などを、ラインバッファ１０のイメージデータの取り込みが始まる前に決定することができる。したがって、領域情報に対応した処理領域のイメージデータを全て取り込む前に、プログラムを命令バッファ８０から処理ユニット４０に送信させて、先読み（プリフェッチ）させることが可能である。
【００６６】
各処理ユニット４０は、イメージデータ２２８を受け取るよりも前に、命令バッファ８０からプログラムを受け取り、プログラムの先読みを行い、次いでイメージデータを受け取ることにより画像処理を開始する。
【００６７】
例えば、ラインバッファ１０からイメージデータの取り込みを開始する時点で、処理の種類に応じたプログラム９０を命令バッファ８０からダウンロードすることができ、処理ユニット４０は、イメージデータの取り込みが済んでからダウンロードするよりも早く実行を開始することができる。
【００６８】
コントローラ７０は、上述の図２２に示すパケット２２０を実装例とする場合、図２４に示すように、パケット２２０によって、処理の種類と優先度と画像ＩＤを処理ユニット４０に送信する（Ｓ８００）。現時点で全画面を撮像できていないので、該画像ＩＤは無効な値を設定する。
【００６９】
処理ユニット４０は、コントローラ７０から前回の画像処理時に生成されたタグ情報を含むパケットを受信し、タグ情報から処理の種類と優先度と画像ＩＤの情報を取得する（Ｓ８０５）。そして、画像ＩＤが有効か否かを判定し（Ｓ８１０）、画像ＩＤが無効の場合には、処理の種類を命令バッファ８０に送信する（Ｓ８２０）。
【００７０】
命令バッファ８０は、処理の種類を受信すると（Ｓ８３０）、その処理の種類に対応するプログラム９０を探索し、プログラム９０を処理ユニット４０に送信する（Ｓ８４０）。処理ユニット４０は、プログラム９０を受信し（Ｓ８５０）、画像ＩＤが有効の場合には、画像ＩＤをイメージバッファ３０に送信する（Ｓ８６０）。
【００７１】
イメージバッファ３０は、画像ＩＤを受信すると（Ｓ８７０）、画像ＩＤに対応するイメージデータを処理ユニット４０に送信する（Ｓ８８０）。処理ユニット４０は、イメージデータを受信すると（Ｓ８９０）、そのイメージデータを画像処理すべく、プログラム９０を実行する（Ｓ９００）。尚、領域抽出手段２０は、画像領域情報のイメージデータの生成が終了した時に、処理の種類と優先度と有効な画像ＩＤを送信する。
【００７２】
図２５は、消費電力の低減方法の一実施例を示すフローチャートである。この実施例では、処理ユニット４０の総数より、実行すべき処理数が少ない場合において、動作しない処理ユニット４０をスリープモードにすることで消費電力の低減を実現する例である。
【００７３】
本実施例においてコントローラ７０は、処理ユニット４０の総数と、処理実行中の処理ユニット４０の数を管理している。コントローラ７０は、処理ユニット４０から処理結果を受信する（Ｓ９００）。そして、上述の図２２もしくは図２３の実施例のように、該処理結果に対応するパケットを生成する（Ｓ９１０）。
【００７４】
コントローラ７０は、処理ユニット４０の総数と、処理実行中の処理ユニット４０の数と、待機中の処理ユニット４０の数から、処理待ち状態となる処理ユニット４０の数を算出する（Ｓ９２０）。処理待ち状態となる処理ユニット４０数分のパケットを送信する（Ｓ９３０）。このパケットは、処理の種類に、例えばスリーププログラムを指定する。  処理ユニット４０は、コントローラ７０からスリーププログラムのパケットを受け取ると、処理ユニット４０の動作モードを通常モードから消費電力の少ないスリープモードに変更する。したがって、処理待ち状態の処理ユニット４０によって消費される電力を低減することができる。
【００７５】
上述の画像処理装置によれば、各処理ユニット４０の処理結果に基づいて各処理ユニット４０が次回に実行する処理の種類と優先度を示すタグ情報を生成し、各処理ユニット４０が画像処理を行うか否かについて、前回の画像処理時に生成されたタグ情報を用いて判断するので、複数の処理ユニットに優先度の高いものから適切に処理を行わせることができる。したがって、現実世界で回避すべきシーンを漏れなく網羅でき、車両走行時の安全性を飛躍的に向上させることができる。
【００７６】
また、より精度の高い画像処理を行う必要がある処理領域に対しては、かかる処理領域を分割して、それぞれに処理ユニットを割り当てることができる。したがって、複数の処理ユニット４０に優先的に処理を分散させることができ、一つの処理ユニット４０に処理負荷が集中するのを防ぐことができる。したがって、画像処理を高速化することができ、画像処理の処理結果に基づく警告や自動ブレーキ制御等を迅速に行うことができ、車両走行時の安全性を飛躍的に向上させることができる。
【符号の説明】
【００７７】
１０    ラインバッファ
２０    領域抽出手段
３０    イメージバッファ
４０    処理ユニット
５０    判定手段
６０    記憶装置
６２    現状優先度
７０    コントローラ（タグ情報生成手段）
８０    命令バッファ
９０    プログラム
１００  通信路
１１０  パケット
１１２  処理結果
１１４  領域情報
１３０  状態管理テーブル
１４０  プログラム管理テーブル
１５０  優先度管理テーブル
【図１】
2011164982.tif 000003
【図２】
2011164982.tif 000004
【図３】
2011164982.tif 000005
【図４】
2011164982.tif 000006
【図５】
2011164982.tif 000007
【図６】
2011164982.tif 000008
【図７】
2011164982.tif 000009
【図８】
2011164982.tif 000010
【図９】
2011164982.tif 000011
【図１０】
2011164982.tif 000012
【図１１】
2011164982.tif 000013
【図１２】
2011164982.tif 000014
【図１３】
2011164982.tif 000015
【図１４】
2011164982.tif 000016
【図１５】
2011164982.tif 000017
【図１６】
2011164982.tif 000018
【図１７】
2011164982.tif 000019
【図１８】
2011164982.tif 000020
【図１９】
2011164982.tif 000021
【図２０】
2011164982.tif 000022
【図２１】
2011164982.tif 000023
【図２２】
2011164982.tif 000024
【図２３】
2011164982.tif 000025
【図２４】
2011164982.tif 000026
【図２５】
2011164982.tif 000027