JP2014229969A - Parallel distributed video analysis device, parallel distributed video analysis method, and parallel distributed video analysis program - Google Patents
Parallel distributed video analysis device, parallel distributed video analysis method, and parallel distributed video analysis program Download PDFInfo
- Publication number
- JP2014229969A JP2014229969A JP2013105976A JP2013105976A JP2014229969A JP 2014229969 A JP2014229969 A JP 2014229969A JP 2013105976 A JP2013105976 A JP 2013105976A JP 2013105976 A JP2013105976 A JP 2013105976A JP 2014229969 A JP2014229969 A JP 2014229969A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- task
- worker
- video analysis
- assigned
- 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.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
Description
本発明は、映像を解析する技術に関する。 The present invention relates to a technique for analyzing video.
映像中のフレームから抽出した画像・音データの物理的特徴(画素輝度、音声周波数、音声強度等)を用いて、カット点やカメラワーク、テロップ、音楽区間等のイベントを検出する映像解析技術がある(特許文献1、2)。
Image analysis technology that detects events such as cut points, camera work, telops, music sections, etc., using physical characteristics (pixel brightness, audio frequency, audio intensity, etc.) of image and sound data extracted from frames in the video Yes (
この技術では、通常、時間的に前後関係のある2枚以上のフレームを逐次的に比較・差分する演算処理を映像の最初から最後まで行うため、フレームの数に比例した時間がかかってしまう。 In this technique, since an arithmetic process for sequentially comparing and subtracting two or more frames that are temporally related in sequence is performed from the beginning to the end of the video, it takes time proportional to the number of frames.
そこで、特許文献3では、映像データを複数の処理区間に分割し、隣り合う処理区間に互いにオーバラップする区間を持たせて並列に映像解析することにより、イベントの発生区間を正確に検出しながら、映像解析の処理時間を短縮している。また、非特許文献1では、イベント検出の状態に応じてオーバラップ区間を動的に延長することにより、最小限のオーバラップ処理区間でイベントの発生区間を検出している。
Therefore, in
しかしながら、ハードウェアリソースの物理的な制約から同時的・並列的に実行可能なプロセスの数には上限があるため、分割された全ての処理区間に対してプロセスを割り当てることができない場合がある。 However, since there is an upper limit to the number of processes that can be executed simultaneously and in parallel due to physical constraints of hardware resources, there are cases where processes cannot be allocated to all divided processing sections.
特に映像データが複数の場合、分割された処理区間の総数が膨大になるため、それら全ての処理区間に対してプロセスを常に割り当てることは更に困難となる。 In particular, when there are a plurality of video data, the total number of divided processing sections becomes enormous, and therefore it is further difficult to always assign processes to all the processing sections.
すなわち、映像データを解析するためのタスクに対してプロセスの数を十分に確保できないという課題がある。これについて、十分な数のプロセスを確保するまでプロセスの割当処理を待機しておき、他のタスクの完了に伴って割当可能な数のプロセスが確保できたタイミングで割り当て、映像の解析処理を開始する方法もある。しかし、タスクが開始されるまでの待機時間が長くなり、ハードウェアリソースの稼働率が低下してしまう。 That is, there is a problem that a sufficient number of processes cannot be secured for a task for analyzing video data. In this regard, the process allocation process waits until a sufficient number of processes are secured, and when the number of processes that can be allocated can be secured when other tasks are completed, the process of video analysis is started. There is also a way to do it. However, the waiting time until the task is started becomes long, and the operation rate of the hardware resource is lowered.
本発明は、上記事情を鑑みてなされたものであり、ハードウェアリソースの稼働率を改善すること目的とする。 The present invention has been made in view of the above circumstances, and an object thereof is to improve the operating rate of hardware resources.
請求項1に記載の並列分散映像解析装置は、映像解析用のタスクに割り当てられた未使用の第1のプロセスにより、記憶手段から読み出した映像データの解析処理を開始する解析手段と、前記タスクに対するプロセスの割当数が不足する場合、他のタスクに割り当てられていた第2のプロセスが未使用になった後に、前記映像データの未解析の処理区間を按分し、前記第1のプロセスと前記第2のプロセスにそれぞれ割り当てる割当手段と、を有することを要旨とする。
The parallel distributed video analysis apparatus according to
請求項2に記載の並列分散映像解析装置は、請求項1に記載の並列分散映像解析装置において、前記割当手段は、按分された複数の未処理区間のうち、解析済の処理区間との間で連続性のある未処理区間を前記第1のプロセスに割り当てることを要旨とする。
The parallel and distributed video analysis device according to
請求項3に記載の並列分散映像解析方法は、コンピュータにより、映像解析用のタスクに割り当てられた未使用の第1のプロセスにより、記憶手段から読み出した映像データの解析処理を開始する解析ステップと、前記タスクに対するプロセスの割当数が不足する場合、他のタスクに割り当てられていた第2のプロセスが未使用になった後に、前記映像データの未解析の処理区間を按分し、前記第1のプロセスと前記第2のプロセスにそれぞれ割り当てる割当ステップと、を有することを要旨とする。
The parallel distributed video analysis method according to
請求項4に記載の並列分散映像解析方法は、請求項3に記載の並列分散映像解析方法において、前記割当ステップは、按分された複数の未処理区間のうち、解析済の処理区間との間で連続性のある未処理区間を前記第1のプロセスに割り当てることを要旨とする。
The parallel and distributed video analysis method according to
請求項5に記載の並列分散映像解析プログラムは、請求項3又は4に記載の並列分散映像解析方法をコンピュータに実行させることを要旨とする。
The gist of the parallel distributed video analysis program according to claim 5 is to cause a computer to execute the parallel distributed video analysis method according to
以上より、本発明によれば、タスクに割り当てられた未使用の第1のプロセスにより映像データの解析処理を開始し、そのタスクに対するプロセスの割当数が不足する場合には、他のタスクに割り当てられていた第2のプロセスが未使用になった後に、上記映像データの未解析の処理区間を按分して上記第1のプロセスと上記第2のプロセスにそれぞれ割り当てるため、ハードウェアリソースの稼働率を高く保つことができる。 As described above, according to the present invention, when the video data analysis processing is started by the unused first process assigned to the task and the number of processes assigned to the task is insufficient, the process is assigned to another task. After the used second process becomes unused, the unprocessed processing section of the video data is apportioned and allocated to the first process and the second process, respectively. Can be kept high.
また、本発明によれば、按分された複数の未処理区間のうち、解析済の処理区間との間で連続性のある未処理区間を第1のプロセスに割り当てるため、不要なオーバヘッド(プロセスを生成するためのリソース管理や、映像の先頭から処理開始フレームまでのシーク等)の発生を回避でき、ハードウェアリソースの稼働率を更に高く保つことができる。 Further, according to the present invention, an unprocessed section having continuity with an analyzed processing section among a plurality of unprocessed sections thus allocated is allocated to the first process. Generation of resource management for generation and seek from the top of the video to the processing start frame) can be avoided, and the operating rate of hardware resources can be kept higher.
本発明によれば、ハードウェアリソースの稼働率を高く保つことができる。 According to the present invention, the operating rate of hardware resources can be kept high.
最初に、本発明について概説する。 First, the present invention will be outlined.
本発明は、映像解析時に要求されるプロセスの数が十分に確保できない場合、割当可能なプロセス数の範囲でタスクを開始しておき、他のタスクの完了に伴ってプロセスが割当可能になったタイミングで、十分に確保できていなかったタスクの未処理区間を処理中のプロセスと不足分を補うプロセスとで按分して割り当てることにより、ハードウェアリソースの稼働率を高く保つようにしている。 In the present invention, when the number of processes required at the time of video analysis cannot be sufficiently secured, tasks are started within the range of the number of processes that can be allocated, and processes can be allocated as other tasks are completed. By allocating unprocessed sections of tasks that have not been sufficiently secured at timing according to the process being processed and the process to compensate for the shortage, the operation rate of hardware resources is kept high.
また、その割り当ての際に、処理中のプロセスが解析している処理区間との連続性を考慮することにより、プロセスを生成するためのリソース管理や、映像の先頭から処理開始フレームまでのシークといったオーバヘッドの発生を回避するようにしている。 Also, when allocating, considering the continuity with the processing section being analyzed by the process being processed, resource management for generating the process, seeking from the beginning of the video to the processing start frame, etc. The generation of overhead is avoided.
これについて、図1を参照しながら説明する。例えば、ある映像データV1を解析するためのタスクT1に対して、4つのプロセスP1〜P4が指定されたとする。ここで、実際には2つのプロセスP1,P2しか割り当てられなかったとしても、その2つのプロセスP1,P2により、映像データV1の解析処理(分割された計2つの処理区間を並列に映像解析)を開始する(図1(a))。 This will be described with reference to FIG. For example, it is assumed that four processes P1 to P4 are designated for the task T1 for analyzing a certain video data V1. Here, even if only two processes P1 and P2 are actually assigned, the analysis process of the video data V1 is performed by the two processes P1 and P2 (video analysis is performed on a total of two divided processing sections in parallel). Is started (FIG. 1A).
そして、他のタスクT2での解析処理が完了してプロセスP3,P4が利用可能になった後に、未だ処理中のタスクT1において、各プロセスP1,P2の未処理区間R1,R2を4つのプロセスP1〜P4で按分する(図1(b))。 Then, after the analysis processing in the other task T2 is completed and the processes P3 and P4 can be used, the unprocessed sections R1 and R2 of the processes P1 and P2 are divided into four processes in the task T1 still being processed. Apportioning is performed at P1 to P4 (FIG. 1B).
その後、按分された4つの未処理区間R11,R12,R21,R22を各プロセスP1〜P4にそれぞれ割り当て、その4つのプロセスP1〜P4により、解析処理(按分された計4つの処理区間を並列に映像解析)を継続する(図1(c))。このとき、処理中のプロセスP1,P2には、これまでの処理区間に連続している未処理区間R11,R21をそれぞれ割り当てる。 Thereafter, the four unprocessed sections R11, R12, R21, and R22 that are prorated are assigned to the processes P1 to P4, respectively, and the analysis process (a total of four prorated processes are allocated in parallel) by the four processes P1 to P4. The video analysis is continued (FIG. 1 (c)). At this time, unprocessed sections R11 and R21 that are continuous with the process sections so far are assigned to the processes P1 and P2 that are being processed.
以下、本発明を実施する一実施の形態について図面を用いて説明する。以降、プロセスを実行する環境のことをワーカという。例えば、CPUやマルチコアCPUの場合は物理コアがあり、ハイパースレッディングが可能なCPUの場合は論理コアがある。映像処理のようなCPU処理性能に依存する処理は、1つのワーカで複数のプロセスを実行させるのは効率が悪く、1ワーカに1プロセスを割り当てて実行させるのがよい。 Hereinafter, an embodiment for carrying out the present invention will be described with reference to the drawings. Hereinafter, an environment for executing a process is called a worker. For example, a CPU or multi-core CPU has a physical core, and a CPU capable of hyperthreading has a logical core. For processing that depends on CPU processing performance such as video processing, it is inefficient to execute a plurality of processes with one worker, and it is preferable to allocate one process to one worker for execution.
図2は、本実施の形態に係る並列分散映像解析装置1の機能ブロック構成を示す図である。この並列分散映像解析装置1は、映像解析用のタスクの入力を受け付けるタスク受付部11と、そのタスクデータを記憶するタスク記憶部12と、入力された映像データを記憶する映像記憶部13と、タスクへのワーカ割当処理等を実行するタスク割当部14と、ワーカの処理状態を示したワーカ状態データを記憶するワーカ状態記憶部15と、複数のワーカにより映像データを解析するワーカ部16と、各解析結果を中間結果データとして記憶する中間結果記憶部17と、中間結果データを統合する結果統合部18と、統合データを記憶する処理結果記憶部19と、で構成される。
FIG. 2 is a diagram showing a functional block configuration of the parallel distributed
これらの各機能部は、メモリやCPUを備えたコンピュータで実現できる。また、各機能部の処理は、プログラムにより実行可能である。これらは互いに、バス、イーサネットケーブル、USBケーブル等による有線接続、無線LAN等の通信手段を用いて相互通信可能に接続されている。 Each of these functional units can be realized by a computer having a memory and a CPU. Further, the processing of each functional unit can be executed by a program. These are connected to each other so as to be able to communicate with each other using a communication means such as a wired connection using a bus, an Ethernet cable, a USB cable, or a wireless LAN.
次に、並列分散映像解析装置1の動作について説明する。
Next, the operation of the parallel distributed
最初に、図3〜図5を参照しながら、上述した特徴的動作を中心に説明する。 First, the characteristic operation described above will be mainly described with reference to FIGS.
図3は、タスク受付からタスク開始までの処理を示すフローチャートである。まず、タスク受付部11が、ユーザによって生成された映像解析用のタスクとそのタスクで解析される映像データとの入力を受け付けて、タスク記憶部12と映像記憶部13にそれぞれ記憶させる(ステップS101)。
FIG. 3 is a flowchart showing processing from task reception to task start. First, the
タスクデータの例を図4に示す。タスクデータには、タスクのIDと、そのタスクで解析される映像データのIDと、そのタスクで指定されたワーカの数と、そのタスクに対して割り当てられたワーカのIDと、そのタスクの処理状態を示した処理状態フラグとが対応付けて格納される。 An example of task data is shown in FIG. The task data includes the task ID, the video data ID analyzed by the task, the number of workers specified by the task, the worker ID assigned to the task, and the processing of the task. A processing state flag indicating the state is stored in association with each other.
例えば、ユーザにより映像データIDと指定ワーカ数が入力されると、それ用のタスクIDを付与した1つのタスクが生成され、タスクデータのレコードに追加される。但し、処理状態フラグは、「処理前」、「処理中」、「処理完了」のうちいずれかが処理段階に応じて設定され、割当ワーカIDは、タスクが処理される際に入力される。 For example, when a video data ID and a specified number of workers are input by a user, one task with a task ID for that is generated and added to the task data record. However, the processing status flag is set according to the processing stage among “Before processing”, “Processing”, and “Processing completed”, and the assigned worker ID is input when the task is processed.
次に、タスク割当部14が、タスク記憶部12からタスクデータを取得し、入力されたタスク以外で、「処理前」又は「処理中」のタスクが存在するかを判定する(ステップS102)。
Next, the
そして、それらの処理状態フラグを持つタスクが存在しない場合、タスク割当部14は、入力されたタスクに対して現状で利用可能なワーカを割り当て、ワーカ部16が、割り当てられたワーカのみで直ちに該当する映像データの解析処理を開始する(ステップS103)。
If there is no task having these processing status flags, the
一方、それらの処理状態フラグを持つタスクが存在する場合、タスク割当部14は、入力されたタスクの処理状態フラグを「処理前」に設定し(ステップS104)、入力が一番古いタスクに対して現状で利用可能なワーカを割り当て、そのワーカのみで該当する映像データの解析処理を開始する(ステップS105)。
On the other hand, if there is a task having these processing status flags, the
図5は、タスク完了後の処理を示すフローチャートである。まず、タスク割当部14が、タスク記憶部12からタスクデータを取得し、解析処理の完了したタスクの処理状態フラグを「処理完了」に設定する(ステップS201)。
FIG. 5 is a flowchart showing processing after the task is completed. First, the
次に、タスク割当部14は、処理状態フラグが「処理中」であり、“指定ワーカ数>割当済ワーカ数”に該当するタスクをタスクデータから取り出す(ステップS202)。
Next, the
そして、そのようなタスクが存在する場合、タスク割当部14は、上記タスクの処理完了に伴って新たに利用可能になったワーカを用いて不足分のワーカを補い、指定ワーカ数と補充によって増加したワーカ数との最小値で未処理区間を按分して再度割り当て、ワーカ部16が、その未処理区間の解析処理を再開する(ステップS203)。
If such a task exists, the
以上で、特徴的動作についての説明を終了する。 This is the end of the description of the characteristic operation.
続いて、図6〜図14を参照しながら、並列分散映像解析装置1で行う映像解析処理の全体動作について説明する。
Next, the overall operation of the video analysis processing performed by the parallel distributed
図6は、映像解析処理の全体を示すフローチャートである。まず、タスクの入力に伴い、タスク割当部14が、タスク記憶部12から全てのタスクを取得し(ステップS301)、各タスクの入力順に現在の処理状態を確認する(ステップS302)。
FIG. 6 is a flowchart showing the entire video analysis process. First, with the input of a task, the
次に、タスク割当部14は、「処理中」のタスクが存在するかを判定し(ステップS303)、存在する場合には、割当済ワーカ数が指定ワーカ数よりも小さいタスクが存在するかを更に判定し(ステップS304)、存在しない場合、又はステップS304の判定結果がNoの場合には、「処理前」のタスクが存在するかを更に判定する(ステップS305)。
Next, the
そして、ステップS304の判定結果がYesの場合には、図5を参照しながら説明したようにワーカの追加再割当処理を実行し(ステップS306)、ステップS305の判定結果がYesの場合には、ワーカの新規割当処理を実行する(ステップS307)。 If the determination result in step S304 is Yes, the worker reassignment process is executed as described with reference to FIG. 5 (step S306). If the determination result in step S305 is Yes, A new worker assignment process is executed (step S307).
その後、ワーカ部16は、割り当てられた複数のワーカにより並列に解析処理を再開又は開始し(ステップS308)、結果統合部18が、各解析結果を統合する(ステップS309)。
Thereafter, the
そして、全てのタスクの処理状態が「処理完了」であれば、ステップS304の判定結果がNoとなり、直ちに本フローを終了する。 If the processing state of all tasks is “processing complete”, the determination result in step S304 is No, and this flow is immediately terminated.
ここで、ワーカ状態記憶部15に記憶されているワーカ状態データについて説明する。図7は、ワーカ状態データの例を示す図である。ワーカ状態データには、ワーカのIDと、そのワーカに割り当てられた映像データの処理区間のIDと、処理中フレームのタイムスタンプと、処理開始フレームのタイムスタンプと、処理終了フレームのタイムスタンプと、そのワーカの動作状態を示した動作状態フラグとが対応付けて格納される。
Here, worker status data stored in the worker
動作状態フラグには「処理中」又は「停止中」が動作状態に応じて設定される。「処理中」とは、既に処理区間が割り当てられており、解析処理を実行中であることを表している。「停止中」とは、処理区間が割り当られておらず、新たに処理区間を割当可能であることを表している。 In the operation state flag, “processing” or “stopped” is set according to the operation state. “Processing” indicates that a processing section has already been assigned and analysis processing is being executed. “Stopped” means that a processing section is not allocated and a new processing section can be allocated.
また、処理開始フレームのタイムスタンプと処理終了フレームのタイムスタンプとは、割り当てられた処理区間の開始点と終了点を表している。ワーカは、この処理区間に含まれるフレームに対してイベントの検出処理を実行する。また、処理中フレームとは、ワーカが現在処理中のフレームのタイムスタンプを表している。 Further, the time stamp of the process start frame and the time stamp of the process end frame represent the start point and end point of the assigned processing section. The worker executes event detection processing on the frames included in this processing section. The processing frame represents a time stamp of a frame that is currently being processed by the worker.
次に、図8を参照しながら、「処理前」のタスクにワーカを割り当てる新規割当処理(図6のステップS307)について詳述する。 Next, a new allocation process (step S307 in FIG. 6) for assigning a worker to the “before process” task will be described in detail with reference to FIG.
まず、タスク割当部14は、動作状態フラグが「停止中」のワーカIDをワーカ状態記憶部15から取得して、その合計数aを算出する(ステップS401)。
First, the
次に、上記「処理前」の対象タスクに該当する映像データを映像記憶部13から取得して、その映像長Lを算出する(ステップS402)。
Next, the video data corresponding to the “pre-processing” target task is acquired from the
次に、その対象タスクに対して指定されている指定ワーカ数rと、ステップS401で算出された割当可能ワーカ数aとの最小値を分割数dとする(ステップS403)。 Next, the minimum value between the designated worker number r designated for the target task and the allocatable worker number a calculated in step S401 is set as the division number d (step S403).
次に、以下の式(1)及び式(2)より、処理区間Pi(1≦i≦d)の処理開始フレームsiと処理終了フレームeiを算出し(ステップS404)、ステップS401で取得した「停止中」のワーカWnにその処理区間Pi(si,ei)を割り当てる(ステップS405)。
次に、そのワーカWnの動作状態フラグを「処理中」に変更し(ステップS406)、iの値をインクリメントして(ステップS407)、“i≧d+1”が成立するまでステップS404〜ステップS407を繰り返す(ステップS408)。 Next, the worker W n the operation status flag is changed to "process" (step S406), increments the value of i (step S407), "i ≧ d + 1" step S404~ step S407 until is satisfied Is repeated (step S408).
その後、全てのワーカに対して処理区間の新規割当処理が完了すると、ステップS408の判定結果がYesとなり、「処理前」であった対象タスクの処理状態フラグを「処理中」に変更し(ステップS409)、本フローを終了する。 After that, when the processing section new allocation processing is completed for all workers, the determination result in step S408 is Yes, and the processing status flag of the target task that was “Before processing” is changed to “Processing” (Step S408). S409), this flow ends.
次に、図9を参照しながら、“「処理中」かつワーカ不足”のタスクにワーカを追加する追加再割当処理(図6のステップS306)について詳述する。 Next, an additional reassignment process (step S306 in FIG. 6) for adding a worker to the task ““ processing ”and worker shortage” will be described in detail with reference to FIG.
まず、タスク割当部14は、動作状態フラグが「停止中」のワーカIDをワーカ状態記憶部15から取得して、その合計数aを算出する(ステップS501)。
First, the
次に、上記“「処理中」かつワーカ不足”の対象タスクに既に割り当てられている「処理中」のワーカIDをタスク記憶部12及びワーカ状態記憶部15から取得して、その合計数pを算出する(ステップS502)。
Next, the “processing in progress” worker ID already assigned to the target task “in processing” and “worker shortage” is acquired from the
次に、ステップS502で取得した「処理中」のワーカIDに対応する処理終了フレームejと処理中フレームcjをワーカ状態記憶部15から取得する(ステップS503)。 Next, the processing end frame e j and the processing frame c j corresponding to the “processing” worker ID acquired in step S502 are acquired from the worker state storage unit 15 (step S503).
次に、以下の式(3)より、その「処理中」のワーカにおいて解析処理が実行されていない未処理区間の各区間長を算出し、上記対象タスクの全未処理区間長Lrを算出する(ステップS504〜ステップS505)。
次に、上記対象タスクに対して指定されている指定ワーカ数rと、ステップS501とステップS502でそれぞれ算出された割当可能ワーカ数aと「処理中」のワーカ数pとの合計値とを比較し、最小値を分割数dとする(ステップS506)。 Next, the designated worker number r designated for the target task is compared with the total value of the assignable worker number a calculated in steps S501 and S502, respectively, and the “pending” worker number p. Then, the minimum value is set as the division number d (step S506).
次に、以下の式(4)及び式(5)より、新たな処理区間Pi(1≦i≦d)の処理開始フレームsiと処理終了フレームeiを算出する(ステップS507)。
次に、上記対象タスクにおいて、「処理中」のワーカが存在するかを判定し(ステップS508)、存在する場合は、その「処理中」のワーカに対して、既に割り当てられている処理区間から継続して処理できるように、新たな処理区間を連続的に割り当てる(ステップS509)。これにより、「処理中」のワーカに関するリソース管理や処理区間が不連続になることで発生する無駄なシーク等のオーバヘッドの発生を回避できる。 Next, it is determined whether or not there is a “processing” worker in the target task (step S508). If there is a worker, the processing task already assigned to the “processing” worker is determined. New processing sections are continuously allocated so that processing can be continued (step S509). As a result, it is possible to avoid the occurrence of overhead such as useless seek, which occurs due to discontinuity of resource management and processing sections related to “processing” workers.
一方、「処理中」のワーカが存在しない場合は、「停止中」のワーカに処理区間を任意に割り当て(ステップS510)、そのワーカの動作状態フラグを「処理中」に変更する(ステップS511)。 On the other hand, if there is no “processing” worker, a processing section is arbitrarily assigned to the “stopping” worker (step S510), and the operating state flag of the worker is changed to “processing” (step S511). .
そして、ステップS509又はステップS511の後、iの値をインクリメントして(ステップS512)、“i≧d+1”が成立するまでステップS507〜ステップS512を繰り返す(ステップS513)。 Then, after step S509 or step S511, the value of i is incremented (step S512), and steps S507 to S512 are repeated until “i ≧ d + 1” is satisfied (step S513).
その後、全てのワーカに対して処理区間の追加再割当処理が完了すると、ステップS513の判定結果がYesとなり、「処理中」であったタスクの処理状態フラグを変更することなく「処理中」のままとし(ステップS514)、本フローを終了する。 After that, when the processing section additional reassignment processing is completed for all workers, the determination result in step S513 is Yes, and the processing status flag of the task that was “processing” is changed to “processing”. The flow is terminated (step S514).
新規割当結果の例と追加再割当結果の例を図10と図11にそれぞれ示す。新規割当の場合、図10に示すように、処理区間P1[0〜1,000(ms)]がワーカW1に割り当てられ、処理区間P2[1,000〜2,000(ms)]がワーカW2に割り当てられ、処理区間P3[2,000〜3,000(ms)]がワーカW3に割り当てられ、処理区間P4[3,000〜4,000(ms)]がワーカW4に割り当てられ、処理区間P5[4,000〜5,000(ms)]がワーカW5に割り当てられ、イベントの検出処理が並列に実行される。 An example of a new allocation result and an example of an additional reassignment result are shown in FIGS. 10 and 11, respectively. In the case of new allocation, as shown in FIG. 10, the processing section P 1 [0 to 1,000 (ms)] is allocated to the worker W 1 and the processing section P 2 [1,000 to 2,000 (ms)]. There is assigned to the worker W 2, the processing block P 3 [2,000~3,000 (ms)] is assigned to the worker W 3, the processing section P 4 [3,000~4,000 (ms)] is worker assigned to W 4, the processing section P 5 [4,000~5,000 (ms)] is assigned to the worker W 5, detection processing of the event is executed in parallel.
図11は、ワーカW1とワーカW2で処理中のタスクにワーカW3とワーカW4を追加再割当する具体例を示している。ワーカW1には処理区間P1[0〜5,000(ms)]が割り当てられ、ワーカW2には処理区間P2[5,000〜10,000(ms)]が割り当られているとし、それら各処理区間P1,P2の未処理区間長は共に4,500(ms)とする。 FIG. 11 shows a specific example in which workers W 3 and W 4 are additionally reassigned to tasks being processed by workers W 1 and W 2 . The worker W 1 is assigned a processing section P 1 [0 to 5,000 (ms)], and the worker W 2 is assigned a processing section P 2 [5,000 to 10,000 (ms)]. The unprocessed section lengths of the respective processing sections P 1 and P 2 are both 4,500 (ms).
この場合、映像全体で9,000(ms)の処理区間が未処理であるため、この合計未処理区間長を4区間に分割して各ワーカに割り当てる。今回の例では、新たに計算された処理区間P1[500〜2,750(ms)]がワーカW1に割り当てられ、処理区間P2[2,750〜5,000(ms)]がワーカW2に割り当てられ、処理区間P3[5,500〜7,750(ms)]がワーカW3に割り当てられ、処理区間P4[7,750〜10,000(ms)]がワーカW4に割り当てられる。 In this case, since the processing section of 9,000 (ms) is unprocessed in the entire video, the total unprocessed section length is divided into four sections and assigned to each worker. In this example, the newly calculated processing section P 1 [500-2,750 (ms)] is assigned to the worker W 1 and the processing section P 2 [2,750-5,000 (ms)] is assigned to the worker. Assigned to W 2 , processing section P 3 [5,500 to 7,750 (ms)] is assigned to worker W 3 , and processing section P 4 [7,750 to 10,000 (ms)] is assigned to worker W 4. Assigned to.
尚、処理区間の計算時には、未処理区間を割り当てるワーカ数で等分する方法の他に、ワーカの処理速度や未処理区間長を考慮して、全てのワーカの処理完了時間が等しくなるように按分する方法が考えられる。 When calculating the processing section, in addition to the method of equally dividing the number of workers to which the unprocessed section is allocated, considering the processing speed of the worker and the length of the unprocessed section, the processing completion time of all workers is made equal. A prorated method is possible.
次に、図12を参照しながら、イベント検出処理(図6のステップS308)について詳述する。 Next, the event detection process (step S308 in FIG. 6) will be described in detail with reference to FIG.
まず、ワーカ部16は、複数のワーカにより、タスク割当部14によって割当てられた処理区間の処理開始フレームからイベントの検出処理を開始し(ステップS601)、それと同時に、ワーカ状態記憶部15に動作状態を「処理中」と通知する(ステップS602)。
First, the
そして、処理終了フレームに到達すると(ステップS603)、処理中のフレームにおけるイベントの検出状態(「検出中」又は「未検出」)を判定し(ステップS604)、この判定結果を基にして処理区間を延長するかを判断する。 When the process end frame is reached (step S603), the event detection state (“detecting” or “not detected”) in the frame being processed is determined (step S604), and the processing interval is determined based on the determination result. Judge whether to extend.
ここで、イベントを「検出中」の場合、すなわち、次の処理区間までイベントが継続して存在する場合には、現在検出中のイベントが終了するまで、処理区間を延長しながらイベントの検出処理を継続する(ステップS605)。 Here, if the event is “detecting”, that is, if the event continues until the next processing interval, the event detection process is performed while extending the processing interval until the currently detected event ends. (Step S605).
その後、イベントの検出処理が完了すると、ステップS604の判定結果がNoとなり、検出したイベントの発生区間(開始フレームのタイムスタンプと終了フレームのタイムスタンプ)と検出処理に応じた補助情報(例えば、カメラワーク検出時のカメラの動き情報やテロップ検出時のテロップの出現座標)を中間結果記憶部17に送信し(ステップS606)、ワーカ状態記憶部15内の自身の動作状態を「停止中」に更新して(ステップS607)、本フローを終了する。
After that, when the event detection process is completed, the determination result in step S604 is No, the detected event occurrence section (start frame time stamp and end frame time stamp), and auxiliary information (for example, camera) The camera movement information at the time of workpiece detection and the appearance coordinates of the telop at the time of telop detection) are transmitted to the intermediate result storage unit 17 (step S606), and its own operation state in the worker
処理区間延長結果の例を図13に示す。例えば、図13(a)に示すように、処理区間P1[0〜10,000(ms)]がワーカW1に割り当てられ、処理区間P2[10,000〜20,000(ms)]がワーカW2に割り当てられており、処理終了フレームのタイムスタンプ[10,000(ms)]に到達したときに、ワーカW1においてイベントの検出中であったとする。 An example of the processing section extension result is shown in FIG. For example, as shown in FIG. 13A, the processing section P 1 [0 to 10,000 (ms)] is assigned to the worker W 1 and the processing section P 2 [10,000 to 20,000 (ms)]. there is assigned to the worker W 2, when it reaches the time stamp of the processing end frame [10,000 (ms)], and was in the detection of an event in worker W 1.
この場合、そのワーカW1は、処理終了フレームのタイムスタンプを映像後方に変更しながら解析処理を継続し、図13(b)に示すように、イベントの検出処理が終了したとき(ここではタイムスタンプが[13,000(ms)]の地点)に解析処理を終了する。 In this case, the worker W 1 continues the analysis process while changing the time stamp of the process end frame to the rear of the video, and when the event detection process ends (here, the time is shown) as shown in FIG. The analysis process ends at the point where the stamp is [13,000 (ms)].
このように処理区間を延長することにより、ワーカW1で解析処理される処理区間P1の終了点が3,000(ms)分だけ映像後方に変更されるので、ワーカ状態記憶部15に記憶される処理区間のデータが更新される。すなわち、処理開始点が0(ms)、処理終了点が10,000(ms)と記憶されていた処理区間のデータは、0(ms)、13,000(ms)にそれぞれ変更され、ワーカ状態記憶部15に記憶される。
By extending the processing section in this way, the end point of the processing section P 1 analyzed by the worker W 1 is changed backward by 3,000 (ms), so that it is stored in the worker
次に、図14を参照しながら、検出結果統合処理(図6のステップS309)について詳述する。 Next, the detection result integration process (step S309 in FIG. 6) will be described in detail with reference to FIG.
まず、結果統合部18は、中間結果記憶部17から対象タスクの各検出結果を取得して(ステップS701)、処理区間順に1つの処理結果として統合する(ステップS702)。
First, the
このとき、解析処理において処理区間の延長が発生していると、複数のワーカで重複した映像区間が処理されたことになる。そこで、オーバラップしている処理区間の検出結果が存在するかを判定し(ステップS703)、存在する場合には、時間的に映像の先頭に近い処理区間で検出した検出結果を当該処理区間の正しい検出結果とみなして統合する(ステップS704)。 At this time, if the processing section is extended in the analysis process, the overlapping video section is processed by a plurality of workers. Therefore, it is determined whether there is a detection result of the overlapping processing section (step S703). If there is a detection result, the detection result detected in the processing section temporally close to the head of the video is displayed. Integration is performed by regarding it as a correct detection result (step S704).
そして、対象タスクで検出された全ての処理結果を統合した後(ステップS705)、タスクの処理状態フラグを「処理完了」に変更する(ステップS706)。その後、タスク記憶部12を再度検索し、「処理前」のタスクが存在しなくなるまで、ステップS701〜ステップS706を繰り返す。そして、「処理前」のタスクが存在しなければ、新たなタスクが入力されるまで待機する。
Then, after integrating all the processing results detected in the target task (step S705), the processing status flag of the task is changed to “processing completed” (step S706). Thereafter, the
以上で映像解析処理についての説明を終了する。 This is the end of the description of the video analysis process.
これまで説明した並列分散映像解析装置1の構築例を図15に示す。図15(a)に示すように、マルチコアCPUの1つのコア(1)がタスク割当部としてタスク管理を行い、これに接続された複数のコア(2)〜(4)が複数のワーカWとして並列に映像解析するようにしても構わない。
FIG. 15 shows a construction example of the parallel distributed
また、図15(b)に示すように、1台のサーバがタスク割当部としてタスク管理を行い、これに接続された複数のサーバ(1)〜(3)が複数のワーカWとして並列に映像解析するようにしても構わない。 Further, as shown in FIG. 15B, one server performs task management as a task allocation unit, and a plurality of servers (1) to (3) connected to the server perform video as a plurality of workers W in parallel. You may make it analyze.
これら以外にも、マルチコアCPUを持つ複数のサーバにより、映像の解析処理を並列して実行するように構成してもよい。このように、各ワーカが独立して動作可能な環境であればワーカの構築形態はどのような形態でも採用できる。 In addition to these, the video analysis processing may be executed in parallel by a plurality of servers having a multi-core CPU. In this way, any form of worker construction can be adopted as long as each worker can operate independently.
以上より、本実施の形態によれば、映像解析時に要求されるワーカの数が十分に確保できない場合、割当可能なワーカ数の範囲でタスクを開始しておき、他のタスク完了に伴ってワーカが割当可能になったタイミングで、十分に確保できていなかったタスクの未処理区間を処理中のワーカと不足分を補うワーカとで按分して割り当てるので、ハードウェアリソースの稼働率を高く保ちながら、並列分散による高速な映像解析を実現できる。 As described above, according to the present embodiment, when the number of workers required at the time of video analysis cannot be sufficiently secured, the task is started within the range of the assignable number of workers, and the worker is completed when other tasks are completed. Since the unprocessed section of the task that could not be secured sufficiently is allocated with the worker that is processing and the worker that compensates for the shortage at the timing when the allocation becomes possible, while keeping the operating rate of hardware resources high Realize high-speed video analysis by parallel distribution.
また、本実施の形態によれば、その割り当ての際に、処理中のワーカが解析している処理区間との連続性を考慮するので、オーバヘッドの発生を回避でき、ハードウェアリソースの稼働率を更に高く保つことができる。 Further, according to the present embodiment, since the continuity with the processing section being analyzed by the worker being processed is taken into consideration at the time of allocation, the occurrence of overhead can be avoided and the operating rate of hardware resources can be reduced. It can be kept higher.
また、本実施の形態によれば、分割した処理区間の終了時点でイベント検出中である場合、処理区間を延長させて他のワーカとの処理区間にオーバラップ区間を発生させるので、精度の高い解析処理が可能であると共に、必要以上のオーバラップ区間を多発させることなく、更に効率的な稼働による映像解析が可能になる。 In addition, according to the present embodiment, when an event is being detected at the end of the divided processing section, the processing section is extended to generate an overlapping section in the processing section with another worker. In addition to being able to perform analysis processing, it is possible to perform video analysis with more efficient operation without causing many unnecessary overlap sections.
また、上述した並列分散映像解析装置1の各機能部の機能を実行するプログラムをコンピュータに搭載することにより、当該コンピュータを並列分散映像解析装置1として機能させる映像解析処理用プログラムを構築することも可能である。
In addition, by installing a program for executing the function of each functional unit of the parallel distributed
1…並列分散映像解析装置
11…タスク受付部
12…タスク記憶部
13…映像記憶部
14…タスク割当部
15…ワーカ状態記憶部
16…ワーカ部
17…中間結果記憶部
18…結果統合部
19…処理結果記憶部
S101〜S105、S201〜S203、S301〜S309、S401〜S409、S501〜S514、S601〜S607、S701〜S706…ステップ
DESCRIPTION OF
Claims (5)
前記タスクに対するプロセスの割当数が不足する場合、他のタスクに割り当てられていた第2のプロセスが未使用になった後に、前記映像データの未解析の処理区間を按分し、前記第1のプロセスと前記第2のプロセスにそれぞれ割り当てる割当手段と、
を有することを特徴とする並列分散映像解析装置。 Analysis means for starting analysis processing of video data read out from the storage means by an unused first process assigned to a task for video analysis;
When the number of processes allocated to the task is insufficient, after the second process assigned to another task becomes unused, the unprocessed processing section of the video data is apportioned, and the first process And assigning means for assigning to each of the second processes,
A parallel distributed video analysis apparatus characterized by comprising:
按分された複数の未処理区間のうち、解析済の処理区間との間で連続性のある未処理区間を前記第1のプロセスに割り当てることを特徴とする請求項1に記載の並列分散映像解析装置。 The assigning means includes
2. The parallel distributed video analysis according to claim 1, wherein among the plurality of unprocessed sections that are prorated, an unprocessed section that is continuous with the analyzed processing section is assigned to the first process. apparatus.
映像解析用のタスクに割り当てられた未使用の第1のプロセスにより、記憶手段から読み出した映像データの解析処理を開始する解析ステップと、
前記タスクに対するプロセスの割当数が不足する場合、他のタスクに割り当てられていた第2のプロセスが未使用になった後に、前記映像データの未解析の処理区間を按分し、前記第1のプロセスと前記第2のプロセスにそれぞれ割り当てる割当ステップと、
を有することを特徴とする並列分散映像解析方法。 By computer
An analysis step of starting analysis processing of video data read from the storage means by an unused first process assigned to a task for video analysis;
When the number of processes allocated to the task is insufficient, after the second process assigned to another task becomes unused, the unprocessed processing section of the video data is apportioned, and the first process And assigning steps respectively assigned to said second processes;
A parallel distributed video analysis method characterized by comprising:
按分された複数の未処理区間のうち、解析済の処理区間との間で連続性のある未処理区間を前記第1のプロセスに割り当てることを特徴とする請求項3に記載の並列分散映像解析方法。 The assigning step includes
4. The parallel distributed video analysis according to claim 3, wherein, among the plurality of apportioned unprocessed sections, an unprocessed section having continuity with the analyzed process section is allocated to the first process. 5. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013105976A JP2014229969A (en) | 2013-05-20 | 2013-05-20 | Parallel distributed video analysis device, parallel distributed video analysis method, and parallel distributed video analysis program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013105976A JP2014229969A (en) | 2013-05-20 | 2013-05-20 | Parallel distributed video analysis device, parallel distributed video analysis method, and parallel distributed video analysis program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014229969A true JP2014229969A (en) | 2014-12-08 |
Family
ID=52129478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013105976A Pending JP2014229969A (en) | 2013-05-20 | 2013-05-20 | Parallel distributed video analysis device, parallel distributed video analysis method, and parallel distributed video analysis program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014229969A (en) |
-
2013
- 2013-05-20 JP JP2013105976A patent/JP2014229969A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107045456B (en) | Resource allocation method and resource manager | |
US9354938B2 (en) | Sequential cooperation between map and reduce phases to improve data locality | |
WO2021036936A1 (en) | Method and apparatus for allocating resources and tasks in distributed system, and system | |
US9471390B2 (en) | Scheduling mapreduce jobs in a cluster of dynamically available servers | |
KR102519580B1 (en) | Technologies for fast synchronization barriers for many-core processing | |
US8869149B2 (en) | Concurrency identification for processing of multistage workflows | |
JP6191691B2 (en) | Abnormality detection apparatus, control method, and program | |
JP7006607B2 (en) | Distributed processing system, distributed processing method, and recording medium | |
KR20140117905A (en) | Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method | |
CN114675965B (en) | Federal learning method, apparatus, device and medium | |
KR20200141208A (en) | Grahp data processing methdo and apparatus thereof | |
JP2016024612A (en) | Data processing control method, data processing control program, and data processing control apparatus | |
KR101656706B1 (en) | Job distribution system in high-performance computing environment | |
US20120304180A1 (en) | Process allocation apparatus and process allocation method | |
JP2017034307A (en) | Information collection management apparatus and method, and information collection system | |
JP2014228924A (en) | Parallel and distributed video analysis apparatus, parallel and distributed video analysis method and parallel-distributed video analysis program | |
JP2014229969A (en) | Parallel distributed video analysis device, parallel distributed video analysis method, and parallel distributed video analysis program | |
CN113792869B (en) | Video processing method and device based on neural network chip and electronic equipment | |
CN114091807A (en) | Method, device and system for distributing and scheduling tasks of multiple unmanned aerial vehicles and storage medium | |
WO2017031961A1 (en) | Data processing method and apparatus | |
KR101556541B1 (en) | Apparatus and method for complex event processing based high load path | |
CN109947613B (en) | File reading test method and device | |
US20120303777A1 (en) | Process placement apparatus and process placement method | |
CN115729715B (en) | Load distribution method, device, equipment and medium for GPU (graphics processing Unit) system | |
JP2005122616A (en) | Network-type grid computing system |