(57)【要約】【課題】複数の演算手段と、複数のバンクを有するメモリとを備え、該複数の演算手段から前記メモリへのアクセスを制御する情報処理装置において、バンク・コンフリクトの発生を低減して処理速度を向上させる。【解決手段】メモリへのアクセス対象データについて、メモリへのアクセスに関する統計的情報として、例えばメモリアクセス頻度を示すヒストグラムを入力する(S201)。このヒストグラムに基づき、アクセス対象データ(ヒストグラムのビン)毎に、複数のバンクのいずれかを割り当てる(S202)。そして、アクセス対象データが該割り当てられたバンクへのアクセスを行うように制御しながら、メイン処理を行う(S203)。このように、データのメモリアクセスにおける統計的情報に基づいてバンクを割り当てることで、複数の演算素子がメモリ内の同一バンクへ同時アクセスするバンク・コンフリクトの発生が低減される。【選択図】図2
2014191621.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算手段と、複数のバンクを有するメモリとを備え、該複数の演算手段によるメモリアクセスを制御する情報処理装置であって、
前記複数の演算手段によるメモリアクセスにおける、複数のアクセス対象データの統計的情報を入力する入力手段と、
前記統計的情報に基づいて、前記アクセス対象データに前記複数のバンクのいずれかを割り当てる割り当て設定手段と、
前記複数のアクセス対象データについて前記割り当てられたバンクへアクセスを行うように、前記複数の演算手段を制御するアクセス制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
さらに、前記統計的情報を動的に算出する算出手段を備え、
前記入力手段は、前記算出手段で算出された前記統計的情報を入力し、
前記割り当て設定手段は、前記算出手段で算出された前記統計的情報に基づいて、前記バンクを動的に割り当てることを特徴とする請求項1に記載の情報処理装置。
【請求項３】
前記アクセス対象データは画面上を物体が移動する動画像データであり、
前記算出手段は、前記物体の移動量および移動方向を示すベクトルに基づいて、前記統計的情報を算出することを特徴とする請求項2に記載の情報処理装置。
【請求項４】
前記統計的情報は、前記複数のアクセス対象データに対する、所定期間の前記メモリへのアクセス頻度であることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項５】
前記割り当て設定手段は、前記アクセス頻度が前記複数のバンクに分散するように割り当てることを特徴とする請求項4に記載の情報処理装置。
【請求項６】
前記割り当て設定手段は、前記アクセス頻度が前記複数のバンクで平均化するように割り当てることを特徴とする請求項4に記載の情報処理装置。
【請求項７】
前記割り当て手段は、前記アクセス対象データのうち、前記アクセス頻度が所定の閾値以上であるものに対して前記複数のバンクのいずれかを割り当て、前記アクセス頻度が前記閾値未満であるものに対しては所定のバンクを割り当てることを特徴とする請求項4乃至6のいずれか1項に記載の情報処理装置。
【請求項８】
複数の演算手段と、複数のバンクを有するメモリ、および、入力手段、割り当て設定手段、アクセス制御手段を備え、該複数の演算手段から前記メモリへのアクセスを制御する情報処理装置におけるメモリアクセス制御方法であって、
前記入力手段が、前記複数の演算手段によるメモリアクセスにおける、複数のアクセス対象データの統計的情報を入力し、
前記割り当て設定手段が、前記統計的情報に基づいて、前記アクセス対象データに前記複数のバンクのいずれかを割り当て、
前記アクセス制御手段が、前記複数のアクセス対象データについて前記割り当てられたバンクへアクセスを行うように、前記複数の演算手段を制御する
ことを特徴とするメモリアクセス制御方法。
【請求項９】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至7のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算素子と、複数のバンクを有するメモリを用いた処理を行う情報処理装置およびメモリアクセス制御方法に関する。
【背景技術】
【０００２】
複数の演算素子と、複数のバンクを有するメモリを用いる情報処理装置において、該複数の演算素子がメモリにアクセスする場合、メモリ内の各バンクは一度に1か所へのアクセスしか対応できない。したがって、複数の演算素子から、同じメモリバンクに属する複数の箇所へのアクセスが同時に発生すると、これらは同時に処理できないため、処理速度が低下する。このような不具合はバンク・コンフリクトと呼ばれる。
【０００３】
一般にバンク・コンフリクトは、複数の演算素子を用いて共通メモリへのアクセスを並列に行う、比較的処理量の多い並列処理装置あるいはシステムにおいて発生しやすい。このようなシステムとしては例えば、工場の生産ライン等において部品群から部品のピッキング等のタスクを実行するロボットシステムが考えられる。該ロボットシステムにおいては、部品箱に山積みされている部品の位置姿勢を画像処理により認識する物体位置姿勢の認識処理が実行される(例えば、非特許文献1参照)。この物体位置姿勢の認識処理として大量の画像処理を並列に行う際に、バンク・コンフリクトが発生し、処理速度が低下してしまうことが考えられる。
【０００４】
バンク・コンフリクトを抑制するためのメモリアクセス制御方法として、様々な技術が提案されている。例えば、描画対象となる図形の形状を特定し、特定された図形の形状に適合するインターリーブパターンの種類を選定し、そのパターンに従ってメモリへのアクセスを行う技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2003-323339号公報
【非特許文献】
【０００６】
【非特許文献１】J.Gall and V.Lempitsky. Class-specific hough forests for object detection。In IEEE Conference on Computer Vision and Pattern Recognition,2009。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら上記特許文献1に記載された方法では、アクセス時に使用するインターリーブパターンを選定している。従って、パターンに当てはめることができないケース、例えば扱うデータのアクセス対象がメモリの複数の箇所にまたがり、それぞれ最適なインターリーブパターンが異なるケースの場合には、バンク・コンフリクトの低減効果が低いという課題があった。
【０００８】
本発明は上記課題を解決するために、メモリアクセスデータの統計的情報に基づき、アクセス対象データへのバンク割り当てを行うことで、複数の演算素子によるメモリ内の同一バンクへの同時アクセスの発生を低減させ、処理速度の向上を目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための一手段として、本発明の情報処理装置は以下の構成を備える。すなわち、複数の演算手段と、複数のバンクを有するメモリとを備え、該複数の演算手段によるメモリアクセスを制御する情報処理装置であって、前記複数の演算手段によるメモリアクセスにおける、複数のアクセス対象データの統計的情報を入力する入力手段と、前記統計的情報に基づいて、前記アクセス対象データに前記複数のバンクのいずれかを割り当てる割り当て設定手段と、前記複数のアクセス対象データについて前記割り当てられたバンクへアクセスを行うように、前記複数の演算手段を制御するアクセス制御手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、メモリアクセスデータの統計的情報に基づき、アクセス対象データへのバンク割り当てを行うことで、複数の演算素子によるメモリ内の同一バンクへの同時アクセスの発生を低減し、処理速度を向上させることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】第1実施形態における情報処理装置の構成を示す機能ブロック図、
【図２】第1実施形態における物体位置姿勢の認識処理を示すフローチャート、
【図３】第1実施形態において用いられる統計的情報例を示す図、
【図４】第1実施形態におけるバンク割り当て例を示す図、
【図５】第2実施形態における物体位置姿勢の認識処理を示すフローチャート、
【図６】第2実施形態における部品の位置姿勢認識結果および頻度分布予測結果を示す図、
【図７】第2実施形態におけるバンクを割り当て例を示す図、
【図８】第3実施形態におけるトラッキング処理を示すフローチャート、
【図９】第3実施形態において前回生成された物体位置姿勢ヒストグラム例を示す図、
【図１０】第3実施形態において今回生成された物体位置姿勢ヒストグラム例を示す図、
【図１１】第3実施形態における頻度分布予測により作成されたヒストグラム例を示す図、
【図１２】第3実施形態におけるバンクを割り当ての例を示す図、
【図１３】第4実施形態におけるトラッキング処理を示すフローチャート、
【図１４】第4実施形態において用いられる統計的情報例を示す図、である。
【発明を実施するための形態】
【００１２】
本発明に係る各実施形態では、データのメモリアクセスにおける統計的情報に基づいてバンクの割り当てを設定することで、バンク・コンフリクト低減効果を高めることを特徴とする。そこで、本発明に係る各実施形態を説明するに先立ち、本実施形態において言及している統計的情報について、簡単に説明する。本実施形態における統計的情報とは、ある注目しているデータがメモリ領域に対してどのようにメモリアクセスを行うかを統計的に示した情報のことである。最も簡単な統計的情報の例が、後述する第1実施形態に記載されているような、ある一定期間におけるメモリアクセスの頻度分布である。それに対し、第2実施形態以降では、メモリアクセスの頻度分布を基に、その後に行われる処理を考慮した統計的情報を生成する例を説明する。
【００１３】
以下、添付の図面を用いて本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１４】
＜第1実施形態＞
本実施形態は、物体の位置姿勢を画像処理により認識する処理を行う情報処理装置における、メモリアクセス制御について説明する。この物体位置姿勢の認識処理は例えば、工場の生産ライン等で、部品群から部品のピッキング等のタスクを実行するロボットシステムにおいて実行され、部品箱に山積みされている部品の位置姿勢を画像処理により認識する。
【００１５】
はじめに、本実施形態における物体位置姿勢の認識処理、およびその前提条件について説明する。
【００１６】
まず、本実施形態における物体位置姿勢の認識処理について説明する。なお、本実施形態では、部品が撮影された画像等、画像処理の対象となるデータを画像データ、画像データ中から一部切り出された画像データを部分画像データ、画像処理において画像データ以外で必要なパラメータ等のデータを辞書データ、と定義する。なお、本実施形態における物体位置姿勢の認識処理は、上述した非特許文献1に記載の処理アルゴリズムをベースとした手法を使用することを想定している。物体位置姿勢の認識処理に関しては、既に非特許文献1、およびその他様々な文献で詳述されているため、以下では本実施形態の説明に必要な部分のみについて説明する。
【００１７】
本実施形態における物体位置姿勢の認識処理は、主に以下の2つの処理からなる。1つは、部分画像データから得られる情報を複数の辞書データと比較し、その結果を位置姿勢投票空間に投票する部分画像認識処理である。そしてもう1つは、全ての部分画像に対して部分画像認識処理を行った結果から物体の位置姿勢を認識する統計的情報算出処理である。
【００１８】
部分画像認識処理においては、部分画像データ中の、辞書データにより指定された複数の2点1組の輝度差を計算し、そこから導き出される対象物体の位置・姿勢認識結果を、共有メモリ上にある位置姿勢投票空間上に投票する。ここで、全ての部分画像に対して部分画像認識処理を行った後に残る位置姿勢投票空間上の投票結果を、物体位置姿勢ヒストグラムと定義する。本実施形態においては、共有メモリへのアクセス頻度分布を示す該ヒストグラムが、共有メモリへのアクセス対象データの統計的情報を示すことになる。
【００１９】
また統計的情報算出処理においては、物体位置姿勢ヒストグラムで最も得票数の多いビンに対応する位置・姿勢の組み合わせを対象物体の位置姿勢の第1候補として、その位置と姿勢情報を物体位置姿勢認識結果として出力する。以下、得票数の多い順に、第2候補、第3候補、…を出力する。
【００２０】
次に、本実施形態における前提条件について説明する。ここで、本実施形態における位置の投票ビン数が100、姿勢の投票ビン数が80であるとする。すなわち、位置・姿勢の組み合わせが100×80=8000通りある場合を考える。本実施形態では、部品を山積みした際に生じる部品の位置については、どの位置も同確率で出現するものとする。また、部品を山積みした際に生じる部品の姿勢については、ある程度偏りを持って出現するとする。その結果、投票され得るビンについても偏りが生じる。ただし、各姿勢の起こりうる確率は、部品の位置によらないものとする。すなわち、各ビンにおける投票されやすさのヒストグラムを取ると、図3のようになるケースを考える。図3中でピークが立っている部分が、投票されやすいビン、すなわち起こりやすい姿勢を示している。具体的には、座標(x,y)における投票されやすいビンは、ビン番号X-Y-20およびその周辺が最も起こりやすく、続いてビン番号X-Y-40周辺、ビン番号X-Y-60周辺となっている。ここで、位置についてはどの位置も同確率で出現し、かつ各姿勢の起こりやすさは位置にはよらないとしたので、座標(x+1,y)等の他の位置においても、各姿勢のビンへの投票のされやすさは同じであるとする。
【００２１】
また、本実施形態で用いる共有メモリのバンク数は4(バンクA,B,C,D)とする。各ビンに対するデフォルトのバンクの割り当ては、ビン番号順に、バンクA,B,C,D,A,…と循環的な割り当てとなっているものとする。
【００２２】
以下、本実施形態におけるメモリアクセス制御について、詳細に説明する。図1は、本実施形態における、並列画像処理を可能とする情報処理装置の構成を示すブロック図である。同図において、外部入出力部11は、外部から画像データを取得したり、外部へ処理結果を出力する等、外部とのデータのやり取りを行う。複数の演算部12(PE1,PE2,PE3,…)は、各々が個別記憶部13(LM1,LM2,LM3,…)を備えており、各個別記憶部13に保存されている部分画像データおよび辞書データを用いた画像処理を行う。共有メモリ14は、各演算部12による出力結果を保存するための領域を提供する。ホストプロセッサ15は、各演算部12への処理の割り当てや、外部入出力部11と個別記憶部13、または共有メモリ14と個別記憶部13との間のデータ転送指示を行うなど、装置全体を統括的に制御する。ホストプロセッサ15はさらに、各演算部12が共有メモリ14へ結果を出力する際に用いるバンクの割り当ての設定を行う。
【００２３】
なお本実施形態では以上のように、それぞれの機能を実現する構成を定義したが、これらの定義は本発明の趣旨を限定するものではない。例えば、本実施形態ではホストプロセッサ15がバンクの割り当ての設定を行うとして定義したが、ホストプロセッサ15とは別にバンク割り当て設定部が存在しても良い。また、演算部12は各個別記憶部13に保存されている部分画像データおよび辞書データを用いて画像処理を行うとして定義したが、部分画像データおよび辞書データは共有メモリ14に保存されていても良い。すなわち上述した各定義は、本実施形態に示す情報処理装置が、後述するメモリアクセス制御を実現する際に必要とする手段を説明するために設定したものであり、その他の定義を排除するものでは無い。
【００２４】
図2は、本実施形態の情報処理装置において行われる物体位置姿勢の認識処理を示すフローチャートである。まずS201で統計的情報入力処理を行う。すなわち、後段の物体位置姿勢の認識処理(S203)で出力される位置姿勢投票結果について、予め得られている統計的情報が、ホストプロセッサ15に入力される。ここでの統計的情報とは図3に示した情報に相当し、すなわち、事前に、所定期間内に各ビンに投票された数をヒストグラム化したものであり、各ビンに対応するメモリ領域における所定期間内のメモリアクセスの頻度分布を指している。
【００２５】
次にS202で、バンク割り当て設定処理を行う。この処理はホストプロセッサ15にて行われ、S201で入力された統計的情報に基づいて、共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。バンク割り当て設定前は、図4に示すように、各ビンに対してバンクA,B,C,Dが規則的に割り当てられている。その結果、図4から分かるように、頻度順位1,2,3位のビンに対して同じバンク(図4の例ではバンクA)が割り当てられているため、このままではバンク・コンフリクトの増大が見込まれる。
【００２６】
そこで本実施形態では、メモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てが分散されるように、バンク割り当て設定を行う。なお、メモリアクセス頻度が同じ場合の割り当てについては特に限定せず、どのような割り当てであっても良い。
【００２７】
具体的には、バンク数がN(Nは自然数)のとき、頻度順位R(Rは自然数)のメモリ領域に対して、頻度順位Rをバンク数Nで除算した際に得られる剰余に対応するバンク番号BNのバンクを割り当てるものとする。すなわち、BN=(R mod N)となる。以下、本実施形態におけるバンクの割り当てを、具体例に則して説明する。なお、上記演算によるバンク番号BN=1,2,3,4がそれぞれ、本実施形態におけるバンクA,B,C,Dに対応するものとする。
【００２８】
図4のバンク割り当て設定後の欄に示すように、本実施形態のバンクの割り当て設定によれば、頻度順位が最も高い(R=1)ビン番号X-Y-20にはバンクAが、次に頻度順位が高い(R=2)ビン番号X-Y-40にはバンクBが、順次割り当てられる。なお、頻度順位Rが同値であるビンが複数ある場合には、ビン番号の若い順にバンクを割り当てるとする。本実施形態ではこのように、8000個の全てのビンに対してバンクを割り当てていく。このようなバンク割り当てが行われることによって、メモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てが分散される。
【００２９】
上記S202において、全てのビンに対応するメモリ領域に対してバンクの割り当てが終了すると、次にS203で物体位置姿勢の認識処理が実行される。ここでは、S202によるバンク割り当て設定に従って、共有メモリ14に位置姿勢投票空間が展開され、その投票空間を用いて、上述した部分画像認識処理が各演算部12で実行される。そして統計的情報算出処理がホストプロセッサ15で実行されることで、部品の位置姿勢の認識結果が出力される。
【００３０】
以上説明したように本実施形態によれば、メモリアクセス頻度に基づいてバンクを割り当てることによって、メモリアクセス頻度が高いビン同士のバンク・コンフリクトが低減される。
【００３１】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。第2実施形態では、部品認識を行った後に部品のピッキングを行い、その処理を繰り返す場合について説明する。なおここでは、上述した第1実施形態の情報処理装置において行われる処理との相違点についてのみ説明を行い、その他の部分については第1実施形態と同様であるとして説明を省略する。
【００３２】
図5は、第2実施形態の情報処理装置において行われる物体位置姿勢の認識処理を示すフローチャートである。まずS501で、上記図2のS201と同様に統計的情報入力処理を行う。すなわち、後段の物体位置姿勢の認識処理(S504)で出力される投票結果に関する統計的情報が、ホストプロセッサ15に入力される。ここで入力される統計的情報は第1実施形態と同様、所定期間内のメモリアクセスの頻度分布である。
【００３３】
次にS502でホストプロセッサ15により、バンク割り当て設定処理が行われる。この処理は、後述するループ処理によって複数回実行され、初回処理では、S501で入力された統計的情報を用いて、第1実施形態と同様に共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。また2回目以降の処理では、ホストプロセッサ15で実行される頻度分布予測処理(S508)で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、バンク割り当てを設定する。
【００３４】
次にS503でホストプロセッサ15により、メモリアクセス監視処理が開始される。すなわち、次に行われる物体位置姿勢の認識処理(S504)における共有メモリ14に対するアクセスを監視し、各ビンに対応する各メモリ領域へのアクセス回数を記録する処理を開始する。なお、S504における物体位置姿勢の認識処理は上述した第1実施形態のS203と同様である。すなわちS504では、S502によるバンク割り当て設定に従って、共有メモリ14に位置姿勢投票空間が展開され、その投票空間を用いて、上述した部分画像認識処理、および統計的情報算出処理が実行され、部品の位置姿勢の認識結果が出力される。
【００３５】
そしてS505でホストプロセッサ15は、S503で開始したメモリアクセス監視処理を終了し、統計的情報の算出処理を行う。すなわち、S504の物体位置姿勢の認識処理における共有メモリ14へのアクセスの監視を終了し、共有メモリ14中の各ビンに対応する各メモリ領域へのアクセス頻度を示すヒストグラムを作成する。
【００３６】
そしてS506でホストプロセッサ15が、S504の物体位置姿勢の認識処理により出力される部品の位置姿勢認識結果に基づき、対象部品のピッキングを行う。
【００３７】
そしてS507で、処理を終了する、もしくは次のピッキングを行う、のいずれかをホストプロセッサ15で選択する。処理を継続するのであれば、S508の頻度分布予測処理に移行する。S508でホストプロセッサ15は、S504で出力された部品の位置姿勢認識結果と、S505で作成されたヒストグラムを用いて、次回のメモリアクセス頻度分布を予測する。そして、該予測されたメモリアクセス頻度分布を出力した後、S502へ戻ってバンク割り当て設定以降の処理を繰り返す。すなわち第2実施形態では、メモリアクセス頻度分布を動的に算出することで、バンク割り当てを動的に行うことができる。
【００３８】
以下、S508における、次回のメモリアクセス頻度分布を予測する頻度分布予測処理について、詳細に説明する。図6(a)に、物体位置姿勢の認識処理(S504)から出力される部品の位置姿勢認識結果を表す。同図においては、第1候補から第3候補(座標a,b,c)まで、3つの部品の位置姿勢が認識されている例を示す。なお、部品認識された座標a,b,c以外の位置のビン(位置・姿勢両方)についての頻度順位は、全て最下位であるとする。
【００３９】
直前の部品ピッキング処理(S506)において、最も得票数の多い座標a(x0,y0)の位置にある部品、すなわち第1候補の部品のピッキングが行われた後、ピッキングされた位置には、認識された部品は存在しない。すなわち、ピッキングされた部品の位置においてその姿勢に投票される可能性は統計的に低くなる。したがって第2実施形態では、ピッキング対象となった部品位置およびその周辺に対する次回の投票数を0とみなす。ここで周辺とは、座標a(x0,y0)を中心とする3×3ビンの矩形領域とする。換言すれば、この矩形領域に含まれるヒストグラムの頻度値を全て0にする。これは、ヒストグラムにマスク処理を施していることと同義である。S508では、このようにして得られたヒストグラムを、予測されるメモリアクセス頻度分布として出力する。図6(b)は、S504で図6(a)に示す認識結果が得られた場合における、S508での頻度分布予測結果を示す。同図によればすなわち、座標a(X0,Y0)についてのヒストグラムが0となっている。
【００４０】
S502のバンク割り当て設定処理においては、初回実行時を除き、S508で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、共有メモリ14中の各ビンに対応するメモリ領域のバンク割り当てを設定する。ここで、第2実施形態におけるバンクの割り当て設定について、詳細に説明する。
【００４１】
上述した第1実施形態では、メモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てが分散されるように、バンクの割り当てを設定した。これに対し第2実施形態では、各バンクに対するアクセス頻度がどのバンクに対しても平均化されるように、バンクの割り当てを設定する。以下、該割り当ての具体例について図7を用いて説明する。
【００４２】
図7は、S502によるバンク割り当て結果に応じてS506でピッキングが行われた後に、S508で頻度分布予測が行われ、該予測結果に応じてS502による再度のバンク割り当てを行った例を示す。すなわち、図7における「バンク割り当て設定前」が例えばS502における初回割り当て結果を示し、「バンク割り当て設定後」がS502における次回の割り当て結果を示す。同図によれば、まず、初回のS502の時点で得られている「頻度順位」のうち、S506でのピッキングにより最上位の頻度順位であるビン番号X0-Y0-20の周辺はマスキングされて、頻度0となる。したがって、図7に示す例においてS508でのマスク適用後に頻度順位が最も高くなるのはビン番号X1-Y1-47であり、ここにバンクAを割り当てる。同様に、頻度順位が2〜4位までのビンに対し、バンクB,C,Dを順次割り当てる。このとき、各バンクに割り当てられたビン番号が持つ頻度値に注目する。図7に示す例によれば、頻度順位が4位までの各ビンが割り当てられた各バンクに対する頻度値の総和は、バンクAは6、バンクBは5、バンクCは4、バンクDは3となる。このバンク毎の頻度値の総和は、換言すれば、各バンクに対するアクセス頻度の総和に対応する。
【００４３】
以上のように頻度順位4位までのビン番号へのバンク割り当てが行われると、次に、頻度順位が5位のビン番号X1-Y1-48(頻度値は2)に対し、各バンクが有する各ビンの頻度値の総和が最も小さいバンク(この場合、バンクD)を割り当てるとする。次に、頻度順位が6位のビン番号X2-Y2-36に対しても同様に、この時点での各バンクA,B,C,Dが有する各ビンの頻度値の総和は、それぞれ6,5,4,5であるので、最も総和が小さいバンクCに割り当てられる。以下同様に、バンク割り当て設定処理を繰り返す。
【００４４】
以上説明したように第2実施形態では、バンク毎の頻度順位の総和に基づいてバンク割り当てを行うことにより、各バンクに対するアクセス頻度が平均化される。
【００４５】
また第2実施形態では、ピッキング時のマスク処理により不必要な統計的情報を取り除いた後にバンク割り当てを行うことで、次回のメモリアクセスをより効率良く行うことができる。仮に、マスクを適用せずに、上記頻度順位の総和に基づくバンク割り当てを実行すると、バンク・コンフリクトが起こりやすくなることが予想される。これは、次回から使用頻度が少なくなるであろう座標a(x0,y0)のビンに優先的にバンクが割り当てられる一方、使用頻度が多くなるであろう頻度順位4位と5位(X1-Y1-47,X2-Y2-35)のバンクが重なってしまうことからも分かる。第2実施形態ではさらに、最新の統計的情報を算出する処理(S508)を設けたことにより、メモリアクセス頻度が刻々と変わる状況においても動的に対応することが可能となる。
【００４６】
＜第3実施形態＞
以下、本発明に係る第3実施形態について説明する。第3実施形態では、動画像データ処理等において、画像上を移動する特定の対象物体を追尾して認識するトラッキングを行う場合について説明する。なおここでは、上述した第1および第2実施形態の情報処理装置において行われる処理との相違点についてのみ説明を行い、その他の部分については説明を省略する。なお第3実施形態においては、説明を簡単にするため、追尾する対象物体は画面上での平行移動しか行わないものとする。また、対象物体は1つに限定する。
【００４７】
図8は、第3実施形態の情報処理装置において行われるトラッキング処理を示すフローチャートである。まずS801で、上記図2のS201と同様に統計的情報(メモリアクセス頻度分布)の入力を行う。
【００４８】
次にS802でホストプロセッサ15により、バンク割り当て設定処理が行われる。この処理は、後述するループ処理によって複数回実行され、初回処理では、S801で入力された統計的情報を用いて、第1実施形態と同様に共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。また2回目以降の処理では、ホストプロセッサ15で実行される頻度分布予測処理(S805)で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、バンク割り当てを設定する。
【００４９】
そしてS803で、第3実施形態の特徴である物体追尾処理を行う。すなわち、第1実施形態で説明した物体位置姿勢の認識処理(S203)により対象物体の位置姿勢を認識し、その際に生成された物体位置姿勢ヒストグラムと物体位置姿勢認識結果を出力する。そして、同一の対象物体について、前回の物体位置姿勢認識結果との差分から、画面上での対象物体の移動量および移動方向、すなわち速度ベクトルをホストプロセッサ15により算出し、対象物体の移動情報として出力する。
【００５０】
そして、S804でトラッキング終了と判定されるまで、S805で頻度分布予測処理を行った後にS802に戻り、処理を繰り返す。S805ではすなわち、S803の物体追尾処理において出力される物体の位置姿勢認識結果と移動情報を用いて、次回のメモリアクセス頻度分布を予測する。なお、S804におけるトラッキング終了の判定は、例えばユーザによる終了指示入力や、対象物体のフレームアウト等による追尾不能状態の発生に応じて行えば良い。
【００５１】
以下、S803における物体追尾処理について詳細に説明する。図9は前回生成された物体位置姿勢ヒストグラム例、図10は今回生成された物体位置姿勢ヒストグラム例を示す。第1実施形態で示した物体位置姿勢認識結果の算出方法によれば、最も投票数の多いビンに対応する位置姿勢が対象物体の位置姿勢であるから、図9、図10の例では、対象物体は座標a(x0,y0)からf(x5,y5)へ移動していることが分かる。したがって、速度ベクトルvは(x5-x0,y5-y0)として求められる。
【００５２】
以下、S805における頻度分布予測処理について、詳細に説明する。S805では第2実施形態のS508と同様に、次回のメモリアクセス頻度分布を予測する。第3実施形態の追尾処理において、対象物体の次の認識処理が行われる際には、統計的に対象物体が移動している可能性が高い。よって、メモリアクセス頻度分布も、その移動に従って分布が変わることが予想される。そこでS805では、S803の物体追尾処理において出力される物体位置姿勢ヒストグラムを、同S803で算出される速度ベクトルと、前回の物体追尾処理からの経過時間に従って平行移動させて、これを頻度分布予測結果として出力する。すなわち、前の処理から経過した時間分、対象物体は速度ベクトルに従って等速直線運動したものと仮定している。ここで、物体位置姿勢ヒストグラムは常に一定のレートで出力されているものとする。
【００５３】
図11は、S805における頻度分布予測例、すなわち、既に得られている図9、図10のヒストグラムに基づき、上記平行移動を行うことで得られるヒストグラム例を示す。なお、多少の移動のずれを考慮するため、平行移動後のヒストグラムにガウシアンフィルタを適用してもよい。S805では、このようにして得られたヒストグラムを、予測されるメモリアクセス頻度分布として出力する。なお、図11中の座標k,l,m,n,o以外の位置のビン(位置・姿勢とも)の頻度順位については、全て最下位とする。
【００５４】
第3実施形態のバンク割り当て設定処理(S802)においては、S805で予測・出力されるメモリアクセス頻度分布を新たな統計的情報として用い、各ビンに対応するメモリ領域のバンク割り当てを設定する。この割り当ての様子を図12に示す。なお図12では第1実施形態と同様に、メモリアクセス頻度が同程度のメモリ領域に対するバンク割り当てを分散させた例を示す。このとき、頻度順位が最下位のビンについてはバンクの再割り当てを行わず、アクセスが生じる可能性の高いビンに対して優先的にバンクの再割り当てを行うとする。
【００５５】
以上説明したように第3実施形態によれば、過去2回のメモリアクセス頻度分布に基づいて次回のメモリアクセス頻度分布を予測し、バンク割り当てを行うことで、次回のメモリアクセスをより効率良く行うことができる。さらに、メモリアクセス頻度に基づいてバンク割り当てを行うメモリ領域を限定するようにしたので、バンクの再設定処理に関わる負荷を低減することができる。
【００５６】
＜第4実施形態＞
以下、本発明に係る第4実施形態について説明する。第4実施形態も上述した第3実施形態と同様に、画像上の特定の対象物体を追尾するトラッキングを行う場合について説明するが、使用ビン数がバンク数よりも少ない場合を示す。なおここでは、上述した第1乃至第3実施形態の情報処理装置において行われる処理との相違点についてのみ説明を行い、その他の部分については説明を省略する。
【００５７】
図13は、第4実施形態の情報処理装置において行われるトラッキング処理を示すフローチャートである。まずS1101で、上記図2のS201と同様に統計的情報(メモリアクセス頻度分布)の入力を行う。
【００５８】
次にS1102でホストプロセッサ15により、バンク割り当て設定処理が行われる。この処理は、後述するループ処理によって複数回実行され、初回処理では、S1101で入力された統計的情報を用いて、第1実施形態と同様に共有メモリ14中の各ビンに対応するメモリ領域のバンクの割り当てを設定する。また2回目以降の処理では、ホストプロセッサ15で実行される頻度分布予測処理(S1106)で予測・出力されるメモリアクセス頻度分布を統計的情報として用いて、バンク割り当てを設定する。
【００５９】
S1102では図14に示すように、入力される統計的情報において、投票されているビンの数がバンク数(この場合、A〜Dの4つ)よりも少ない場合における、バンク割り当て設定を行う。第3実施形態では、第1実施形態と同様にメモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てを分散させるが、第4実施形態では、メモリアクセスが集中しているメモリ領域を複数に分散させ、それぞれに異なるバンクを割り当てる。以下、第4実施形態におけるバンク割り当ての具体例を図14を用いて説明する。
【００６０】
図14に示すように、メモリアクセスがある2つのメモリ領域にのみ発生しており、それぞれビン番号X-Y-20、X-Y-40によるものとする。第4実施形態では、4つのバンクを最大限に用いてビンへのアクセスを行う。そのために、まずビン番号X-Y-20に対し新たに2つのメモリ領域を割り当て(メモリ領域番号1,2)、さらにビン番号X-Y-40に対し新たに2つのメモリ領域を割り当てる(メモリ領域番号3,4)。そして、4つのメモリ領域それぞれに対し、異なるバンクを割り当てる。すなわち、メモリ領域番号1〜4に対し、バンクA〜Dをそれぞれ割り当てる。
【００６１】
続いてS1103でホストプロセッサ15が各演算部12に対し、ビン番号X-Y-20,X-Y-40にアクセスする際のメモリ領域を指定する。具体的には、各演算部12に付された番号をNとすると、各演算部12に指定される、ビン番号X-Y-20へのアクセス時のメモリ領域番号MN20は、MN20=(N mod 2)と表される。同様に、ビン番号X-Y-40へのアクセス時のメモリ領域番号MN40は、MN40=(2+(N mod 2))と表される。このようにメモリアクセス領域を指定することによって、1つのビン番号へのアクセスを2つのバンクに分散して行うことが可能となる。
【００６２】
次にS1104で、第3実施形態のS803と同様に物体追尾処理を行うが、第4実施形態ではこのとき、S1102のバンク割り当て設定処理においてで複数のメモリ領域に分散されたビンの統合処理を行う。すなわち、ビン番号X-Y-20に割り当てられた2つのメモリ領域の投票結果の合計を算出し、それをビン番号X-Y-20の得票数とする。ビン番号X-Y-40についても同様である。この統合後の得票数を用いて統計的情報算出処理を実行し、対象物体の位置姿勢を認識する。
【００６３】
以降は第3実施形態と同様に、S1105で処理終了と判定されるまで、S1106で予測されたメモリアクセス頻度分布に従って、S1102でバンク割り当てを繰り返す。
【００６４】
以上説明したように第4実施形態によれば、メモリアクセスが集中するメモリ領域を複数に分散して異なるバンクを割り当てることで、バンク・コンフリクトが低減される。
【００６５】
＜その他の実施形態＞
上記各実施形態では、データのメモリアクセスにおける統計的情報に基づいてバンクの割り当てを設定することで、バンク・コンフリクト低減効果を高める例を示した。また統計的情報としては、メモリアクセス頻度と関連付けられる情報であれば、図3に示すヒストグラムに限らず、どのようなものであってもよい。例えば、メモリのアクセス頻度を直接計測する手段から出力される情報であっても良いし、メイン処理の過程で生じる情報を使用しても良い。
【００６６】
例えば第2実施形態においては、メモリアクセス監視処理の際に得られるメモリアクセス頻度分布と、物体位置姿勢の認識処理から出力される部品の位置姿勢認識結果に基づいた統計的情報を使用する例を示した。これに代えて、物体位置姿勢の認識処理内で生成される物体位置姿勢ヒストグラムと、部品の位置姿勢認識結果に基づいた統計的情報を使用してもよい。
【００６７】
また第2実施形態では、ピッキング対象となった部品位置およびその周辺領域を除くヒストグラムを作成するために予め設定された矩形領域を適用する例を示したが、部品の形状に応じて任意の領域形状を適用することも可能である。
【００６８】
また第3実施形態では、物体追尾処理から出力される物体位置姿勢ヒストグラムを、対象物体の移動情報に基づいて平行移動させたものを統計的情報として使用する例を示した。これに代えて、対象物体の姿勢情報から得られる姿勢ベクトルと速度ベクトルとを加算したベクトルに基づいて、物体位置姿勢ヒストグラムを平行移動したものを統計的情報として用いても良い。また、説明を簡単にするために対象物体は画面上での平行移動しか行わないとしたが、回転や拡大縮小、さらには3次元空間内での移動等にも対応することは可能である。例えば、回転が起こる場合、回転軸と回転方向、回転量が物体追尾処理から出力されることになるが、その情報を用いて物体位置姿勢ヒストグラムを回転させたものを統計的情報として使用することができる。
【００６９】
さらに、バンク割り当て設定方法は、統計的情報に基づいていればどのような方法であっても良い。例えば第1実施形態では、統計的情報の頻度分布の頻度順に順次バンクを割り当てる例を示したが、頻度値に閾値を設け、該閾値以上の頻度値を持つ箇所に対し、順次バンクを割り当てるようにしても良い。この場合、該閾値未満の頻度値となる個所については、予め定められたパターンに基づいてバンクを割り当てる、または所定の汎用バンクを割り当てる、またはバンク割り当てずに処理対象外とする、等の対応が考えられる。
【００７０】
さらに、第1実施形態ではメモリアクセス頻度が同程度のメモリ領域に対するバンクの割り当てを分散させる例を示し、また第2実施形態では各バンクに対するアクセス頻度を平均化する例を示したが、他の規則に従ってバンク割り当てを設定しても良い。例えば、頻度分布がある程度ブロードになっている場合は、ピーク周辺で各バンクができるだけ重ならないように設定しても良い。具体的には、ピーク位置を中心に所定の閾値以上の頻度値を持つビンに対し、隣り合うビンにはそれぞれ異なるバンクを適用する。なお、その場合の閾値は手動で与えても良いし、分布の平均や分散といった統計的情報等を用いて自動設定しても良い。
【００７１】
また第4実施形態では、アクセスが集中するメモリ領域が2か所である例を示したが、第4実施形態におけるバンクの割り当て方法は、アクセスが集中するメモリ領域がバンク数よりも少ない場合に適用可能である。なお、第4実施形態では各メモリ領域を均等に分散させる例を示したが、例えばアクセス頻度が高いビンをより多くのメモリ領域に分散させるようにしても良い。また、メモリアクセス頻度に閾値を設け、該閾値以上のビンについて、第4実施形態のバンクの割り当て方法を適用しても良い。
【００７２】
なお、上記各実施形態では、物体位置姿勢の認識処理に対し、バンク割り当て制御を行う例を示したが、バンク割り当て制御が適用される処理(メイン処理)としては、メモリアクセスを行う処理であればどのようなものであっても良い。例えば、複数の演算素子が同一のメモリからデータを読み出す辞書引き処理等、他の任意のメモリアクセス処理に対しても適用可能である。
【００７３】
また本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するコンピュータ読取り可能なソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【図１】
2014191621.tif 000003
【図２】
2014191621.tif 000004
【図３】
2014191621.tif 000005
【図４】
2014191621.tif 000006
【図５】
2014191621.tif 000007
【図６】
2014191621.tif 000008
【図７】
2014191621.tif 000009
【図８】
2014191621.tif 000010
【図９】
2014191621.tif 000011
【図１０】
2014191621.tif 000012
【図１１】
2014191621.tif 000013
【図１２】
2014191621.tif 000014
【図１３】
2014191621.tif 000015
【図１４】
2014191621.tif 000016