(57)【要約】【課題】ニューラルネットワークをトレーニングするための方法、コンピュータプログラム製品、およびデバイスを提供すること。【解決手段】本発明は一般に、画像データを処理して、処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成されるニューラルネットワークをトレーニングするための方法、デバイス、およびコンピュータプログラム製品に関する。トレーニングは、参照ニューラルネットワークからの特徴ベクトルをグラウンドトルースとして使用して実施される。本発明はさらに、デバイス上で動作しているニューラルネットワークによって出力された特徴ベクトルを使用して物体を追跡するための、デバイスシステムに関する。【選択図】図３
2018139103.tif 000002
【特許請求の範囲】
【請求項１】
画像データ（１０２、３１０）を処理して、前記処理された画像データについての特徴ベクトル（１０６）を形成する値（１０６ａ−ｄ）からなるベクトルを出力するように構成される第１のニューラルネットワーク（１０４）をトレーニングするための、コンピュータにより遂行される方法であって、
参照特徴ベクトル（３０６）を取得（Ｓ５０８）するステップであって、前記参照特徴ベクトルが、第１のトレーニング画像（３１０）を参照ニューラルネットワーク（３０２）によって処理することによって計算され、前記参照ニューラルネットワークが、画像データを処理して、前記処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成される、取得するステップと、
コスト関数（３０８）を最適化するように前記第１のニューラルネットワークをトレーニング（Ｓ５１０）するステップであって、前記コスト関数が、前記参照特徴ベクトルと、前記第１のトレーニング画像を処理する際に前記第１のニューラルネットワークによって出力された特徴ベクトルとの間の第１の距離尺度を少なくとも含み、前記コスト関数が、前記第１の距離尺度を最小化するように適合され、前記第１のニューラルネットワークと前記参照ニューラルネットワークが、異なるタイプのニューラルネットワークである、トレーニングするステップと
を含む、方法。
【請求項２】
前記第１のニューラルネットワークが、第１のビット幅を含む内部数表現、および第１のネットワークアーキテクチャを有し、前記第２のニューラルネットワークが、第２のビット幅を含む内部数表現、および第２のネットワークアーキテクチャを有し、前記第１のビット幅が前記第２のビット幅とは異なり、かつ／または前記第１のネットワークアーキテクチャが前記第２のネットワークアーキテクチャとは異なる、請求項１に記載の方法。
【請求項３】
前記参照ニューラルネットワークが、トリプレットベースのコスト関数を使用してトレーニングされており、前記トリプレットベースのコスト関数が、同じ区分または識別（６０２〜６０６）の１対の入力画像を別の区分または識別（６０２〜６０６）の第３の入力画像と、前記同じ区分または識別の前記１対の入力画像間の第１の距離と、前記同じ区分または識別の前記１対の入力画像のうちの一方と前記第３の入力画像との間の第２の距離との間の差が、少なくとも距離マージン（アルファ（α））となるように、分離することを目的としており、前記コスト関数を最適化するように前記第１のニューラルネットワークをトレーニングする前記ステップが、前記第１の距離尺度を少なくともアルファを４で割った商まで低減させることを含む、請求項１または２に記載の方法。
【請求項４】
参照特徴ベクトルを取得する前記ステップが、前記第１のトレーニング画像を前記参照ニューラルネットワークに送信すること、前記第１のトレーニング画像を前記参照ニューラルネットワークによって処理（Ｓ５０４）すること、および前記参照ニューラルネットワークから、前記出力された特徴ベクトルを取得することを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
参照特徴ベクトルを取得する前記ステップが、前記第１のトレーニング画像と関係のあるデータ（３１０’）を、特徴ベクトルと参照ベクトルごとの識別子とを備えるデータベース（３０４）内での識別子として使用すること、ならびに前記識別子に対応する前記特徴ベクトルを前記データベースから取得（Ｓ５０６）することを含む、請求項１から３のいずれか一項に記載の方法。
【請求項６】
請求項１から５のいずれか一項に記載のステップを、複数のトレーニング画像について反復（Ｌ１）することを含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記第１のニューラルネットワークをバージョン番号（４１０）と関連付けるステップであって、前記バージョン番号が、前記第１のニューラルネットワークが前記参照ニューラルネットワークからの参照特徴ベクトルを用いてトレーニングされたときの前記参照ニューラルネットワークのバージョン番号を反映している、ステップ
をさらに含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
処理能力を有するデバイスによって実行されると請求項１から７のいずれか一項に記載の方法を行うように構成された命令をもつコンピュータ可読記憶媒体を備える、コンピュータプログラム製品。
【請求項９】
画像データ（３１０）を処理して、前記処理された画像データについての特徴ベクトル（１０６）を形成する値（１０６ａ−ｄ）からなるベクトルを出力するように構成される第１のニューラルネットワーク（１０４）を備えるデバイス（４０４〜４０８）であって、
参照特徴ベクトル（３０６）を取得（Ｓ５０８）することであって、前記参照特徴ベクトルが、第１のトレーニング画像を参照ニューラルネットワーク（３０２）によって処理することによって計算され、前記参照ニューラルネットワークが、画像データを処理して、前記処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成される、取得することと、
コスト関数（３０８）を最適化するように前記第１のニューラルネットワークをトレーニング（Ｓ５１０）することであって、前記コスト関数が、前記参照特徴ベクトルと、前記第１のトレーニング画像を処理する際に前記第１のニューラルネットワークによって出力された前記特徴ベクトルとの間の第１の距離尺度を少なくとも含み、前記コスト関数が、前記第１の距離尺度を最小化するように適合され、前記第１のニューラルネットワークと前記参照ニューラルネットワークが、異なるタイプのニューラルネットワークである、トレーニングすることと
を行うような構成のプロセッサを備える、デバイス。
【請求項１０】
前記第１のニューラルネットワークが、第１のビット幅を含む内部数表現、および第１のネットワークアーキテクチャを有し、前記第２のニューラルネットワークが、第２のビット幅を含む内部数表現、および第２のネットワークアーキテクチャを有し、前記第１のビット幅が前記第２のビット幅とは異なり、かつ／または前記第１のネットワークアーキテクチャが前記第２のネットワークアーキテクチャとは異なる、請求項９に記載のデバイス。
【請求項１１】
前記デバイスが、第１のハードウェアアーキテクチャを有し、前記参照ニューラルネットワークが、前記第１のハードウェアアーキテクチャとは異なる第２のハードウェアアーキテクチャを有するデバイスによって実装される、請求項９または１０に記載のデバイス。
【請求項１２】
請求項１から７のいずれか一項に従ってトレーニングされた第１のニューラルネットワークをそれぞれが備えた複数のデバイス（４０４〜４０８）を備えるシステムであって、各デバイスがさらに、画像から物体を抽出して、前記抽出された物体の画像データを前記第１のニューラルネットワークを使用して処理し、かつ前記第１のニューラルネットワークから出力された特徴ベクトル（１０６）を送信するように構成され、前記システムがさらに、前記デバイスから特徴ベクトルを受信し、かつ前記デバイスシステムを通じて、前記受信した特徴ベクトルに少なくとも一部基づいて物体を追跡するように構成された、物体追跡ユニット（４０２）を備える、システム。
【請求項１３】
前記複数のデバイスの各々の前記第１のニューラルネットワークがさらに、バージョン番号（４１０）と関連付けられ、前記バージョン番号が、前記第１のニューラルネットワークがトレーニングされたときの前記参照ニューラルネットワークのバージョン番号を反映しており、前記複数のデバイスのうちのあるデバイスの前記第１のニューラルネットワークに関連付けられた前記バージョン番号が、前記第１のニューラルネットワークから出力された前記特徴ベクトルと一緒に送信され、前記物体追跡ユニットが、前記デバイスシステムを通じて、前記受信した特徴ベクトルおよび前記バージョン番号に基づいて物体を追跡するように構成される、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、画像データを処理して、処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成されるニューラルネットワークをトレーニングするための方法、デバイス、およびコンピュータプログラム製品に関する。本発明はさらに、デバイス上で動作しているニューラルネットワークによって出力された特徴ベクトルを使用して物体を追跡するための、デバイスシステムに関する。
【背景技術】
【０００２】
ニューラルネットワークをトレーニングする際、トレーニングおよびニューラルネットワーク（例えばニューラルネットワークのアーキテクチャなど）を取り巻く多くのさまざまな詳細が、ネットワークによって多次元空間がどのように形成されるかに影響を及ぼす。入力データをこの多次元空間上にマッピングすると、その特定の入力データについての特徴ベクトルが形成される。
【０００３】
ニューラルネットワークの目標は、類似の入力データ（すなわち、ニューラルネットワークが入力データの中のどのような類似性を識別するようにトレーニングされるかに応じて、同じアイデンティティまたは同じクラスに属する入力データ）が、その中で相互に近くにマッピングされるとともに、異なる入力データ（すなわち、異なるアイデンティティ／クラスに属する入力データ）が、互いに離れてマッピングされるような、多次元空間（超空間）をセットアップすることである。しかし、この多次元空間がどのように形成されるかは、例えば、
−  どのトレーニング入力データが使用されるか、またそれらがどの順序でネットワークに入力されるか、
−  使用されるニューラルネットワークのタイプ、どのような（損失関数または誤差関数としても知られる）コスト関数が実装されるか、ノード層の数、など、
−  トレーニングされる際にニューラルネットワークを動作させるデバイスのハードウェアアーキテクチャ、例えばそのハードウェアにおいて浮動小数点数がどのように丸められるか、乗算されるかなど、
−  入力データの圧縮、または計算スピードを上げるための他の最適化、
−  ネットワークの重みのランダムな初期化、
−  など
に応じて決まる。
【０００４】
さらに、ニューラルネットワークのトレーニングコスト関数（または最適化コスト関数）は多くの場合、ある種の確率関数を備えており、２つのニューラルネットワークのトレーニングを本質的に異なるものにしている。
【０００５】
これは、２つの異なるネットワークの独立したトレーニングが、同じトレーニング入力データを同じ順序で使用して全く同じように行われる場合であっても、ある特定の入力データについてあるニューラルネットワークによって生成された特徴ベクトルが、同じ入力データについて別のニューラルネットワークによって生成された特徴ベクトルと比較され得るという保証はない、ということを意味する。
【０００６】
したがって、この文脈の中での改善が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記に鑑みて、本発明の目的は、上で論じた欠点のうちの１つまたは複数を解決し、または少なくとも低減させることである。一般に、上記の目的は、添付の独立特許請求項によって達成される。
【課題を解決するための手段】
【０００８】
第１の態様によれば、本発明は、画像データを処理して、処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成される第１のニューラルネットワークをトレーニングするための方法であって、
参照特徴ベクトルを取得するステップであって、参照特徴ベクトルが、第１のトレーニング画像を参照ニューラルネットワークによって処理することによって計算され、参照ニューラルネットワークが、画像データを処理して、処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成される、取得するステップと、
コスト関数を最適化するように第１のニューラルネットワークをトレーニングするステップであって、コスト関数が、参照特徴ベクトルと、第１のトレーニング画像を処理する際に第１のニューラルネットワークによって出力された特徴ベクトルとの間の第１の距離尺度を少なくとも含み、コスト関数が、第１の距離尺度を最小化するように適合される、トレーニングするステップと
を含む、方法によって実現される。
【０００９】
「ニューラルネットワーク」という用語とは、本明細書の文脈では、脳内の膨大なニューロン回路網に端を発する、相互接続されたノード群と理解されたい。ニューラルネットワークは、「人工ニューラルネットワーク」（ＡＮＮ）という名で呼ばれることもある。「深層学習」という用語も一般に使用されている。この文脈において使用され得る特定のタイプのニューラルネットワークは、畳み込みニューラルネットワーク（ＣＮＮ）であるが、他の任意のタイプのフィードフォワードニューラルネットワーク（ＦＮＮ）が使用されてよい。再帰型ニューラルネットワーク（ＲＮＮ）やディープビリーフネットワーク（ＤＢＮ）など、他のタイプが使用されてもよい。
【００１０】
「特徴ベクトル」という用語とは、本明細書の文脈では、ニューラルネットワークのトレーニングの間にニューラルネットワークが解析を実施することによって設計された、多次元空間内のベクトルと理解されたい。空間内の次元は、ニューラルネットワークが経験した視覚的特徴を、識別または区分トレーニングの間に最も有用なものとして表すものなので、最も一般には、人間は空間内の次元を把握することができない。この文脈では、したがって、（外観ベクトルとしても知られる）特徴ベクトルが、ニューラルネットワークが処理した画像データ内の例えば物体の、視覚的外観を表す。多次元空間は、類似種の入力データをクラスタ化し、異種の入力データを分離するように、設計されている。ニューラルネットワークがどのような意図で設計されたかに応じて、「類似種」と「異種」は異なるものを意味する。監視意図で設計されたニューラルネットワークにとって最も一般的なケースは、ニューラルネットワークによって処理された画像内の物体（例えば人物）の識別を実施することである。この文脈では、類似種の入力データとは、同じアイデンティティの人物を含む入力データを意味し、一方、異種の入力データとは、異なるアイデンティティの人物を含む入力データを意味する。ニューラルネットワークはこの場合、人物を識別するように、また同じアイデンティティの人物を示す入力データを、例えば画像が異なる角度から撮られていた、などの場合であってもクラスタ化するように、設計される。他の実施形態では、ニューラルネットワークは、同じクラスの入力データをクラスタ化するように（いくつかの共通の関係または属性による、クラス、順序、系列などとしての群への分配）、例えば同じ品種の犬をクラスタ化するように、または例えば車を自転車と分離するように、トレーニングされている。この文脈では、類似種の入力データとは、同じクラスの物体を含む入力データを意味し、一方、異種の入力データとは、異なるクラスの物体を含む入力データを意味する。換言すれば、その狙いは、ネットワークがトレーニングされた解析タスクに関連する、例えば人物の再識別に関連する、視覚的外観の態様の特徴付けを、特徴ベクトルにさせることである。特徴ベクトルは、個々の間の不変の態様を含有し、それにより、２つの画像が同じ人物を描いているか否かを伝えることが可能になっており、ただし、例えば姿勢／角度、照明の差、画像の鮮明さなどによる外観の差への依存性は、特徴ベクトル内で可能な限り抑えられている。
【００１１】
ニューラルネットワークの文脈では、そのようなネットワークはコスト関数を使用してトレーニングされ、このコスト関数を、学習プロセスが最適化しようと試みる（多くの場合、最小化しようと試みるが、コスト関数は最大化されるように設計されることもある）。一般に、ニューラルネットワークは、上述したようなユーザのニーズに従ってデータを処理するようにトレーニングされる必要がある。ニューラルネットワークは、コスト関数に関する性能を最適化するようにトレーニングされるべきである。ニューラルネットワークのトレーニングの間、学習アルゴリズムは、コスト関数の勾配に依拠して、コスト関数の最小値（または最大値）を見い出す。見い出された最小値は、場合によっては、局所的最小値である可能性がある。そのため、本実施形態のこの文脈では、参照特徴ベクトルと第１のニューラルネットワークによって出力された特徴ベクトルとの間の距離尺度が大きい場合、コストが大きく、（コスト関数の勾配に従って）コストをより小さくするように、第１のニューラルネットワークの重みが更新される。
【００１２】
上述したように、ニューラルネットワークをトレーニングする際、トレーニングおよびニューラルネットワークの設計／アーキテクチャを取り巻く多くのさまざまな詳細が、ネットワークによって多次元空間がどのように形成されるかに影響を及ぼす。入力画像データごとの出力特徴ベクトルの値は、空間がどのように形成されるかに応じて決まる。
【００１３】
本発明者らは、本実施形態を用いると、異なるデバイス上に実装されたニューラルネットワークによって処理された画像データからの特徴ベクトルが、例えばデバイスのハードウェアのアーキテクチャ、またはニューラルネットワークのアーキテクチャが異なる場合であっても、比較され得ることに気付いた。これが可能であるのは、参照ニューラルネットワークからの出力が、ニューラルネットワークをトレーニングする際のグラウンドトルースとして使用されているためである。第１のニューラルネットワークを、（共通ニューラルネットワーク、第２のニューラルネットワークなどとも呼ばれ得る）参照ニューラルネットワークから出力された特徴ベクトル（すなわち参照特徴ベクトル）を使用してトレーニングすることによって、第１のニューラルネットワークの多次元空間が、参照ニューラルネットワークの多次元空間に向かって収束する。したがって、参照ニューラルネットワークは、本明細書で述べたようにトレーニングされた任意のニューラルネットワークに対して、正規化効果を有する。
【００１４】
本実施形態のさらなる利点は、第１のニューラルネットワークの実装、例えばニューラルネットワークのアーキテクチャ、ノード数、タイプの選択などが、参照ニューラルネットワークの具体的内容を考慮せずに、またはそれについて知ることなく行われ得る、ということである。さらに、複数の第１のネットワークが、互いのどのような詳細もなしに、または互いの存在を知ることさえなくトレーニングされ得、それでもなお、各ニューラルネットワークの多次元空間が類似しているので、比較可能な出力特徴ベクトルを生成することができる。
【００１５】
本実施形態のさらなる利点は、参照ニューラルネットワークが、例えば膨大な数のトレーニング画像を使用して所望の精度までトレーニングされ得、または非常に精度の高い結果を生成するように構成されたデバイス（「最良」アーキテクチャ）上に実装され得る、ということである。別の利点は、参照ニューラルネットワークのトレーニングについて、トレーニングが専用デバイス上でオフラインで、または第１のニューラルネットワークのトレーニングにずっと先立って行われ得るため、時間制約またはハードウェア制約が存在しない、ということであり得る。参照ニューラルネットワークは、プロプライエタリな秘密のまま保たれ得、公にされる必要がなく、第１のニューラルネットワークにとって参照特徴ベクトルのみがアクセス可能である必要がある。
【００１６】
いくつかの実施形態によれば、参照ニューラルネットワークは、トリプレットベースのコスト関数を使用してトレーニングされており、トリプレットベースのコスト関数は、同じ区分または識別の１対の入力画像を別の区分または識別の第３の入力画像と、同じ区分または識別の１対の入力画像間の第１の距離と、同じ区分または識別の１対の入力画像のうちの一方と第３の入力画像との間の第２の距離との間の差が、少なくとも距離マージン（アルファ）となるように、分離することを目的としており、コスト関数を最適化するように第１のニューラルネットワークをトレーニングするステップが、第１の距離尺度を少なくともアルファを４で割った商まで低減させることを含む。
【００１７】
「トリプレットベースのコスト関数」という用語とは、本明細書の文脈では、第１の区分または識別のものである物体を含む、（アンカーとしても知られる）第１の入力画像と、同じ区分または識別のものである物体を含む、（ポジティブとしても知られる）第２の入力画像との間の距離を、最小化または低減するための関数と理解されたい。トリプレットベースのコスト関数はさらに、第１の入力画像と、別の区分または識別のものである物体を含む、（ネガティブとしても知られる）第３の画像との間の距離が、入力画像のアンカー−ポジティブ対間の距離よりも少なくともアルファ分大きいことを成就すべきである。これは、アルファ値が、画像の特定のトリプレットについてアンカー−ネガティブ対間の距離がアンカー−ポジティブ対間の距離よりも少なくともアルファ分大きくなるように、アンカー−ポジティブ対間およびアンカー−ネガティブ対の分離差を生むために使用される、ということを意味する。アルファは常に正の数であることに留意されたい。トリプレットのアンカー−ポジティブ対間の距離とアンカー−ネガティブ対間の距離との間の差が、アルファよりも小さい場合、コスト関数は、差をアルファに向かって増大させるように、ニューラルネットワークの重みを変更する。アルファ距離マージンへの到達は、反復的なプロセスであり得ることにも留意されたい。トリプレットベースのコスト関数は、差がアルファに向かって増大するように重みを変更するが、アルファ距離マージンは、１回の反復において到達しない場合がある。トレーニングデータベース内のすべての画像についてのすべてのアルファ条件を満足させることは、反復的なプロセスであり、特定のトリプレットについてアルファ距離マージンが達成されず、特定のトリプレットがミーティングアルファマージンにわずかながらも近づくように重みを変更するためにコスト関数に基づいて計算される勾配。しかし、差がすでにアルファよりも大きい場合、コスト関数は、その特定のトリプレットについて、ニューラルネットワークの重みに影響を及ぼさない。よって、ニューラルネットワーク超空間内での、異なる区分または識別のものである画像データの分離が達成される。このアルファ値の詳細については、発表された論文、例えばＳｃｈｒｏｆｆ他（Ｇｏｏｇｌｅ  Ｉｎｃ．）による「ＦａｃｅＮｅｔ：Ａ  Ｕｎｉｆｉｅｄ  Ｅｍｂｅｄｄｉｎｇ  ｆｏｒ  Ｆａｃｅ  Ｒｅｃｏｇｎｉｔｉｏｎ  ａｎｄ  Ｃｌｕｓｔｅｒｉｎｇ」という論文に、開示されている。
【００１８】
第１のネットワークのトレーニングにおいてアルファ値を使用し、第１のニューラルネットワークの特徴ベクトルと参照ニューラルネットワークから取得した参照特徴ベクトルとの間の距離を、少なくともアルファ／４まで低減させることにより、第１のニューラルネットワークがいつ「十分良好」であるかについて、良好な値が提供され得、トレーニングが停止する可能性のある場合についても、アルファ／４という誤差はやはり、特定の区分の物体が参照ベクトルに比べて誤差があるにもかかわらず正しいクラス内に区分される、ということを意味するので、良好な値が提供され得る。これについては下で、図６、図７に関連してさらに解説する。この実施形態は、トレーニングのスピードを増大させることができる。いくつかの実施形態によれば、参照特徴ベクトルを取得するステップが、第１のトレーニング画像を参照ニューラルネットワークに送信すること、第１のトレーニング画像を参照ニューラルネットワークによって処理すること、および参照ニューラルネットワークから、出力された特徴ベクトルを取得することを含む。このようにして、参照ニューラルネットワークは、以前に第１のトレーニング画像を「見ている」、または第１のトレーニング画像に対してトレーニングされている必要がない。第１のトレーニング画像は、第１のニューラルネットワークの画像処理タスク（例えば地下鉄の駅で、またはオフィスビルの出入り口などにおいて取り込まれた画像を処理すること）に特定の画像とすることができる。次いで、第１のトレーニング画像が参照ニューラルネットワークによって処理され得、次いで、参照ニューラルネットワークが特徴ベクトルを、第１のニューラルネットワークが取得できるように戻す。
【００１９】
いくつかの実施形態によれば、参照特徴ベクトルを取得するステップが、第１のトレーニング画像と関係のあるデータを、特徴ベクトルを備えるデータベース内でのキーとして使用すること、およびキーに対応する値をデータベースから取得することを含む。この実施形態では、特定の画像セットが参照ニューラルネットワークによってすでに処理されており、結果として得られる特徴ベクトルが、対応する画像と関係のあるデータ（例えばハッシュ値など、画像のフィンガープリント）をキーとして使用してデータベース内に記憶されている。したがって、第１のニューラルネットワークのトレーニングは、トレーニング画像と関係のある前記データまたはオプションでトレーニング画像全体を、データベースに送り、データベースがオプションで、データベース内でキーとして使用すべきデータ（例えばハッシュ値）を第１のニューラルネットワークから受信したデータから抽出すること、および参照ニューラルネットワークによってこれまでに生成された（すなわち第１のニューラルネットワークをトレーニングするためのグラウンドトルースである）特徴ベクトルを、データベースから取得することを含むことができる。この実施形態は、第１のニューラルネットワークをトレーニングする際の時間を節約することができ、いくつかの実施形態によれば、トレーニング画像全体が送信される必要がないので、帯域幅も節約することができる。
【００２０】
いくつかの実施形態によれば、第１の距離尺度は、参照特徴ベクトルと第１のニューラルネットワークによって出力された特徴ベクトルとの間の、ユークリッド距離である。これは、計算コストのかからない距離尺度である。別法として、任意のｐ−ノルムメトリックまたは尺度など、他の距離尺度が使用されてもよい。
【００２１】
いくつかの実施形態によれば、第１のニューラルネットワークと参照ニューラルネットワークは、異なるタイプのニューラルネットワークである。例えば、異なるタイプのソフトウェアライブラリ（例えばＯｐｅｎ  Ｓｏｕｒｃｅ）、またはネットワークアーキテクチャが、使用されていてよい。そのようなネットワークアーキテクチャの例として、ＧｏｏｇＬｅＮｅｔ、ＡｌｅｘＮｅｔなどがある。ソフトウェアライブラリの例は、ＴｅｎｓｏｒＦｌｏｗ、Ｃａｆｆｅなどである。他の実施形態によれば、第１のニューラルネットワークおよび参照ニューラルネットワークは、異なる数量の層、各層内の異なる数量のノード、などを備える。「異なるタイプのニューラルネットワーク」という用語はさらに、第１のニューラルネットワークおよび参照ニューラルネットワークの内部数表現の点で異なるビット幅を包含し、第１のニューラルネットワークおよび参照ニューラルネットワークは、その他の点では同じネットワークアーキテクチャを有してよい。この用語はさらに、プルーニングされている（計算をスピードアップするためにいくつかの小さな重みがゼロに設定される）がその他の点では類似のネットワーク、またはその演算の一部に最適化された関数を使用する（例えば、より小さな精度誤差を生成することのできるいくつかのトリックを使用することによって最適化された畳み込みを行う、特定の関数を有する）ネットワークなどを包含する。
【００２２】
いくつかの実施形態によれば、第１のニューラルネットワークが、第１のハードウェアアーキテクチャを有するデバイスによって実装され、参照ニューラルネットワークが、第１のハードウェアアーキテクチャとは異なる第２のハードウェアアーキテクチャを有するデバイスによって実装される。一例として、第１のニューラルネットワークは、組み込みデバイス上で動作する非常に小さな整数ニューラルネットワークであってよく、一方、参照ニューラルネットワークは、クラウド内または専用のコンピューティングボックス上で動作する、大きな浮動小数点ネットワークである。
【００２３】
いくつかの実施形態によれば、これまでの実施形態のいずれかの実施形態のステップが、複数のトレーニング画像について反復される。
【００２４】
いくつかの実施形態によれば、方法は、第１のニューラルネットワークをバージョン番号と関連付けるステップであって、バージョン番号が、第１のニューラルネットワークが参照ニューラルネットワークからの参照特徴ベクトルを用いてトレーニングされたときの参照ニューラルネットワークのバージョン番号を反映している、ステップをさらに含む。この実施形態と同様のバージョン番号を使用すると、いつ第１のニューラルネットワークをアップグレードまたは再トレーニングする必要があるかを知ることが容易になり得る。
【００２５】
第２の態様では、本発明は、処理能力を有するデバイスによって実行されると第１の態様のいずれかの実施形態の方法を行うように構成された命令をもつコンピュータ可読記憶媒体を提供する。
【００２６】
第３の態様では、本発明は、画像データを処理して、処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成される第１のニューラルネットワークを備えるデバイスであって、
参照特徴ベクトルを取得することであって、参照特徴ベクトルが、第１のトレーニング画像を参照ニューラルネットワークによって処理することによって計算され、参照ニューラルネットワークが、画像データを処理して、処理された画像データについての特徴ベクトルを形成する値からなるベクトルを出力するように構成される、取得することと、
コスト関数を最適化するように第１のニューラルネットワークをトレーニングすることであって、コスト関数が、参照特徴ベクトルと、第１のトレーニング画像を処理する際に第１のニューラルネットワークによって出力された特徴ベクトルとの間の第１の距離尺度を少なくとも含み、コスト関数が、第１の距離尺度を最小化するように適合される、トレーニングすることと
を行うような構成のプロセッサを備える、デバイスを提供する。
【００２７】
第４の態様では、本発明は、第１の態様に従ってトレーニングされた第１のニューラルネットワークをそれぞれが備えた複数のデバイスを備えるシステムであって、各デバイスがさらに、画像から物体を抽出して、抽出された物体の画像データを第１のニューラルネットワークを使用して処理し、かつ第１のニューラルネットワークから出力された特徴ベクトルを送信するように構成され、システムがさらに、デバイスから特徴ベクトルを受信し、かつデバイスシステムを通じて、受信した特徴ベクトルに基づいて物体を追跡するように構成された、物体追跡ユニットを備える、システムを提供する。
【００２８】
上述したように、共通の参照ニューラルネットワークを使用して、トレーニング画像についての参照特徴ベクトルを提供し、これを他のニューラルネットワークのトレーニングに使用すると、トレーニングされたニューラルネットワークは、類似の多次元空間を生成するように導かれ、それによって、各ニューラルネットワークからの、ある特定の画像についての出力特徴ベクトルが、有意義に比較され得る（というのも、すべての特徴ベクトルが同じ、または非常に類似した、ベクトル空間内に存在するためである）。その結果として、（異なるデバイス上に実装された）異なるニューラルネットワークからの特徴ベクトルが、比較され得、したがって物体の追跡に使用され得る。
【００２９】
いくつかの実施形態によれば、複数のデバイスの各々のデバイスの第１のニューラルネットワークがさらに、バージョン番号と関連付けられ、バージョン番号は、第１のニューラルネットワークがトレーニングされたときの参照ニューラルネットワークのバージョン番号を反映しており、複数のデバイスのうちのあるデバイスのバージョン番号が、その第１のニューラルネットワークから出力された特徴ベクトルと一緒に送信され、物体追跡ユニットが、デバイスシステムを通じて、受信した特徴ベクトルおよびバージョン番号に基づいて物体を追跡するように構成される。
【００３０】
いくつかの実施形態によれば、複数のデバイスのうちの少なくとも１つは、ネットワークカメラであり、この場合、物体は、ネットワークカメラによって取り込まれた画像から抽出される。
【００３１】
いくつかの実施形態によれば、物体追跡ユニットは、複数のデバイスのうちの少なくとも１つ内に実装され、この場合、あるデバイスからの特徴ベクトルの送信は、マルチキャストまたはブロードキャスト送信を使用して遂行される。
【００３２】
いくつかの実施形態によれば、物体追跡ユニットは、複数のデバイスとは別のさらなるデバイス内に実装され、複数のデバイスの各々に接続される。
【００３３】
第２、第３、および第４の態様は一般に、第１の態様と同じ特徴および利点を有し得る。
【００３４】
上記、ならびに本発明の追加の趣旨、特徴、および利点は、類似の要素について同じ参照符号が使用される添付の図面を参照することによって、本発明の実施形態の以下の例示的および非限定的な詳細説明を通じてよりよく理解される。
【図面の簡単な説明】
【００３５】
【図１】入力画像を処理して、その入力画像を表す特徴ベクトルを出力する、ニューラルネットワークを示す図である。
【図２】２つの異なるニューラルネットワークによって処理された、２次元特徴空間内の２つの物体の特徴ベクトルを示す図である。
【図３】諸実施形態によるニューラルネットワークのトレーニングを示す図である。
【図４】画像によって取り込まれた物体の追跡に使用されるデバイスシステムを示す図である。
【図５】諸実施形態による、ニューラルネットワークをトレーニングするための方法を示す図である。
【図６】参照ニューラルネットワークの多次元空間内にマッピングされた同じ区別をもつ画像のクラスタ間の最小距離である距離マージンを示す図である。
【図７】第１のニューラルネットワークをトレーニングする際の、参照ニューラルネットワークのアルファ値の使われ方を示す図である。
【発明を実施するための形態】
【００３６】
図１は、例として、ニューラルネットワーク１０４の機能を示す。ニューラルネットワークを使用することは、ルールベースの手法がうまく機能しないことのある物体認識のようなコンピュータビジョン問題を解決する、良い方途となり得る。ルールベースの手法を使用して、（複雑な）物体の、別のタイプ（すなわちクラス）の他の物体に比べて際立った特徴を定義することは、特に、どのようなタイプの物体が認識され、互いに区別可能である必要があるのかが事前に分かっていないとき、困難な場合がある。ニューラルネットワークの強みの１つがここにある。ニューラルネットワークを用いて物体を識別または区分するとき、出力は特徴ベクトルとすることができる。これについては図１に示されており、図１では、入力画像１０２（または入力画像データ１０２）がニューラルネットワーク１０４によって処理される。ニューラルネットワークからの出力は、特徴ベクトル１０６である。図１の例では、特徴ベクトル１０６の次元数は４であるが、これは例にすぎない。特徴ベクトル１０６は、入力画像１０２内の物体の視覚的外観を表す。特徴ベクトル１０６は、ニューラルネットワーク１０４が解析を実施することによって設計された、多次元空間内のベクトルである。空間内の次元（この例では数は４であり、特徴ベクトル１０６内の値１０６ａ−ｄによってそれぞれが表現されている）は、ニューラルネットワーク１０４が経験した視覚的特徴を、ニューラルネットワーク１０４のトレーニングの間の、物体の識別または区分および異なるアイデンティティ／クラスの物体間の分離にとって最も有用なものとして表すものなので、最も一般には、人間にとって把握することができない。
【００３７】
しかし、上述したように、異なるニューラルネットワークは、同じ物体について（異なる比較不能の特徴空間内の）異なるタイプの特徴ベクトルを生み出すことがある。
【００３８】
図２は、例として、２つの異なるニューラルネットワークによって２次元空間内に作り出された、（図２に４角星およびダイヤモンドとして示される）２つの物体のマッピングを示す。この簡単な例では、２つのニューラルネットワークが、同じ次元数のベクトルを出力している。典型的にはこうであるが、２つの異なるニューラルネットワークによって異なる次元数のベクトルが出力されることがあり得る。多くの場合、ニューラルネットワークを使用して複雑な物体の良好な区分を達成するために、１００〜１０００次元が必要となる。図２では、話を簡単にするために２次元が使用されている。一方のニューラルネットワークは、図２の２次元空間内で、星２０２を左側（小さい方のｘ値）に、またダイヤモンド２０８を右側（大きい方のｘ値）に区分しており、一方、他方のニューラルネットワークは、星２０４を右側（大きい方のｘ値）に、またダイヤモンド２０６を左側（小さい方のｘ値）に区分している。２つのニューラルネットワークからの、２つの異なる物体についての特徴ベクトルが、物体を比較するために直接使用されるなら、第１のニューラルネットワークのダイヤモンドが、第２のネットワークの星と照合されることになり、逆も同様である。これは、（同じアイデンティティの、またはいくつかのそれほど典型的でない実施形態では同じクラスの）物体を監視システムを通じて追跡するために、（物体区分に使用される別々のニューラルネットワークをそれぞれが有する）異なる監視カメラ、ビデオエンコーダ、およびビデオサーバが使用されている監視システムにおいて、問題となり得る。
【００３９】
本開示は、この問題の解決策を提供する。要約すると、この問題は、ニューラルネットワークを参照ニューラルネットワークに照らしてトレーニングすることによって解決される。これについては次に、図３に関連して例示され、また図５に例示される。第１のニューラルネットワーク１０４（すなわちトレーニングすべきニューラルネットワーク）が、画像データ３１０を処理して、処理された画像データ３１０についての特徴ベクトル１０６を形成する値１０６ａ−ｄからなるベクトルを出力するように構成される。特定の入力画像データ３１０について出力された特徴ベクトル１０６を、異なるアーキテクチャを有する、または異なるトレーニング画像を使用してトレーニングされる、または仕様の異なるハードウェア上で動作するニューラルネットワークにとって比較可能となるように「強いる」ために、参照ニューラルネットワーク（第２のニューラルネットワーク）３０２がトレーニングに使用される。参照ニューラルネットワーク３０２は、所望の精度までトレーニングされるものと仮定される。第１のニューラルネットワーク１０４のトレーニングの間、例えば参照ニューラルネットワーク３０２の重みに対して、変更は実施されない。トレーニング画像３１０について、第１のニューラルネットワーク１０４は、特徴ベクトル１０６を計算する。さらに、第１のニューラルネットワーク１０４は、この特定のトレーニング画像３１０についてのグラウンドトルース（すなわち正しい特徴ベクトル）として使用される参照特徴ベクトル３０６を取得Ｓ５０８する。これは、トレーニング画像３１０についての参照特徴ベクトルを、例えばそのような参照特徴ベクトルを提供するサービス３１２に要求Ｓ５０２することによって行われ得る。いくつかの実施形態によれば、参照特徴ベクトル３０６を取得することは、第１のトレーニング画像３１０を参照ニューラルネットワーク３０２に送信することを含む。参照ニューラルネットワーク３０２は次いで、第１のトレーニング画像３１０を処理Ｓ５０４することができる。第１のニューラルネットワーク１０４は次いで、参照ニューラルネットワーク３０２から、出力された特徴ベクトル３０６（グラウンドトルース）を取得Ｓ５０８することができる。例えば、参照特徴ベクトルを提供するサービス３１２は、参照ニューラルネットワーク３０２によって参照特徴ベクトル３０６が出力されると、参照特徴ベクトル３０６を要求側ニューラルネットワーク１０４に送信することができる。この実施形態は、例えば、参照ニューラルネットワーク３０２が以前に処理していないトレーニング画像を用いた、第１のニューラルネットワーク１０４のトレーニングを、容易にすることができる。他の実施形態では、参照特徴ベクトル３０６を取得することは、第１のトレーニング画像３１０と関係のあるデータ３１０’を使用すること、およびこのデータ３１０’を、参照特徴ベクトルを提供するサービス３１２に送信することを含む。データ３１０’は、トレーニング画像３１０の任意のタイプの一意の識別子、例えば、トレーニング画像３１０全体、トレーニング画像３１０のハッシュ値、またはトレーニング画像３１０についての所定の識別子とすることができる。データ３１０’は次いで、データベース３０４内でトレーニング画像３１０についての参照特徴ベクトル３０６を検索するための、データベース３０４内でのキーとして使用され得る（オプションで、データ３１０’はサービス３１２において、データベースにとって正しいフォーマットであるように前処理され、この場合、前処理されたデータは依然として、第１のトレーニング画像３１０と関係のあるデータである）。データベース３０４にはこれまでに、参照特徴ベクトルと参照特徴ベクトルごとの識別子とが提供されており、ここで、参照特徴ベクトルは、参照ニューラルネットワーク３０２によって計算されたものである。この実施形態では、予め定義された画像セットが決定され、参照ニューラルネットワーク３０２によって処理されてから、第１のニューラルネットワークのトレーニングが（予め定義された画像セットからの画像をトレーニングに使用して）実施され得る。
【００４０】
参照特徴ベクトル３０６が取得されると、第１のニューラルネットワーク１０４が、参照ニューラルネットワーク３０２によって出力された特徴ベクトルに対して比較可能な特徴ベクトル１０６を出力するように、トレーニングされ得る。これは、（図３にＳ様シンボルによって概略的に表現された）コスト関数３０８を低減させることによって行われ、ここで、コスト関数３０８は、参照特徴ベクトル３０６と、第１のトレーニング画像３１０を処理する際に第１のニューラルネットワーク１０４によって出力された特徴ベクトル１０６との間の第１の距離尺度を少なくとも含む。したがって、コスト関数は、例えばニューラルネットワーク内のニューロン（ノード）間の重みを変更することによって、第１の距離尺度を最小化し、それによって出力特徴ベクトル１０６が参照特徴ベクトルにより近くなる（より比較可能になる）ように、適合される。そのようなコスト関数の詳細は、実装する当業者に委ねられるが、一般に、コスト関数は、第１の距離尺度が少なくとも局所的に最小化される、最小値または最大値に達するように最適化される。
【００４１】
したがって、第１のニューラルネットワークは、コスト関数を最適化するようにトレーニングされ、それによってコスト関数は、出力特徴ベクトル１０６と参照特徴ベクトル３０６との間の距離を最小化するように適合される。第１のニューラルネットワークからの特徴ベクトルと参照特徴ベクトルがどれだけ近くなり得るかという点での性能限界はあり得るが、ニューラルネットワークのトレーニングに上記の方法を使用することによって、同じ参照ニューラルネットワークに照らしてトレーニングされたすべてのニューラルネットワークが、何らかの信頼水準内の比較可能な特徴ベクトルを生じさせることができる。いくつかの実施形態によれば、参照ニューラルネットワークのトレーニングに関係するデータは、第１のニューラルネットワークのトレーニングに、妥当な信頼水準に至るまで使用され得る。具体的には、同じ識別または区分をもつ１対の入力画像および別の識別／区分をもつ第３の入力画像を使用したトレーニングを含むいわゆるトリプレットトレーニングを使用して、参照ニューラルネットワークがトレーニングされた場合、第１のニューラルネットワークをトレーニングする際に、そのようなトレーニングのためのいわゆる距離マージンが使用され得る。このタイプのトレーニングでは、ニューラルネットワークのコスト関数は、同じ識別／区分の１対の入力画像を前記別の識別／区分の第３の入力画像と、少なくとも、アルファとも呼ばれる距離マージンを用いて、分離することを目的とする。
【００４２】
図６、図７は、多次元空間内にマッピングされた同じ識別／区分をもつ画像のクラスタ間の最小距離を一部決定する距離マージンアルファαを概略的に表す。図６に見ることができるように、３つのクラスタ６０２〜６０６のいずれかの間の距離は、アルファα＋ｒ１／ｒ２／ｒ３である。値ｒ１は、ｍａｘ（クラスタ６０４内の最も隔たった特徴ベクトル間の距離，クラスタ６０６内の最も隔たった特徴ベクトル間の距離）に対応する。同じように、値ｒ２／ｒ３はそれぞれ、クラスタ６０２、６０４、および６０２、６０６の広がりに応じて決まる。上述の、トリプレットトレーニングを使用して参照ニューラルネットワークをトレーニングする方途によって、最終結果は、トリプレットのすべての組合せがアルファ要件を満たすことが見られる完全なシナリオにおいて、図６に表すようになり、ここで、ｒ１／ｒ２／ｒ３の距離は、画像のクラスタから選択されたトリプレットのすべての組合せが損失関数からゼロ誤差をもたらすような最小距離を表現している。そのような完全な、すなわち画像のクラスタから選択されたトリプレットのすべての組合せが損失関数からゼロ誤差をもたらすトレーニングは、ほとんど起こらないことに留意されたい。これは例えば、トリプレットのすべての組合せに対してトレーニングすることは、その組合せが単に多すぎることから実現可能ではないため、またいずれにせよ、それをうまく実施することの可能である状態にニューラルネットワークが常に収束することが可能であると保証できるとは限らないためである。しかし図６は、よくトレーニングされたネットワークの場合、第１のネットワークのトレーニングの精度に関するアルファ値の現在の議論にとって、十分良好な近似となるものと思われる。
【００４３】
したがって、クラスタ６０２〜６０６の分離は異なるが、すべてはアルファ値によって一部決定される。この実施形態では、コスト関数を最適化するように第１のニューラルネットワークをトレーニングＳ５１０するステップが、第１の距離尺度を少なくともアルファを４で割った商まで低減させることを含む。これは、特定の入力画像についての出力特徴が、正しい区分／識別を招く（すなわち、参照ニューラルネットワークを使用して区分／識別されるように、区分／識別される）ことが、依然として合理的に可能性のある、最小距離である。
【００４４】
図７は、簡単に、第１の距離尺度を少なくともアルファを４で割った商まで最小化するように第１のニューラルネットワークをトレーニングする値の背後にある、論理的根拠を示す。説明しやすくするために、図７では、各画像データが処理され、１次元空間にマッピングされており、すなわち、出力された特徴ベクトルは１つの値を備える。各クラスタ６０２、６０６について２つの特徴ベクトルが示されており、これらは、互いに最も遠くに離れているがそれでもなお同じアイデンティティ／クラスを有する特徴ベクトル、すなわち、各クラスタ６０２、６０６内の最も隔たった特徴ベクトルを表現している。左側のクラスタ６０２内の特徴ベクトル間の距離はしたがってｄ１であり、右側のクラスタ６０６内の特徴ベクトル間の距離はしたがってｄ２である。上述したように、多次元空間内の異なるアイデンティティ／クラスの最も近い２つの特徴ベクトル間の距離は、α＋ｍａｘ（ｄ１，ｄ２）である。図７に示すように、この分離は、第１のニューラルネットワークをトレーニングする際のいくらかのマージンを可能にし、それでもなお、関与する処理された画像データについて正しい識別／区分を生成する。マージンはこの場合、アルファ／４である。すべての特徴ベクトルが「誤った方向」にアルファ／４だけずれている、すなわち、それによって、同じクラスタ６０２、６０４内のサンプル（例えば、各サンプルについての特徴ベクトルを表現する図７の星）間の距離が増大し、かつ隣接するクラスタ内の「外側」サンプル間の距離が増大する場合、異なるアイデンティティ／クラスの最も近い特徴ベクトルはそれでもなお、同じクラスタ６０２、６０４内の互いに最も遠くに離れている特徴ベクトルよりも、互いに遠くに離れている。
【００４５】
上述したように、第１のニューラルネットワーク１０４をトレーニングするための方法を使用すると、たとえ第１のニューラルネットワーク１０４と第２のニューラルネットワーク３０２が例えば異なるタイプのニューラルネットワークであっても、それらから比較可能な特徴ベクトルが出力され得る。例えば、参照ニューラルネットワークは、第１のネットワークアーキテクチャを使用して実装されてよく、第１のニューラルネットワークは、異なるネットワークアーキテクチャを使用して実装されてよい。さらに、第１のニューラルネットワーク１０４をトレーニングするための方法を使用すると、たとえ第１のニューラルネットワーク１０４が第１のハードウェアアーキテクチャを有するデバイスによって実装され、参照ニューラルネットワーク３０２が、第１のハードウェアアーキテクチャとは異なる第２のハードウェアアーキテクチャを有するデバイスによって実装されても、第１のニューラルネットワーク１０４および第２のニューラルネットワーク３０２から比較可能な特徴ベクトルが出力され得る。したがって、このトレーニング方法は、例えば浮動小数点値を丸める異なる方途に対してロバストである。
【００４６】
第１のトレーニング画像が第１のニューラルネットワークのトレーニングに使用された後、（いずれかの実施形態による）上記の方法が、複数のトレーニング画像について反復（図５のＬ１）されてよい。
【００４７】
いくつかの実施形態によれば、第１のニューラルネットワーク１０４がバージョン番号と関連付けられ得、バージョン番号は、第１のニューラルネットワークがトレーニングされたときの参照ニューラルネットワーク３０２のバージョン番号を反映している。この実施形態は、ニューラルネットワーク間で特徴ベクトルが比較されるときに、同じバージョンの参照ニューラルネットワーク（すなわち参照ニューラルネットワーク３０２）がトレーニングに使用されていることを確実にするために使用され得る。そうでない場合は、特徴ベクトルの比較を行うことができない。
【００４８】
図４は、例として、本開示に従ってトレーニングされたニューラルネットワークをそれぞれが備えた複数のデバイス４０４〜４０８を備えるシステム４００を示す。したがって、システム４００は、ニューラルネットワークからの出力特徴ベクトルが比較され得るので、デバイス間での物体の追跡に使用され得る。例えば、各デバイスは、画像から物体を抽出して、抽出された物体の画像データを第１のニューラルネットワークを使用して処理し、かつ第１のニューラルネットワークから出力された特徴ベクトル１０６を送信するように構成され得る。いくつかの実施形態によれば、複数のデバイスのうちの少なくとも１つは、ネットワークカメラであり、この場合、物体は、ネットワークカメラによって取り込まれた画像から抽出される。
【００４９】
システム４００では、デバイスから特徴ベクトルを受信するように構成された物体追跡ユニット４０２が、デバイスシステムを通じて、受信した特徴ベクトル１０６に基づいて物体を追跡するために使用され得る。物体追跡ユニット４０２は、複数のデバイスのうちの少なくとも１つ内に実装され得、これは、物体追跡ユニット自体が、複数のデバイス４０４〜４０８に類似のデバイスであること、および物体追跡ユニット自体も、本明細書で述べたようにトレーニングされたニューラルネットワークを備える、ということを意味する。したがって、システム４００は、ピアツーピアネットワークまたは他の任意の適切なネットワークアーキテクチャとすることができる。この場合、複数のデバイス４０４〜４０８のうちのあるデバイスからの特徴ベクトル１０６の送信は、ユニキャスト、マルチキャスト、またはブロードキャスト送信を使用して遂行され得る。他の実施形態では、物体追跡ユニット４０２は、複数のデバイス４０４〜４０８とは別のさらなるデバイス内に実装され、複数のデバイス４０４〜４０８の各々に接続される。この実施形態では、物体追跡ユニット４０２は、物体の追跡の中央操作を容易にするために、サーバまたは類似物内に実装され得る。したがって、複数のデバイス４０４〜４０８と別途の物体追跡ユニット４０２との間での特徴ベクトルの送信は、専用送信（すなわち特徴ベクトル１０６の専用レシーバへの）とすることができる。
【００５０】
いくつかの実施形態によれば、複数のデバイスの各々のデバイスの第１のニューラルネットワークがさらに、バージョン番号４１０と関連付けられる。上述したように、バージョン番号は、第１のニューラルネットワークがトレーニングされたときの参照ニューラルネットワークのバージョン番号を反映している。この場合、複数のデバイス４０４〜４０８のうちのあるデバイスのバージョン番号４１０が、その第１のニューラルネットワークから出力された特徴ベクトル１０６と一緒に送信される。したがって、物体追跡ユニットは、デバイスシステムを通じて、受信した特徴ベクトルおよびバージョン番号に基づいて物体を追跡するように構成され得、同じバージョン番号をもつニューラルネットワークを有するデバイスから受信した特徴ベクトルのみが比較されることを確実にすることができる。
【００５１】
ある受信した特徴ベクトル１０６についてバージョン番号４１０が異なる場合、物体追跡ユニット４０２はその特徴ベクトルを無視することができる。他の実施形態によれば、物体追跡ユニットは、正しいバージョン番号がそのニューラルネットワークに関連付けられている別のデバイス４０４〜４０６、または例えば正しいバージョン番号と関連付けられたニューラルネットワークを実装したサーバに、誤ったバージョン番号をもつ特徴ベクトルの原因となっている画像データを再処理して、新たな特徴ベクトルを物体追跡ユニット４０２に送信するように、要求することができる。物体追跡ユニット４０２は、誤った（古い）バージョン番号をもつニューラルネットワークの更新（再トレーニング）をトリガし、かつ／またはそれに応じてデバイスにフラグをたてることもできる。
【図１】
2018139103.tif 000003
【図２】
2018139103.tif 000004
【図３】
2018139103.tif 000005
【図４】
2018139103.tif 000006
【図５】
2018139103.tif 000007
【図６】
2018139103.tif 000008
【図７】
2018139103.tif 000009
【外国語明細書】
2018139103000001.pdf
2018139103000002.pdf
2018139103000003.pdf
2018139103000004.pdf