(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-14
(54)【発明の名称】集中ビデオ処理のための分散コンピューティングシステム
(51)【国際特許分類】
H04L 67/1008 20220101AFI20221107BHJP
H04N 21/234 20110101ALI20221107BHJP
H04N 21/262 20110101ALI20221107BHJP
【FI】
H04L67/1008
H04N21/234
H04N21/262
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022515040
(86)(22)【出願日】2020-09-04
(85)【翻訳文提出日】2022-03-07
(86)【国際出願番号】 IB2020058254
(87)【国際公開番号】W WO2021044364
(87)【国際公開日】2021-03-11
(32)【優先日】2019-09-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518072210
【氏名又は名称】エバーシーン リミテッド
【氏名又は名称原語表記】Everseen Limited
【住所又は居所原語表記】4th Floor, The Atrium, Blackpool Retail Park, Blackpool, Cork, Ireland
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ノーバート マタニエ
(72)【発明者】
【氏名】セルバン マドゥタ
(72)【発明者】
【氏名】ボグダン シウボタル
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA07
5C164SB01P
5C164SB41S
5C164SC22P
5C164YA21
(57)【要約】
処理ノードのネットワークにおいて負荷を分散するための方法であり、ここで、ネットワークは、要求ノード、および外部処理ノードのセットを含む。方法は、インターネットコントロールメッセージプロトコル(ICMP)メッセージをそれぞれの外部処理ノードに送信すること、その応答時間に基づいて、それぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類すること、ビデオ処理要求を満たす能力を有する応答ノードを識別すること、除外した応答ノードの第1のセットおよび除外した応答ノードの第2のセットを決定すること、識別されたノードが除外した応答ノードの第1のセットおよび除外した応答ノードの第2のセットのうちの一部を形成しない場合に、ビデオ処理要求を満たすために識別されたノードを選択すること、伝送パッケージを処理するために要求ノードから選択された識別ノードに送信すること、およびバイナリ応答を選択されたノードから受信することを備える。
【特許請求の範囲】
【請求項1】
処理ノードのネットワークにおいて負荷を分散する方法であって、前記ネットワークは、要求ノードと、一組の外部処理ノードとを含み、前記方法は、
ICMPメッセージをそれぞれの外部処理ノードに送信するステップと、
それぞれのICMPメッセージに対応する応答時間に基づいて、それぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類するステップと、
前記要求ノードによって提出されたビデオ処理要求を満たす能力を有する応答ノードを識別するステップと、
除外した応答ノードの第1のセットを決定するステップであって、事前に定義された第1の時間間隔の間に、前記第1のセットの各々の除外した応答ノードに対する計算負荷は、第1の閾値を超えるステップと、
除外した応答ノードの第2のセットを決定するステップであって、先行する時間間隔の間に、前記要求ノードから除外した前記第2のセットの各々の応答ノードによって受信したビデオ処理要求の数は、第2の閾値を超えるステップと、
前記ビデオ処理要求を満たすために識別されたノードを選択するステップであって、前記識別されたノードは、除外した応答ノードの前記第1のセットおよび前記第2のセットのうちの一部を形成しないステップと、
処理のために前記要求ノードから選択された識別ノードに伝送パッケージを送信するステップと、
バイナリ応答を前記選択された識別ノードから受信するステップと
を備える方法。
【請求項2】
1つまたは複数の外部処理ノードの前記セットは、前記要求ノードへのそれらの近接に基づいている、
請求項1に記載の方法。
【請求項3】
前記伝送パッケージは、記録されたビデオ映像と、関連する商品の周知のバーコードを含むペイロードとを含む、
請求項1に記載の方法。
【請求項4】
前記バイナリ応答は、バイナリ結果を含み、前記バイナリ結果の「1」は、前記記録されたビデオ映像における値札の貼り換え行為の存在を示して、前記バイナリ結果の「0」は、前記記録されたビデオ映像における値札の貼り換え行為の欠如を示す、
請求項3に記載の方法。
【請求項5】
それぞれの応答ノードは、事前に定義された第2の時間間隔以内で、前記要求ノードの前記ICMPメッセージに応答する、
請求項1に記載の方法。
【請求項6】
1つまたは複数の非応答ノードのIPアドレスを記録するステップをさらに備える、
請求項1に記載の方法。
【請求項7】
前記応答ノードを識別するステップは、
対応する応答時間に基づいて1つまたは複数の前記応答ノードをランク付けするステップと、
第1のランク付けされたノードがビデオ映像を処理する能力を有するかを問い合わせるステップと、
前にランク付けされたノードが前記ビデオ映像を処理する前記能力を有さない場合に、次にランク付けされたノードを継続して問い合わせるステップとを含む、
請求項1に記載の方法。
【請求項8】
前記伝送パッケージは、前記選択されたノードで、畳み込みニューラルネットワーク(CNN)を用いて処理される、
請求項1に記載の方法。
【請求項9】
ビデオ映像を記録するように構成されるカメラと、
前記カメラと通信可能に結合される要求ノードであって、処理のために前記ビデオ映像を受信するように構成される要求ノードと、
前記要求ノードと通信可能に結合される一組の外部処理ノードと、
前記要求ノードおよび前記一組の外部処理ノードと通信可能に結合される負荷分散サーバーであって、プロセッサを含む負荷分散サーバーとを備え、前記プロセッサは、
ICMPメッセージをそれぞれの外部処理ノードに送信して、
それぞれのICMPメッセージに対応する応答時間に基づいて、それぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類して、
前記要求ノードによって提出されたビデオ処理要求を満たす能力を有する応答ノードを識別して、
除外した応答ノードの第1のセットを決定して、事前に定義された第1の時間間隔の間に、前記第1のセットの各々の除外した応答ノードに対する計算負荷は、第1の閾値を超えており、
除外した応答ノードの第2のセットを決定して、先行する時間間隔の間に、前記要求ノードから除外した前記第2のセットの各々の応答ノードによって受信したビデオ処理要求の数は、第2の閾値を超えており、
前記ビデオ処理要求を満たすために識別されたノードを選択して、前記識別されたノードは、除外した応答ノードの前記第1のセットおよび前記第2のセットのうちの一部を形成しておらず、
処理のために選択された識別ノードに伝送パッケージを送信して、および
バイナリ応答を受信して前記要求ノードに伝送するように構成される
システム。
【請求項10】
1つまたは複数の外部処理ノードの前記セットは、前記要求ノードへのそれらの近接に基づいている、
請求項9に記載のシステム。
【請求項11】
前記伝送パッケージは、記録されたビデオ映像と、関連する商品の周知のバーコードを含むペイロードとを含む、
請求項9に記載のシステム。
【請求項12】
前記バイナリ応答は、バイナリ結果を含み、前記バイナリ結果の「1」は、前記記録されたビデオ映像における値札の貼り換え行為の存在を示して、前記バイナリ結果の「0」は、前記記録されたビデオ映像における値札の貼り換え行為の欠如を示す、
請求項11に記載のシステム。
【請求項13】
それぞれの応答ノードは、事前に定義された第2の時間間隔以内で、前記要求ノードの前記ICMPメッセージに応答する、
請求項9に記載のシステム。
【請求項14】
前記プロセッサは、1つまたは複数の非応答ノードのIPアドレスを記録するようにさらに構成される、
請求項9に記載のシステム。
【請求項15】
前記プロセッサは、
対応する応答時間に基づいて1つまたは複数の前記応答ノードをランク付けして、
第1のランク付けされたノードが前記ビデオ映像を処理する能力を有するかを問い合わせて、および
前にランク付けされたノードが前記ビデオ映像を処理する前記能力を有さない場合に、次にランク付けされたノードを継続して問い合わせるようにさらに構成される、
請求項9に記載のシステム。
【請求項16】
前記伝送パッケージは、前記選択されたノードで、畳み込みニューラルネットワーク(CNN)を用いて処理される、
請求項9に記載のシステム。
【請求項17】
プログラムを格納するように構成される非一時的なコンピューター可読媒体であって、コンピューターに処理ノードのネットワークにおける負荷を分散させ、前記ネットワークは、要求ノードと、一組の外部処理ノードのセットとを含み、前記プログラムは、
ICMPメッセージをそれぞれの外部処理ノードに送信して、
それぞれのICMPメッセージに対応する応答時間に基づいて、それぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類して、
前記要求ノードによって提出されたビデオ処理要求を満たす能力を有する応答ノードを識別して、
除外した応答ノードの第1のセットを決定して、事前に定義された第1の時間間隔の間に、前記第1のセットの各々の除外した応答ノードに対する計算負荷は、第1の閾値を超えており、
除外した応答ノードの第2のセットを決定して、先行する時間間隔の間に、前記要求ノードから除外した前記第2のセットの各々の応答ノードによって受信したビデオ処理要求の数は、第2の閾値を超えており、
前記ビデオ処理要求を満たすために識別されたノードを選択して、前記識別されたノードは、除外した応答ノードの前記第1のセットおよび前記第2のセットのうちの一部を形成しておらず、
伝送パッケージを処理するために選択された識別ノードに送信して、および
バイナリ応答を受信して前記要求ノードに伝送するように構成される
非一時的なコンピューター可読媒体。
【請求項18】
前記伝送パッケージは、記録されたビデオ映像と、関連する商品の周知のバーコードを含むペイロードとを含む、
請求項17に記載の非一時的なコンピューター可読媒体。
【請求項19】
前記バイナリ応答は、バイナリ結果を含み、前記バイナリ結果の「1」は、記録されたビデオ映像における値札の貼り換え行為の存在を示して、前記バイナリ結果の「0」は、記録されたビデオ映像における値札の貼り換え行為の欠如を示す、
請求項17に記載の非一時的なコンピューター可読媒体。
【請求項20】
前記プログラムは、
対応する応答時間に基づいて1つまたは複数の前記応答ノードをランク付けして、
第1のランク付けされたノードがビデオ映像を処理する能力を有するかを問い合わせて、および
前にランク付けされたノードが前記ビデオ映像を処理する前記能力を有さない場合に、次にランク付けされたノードを継続して問い合わせるようにさらに構成される、
請求項17に記載の非一時的なコンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、分散ビデオストリームを有効にすることとなる分散コンピューティングシステムの創作に関し、より具体的には、分散ノードのネットワークにおける負荷を共有することに関連する。
【背景技術】
【0002】
小売店において、詐欺師が第1の商品におけるバーコードまたは値札をより安い商品のそれと貼り換える値札の貼り換えは、詐欺行為である。一般に、小売店は、小売店内の商品の画像を記録して格納するように構成されるカメラ、および小売店におけるあらゆる値札の貼り換え行為を判定するビデオ映像を処理するように構成されるビデオプロセッサを採用している。ビデオプロセッサは、カメラの視野内の(つまり、人の手にある)商品のバーコードがその商品に期待されるバーコードとマッチングするかを決定することによって、値札の貼り換え行為の自動検出および抑止を容易にする。
【0003】
しかしながら、ビデオプロセッサにおける計算リソースは、新しく且つより高度な所望の能力を供給する新しい作業負荷を扱うには不十分であることがある。同時に、計算リソースは、ネットワークを介してビデオプロセッサに接続される他の外部コンピューティングシステムにおいて利用可能であってよい。
【0004】
上記を考慮すると、小売店における値札の貼り換え行為の自動検出に対して、処理ノードのネットワークにおいて負荷を分散することを可能とする方法およびシステムの必要性がある。
【発明の概要】
【0005】
本開示の態様に従って、処理ノードのネットワークにおいて負荷を分散するための方法が提供され、ここで、ネットワークは、要求ノード、および一組の外部処理ノードを含む。方法は、ICMP(Internet Control Message Protocol)メッセージをそれぞれの外部処理ノードに送信すること、およびそれぞれのICMPメッセージに対応する応答時間に基づいて、それぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類することを備える。方法は、要求ノードによって提出されたビデオ処理要求を満たす能力を有する応答ノードを識別すること、および除外した応答ノードの第1のセットを決定することをさらに備えてよく、ここで、事前に定義された第1の時間間隔の間に、第1のセットの各々の除外した応答ノードに対する計算負荷は、第1の閾値を超える。方法は、除外した応答ノードの第2のセットを決定することであって、ここで、先行する時間間隔の間に、要求ノードから除外した第2のセットの各々の応答ノードによって受信したビデオ処理要求の数は、第2の閾値を超えること、および識別されたノードが除外した応答ノードの第1のセットおよび第2のセットのうちの一部を形成しない場合に、ビデオ処理要求を満たすために識別されたノードを選択することをさらに備えてよい。方法は、処理のために要求ノードから選択された識別ノードに伝送パッケージを送信すること、およびバイナリ応答を選択された識別ノードから受信することをさらに備えてよい。
【0006】
本開示の別の態様に従って、ビデオ映像を記録するように構成されるカメラ、カメラと通信可能に結合される要求ノードであって、処理のためにビデオ映像を受信するように構成される要求ノード、および要求ノードと通信可能に結合される外部処理ノードのセットを備えるシステムが提供される。システムは、要求ノードおよび一組の外部処理ノードと通信可能に結合され、プロセッサを含む負荷分散サーバーをさらに備える。プロセッサは、ICMP(Internet Control Message Protocol)メッセージをそれぞれの外部処理ノードに送信して、それぞれのICMPメッセージに対応する応答時間に基づいてそれぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類して、要求ノードによって提出されたビデオ処理要求を満たす能力を有する応答ノードを識別して、除外した応答ノードの第1のセットを決定して、ここで、事前に定義された第1の時間間隔の間に、第1のセットの各々の除外した応答ノードに対する計算負荷は、第1の閾値を超えており、除外した応答ノードの第2のセットを決定して、ここで、先行する時間間隔の間に、要求ノードから除外した第2のセットの各々の応答ノードによって受信したビデオ処理要求の数は、第2の閾値を超えており、識別されたノードが除外した応答ノードの第1のセットおよび第2のセットのうちの一部を形成しない場合に、ビデオ処理要求を満たすために識別されたノードを選択して、処理のために選択された識別ノードに伝送パッケージを送信して、およびバイナリ応答を受信して要求ノードに伝送するように構成される。
【0007】
さらに別の態様に従って、本開示は、コンピューターに処理ノードのネットワークにおける負荷を分散させるプログラムを格納するように構成され、ここで、ネットワークは、要求ノード、および一組の外部処理ノードのセットを含む、非一時的なコンピューター可読媒体を提供する。プログラムは、ICMP(Internet Control Message Protocol)メッセージをそれぞれの外部処理ノードに送信して、それぞれのICMPメッセージに対応する応答時間に基づいてそれぞれの外部処理ノードを応答ノードまたは非応答ノードのいずれかであるとして分類して、要求ノードによって提出されたビデオ処理要求を満たす能力を有する応答ノードを識別して、除外した応答ノードの第1のセットを決定して、ここで、事前に定義された第1の時間間隔の間に、第1のセットの各々の除外した応答ノードに対する計算負荷は、第1の閾値を超えており、除外した応答ノードの第2のセットを決定して、ここで、先行する時間間隔の間に、要求ノードから除外した第2のセットの各々の応答ノードによって受信したビデオ処理要求の数は、第2の閾値を超えており、識別されたノードが除外した応答ノードの第1のセットおよび第2のセットのうちの一部を形成しない場合に、ビデオ処理要求を満たすために識別されたノードを選択して、処理のために選択された識別ノードに伝送パッケージを送信して、およびバイナリ応答を受信して要求ノードに伝送するように構成される。
【図面の簡単な説明】
【0008】
上記概要は、以下の発明を実施するための形態と同様に、添付の図面と併せて読んだ場合によりよく理解される。本開示を説明するための目的であり、本開示の例示的な構造は、図面で図示される。しかしながら、本開示は、本明細書で開示される具体的な方法および手段に限定されることはない。さらに、当業者は、図面が正確な縮尺ではないということを理解することとなる。どこであっても可能な限り、類似した要素は、同一の番号で示される。
【0009】
【
図1】環境を図示し、ここで、本開示のさまざまな実施形態は、実施されることが可能である。
【
図2】本開示の実施形態に従って、ビデオ処理ノードと外部処理ノードとの間の負荷を共有することを図示する。
【
図3A】本開示の実施形態に従って、処理ノードのネットワークにおけるスマートトラフィック制御の実装を用いる負荷分散の方法を図示するフロー図である。
【
図3B】本開示の実施形態に従って、処理ノードのネットワークにおけるスマートトラフィック制御の実装を用いる負荷分散の方法を図示するフロー図である。
【0010】
添付の図面において、下線を引いた番号は、下線を引いた番号が位置する項目、または下線を引いた番号が隣接する項目を表現することに採用される。下線を引いていない番号は、線によって下線を引いていない番号を項目と結び付けることで識別された項目に関連する。番号が下線を引いておらず、且つ関連する矢印によって付随する場合に、下線を引いていない番号は、矢印が向いている一般的な項目を識別することに用いられる。
【発明を実施するための形態】
【0011】
添付の図面の詳細な図面は、本開示の現在の好適である説明として意図されるものであり、本開示が実施され得る形態だけを表現するために意図されるものではない。同一または均等な機能は、本開示の精神および範囲内に包含されるために意図される異なる実施形態によって遂行され得ることが理解される。
【0012】
明細書および請求項において用いられるように、単数形の「a」、「an」、「the」は、文脈がそうでないと明らかに指示しない限り、複数の参照を含む。例えば、用語の「冠詞」は、文脈がそうでないと明らかに指示しない限り、複数の冠詞を含んでよい。
【0013】
当業者は、図面における要素が簡潔性および明確性のために図示されており、必ずしも正確な縮尺では描かれていないことを理解することとなる。例えば、要素のある寸法は、本開示の理解を改善すべく、他の要素に対して誇張されていることがある。
【0014】
説明される図面のうちの1つに表現されていない前述の出願において説明されるさらなる構成要素であってよい。このような構成要素が説明される事象ではあるが、図面には表現されていないこのような図面の欠如は、明細書からのこのような設計の省略としてみなされるべきではない。
【0015】
要求されるように、本開示の詳細な実施形態は、本明細書で開示されるが、開示された実施形態は、単に開示の例示であり、これは、さまざまな形態で具現化されることが可能であるということを理解される。それ故に、本明細書で開示される具体的な構造および機能的な詳細は、事実上任意の適切な詳細な構造において、限定として解釈されるのではなく、単に請求項の基盤として、および当業者の教示の代表的な基盤として本開示をさまざまに採用する。さらに、本明細書で用いられる用語および表現は、限定されるために意図されるのではなく、むしろ本開示の理解可能な説明を提供する。
【0016】
以下の詳細な説明は、本開示の実施形態および実装されることが可能である方法を説明する。本開示を実行することの最もよいモードが開示されているが、当業者は、実行するための他の実施形態または本開示を実施することも可能であるということを認識することとなる。
【0017】
図1は、環境100を図示し、ここで、本開示のさまざまな実施形態は、実施されることが可能である。環境100は、カメラ101、ビデオ処理ノード102、第1の外部処理ノード103a~第3の外部処理ノード103c、および負荷分散サーバー104を含み、それぞれが互いに通信ネットワーク105と通信可能に結合される。
【0018】
カメラ101は、リアルタイムで、特に小売店における1つまたは複数のオブジェクトのビデオ映像をキャプチャして格納するように構成される。本開示の実施形態において、カメラ101は、セルフ精算システム(SCO)を含む小売精算処理の1つまたは複数のビデオ映像の商品をキャプチャするように構成される。選択的に、カメラ101は、IP(Internet Protocol)カメラ、パンチルトズーム(PTZ)カメラ、熱画像カメラ、または赤外線カメラを含むが、これらに限定されない。
【0019】
ビデオ処理ノード102は、中央処理装置(CPU)106、およびメモリ107を含む。CPU106は、プロセッサ、コンピューター、マイクロコントローラー、またはさまざまなコンポーネントの動作を制御する他の回路であり、例えば、メモリなどの揮発性または不揮発性メモリ、またはそうでなければCPU106に提供されるソフトウェア、ファームウェア、および/または他の命令を実行してよい。CPU106は、1つまたは複数のシステムバス、ケーブル、または他のインターフェースのような有線または無線接続を通して、メモリ107に接続されてよい。
【0020】
カメラ101の動作を管理することにおけるCPU106によって用いられるための命令および/またはデータを格納することに加えて、メモリ107は、また、カメラ101の1つまたは複数のユーザーに関連付けられるユーザー情報を含んでよい。例えば、ユーザー情報は、認証情報(例えば、ユーザー名/パスワードの組)、ユーザーの好み、および他のユーザー固有の情報を含んでよい。CPU106は、このデータにアクセスして、メモリ107の動作に関連する(1つまたは複数の制御信号を伝送および/または受信する)制御機能の提供を支援し得る。
【0021】
通信ネットワーク105は、任意の適切な有線ネットワーク、無線ネットワーク、これらの組み合わせ、または本開示の範囲を限定することなく任意の他の従来のネットワークであってよい。例示は、ローカルエリアネットワーク(LAN)、無線LAN接続、インターネット接続、二地点間接続、または他のネットワーク接続、およびこれらの組み合わせを含んでよい。
【0022】
本開示の実施形態において、カメラ101は、小売店内で商品のビデオ映像を記録して格納するように構成されて、ビデオ処理ノード102は、小売店におけるあらゆる値札の貼り換え行為を検出するためにビデオ映像を処理するように構成される。詐欺師が第1の商品におけるバーコードまたは値札をより安い商品のそれと貼り換える値札の貼り換えは、詐欺行為である。ビデオ処理ノード102は、ユーザーによって運ばれた商品のバーコードがその商品に期待されるバーコードとマッチングするかを決定することによって、値札の貼り換え行為の自動検出および抑止を容易にする。本開示の実施形態において、ビデオ処理ノード102は、事前訓練された機械学習(ML)アルゴリズムを用いて、小売店における値札の貼り換え行為を自動的に検出するように構成される。
【0023】
本開示の実施形態において、第1の外部処理ノード103a~第3の外部処理ノード103cのそれぞれは、対応するビデオ処理ノード102が必要な画像処理能力を有さない場合に、カメラ101によってキャプチャされたビデオ映像の処理を助力するように構成される。それ故に、第1の外部処理ノード103a~第3の外部処理ノード103cの過度の処理能力は、ビデオ処理ノード102の負荷を処理することを共有することに用いられる。ビデオ処理ノード102によって実装される機械学習アルゴリズムは、計算的に要求が厳しいということを留意してよい。それ故に、1個のビデオ処理ノード102は、一連のビデオシーケンスに対する必要な処理をすべて着手することが可能ではない。ビデオ処理ノード102は、そのCPUおよび/またはGPUの使用が80%を超える場合に、重負荷であるとみなされる。ICMP(Internet Control Message Protocol)は、ネットワークの問題がIPパケットの分散を妨げる場合に、ルーターのようなネットワークデバイスが、送信元IP(Internet Protocol)アドレスへのエラーメッセージを生成することを用いるエラー報告プロトコルである。この場合において、ビデオ処理ノード102からのICMP応答は、中央処理装置(CPU)および/またはグラフィックスプロセッシングユニット(GPU)の使用などの現在時刻の指標にカスタマイズされることが可能である。
【0024】
さらに、画像処理行為に対する具体的な制約は、3秒またはそれより短い応答時間であるということである。要求される3秒より短い応答時間を達成するために、負荷分散サーバー104は、負荷バランシングを有効にして、およびネットワーク特性、ノード使用、およびネットワーク障害を考慮して、ビデオ処理ノード102のネットワーク、第1の外部処理ノード103a~第3の外部処理ノード103cの中で負荷を分散するように構成される。
【0025】
本開示の実施形態において、本発明の少なくとも2つの実施可能な実装があり、つまり、基本的な実装およびスマートトラフィック制御の実装である。基本的な実装に従って、ビデオ処理ノード102のような要求ノードは、最も地理的に近接した外部処理ノードのIPアドレスのハードコーディングされたリストを含む。ビデオ処理ノード102は、伝送パッケージを最も近接した外部処理ノードに伝送して、検出または値札の貼り換え行為を意味する応答を待つ。工学的な簡潔性の利点を所有する一方で、基本的な実装は、ネットワーク内のトラフィック負荷に敏感ではなく、それは(フェイルオーバー保護を提供するために)ネットワークの脆弱性の問題に対処することもしない。スマートトラフィック制御の実装は、
図3Aおよび
図3Bを参照して詳細に説明されている。
【0026】
とはいえ、第1の外部処理ノード103a~第3の外部処理ノード103c、および負荷分散サーバー104の詳細な構造は、図示されておらず、それぞれがプロセッサおよびメモリを含んでよく、ビデオ処理ノード102のそれと同様であるということは、当業者にとって明らかとなることとなる。
【0027】
さらに、1個のビデオ処理ノード102、および3個の外部処理ノード103a~103cだけが簡潔にするために図示されるが、これらの数が変化し得るということは、当業者にとって明らかとなることとなる。
【0028】
本開示の実施形態に従って、
図2は、ビデオ処理ノード102と第1の外部処理ノード103aとの間の負荷を共有することを図示する。ビデオ処理ノード102のような要求ノードは、処理のために伝送パッケージを第1の外部処理ノード103aに送信する。伝送パッケージは、記録されたビデオ映像の商品、および関連する商品の周知の統一商品コード(UPC)を含むペイロードを含む。記録されたビデオ映像は、スキャニング処理の間に、カメラによってある解像度(例えば、高解像度(HD)またはフル高解像度(FHD))でキャプチャされた一連のビデオフレームである。UPCは、小売業者商品コード(例えば、「042100005264」)を表現するテキスト情報である。
【0029】
第1の外部処理ノード103aは、適切なMLアルゴリズムに基づいて、記録されたビデオ映像を処理して、バイナリ結果をビデオ処理ノード102に戻す。ある例示において、バイナリ結果の「1」は、記録されたビデオ映像における値札の貼り換え行為が検出されたということを示すのに対して、バイナリ結果の「0」は、記録されたビデオ映像における値札の貼り換え行為が検出されなかったことを示す。本開示の実施形態において、多様なMLモデルは、記録されたビデオ映像(またはそこからの画像)を処理するために訓練される。それぞれのMLモデルは、商品の画像を1つまたは複数の事前に定義された分類へと分類することが可能であるモデルベースの任意の畳み込みニューラルネットワーク(CNN)であってよい。ビデオ処理ノード102は、記録されたビデオ映像における統一商品コード(UPC)に基づいて、どのMLが用いられるかを決定してよい。
【0030】
図3は、本開示の実施形態に従って、処理ノードのネットワークにおけるスマートトラフィック制御の実装を用いる負荷分散の方法300を図示するフロー図である。あるステップは、
図1に図示されるように、システムに関して説明されてよい。
【0031】
ステップ302で、負荷分散サーバー104は、外部処理ノードの事前に定義されたサブセットから要求ノード(発信元ノードとしても周知である)に対する外部処理ノードのサブセットを決定してよい。本開示の実施形態において、ビデオ処理ノード102は、要求ノードであってよく、要求ノードは、以下要求ノード102と称されてよく、サブセットは、第1、第2、および第3の外部処理ノード103a~103cを含む。さらに、サブセットは、事前に定義されたサイズであってよい。簡潔にするために、決定されたサブセットは、以下「外部プロセッサプール」と称される。外部プロセッサプールは、ビデオ処理ノード102に最も近接した外部処理ノードを含む。ある例示において、20個の外部処理ノードがあり、このうちの6個がビデオ処理ノード102に近接している場合、外部プロセッサプールは、これらの6個の外部処理ノードを含んでよい。本開示の文脈において、外部プロセッサプールは、システムが設計されて取り付けられて、カメラ101との直接接続を有する必要がない場合に、手動で構成される。
【0032】
ステップ304で、要求ノード102は、ICMPメッセージを外部プロセッサプールのそれぞれの外部処理ノード103a~103cに送信する。これに応答して、要求ノード102は、それぞれの外部処理ノード103a~103cから応答を受信する。ICMPメッセージは、コンピューターのネットワークにおいて広く用いられ、基本的な通信パラメーターをリモートコンピューターを用いて認証する。プロトコルは、拡張されることが可能であることによって、拡張されたメッセージは、外部処理ノードに対する現在の負荷のような追加の情報を含む。
【0033】
ステップ306で、負荷分散サーバー104は、要求ノード102へのそれらの応答時間に基づいて1つまたは複数の応答ノードを選択する。本開示の実施形態において、要求時間間隔以内で要求ノードに応答しない外部処理ノードは、「非応答ノード」と称される。非応答ノードは、ネットワークの問題のため、非応答または遮断していることがある。同様に、要求時間間隔以内で要求ノードに応答する外部処理ノードは、以下「応答ノード」と称される。ある例示において、ステップ302で選択されたサブセットの6個の外部処理ノードの中から、3個の外部処理ノードは、応答していることが決定されてよいのに対して、3個の外部処理ノードは、応答していないことが決定されてよい。本開示の文脈において、選択ステップ306に対する時間間隔の閾値は、処理ネットワークの負荷テストの後のシステム実装段階の間に、事前に構成されてよい。ある例示において、時間間隔の閾値は、1秒であってよい。
【0034】
ステップ308で、負荷分散サーバー104は、それらの応答時間に従って、応答ノードをランク付けする。ある例示において、第1の外部処理ノード103aは、最短の応答時間で第1にランク付けされてよく、第3の外部処理ノード103cは、第2にランク付けされてよく、第2の外部処理ノード103bは、第3にランク付けされてよい。本開示の実施形態において、非応答ノードの識別子(IPアドレス)も決定されてよい。負荷分散サーバー104は、IPアドレス(識別子)の静的リストを有しており、外部処理ノードのIPアドレスを動的に発見するための処理は存在していない。
【0035】
ステップ310で、負荷分散サーバー104は、第1の外部処理ノード103aのような最も速い応答ノードが要求ノード102から記録されたビデオ映像を処理することが可能であるかを問い合わせることができる。本開示の実施形態において、それぞれの外部処理ノードからのICMP応答は、CPUおよび/またはGPUの使用のような現在時刻の指標にカスタマイズされることが可能である。外部処理ノードの使用がある閾値(例えば、80%)を超える場合、その外部処理ノードは、重負荷であるとみなされる。それ故に、問題になっている外部処理ノードは、記録されたビデオ映像を処理することが可能ではない。
【0036】
ステップ312で、負荷分散サーバー104は、第1にランク付けされた応答ノードが記録されたビデオ映像を処理することが可能ではない場合に、それが記録されたビデオ映像を処理することが可能であるか、次の応答ノード(つまり、第2にランク付けされたノード)を問い合わせる。本開示の実施形態において、負荷分散サーバー104は、応答ノードから肯定応答を受信するまで、残っている応答ノードを継続して問い合わせる。
【0037】
ステップ314で、負荷分散サーバー104は、事前に定義された日の要求ノード102から受信した要求に基づいて、最も適切な外部処理ノードを識別する。要求は、対応する外部処理ノードの周期的な計算負荷プロファイルを査定することによって査定されてよい。本開示の実施形態において、ヒストグラムは、個々の小売店内のトラフィックの履歴分析から外部プロセッサプール内のそれぞれの外部処理ノードの日々の計算負荷プロファイルを示すように規定される。例えば、異なる位置における店舗は、ビジネス上の異なるパターンを示すことがあり、例えば、観光区域における店舗は、比較的均一/不変のビジネスプロファイルを示すことがあるのに対して、ショッピングモール内にある店舗は、顧客がショッピングにより多くまたはより少なく費やす場合、通常の業務時間または学校時間に対応するビジネス上のピークおよび谷を示すことがある。同様に、地理的に近接した店舗は、個々の時間帯の境界が近い場合、それにもかかわらず、異なる時間帯であってもよい。それ故に、店舗は、1時間でシフトされたビジネス時間プロファイルを示すことが可能である。負荷分散サーバー104は、(例えば、スマートトラフィックを実装して)これまでの年から具体的な日に対するトラフィックの履歴分析を用いて、または本日からの応答を分析することによって最近の負荷パターンを用いて、最も適切な外部処理ノードを識別する。
【0038】
本開示の別の実施形態において、内部クロックを用いて、要求ノード102は、それ自身の記録に問い合わせしてよく、事前に定義される時間間隔の間に、計算負荷が第1の閾値Th1を超えているそれらの応答ノードを識別する。計算負荷が第1の閾値Th1を超える場合に、要求ノード102は、事前に定義される時間間隔の間に、処理するために記録されたビデオ映像を送信しない。本開示の実施形態において、事前に定義される時間間隔の間に、計算負荷が第1の閾値を超える応答ノードは、以下「予想された負荷の除外した外部ノード」と称される。本開示の文脈において、「予想された負荷の除外した外部ノード」は、以下除外したノードの第1のセットと称されてもよい。
【0039】
本開示のさらに別の実施形態において、要求ノード102は、前に送信されたその日のビデオ処理要求を有する外部処理ノードの履歴記録を保持してよい。直近の先行する時間間隔以内で、要求ノードによって所与の外部処理ノードに送信されたビデオ処理要求の数が第2の閾値を超える場合、対応する外部処理ノードは、外部プロセッサプールから除外される。簡潔にするために、除外されたノードは、以下「事前使用の除外した外部処理ノード」と称される。本開示の文脈において、「事前使用の除外した外部ノード」は、以下除外したノードの第2のセットと称されてもよい。
【0040】
ある例示において、負荷分散サーバー104は、事前に定義されたルールを用いて、第1の外部処理ノード103aを要求ノード102に対して最も適切な外部処理ノードとして識別する。事前に定義されたルールは、予想された負荷の除外した外部ノードと事前使用の除外した外部処理ノードのどちらでもない最も速い応答外部処理ノードを識別することを含む。
【0041】
ステップ316で、要求ノード102は、処理するために識別された第1の外部処理ノード103aに伝送パッケージを送信する。伝送パッケージは、記録されたビデオ映像の商品、および関連する商品の周知のバーコードを含むペイロードを含む。第1の外部処理ノード103aは、適切なMLモデルに基づいてビデオ映像を処理する。MLモデルの例示は、畳み込みニューラルネットワーク(CNN)である。ビデオ映像の処理は、MLモデルを通してビデオ映像を推論することを意味する。推論は、この場合において、出力を生成すべく、入力がMLモデルによって消費されるプロセスであり、決定は、記録されたビデオ映像における値札の貼り換えが検出されたか、否かについてである。
【0042】
ステップ318で、バイナリ結果は、要求ノード102に戻される。ある例示において、バイナリ結果の「1」は、記録されたビデオ映像における値札の貼り換え行為が検出されたということを示すのに対して、バイナリ結果の「0」は、記録されたビデオ映像における値札の貼り換え行為が検出されなかったことを示す。
【0043】
スマートトラフィック制御の実装の利点は、ネットワーク内の故障に対するそのロバスト性、およびビデオ処理要求(つまり、伝送パッケージ)をそれに応じて別のルートにするその能力を含む。さらなるスマートトラフィック制御の実装の利点は、その日の所与の時間で、関連するホストする店舗内のビジネス行為から生じる所与の外部処理ノードに対する計算負荷における変動および予想される変動に対するロバスト性および順応性を含む。
【0044】
当業者によって理解されることとなるように、方法は、汎用または専用コンピューター(つまり、機械)のようなプロセッサベースのシステムに対する適切なコードによって実装されてよい。また、本技術の異なる実装が異なる順序または実質的に同時に、つまり平行して本明細書で説明されるいくつかまたはすべてを実行してよいということに留意されたい。さらに、機能は、さまざまなプログラミング言語で実装されてよい。このようなコードは、当業者によって理解されることとなるように、格納のために、メモリチップ、ローカルもしくはリモートハードディスク、光ディスク、または他の媒体、これは、プロセッサベースのシステムにアクセスされてよく、格納されたコードを実行するような1つまたは複数の有形の非一時的な機械可読媒体に格納、または順応されてよい。有形の媒体は、命令が印刷されている紙または別の媒体を含んでよいということに留意されたい。例えば、命令は、紙または他の媒体の光学スキャニングを介して電子的にキャプチャされてよく、次にコンパイルされるか、解釈されるか、またはそうでなければ、必要に応じて適切な手段で処理されて、次にコンピューターメモリに格納される。
【0045】
前述において説明される本開示の実施形態の変更は、添付の請求項によって定義される本開示の範囲から逸脱することなく可能である。本開示を説明または主張することに用いられる「含んでいる」、「備えている」、「組み込まれている」、「構成されている」、「有する」、「である」などの表現は、非排他的な手段で解釈されることが意図され、つまり、明確に説明されていない項目、コンポーネント、または要素も存在することを可能とする。単数への言及は、また複数に関連すると解釈される。
【国際調査報告】