(57)【特許請求の範囲】
【請求項１】
顔検出トレーニング方法であって、
反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには、異なるサンプルクラスの複数のトレーニングサンプルが含まれることと、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定することと、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定することと、
前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定することと、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出のトレーニング結果を出力することと、
を含み、
前記複数のトレーニングサンプルのサンプルクラスには、ポジティブクラスとネガティブクラスが含まれ、
前記した反復のバッチデータトレーニングサンプルを取得することは、
前回の反復のモデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する目標損失値を確定することと、
トレーニングサンプル集合におけるポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスのサンプルクラスのうち最大の目標損失値の第１の数のトレーニングサンプルを選択し、トレーニングサンプル集合におけるネガティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ネガティブクラスのサンプルクラスのうち最大の目標損失値の第２の数のトレーニングサンプルを選択し、前記第２の数に対する前記第１の数の比値が設定比例に対応することと、
ポジティブクラスのサンプルクラスから選択されたトレーニングサンプルと、ネガティブクラスのサンプルクラスから選択されたトレーニングサンプルとによって、今回の反復のバッチデータトレーニングサンプルを構成することと、
を含む、
ことを特徴とする顔検出トレーニング方法。
【請求項２】
前記方法は、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新して、次回の反復に進むこと、
をさらに含むことを特徴とする請求項１に記載の顔検出トレーニング方法。
【請求項３】
前記した前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定することは、
前記バッチデータトレーニングサンプルに対応する中心損失値、前記バッチデータトレーニングサンプルに対応する分類損失値、及び前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値に基づき、顔検出の目標損失値を確定すること、
を含むことを特徴とする請求項１又は２に記載の顔検出トレーニング方法。
【請求項４】
前記した前記バッチデータトレーニングサンプルに対応する中心損失値、前記バッチデータトレーニングサンプルに対応する分類損失値、及び前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値に基づき、顔検出の目標損失値を確定することは、
前記バッチデータトレーニングサンプルに対応する中心損失値と第１の設定重みとの積、前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値と第２の設定重みとの積、及び、前記バッチデータトレーニングサンプルに対応する分類損失値を合計して、顔検出の目標損失値を得ること、
を含むことを特徴とする請求項３に記載の顔検出トレーニング方法。
【請求項５】
前記した前回の反復のモデルでトレーニングサンプル集合における各トレーニングサンプルに対応する目標損失値を確定することは、
前回の反復のモデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値を取得し、その中、トレーニングサンプルに対応する分類損失値は、前記トレーニングサンプルに対応する分類予測確率と分類目標確率に基づき確定され、トレーニングサンプルに対応する顔枠座標回帰損失値は、前記トレーニングサンプルに対応する顔枠予測座標と顔枠目標座標に基づき確定されることと、
トレーニングサンプル集合における各トレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値に基づき、トレーニングサンプル集合における各トレーニングサンプルの目標損失値を確定することと、
を含むことを特徴とする請求項１に記載の顔検出トレーニング方法。
【請求項６】
前記バッチデータトレーニングサンプルに対応する分類損失値の確定処理は、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類予測確率と分類目標確率に基づき、前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値を確定することと、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値に基づき、前記バッチデータトレーニングサンプルに対応する分類損失値を確定することと、
を含むことを特徴とする請求項３に記載の顔検出トレーニング方法。
【請求項７】
前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値の確定処理は、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する顔枠予測座標を確定することと、
各トレーニングサンプルに対応する顔枠予測座標、及び各トレーニングサンプルに対応する顔枠目標座標に基づき、各トレーニングサンプルに対応する顔枠座標回帰損失値を確定することと、
各トレーニングサンプルに対応する顔枠座標回帰損失値に基づき、前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値を確定することと、
を含むことを特徴とする請求項３に記載の顔検出トレーニング方法。
【請求項８】
前記した各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定することは、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルの特徴ベクトル、及び前記バッチデータトレーニングサンプルにおける各サンプルクラスの中心特徴ベクトルを確定することと、
前記バッチデータトレーニングサンプルにおけるトレーニングサンプルに対して、前記トレーニングサンプルの特徴ベクトルと、前記バッチデータトレーニングサンプルにおける前記トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルとの距離を確定して、前記トレーニングサンプルに対応する中心損失値を得ることと、
を含むことを特徴とする請求項１に記載の顔検出トレーニング方法。
【請求項９】
前記した前記バッチデータトレーニングサンプルにおける各サンプルクラスの中心特徴ベクトルを確定することは、
サンプルクラスに対して、前記バッチデータトレーニングサンプルにおける前記サンプルクラスに属する各トレーニングサンプルを確定することと、
前記バッチデータトレーニングサンプルにおける前記サンプルクラスに属する各トレーニングサンプルの特徴ベクトルに基づき、前記サンプルクラスに属する各トレーニングサンプルの特徴ベクトルの平均値を確定して、前記バッチデータトレーニングサンプルにおける前記サンプルクラスの中心特徴ベクトルの更新変数を得ることと、
前記更新変数と設定された学習率に基づき、前記バッチデータトレーニングサンプルにおける前記サンプルクラスの中心特徴ベクトルを得ることと、
を含むことを特徴とする請求項８に記載の顔検出トレーニング方法。
【請求項１０】
前記した前記顔検出の目標損失値に基づき、モデルにおけるネットワークパラメータを更新することは、
顔検出の目標損失値に基づき、バックプロパゲーションにより、顔検出モデルにおけるネットワークパラメータを更新すること、
を含むことを特徴とする請求項２から４のいずれか１項に記載の顔検出トレーニング方法。
【請求項１１】
前記した顔検出の目標損失値に基づき、バックプロパゲーションにより、顔検出モデルにおけるネットワークパラメータを更新することは、
前記顔検出の目標損失値、及び前回の反復の顔検出モデルにおけるネットワークパラメータに基づき、顔検出のパラメータ更新値を確定することと、
前記顔検出のパラメータ更新値に基づき、前回の反復の顔検出モデルにおけるネットワークパラメータを更新することと、
を含むことを特徴とする請求項１０に記載の顔検出トレーニング方法。
【請求項１２】
前記方法は、
異なる縮尺とアスペクト比をカバーする複数のアンカー枠を予め定義することと、
予め定義された前記複数のアンカー枠によって、トレーニングサンプルにおけるサブ枠を確定し、前記サブ枠によって候補枠を予測することと、
をさらに含むことを特徴とする請求項１に記載の顔検出トレーニング方法。
【請求項１３】
反復の、異なるサンプルクラスの複数のトレーニングサンプルが含まれるバッチデータトレーニングサンプルを取得するためのサンプル取得モジュールと、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定するためのサンプル中心損失値確定モジュールと、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定するためのバッチサンプル中心損失値確定モジュールと、
前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定するための検出目標損失値確定モジュールと、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出のトレーニング結果を出力するための検出出力モジュールと、
を含み、
前記サンプル取得モジュールは、具体的に、
前回の反復の顔検出モデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する目標損失値を確定し、
トレーニングサンプル集合におけるポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスのサンプルクラスのうち最大の目標損失値の第１の数のトレーニングサンプルを選択し、トレーニングサンプル集合におけるネガティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ネガティブクラスのサンプルクラスのうち最大の目標損失値の第２の数のトレーニングサンプルを選択し、前記第２の数に対する前記第１の数の比値が設定比例に対応し、
ポジティブクラスのサンプルクラスから選択されたトレーニングサンプルと、ネガティブクラスのサンプルクラスから選択されたトレーニングサンプルとによって、今回の反復のバッチデータトレーニングサンプルを構成する、
ことを特徴とする顔検出トレーニング装置。
【請求項１４】
前記顔検出トレーニング装置は、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新して、次回の反復に進むためのパラメータ更新モジュールをさらに含むことを特徴とする請求項１３に記載の顔検出トレーニング装置。
【請求項１５】
メモリとプロセッサーを含む電子機器であって、
前記メモリにはプログラムが記憶され、前記プロセッサーは前記プログラムを呼び出して、前記プログラムにより、
反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれ、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定し、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定し、
前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定し、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出のトレーニング結果を出力し、
前記複数のトレーニングサンプルのサンプルクラスには、ポジティブクラスとネガティブクラスが含まれ、
前記した反復のバッチデータトレーニングサンプルを取得することは、
前回の反復のモデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する目標損失値を確定することと、
トレーニングサンプル集合におけるポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスのサンプルクラスのうち最大の目標損失値の第１の数のトレーニングサンプルを選択し、トレーニングサンプル集合におけるネガティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ネガティブクラスのサンプルクラスのうち最大の目標損失値の第２の数のトレーニングサンプルを選択し、前記第２の数に対する前記第１の数の比値が設定比例に対応することと、
ポジティブクラスのサンプルクラスから選択されたトレーニングサンプルと、ネガティブクラスのサンプルクラスから選択されたトレーニングサンプルとによって、今回の反復のバッチデータトレーニングサンプルを構成することと、
を含む、
ことを特徴とする電子機器。
【請求項１６】
命令を含むコンピュータ可読記憶媒体であって、前記命令がコンピュータで実行されるときに、コンピュータに請求項１から１２のいずれか１項に記載の方法を実行させるコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１７年６月２日に中国特許庁に提出された、出願番号が「２０１７１０４０６７２６.９」であって、発明の名称が「顔検出器トレーニング方法、装置及び電子機器」である中国特許出願に基づく優先権を主張するものであり、その全内容を本出願に参照により援用する。
【０００２】
本発明は、画像処理技術分野に関し、具体的に、顔検出トレーニング方法、装置及び電子機器に関する。
【背景技術】
【０００３】
顔検出は、顔検出器によって画像から顔を検出するための技術であり、顔検出のトレーニングが良いか悪いかは、顔の検出效果に影響を直接与えるので、顔検出のトレーニング処理をどのように最適化するかはずっと当業者による研究の焦点である。
【０００４】
ディープラーニングの発展に伴い、ＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ Ｎｅｕｒａｌ Ｎｅｔｗｏｒｋ、畳み込みニューラルネットワーク）に基づく顔検出トレーニング、例えば、Ｆａｓｔｅｒ ＲＣＮＮ(Ｆａｓｔｅｒ Ｒｅｇｉｏｎ-ｂａｓｅｄ Ｃｏｎｖｏｌｕｔｉｏｎａｌ Ｎｅｕｒａｌ Ｎｅｔｗｏｒｋ)である畳み込みニューラルネットワークを使用して顔検出のトレーニングを行うことなどが顔検出の主流のトレーニング方法になり、ＣＮＮに基づく顔検出のトレーニング処理は主に、顔検出モデルを構築し、トレーニングサンプルによって反復のトレーニングを行って、各反復で顔検出モデルのネットワークパラメータを更新して、顔検出のトレーニング最適化を実現し、なお、各反復において顔検出モデルのネットワークパラメータを更新する処理は、顔検出の最適化処理とみなすことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在の顔検出の最適化目標は主に、顔と非顔との差異を最大化すること（即ち、クラス間の差異を最大化すること）であり、顔と顔との間の差異はあまり注目されていないので、異なるシーンで顔の変化に対処するときに顔検出は判別能力が低くロバスト性が悪い。
【０００６】
本発明の実施例は、この点に鑑み、顔検出の顔検出判別能力を向上させ、顔検出のロバスト性を向上させるために、顔検出トレーニング方法、装置及び電子機器を提供する。
【課題を解決するための手段】
【０００７】
上記の目的を達するために、本発明の実施例は以下のような技術的解決策を提供する。
【０００８】
顔検出トレーニング方法であって、
反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれることと、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定することと、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定することと、
前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定することと、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出のトレーニング結果を出力することと、を含む。
【０００９】
本発明の実施例は顔検出トレーニング装置をさらに提供し、
今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれるサンプル取得モジュールと、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定するためのサンプル中心損失値確定モジュールと、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定するためのバッチサンプル中心損失値確定モジュールと、
少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定するための検出目標損失値確定モジュールと、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新して、次回の反復に進むためのパラメータ更新モジュールと、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出のトレーニング結果を出力するための検出出力モジュールと、を含む。
【００１０】
本発明の実施例は電子機器をさらに提供し、メモリとプロセッサーを含み、
前記メモリにはプログラムが記憶され、前記プロセッサーは前記プログラムを呼び出して、前記プログラムにより、
今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれ、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定し、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定し、
少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定し、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新して、次回の反復に進み、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出の検出結果を出力する。
【００１１】
本発明の実施例はコンピュータ可読記憶媒体をさらに提供し、命令を含み、当該命令がコンピュータで実行される時に、コンピュータに第１の態様に記載された方法を実行させる。
【００１２】
本発明の実施例は、命令が含まれるコンピュータプログラム製品をさらに提供し、それがコンピュータで実行されるときに、コンピュータに第１の態様に記載された方法を実行させる。
【００１３】
上記の技術的解決策によれば、本発明の実施例によって提供される顔検出トレーニング手順は、以下のことを含むことができ、今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれ、各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定し、前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定し、少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定し、前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、顔検出の目標損失値が設定されたトレーニング収束条件に達するまで、前記顔検出の目標損失値に基づき、顔検出モデルにおけるネットワークパラメータを更新して、次回の反復に進み、前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出を出力して、顔検出のトレーニングが完了する。
【００１４】
本発明の実施例では、顔検出のトレーニング最適化目標に、バッチデータトレーニングサンプルに対応する中心損失値を組み合わせることで、顔検出は、顔と顔との間のクラス内の差異に対して不変性を有することができるので、バッチデータトレーニングサンプルに対応する中心損失値を組み合わせて顔検出の最適化トレーニングを行うことで、最適化トレーニングされた顔検出は、顔のクラス内の差異に対して不変性を有し、顔及び非顔に対して高いクラス間検出性能を保証することが可能になり、顔検出のロバスト性を向上させることができる。
【図面の簡単な説明】
【００１５】
本発明の実施例又は従来の技術における技術的解決策をより明確に説明するために、以下、実施例又は従来技術の説明で使用される図面について簡単に説明する。明らかなように、以下の説明における図面は本発明の実施形態にすぎない。当業者にとって、創造的な労力なしに提供された図面から他の図面もまた得られる。
【００１６】
【図１】顔検出モデルの構成である。
【図２】顔検出モデルの他の構成である。
【図３】電子機器のハードウェア構成のブロック図である。
【図４】本発明の実施例によって提供される顔検出トレーニング方法のフローチャートである。
【図５】顔検出モデルに基づく顔検出トレーニングの概略図である。
【図６】顔枠座標回帰損失値の確定方法のフローチャートである。
【図７】バッチデータトレーニングサンプルの取得方法のフローチャートである。
【図８】本発明の実施例によって提供される顔検出トレーニング装置の構成ブロック図である。
【図９】本発明の実施例によって提供される顔検出トレーニング装置の他の構成ブロック図である。
【図１０】本発明の実施例によって提供される顔検出トレーニング装置の別の構成ブロック図である。
【発明を実施するための形態】
【００１７】
本発明の実施例における添付の図面を参照しながら、本発明の実施例における技術的解決策を以下に明確かつ完全に説明する。説明される実施例は本発明の一部の実施例にすぎず、全ての実施例ではないことは明らかである。創造的な努力なしに本発明における実施例に基づいて当業者によって得られた他の全ての実施例は、本発明の保護範囲内に属する。
【００１８】
本発明の実施例は、ＣＮＮに基づいて構築された選択可能の顔検出モデルであって、図１に示すように、基本ネットワーク層、候補枠予測層、及び顔検出層を含む。
【００１９】
その中、基本ネットワーク層は、一連の畳み込み層（Ｃｏｎｖｏｌｕｔｉｏｎ）とプーリング層（Ｐｏｏｌｉｎｇ）によって順次に接続されてなるサブネットワークとすることができ、基本ネットワーク層は一連の畳み込み層によって、各トレーニングサンプル（トレーニングサンプルは画像形態のサンプルであってもよい）に対して層ごとの畳み込み処理を行うことができ、その中、次の畳み込み層は、前の畳み込み層が出力する畳み込み処理結果を畳み込み処理し、ここで、多層の畳み込み層によって処理される画像特徴において、浅い層の特徴は、リッチエッジコーナー、テクスチャ構造などの特徴を表すことができ、深い層の特徴は、浅い層の特徴に基づくさらなる抽象マッピングであり、多層の畳み込み層の層ごとの畳み込み処理によって、異なる層の画像特徴の抽出を実現することができ、各トレーニングサンプルに対して、基本ネットワーク層が出力するのは最後の層の畳み込み層によって畳み込み処理された特徴マップ（Ｆｅａｔｕｒｅ ｍａｐ）であり、その特徴マップは画像特徴の一つの表現である。
【００２０】
候補枠予測層は、基本ネットワーク層によって出力された画像特徴上で構築されたフル畳み込み構造のサブネットワークであってもよく、候補枠予測層は、畳み込み層によって各トレーニングサンプルの特徴をマッピングすることができ、これにより、マッピングされたノードによって候補枠分類器及び候補枠回帰器を構築して、候補枠検出を形成し、候補枠分類器を使用して候補枠（Ｐｒｏｐｏｓａｌｓ）の確率予測を行うことができ、候補枠回帰器を使用して候補枠の座標予測を行うことができ、これにより、候補枠（Ｐｒｏｐｏｓａｌｓ）を出力し、候補枠予測層が出力した候補枠は顔検出層に入力することができる。
【００２１】
顔検出層は、基本ネットワーク層が出力する画像特徴及び候補枠予測層が出力する候補枠に基づいて構築された注目領域プーリング層（ＲｏＩ Ｐｏｏｌｉｎｇ）を含むサブネットワークであってもよく、各トレーニングサンプルに対して、顔検出層は、候補枠（Ｐｒｏｐｏｓａｌｓ）に基づいて、基本ネットワーク層が出力するトレーニングサンプルの画像特徴に対して次元削減サンプリングを行って、固定サイズの特徴マップを取得して、特徴マップにおける全てのノードを固定長の特徴ベクトルにマッピングすることができ、これにより、各トレーニングサンプルの特徴ベクトルが得られ、各トレーニングサンプルの特徴ベクトルに基づいて、顔分類器及び顔回帰器を構築し、顔分類器と顔回帰器は組み合わせて顔検出を構成し、その中、顔分類器は顔及び非顔の確率を予測することができ、顔回帰器は、候補枠に基づいて顔枠のより正確的な座標回帰を行うことができる。
【００２２】
さらに、図１に示す顔検出モデルのさらなる選択可能の細分化は、Ｆａｓｔｅｒ ＲＣＮＮに基づく顔検出モデルによって実現することができ、Ｆａｓｔｅｒ ＲＣＮＮは顔検出のための典型的なアルゴリズムであり、ＲＰＮ（Ｒｅｇｉｏｎ Ｐｒｏｐｏｓａｌ Ｎｅｔｗｏｒｋｓ）層とＦａｓｔ ＲＣＮＮ層に分けられ、ＲＰＮ層は、候補枠を生成し、Ｆａｓｔ ＲＣＮＮ層は、候補枠に基づいて、最終的試験結果を得ることができる。
【００２３】
図２に示すように、Ｆａｓｔｅｒ ＲＣＮＮに基づく顔検出モデルは、基本ネットワーク層、ＲＰＮ層、Ｆａｓｔ ＲＣＮＮ層を含むことができ、その中、ＲＰＮ層は、候補枠予測層の選択可能実現と考えることができ、Ｆａｓｔ ＲＣＮＮ層は、顔検出層の選択可能実現と考えることができる。
【００２４】
本発明の実施例では、ＲＰＮ層の目標は、基本ネットワーク層が出力する画像特徴に基づいて候補枠を生成することであり、この過程では、本発明の実施例は、複数のアンカー枠を予め定義することができ、当該複数のアンカー枠は、異なる縮尺とアスペクト比をカバーし、当該予め定義された複数のアンカー枠によって、トレーニングサンプルにおけるサブ枠を確定し、当該サブ枠によって、候補枠を予測することができる（例えば、当該サブ枠を利用して候補枠検出をトレーニングすることで、候補枠検出によって候補枠の予測を行うことができる）。
【００２５】
また、アンカー枠は、ＲＰＮ層の内側であり、候補枠（Ｐｒｏｐｏｓａｌ）の分類器及び回帰器を定義及び構築するために使用されてもよい。ＲＰＮは候補枠検出である。具体的には、各アンカー枠は、それぞれ検出（分類と回帰）に関連付けられ、分類と回帰は、トレーニングと学習のための予測値と目標値を必要とする。ＲＰＮでは、分類目標値の確定（つまり、如何にこの出力がポジティブクラスかネガティブクラスかを定義する方法）はアンカー枠と実枠との間の重なり率に基づく。同様に、Ｆａｓｔ ＲＣＮＮでは、分類目標値の確定は候補枠と実枠との重なり率に基づく。そのため、ＲＰＮが使用するアンカー枠とＦａｓｔ ＲＣＮＮが使用する候補枠は、分類器を構築するときに類似の作用があり、アンカー枠は候補枠の候補枠とみなすことができる。ＲＰＮは画像特徴の畳み込み処理された後の各ノードに対して複数の候補枠検出を構築することができる（各候補枠検出が一つのアンカー枠に関連付けられる）。
【００２６】
Ｆａｓｔ ＲＣＮＮ層の目標は、候補枠と基本ネットワーク層が出力する画像特徴に基づいて、トレーニングサンプルの特徴ベクトルを生成することであり、これにより、トレーニングサンプルの特徴ベクトルで顔分類器及び顔回帰器を構築し、顔分類器及び顔回帰器は組み合わせて顔検出を構成する。
【００２７】
顔検出により良い検出効果を持たせるために、確率勾配降下アルゴリズム（Ｓｔｏｃｈａｓｔｉｃ Ｇｒａｄｉｅｎｔ Ｄｅｓｃｅｎｔ、ＳＧＤ）などのモデル最適化アルゴリズムによって、反復トレーニングを行うことができ、各反復において、トレーニングサンプル集合からバッチデータトレーニングサンプルを選択することによってトレーニングを行い、次に、毎回の反復において、顔検出の最適化目標が達成されたかどうかに応じて、顔検出モデルのネットワークパラメータを更新する。
【００２８】
現在、主に、顔と非顔との差異を最大化することを顔検出の最適化目標としており、顔と顔との間の異なる場面での顔の変化の差異を無視し、例えば、異なる撮影角度、解像度、照明条件、表情の変化及びオクルージョンなどの場面での顔の変化の差異が無視され、トレーニングされた顔検出の判別能力が弱くなり、ロバスト性が悪くなる。例えば、クラス内の顔と顔（例えば、光があるか、ないか）の差異が大きすぎると、異なるクラスとして判断されるが、実際には同じクラスであり、そのため、本発明の実施例は、クラス内の差異をできるだけ小さくして、顔検出がクラス内の差異に対して不変性を有することを保証する必要がある。
【００２９】
これに基づいて、本発明の実施例は、顔検出の反復トレーニング最適化処理を改善して、新しい顔検出トレーニング方法を提出し、これにより、顔検出が顔と顔との間のクラス内の差異を低減しながら、顔及び非顔に対して高い検出性能を有することを保証し、顔検出の判別能力を向上させる。
【００３０】
本発明の実施例によって提供される顔検出トレーニング方法は、プログラムの形態によって顔検出トレーニングを実施するための電子機器にロードすることができ、当該電子機器は、ネットワーク側のサーバーであってもよいし、ユーザー側のパーソナルコンピュータ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ、ＰＣ）などの端末装置であってもよく、当該電子機器の形態は、顔検出の実際のトレーニングニーズに応じて決定することができる。
【００３１】
また、顔検出トレーニングを実施するための電子機器のハードウェア構成は図３に示すように、少なくとも１つのプロセッサー１、少なくとも１つの通信インターフェース２、少なくとも１つのメモリ３、及び少なくとも１つの通信バス４を含むことができる。
【００３２】
本発明の実施例では、プロセッサー１、通信インターフェース２、メモリ３、通信バス４の数は少なくとも１つであり、且つ、プロセッサー１、通信インターフェース２、メモリ３は通信バス４を介して互いの通信を完成し、明らかに、図３に示すプロセッサー１、通信インターフェース２、メモリ３、及び通信バス４の通信接続は単なるオプションである。
【００３３】
また、通信インターフェース２は、ＧＳＭ（登録商標）モジュールのインターフェースなどの通信モジュールのインターフェースであってもよく、
プロセッサー１は、中央処理装置ＣＰＵ、又は特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ、ＡＳＩＣ）、又は本発明の実施例を実施するように構成された１つ又は複数の集積回路とすることができる。
【００３４】
メモリ３は、高速ＲＡＭメモリを含むことができ、例えば、少なくとも１つの磁気ディスクメモリのような不揮発性メモリ（ｎｏｎ-ｖｏｌａｔｉｌｅ ｍｅｍｏｒｙ、ＮＶＭ）も含むことができる。
【００３５】
なお、メモリ３にはプログラムが記憶され、プロセッサー１はメモリ３に記憶されたプログラムを呼び出して、当該プログラムは、本発明の実施例によって提供される顔検出トレーニング方法を実行する。
【００３６】
本発明の実施例は、確率勾配降下アルゴリズム（Ｓｔｏｃｈａｓｔｉｃ Ｇｒａｄｉｅｎｔ Ｄｅｓｃｅｎｔ、ＳＧＤ）などのモデル最適化アルゴリズムによって顔検出の反復トレーニングを行うことができ、ＳＧＤはよく使用されている畳み込みニューラルネットワーク最適化アルゴリズムであり、大規模な機械学習問題を解決するのに効果的であり、ＳＧＤは、毎回の反復で、トレーニングサンプル集合からランダムに抽出されたバッチデータトレーニングサンプル（Ｍｉｎｉｂａｔｃｈ）を使用して勾配降下最適化を行う。
【００３７】
一回の反復に係る顔検出トレーニングを例として、本発明の実施例によって提供される顔検出トレーニング方法のフローは図４に示すようであり、毎回の反復に係る顔検出トレーニングのフローは図４を参照することができる。図４を参照すると、本発明の実施例によって提供される顔検出トレーニング方法は、以下を含むことができる。
【００３８】
ステップＳ１００、今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれる。
【００３９】
また、バッチデータトレーニングサンプル（Ｍｉｎｉｂａｔｃｈ）は、全てのトレーニングサンプルが含まれたトレーニングサンプル集合から抽出されてもよい。
【００４０】
顔検出は、2つのカテゴリのタスク（顔と非顔）を実現すると考えることができ、毎回の反復において、トレーニングサンプル集合から複数の顔画像をポジティブクラスのトレーニングサンプルとして取得し、複数の非顔画像をネガティブクラスのトレーニングサンプルとして取得し、取得したポジティブクラスのトレーニングサンプルとネガティブクラスのトレーニングサンプルで、毎回の反復のバッチデータトレーニングサンプルを構成することができる。
【００４１】
それに対応して、今回の反復で使用されるバッチデータトレーニングサンプルは、複数のトレーニングサンプルを含むことができ、当該複数のトレーニングサンプルのサンプルクラスはポジティブクラス（即ち、顔画像をポジティブクラスとするトレーニングサンプルに対応する）及びネガティブクラス（即ち、非顔画像をネガティブクラスとするトレーニングサンプルに対応する）に分類できる。
【００４２】
ステップＳ１１０、各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定する。
【００４３】
前記バッチデータトレーニングサンプルにおける一つのトレーニングサンプルについて、本発明の実施例は、当該トレーニングサンプルの特徴ベクトル、及び当該トレーニングサンプルが属するサンプルクラスの前記バッチデータトレーニングサンプルにおける対応する中心特徴ベクトルを確定することができ、これによって、当該トレーニングサンプルに対応する中心損失値を確定することができ、この処理は、前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対して行われ、前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する中心損失値を取得する。
【００４４】
また、前記バッチデータトレーニングサンプルにおける一つのサンプルクラスの中心特徴ベクトルは、今回の反復で前記バッチデータトレーニングサンプルのうち当該サンプルクラスに属するトレーニングサンプルの特徴ベクトルの平均値に対応して更新できてもよい。
【００４５】
また、一つのサンプルクラスについて、本発明の実施例は、前記バッチデータトレーニングサンプルにおける当該サンプルクラスに属する各トレーニングサンプルを確定し、前記バッチデータトレーニングサンプルのうち当該サンプルクラスに属する各トレーニングサンプルの特徴ベクトルに基づき、当該サンプルクラスに属する各トレーニングサンプルの特徴ベクトルの平均値を確定して、前記バッチデータトレーニングサンプルのうち当該サンプルクラスの中心特徴ベクトルの更新変数を取得し、前記更新変数と設定された学習率に基づき、前記バッチデータトレーニングサンプルにおける当該サンプルクラスの中心特徴ベクトルを取得して、これにより、前記バッチデータトレーニングサンプルにおける一つのサンプルクラスの各トレーニングサンプルの特徴ベクトルの平均値に基づき、当該サンプルクラスの中心特徴ベクトルを更新することが実現されてもよい。
【００４６】
また、本発明の実施例は以下のような式によってバッチデータトレーニングサンプルにおける一つのサンプルクラスの中心特徴ベクトルを確定することができる。
【００４７】
【数１】
0006855098.tif 000002
その中、
【数２】
0006855098.tif 000003
は設定された学習率を表し、
【数３】
0006855098.tif 000004
は更新変数を表し、
【数４】
0006855098.tif 000005
はｔ回目の反復でｊ番目のサンプルクラスによって使用されるバッチデータトレーニングサンプルに対応する中心特徴ベクトルを表し、
【数５】
0006855098.tif 000006
はｔ+１回目の反復でｊ番目のサンプルクラスによって使用されるバッチデータトレーニングサンプルに対応する中心特徴ベクトルを表す。
【００４８】
即ち、一つのサンプルクラスについて、本発明の実施例は、前回の反復においてバッチデータトレーニングサンプルの当該サンプルクラスにおいて対応する中心特徴ベクトルから、前記更新変数と設定された学習率との積を減算して、今回の反復においてバッチデータトレーニングサンプルの当該サンプルクラスにおいて対応する中心特徴ベクトルを取得してもよい。
【００４９】
また、前記バッチデータトレーニングサンプルにおけるポジティブクラスのサンプルクラスについて、本発明の実施例は、前記バッチデータトレーニングサンプルのうちポジティブクラスに属する各トレーニングサンプルの特徴ベクトルを確定し、ポジティブクラスに属する各トレーニングサンプルの特徴ベクトルの平均値を確定することで、ポジティブクラスのサンプルクラスの中心特徴ベクトルを更新することができ、それに対応して、前記バッチデータトレーニングサンプルにおけるネガティブクラスのサンプルクラスについて、本発明の実施例は前記バッチデータトレーニングサンプルのうちネガティブクラスに属する各トレーニングサンプルの特徴ベクトルを確定し、ネガティブクラスに属する各トレーニングサンプルの特徴ベクトルの平均値を確定することで、ネガティブクラスのサンプルクラスの中心特徴ベクトルを更新することができる。
【００５０】
また、さらに、前記バッチデータトレーニングサンプルのうちポジティブクラスの各トレーニングサンプルについて、本発明の実施例は、ポジティブクラスの各トレーニングサンプルの特徴ベクトルと、ポジティブクラスのサンプルクラスの中心特徴ベクトルとに基づき、ポジティブクラスの各トレーニングサンプルに対応する中心損失値を確定することができ、前記バッチデータトレーニングサンプルのうちネガティブクラスの各トレーニングサンプルについて、本発明の実施例はネガティブクラスの各トレーニングサンプルの特徴ベクトルと、ネガティブクラスのサンプルクラスの中心特徴ベクトルとに基づき、ネガティブクラスの各トレーニングサンプルに対応する中心損失値を確定することができる。
【００５１】
また、一つのトレーニングサンプルの中心損失値は、当該トレーニングサンプルの特徴ベクトルと、当該トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルとの距離によって表されてもよく、ｘｉはバッチデータトレーニングサンプルのうちｉ番目のトレーニングサンプルを表し、ｙｉはｘｉが属するサンプルクラスを表し（ｙｉ=１がポジティブクラスを表し、ｙｉ=０がネガティブクラスを表すように設定することができ、勿論、ｙｉ=０がネガティブクラスを表し、ｙｉ=１がポジティブクラスを表すように設定することができ、ポジティブクラスとネガティブクラスに対応するｙｉ値が異なればよい）、ｃｙｉはｘｉが属するサンプルクラスｙｉの中心特徴ベクトルを表すと仮定すると、ｘｉサンプルの中心損失値は
【数６】
0006855098.tif 000007
として定義できる 。
【００５２】
なお、一つのトレーニングサンプルの特徴ベクトルの確定処理は、基本ネットワーク層がトレーニングサンプルの画像特徴を出力した後、顔検出層が候補枠（Ｐｒｏｐｏｓａｌｓ）に基づいてトレーニングサンプルにおける注目領域を確定して、顔検出層がトレーニングサンプルの注目領域の画像特徴に対して次元削減サンプリングを行い、固定サイズの特徴マップを取得し、特徴マップにおける全てのノードを接続して、固定長の特徴ベクトルにマッピングして、トレーニングサンプルの特徴ベクトルを取得してもよい。
【００５３】
ステップＳ１２０、前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定する。
【００５４】
また、本発明の実施例は、各トレーニングサンプルに対応する中心損失値に基づき、各トレーニングサンプルに対応する中心損失値の平均値を確定し、各トレーニングサンプルに対応する中心損失値の平均値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定してもよい。
【００５５】
また、本発明の実施例は、各トレーニングサンプルに対応する中心損失値の平均値をそのまま前記バッチデータトレーニングサンプルに対応する中心損失値として使用してもよく、各トレーニングサンプルに対応する中心損失値の平均値を設定数値（例えば、１/２）に乗算して、前記バッチデータトレーニングサンプルに対応する中心損失値を取得してもよい。
【００５６】
バッチデータトレーニングサンプルにｍ個のトレーニングサンプルがあると仮定すると、バッチデータトレーニングサンプルに対応する中心損失値は、
【数７】
0006855098.tif 000008
として表すことができる。
【００５７】
ステップＳ１３０、少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定する。
【００５８】
顔検出の目標損失値は、顔検出反復トレーニング処理における最適化目標の表現であり、目標損失値が設定されたトレーニング収束条件（例えば、最小）に達すると、反復トレーニングは終了して、顔検出を出力することができ、毎回の反復では、本発明の実施例は、本発明の実施例の顔検出の最適化目標として、既存の顔検出の最適化目標を、使用するバッチデータトレーニングサンプルに対応する中心損失値と組み合わせて、顔検出の目標損失値を取得する。
【００５９】
また、本発明の実施例は、前記バッチデータトレーニングサンプルに対応する中心損失値、前記バッチデータトレーニングサンプルに対応する分類損失値、及び前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値に基づき、顔検出の目標損失値を確定してもよい。
【００６０】
その中、バッチデータトレーニングサンプルに対応する分類損失値は、バッチデータトレーニングサンプルにおける各トレーニングサンプルの分類予測確率と分類目標確率（分類の真の確率）との差に基づき確定できる。
【００６１】
本発明の実施例は、バッチデータトレーニングサンプルの各トレーニングサンプルについて、トレーニングサンプルの特徴ベクトルを取得した後、Ｓｏｆｔｍａｘ関数などを使用して、当該トレーニングサンプルが属するサンプルクラスを予測し、当該トレーニングサンプルの分類予測確率を取得することができ、当該トレーニングサンプルの分類予測確率と当該トレーニングサンプルの真の分類目標確率に基づき、当該トレーニングサンプルに対応する分類損失値（例えば、当該トレーニングサンプルの分類予測確率と分類目標確率との差）を確定することができ、バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値に基づき、バッチデータトレーニングサンプルに対応する分類損失値を確定することができる（例えば、各トレーニングサンプルの分類損失値の平均値を取るなど）。
【００６２】
これにより分かるように、バッチデータトレーニングサンプルに対応する分類損失値は、顔検出が顔と非顔とのクラス間を分類する指標であり、バッチデータトレーニングサンプルに対応する分類損失値は、顔と非顔との間の差異（クラス間の差異）を表すことができ、バッチデータトレーニングサンプルに対応する分類損失値を顔検出の最適化目標の部分として使用して、最適化された顔検出が、顔と非顔とのクラス間の区別に対して高い性能を持つようにすることができる。
【００６３】
これに基づいて、バッチデータトレーニングサンプルに対応する中心損失値は、トレーニングサンプルの特徴ベクトルとトレーニングサンプルが属するサンプルクラスの中心特徴ベクトルとの距離を表し、そのため、バッチデータトレーニングサンプルに対応する中心損失値は、トレーニングサンプルの特徴ベクトルとそれが属するサンプルクラスの中心特徴ベクトルとの差異を説明することができ、各サンプルクラスのうちトレーニングサンプルのクラス内の特徴ベクトル差異を表すことができ、そのため、バッチデータトレーニングサンプルに対応する中心損失値を顔検出の最適化目標の部分として使用し、最適化された顔検出は、顔のクラス内の差異（例えば、異なる場面での顔と顔との間のクラス内の差異）に対して不変性を有し、顔検出のロバスト性を向上させることができる。
【００６４】
また、顔検出のトレーニングは、分類トレーニングと回帰トレーニングを含むことができ、共同トレーニングの過程であり、１回の反復においてバッチデータトレーニングサンプルに対応する中心損失値と分類損失値によって構成される損失値は、分類トレーニングの最適化目標とみなすことができ、顔検出トレーニングにおける分類トレーニングの最適化目標として、例えば、バッチデータトレーニングサンプルに対応する中心損失値和と類損失値によって構成される損失値を最小にしてもよい。
【００６５】
毎回の反復において、顔検出トレーニングにおける回帰トレーニングの最適化目標は、バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値によって構成できる。
【００６６】
１回の反復におけるバッチデータトレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値を組み合わせることによって、顔検出の目標損失値を形成して、顔検出トレーニングの最適化目標を表すことができる。
【００６７】
また、本発明の実施例は、前記バッチデータトレーニングサンプルに対応する中心損失値と第１の設定重みとの積、前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値と第２の設定重みとの積、及び、前記バッチデータトレーニングサンプルに対応する分類損失値を合計して、顔検出の目標損失値を取得することができる。
【００６８】
Ｌｃｌｓがバッチデータトレーニングサンプルに対応する分類損失値を表し、Ｌｃがバッチデータトレーニングサンプルに対応する中心損失値を表すと仮定すると、顔検出の目標損失値は、Ｌｃｌｓ+μＬｃ+λＬｒｅｇとして表し、μとλは、設定重み係数を表し、その中、μは第１の設定重みであり、λは第２の設定重みである。
【００６９】
また、本発明の実施例は、前記バッチデータトレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値を直接合計して、顔検出の目標損失値を取得してもよい。
【００７０】
ステップＳ１４０、前記顔検出の目標損失値が設定されたトレーニング収束条件に達するかどうかを判断し、そうでなければ、ステップＳ１５０を実行し、そうであれば、ステップＳ１６０を実行する。
【００７１】
また、設定されたトレーニング収束条件は、顔検出の目標損失値を最小にするとみなすことができる。
【００７２】
具体的に、バッチデータトレーニングサンプルに対応する分類損失値が小さいほど、顔と非顔の分類に対する顔検出の效果がよく、顔検出は、顔と非顔の差異区別を最大化する（即ち、クラス間の差異を最大化する）ことができ、バッチデータトレーニングサンプルに対応する中心損失値が小さいほど、各サンプルクラスにおけるトレーニングサンプルのクラス内の特徴ベクトルの差異が小さく、同じサンプルクラスのトレーニングサンプルの差異を減らして、サンプルクラスにおける顔と顔との間の差異をさらに低下することができ、即ち、反復トレーニングによって、バッチデータトレーニングサンプルの各トレーニングサンプルの特徴ベクトルと当該トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルとの距離が最小化される。
【００７３】
これにより分かるように、バッチデータトレーニングサンプルに対応する中心損失値を組み合わせることによって、顔検出の目標損失値を確定し、それによって、顔検出の目標損失値でトレーニング収束条件を判断するので、顔検出は、最小化されたバッチデータトレーニングサンプルに対応する中心損失値の場合に、顔検出が顔のクラス内の差異（例えば、異なる場面での顔と顔との間のクラス内の差異）に対して不変性を有することを保証して、顔検出のロバスト性を向上させることができる。
【００７４】
ステップＳ１５０、前記顔検出の目標損失値に基づき、顔検出モデルにおける顔検出に関連するネットワークパラメータを更新して、次回の反復に進み、ステップＳ１００に戻る。
【００７５】
また、顔検出の目標損失値が設定されたトレーニング収束条件に達していない（例えば、顔検出の目標損失値が最小に達していない）と、本発明の実施例は、前記顔検出の目標損失値に基づき、顔検出モデルにおけるネットワークパラメータを更新することができ、また、反復トレーニングのフローに従って次回の反復を行い、ステップＳ１００に戻り、ステップＳ１４０の判断結果、顔検出の目標損失値が設定されたトレーニング収束条件に達するまで、ネットワークパラメータが更新された顔検出モデルでステップＳ１００からステップＳ１４０を繰り返して実行してもよい。
【００７６】
また、本発明の実施例は、確率勾配降下法によって次回の反復に進み、ステップＳ１００に戻ってもよい。
【００７７】
ステップＳ１６０、顔検出を出力する。
【００７８】
また、顔検出の目標損失値が設定されたトレーニング収束条件に達する（例えば、顔検出の目標損失値が最小化される）と、顔検出モデルトレーニングによって得られた顔検出を出力することができ、顔検出の反復トレーニング最適化処理を完成してもよい。
【００７９】
本発明の実施例によって提供される顔検出トレーニングのフローは以下のことを含むことができ、即ち、今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれ、各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定し、前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定し、少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定し、前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、顔検出の目標損失値が設定されたトレーニング収束条件に達するまで、前記顔検出の目標損失値に基づき、顔検出モデルにおけるネットワークパラメータを更新して、次回の反復に進み、前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出を出力することができ、顔検出のトレーニングを完成する。
【００８０】
本発明の実施例では、顔検出のトレーニング最適化目標に、バッチデータトレーニングサンプルに対応する中心損失値を組み合わせ、これにより、顔検出は、顔と顔との間のクラス内の差異に対して不変性を有することが可能になるので、バッチデータトレーニングサンプルに対応する中心損失値を組み合わせて顔検出の最適化トレーニングを行うことによって、最適化トレーニングされた顔検出は、顔のクラス内の差異に対して不変性を有しながら、顔及び非顔に対して高いクラス間検出性能を保証することが可能になり、顔検出のロバスト性を向上させることができる。
【００８１】
また、本発明の実施例は、顔検出の目標損失値に基づき、顔検出モデルにおけるネットワークパラメータを更新するときに、顔検出の目標損失値に基づき、バックプロパゲーションにより、顔検出モデルにおけるネットワークパラメータを更新してもよい。
【００８２】
また、本発明の実施例は、前記顔検出の目標損失値、及び前回の反復の顔検出モデルにおけるネットワークパラメータに基づき、顔検出のパラメータ更新値を確定することで、当該顔検出のパラメータ更新値に基づき、前回の反復の顔検出モデルにおけるネットワークパラメータを更新してもよい。
【００８３】
また、顔検出の目標損失値がＬｏｓｓであって、Ｌｏｓｓ=Ｌｌｓ+μＬｃ+λＬｒｅｇであり、前回反復された顔検出モデルにおけるネットワークパラメータはＷ１であると仮定すると、顔検出のパラメータ更新値は、
【数８】
0006855098.tif 000009
として表すことができる。
【００８４】
顔検出のパラメータ更新値に基づき、前回反復された顔検出モデルにおけるネットワークパラメータを更新することは次の式によって実現することができる。
【数９】
0006855098.tif 000010
【００８５】
その中、Ｗ２は更新された顔検出モデルのネットワークパラメータであり、ｋは動量であり、
【数１０】
0006855098.tif 000011
は学習率であり、ｓは重みの減衰係数である。
【００８６】
また、本発明の実施例は、図５に示すように、顔検出層（例えば、Ｆａｓｔ ＲＣＮＮ層）に中心損失関数（Ｃｅｎｔｅｒ Ｌｏｓｓ）を設置することができ、当該中心損失関数は、顔検出層の完全接続特徴表現層に適用することができ、当該完全接続徴表現層は、各トレーニングサンプルの特徴ベクトルを得るように、完全接続の形で特徴マップにおける全てのノードを接続して、固定長の特徴ベクトルにマッピングすることができ、これにより、毎回の反復トレーニングにおいて、中心損失関数は今回の反復で使用されるバッチデータトレーニングサンプルの各トレーニングサンプルの特徴ベクトルに基づき、バッチデータトレーニングサンプルの各トレーニングサンプルに対応する中心損失値を確定し、バッチデータトレーニングサンプルに対応する中心損失値Ｌｃを対応して確定してもよい。
【００８７】
同時に、顔検出層（例えば、Ｆａｓｔ ＲＣＮＮ層）にＳｏｆｔｍａｘ関数を設置することができ、Ｓｏｆｔｍａｘ関数は顔検出層の完全接続特徴表現層に適用することができ、反復トレーニングの毎回のトレーニングにおいて、Ｓｏｆｔｍａｘ関数は各トレーニングサンプルの特徴ベクトルを処理して、各トレーニングサンプルの分類予測確率を確定することができ、さらに、Ｓｏｆｔｍａｘ Ｌｏｓｓ（分類損失関数）によってトレーニングサンプルの分類予測確率と分類目標確率（分類の真の確率）との差を表し、且つ、バッチデータトレーニングサンプルに対応する分類損失値Ｌｃｌｓを確定する。
【００８８】
即ち、Ｓｏｆｔｍａｘ関数の入力はトレーニングサンプルの特徴ベクトルであり、出力はトレーニングサンプルの各サンプルクラスに属する予測確率であり、Ｓｏｆｔｍａｘ Ｌｏｓｓ（分類損失関数）の入力はトレーニングサンプルのｐ（分類予測確率）とｐ*（分類目標確率）であり、 出力は損失値（Ｌｏｓｓ）であり、Ｌｏｓｓが小さいほど、分類がより正確であることを表す。本発明の実施例では、Ｃｅｎｔｅｒ ＬｏｓｓとＳｏｆｔｍａｘ Ｌｏｓｓは同じ層（即ち、入力する特徴ベクトルが同じである）に作用し、Ｃｅｎｔｅｒ Ｌｏｓｓは顔検出の最適化の補助監視信号として使用され、Ｃｅｎｔｅｒ Ｌｏｓｓが小さいほど、顔検出で検出されたクラス内の特徴の差異が小さいことを表し、Ｓｏｆｔｍａｘ Ｌｏｓｓは顔検出で検出されたクラス間の特徴を互いに分離させ、クラス間の判別可能な差異を保証する。
【００８９】
また、さらに、本発明の実施例では、顔検出層（例えば、Ｆａｓｔ ＲＣＮＮ層）に顔枠回帰予測関数ＳｍｏｏｔｈＬ１（平滑化ノルム関数）を設置することができ、ＳｍｏｏｔｈＬ１によって、候補枠に基づいて、バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する顔枠予測座標を確定し、さらに、ＳｍｏｏｔｈＬ１ Ｌｏｓｓによって各トレーニングサンプルに対応する顔枠座標回帰損失値を確定し、その入力はトレーニングサンプルに対応する顔枠予測座標と顔枠目標座標であり、出力は損失値（Ｌｏｓｓ）であり、次に、バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値Ｌｒｅｇを確定する。
【００９０】
また、本発明の実施例は、顔検出の目標損失値Ｌｏｓｓ=Ｌｌｓ+μＬｃ+λＬｒｅｇを確定し、目標損失値Ｌｏｓｓが最小になるまで、毎回の反復で得られた目標損失値Ｌｏｓｓによって、顔検出モデルにおけるネットワークパラメータを更新してもよい。
【００９１】
また、１回の反復におけるバッチデータトレーニングサンプルに対応する分類損失値の確定処理は、以下のようである。
【００９２】
バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類予測確率と分類目標確率に基づき、前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値を確定し、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値に基づき、前記バッチデータトレーニングサンプルに対応する分類損失値を確定することができる。
【００９３】
また、１回の反復におけるバッチデータトレーニングサンプルに対応する顔枠座標回帰損失値の確定処理は、図６に示すように、以下のことを含むことができる。
【００９４】
ステップＳ２００、候補枠に基づき、バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する顔枠予測座標を確定する。
【００９５】
また、本発明の実施例は、候補枠予測層が出力する候補枠に基づき、今回の反復におけるバッチデータトレーニングサンプルの各トレーニングサンプルの注目領域を確定して、各トレーニングサンプルに対応する顔枠予測座標を得ることができ、トレーニングサンプルの顔枠予測座標は、左上頂点の横座標、左上頂点の縦座標、右下頂点の横座標、右下頂点の縦座標などによって表すことができる。
【００９６】
また、本発明の実施例は、顔検出層（例えば、Ｆａｓｔ ＲＣＮＮ層）に顔枠回帰予測関数ＳｍｏｏｔｈＬ１（平滑化ノルム関数）を設置し、ＳｍｏｏｔｈＬ１によって、候補枠に基づいて、各トレーニングサンプルに対応する顔枠予測座標を確定してもよい。
【００９７】
ステップＳ２１０、各トレーニングサンプルに対応する顔枠予測座標、及び各トレーニングサンプルに対応する顔枠目標座標に基づき、各トレーニングサンプルに対応する顔枠座標回帰損失値を確定する。
【００９８】
また、トレーニングサンプルに対応する顔枠目標座標は、トレーニングサンプルにおける顔枠に真に対応する座標であってもよく、各トレーニングサンプルについて、本発明の実施例は、当該トレーニングサンプルに対応する顔枠予測座標及び顔枠目標座標の差によって、当該トレーニングサンプルに対応する顔枠座標回帰損失値を確定することができるので、各トレーニングサンプルに対してこの処理を行うことによって、各トレーニングサンプルに対応する顔枠座標回帰損失値を得ることができる。
【００９９】
また、本発明の実施例は、ＳｍｏｏｔｈＬ１ Ｌｏｓｓによって顔枠座標回帰損失値を表すことができ、その入力はトレーニングサンプルに対応する顔枠予測座標と顔枠目標座標であり、出力は損失値（Ｌｏｓｓ）であり、Ｌｏｓｓが小さいほど、顔枠の回帰はより正確であることを表す。
【０１００】
ステップＳ２２０、各トレーニングサンプルに対応する顔枠座標回帰損失値に基づき、前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値を確定する。
【０１０１】
また、本発明の実施例は、バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する顔枠座標回帰損失値に基づき、各トレーニングサンプルに対応する顔枠座標回帰損失値の平均値を確定し、当該平均値に基づき、バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値（ＳｍｏｏｔｈＬ１ Ｌｏｓｓ）を確定してもよい。
【０１０２】
また、本発明の実施例では、顔検出反復トレーニングを行う処理は、顔分類及び回帰の２つの共同タスクが含まれる多損失関数共同トレーニングを使用し、分類トレーニングはＣｅｎｔｅｒ ＬｏｓｓとＳｏｆｔｍａｘ Ｌｏｓｓを使用して共同で最適化し、回帰トレーニングはＳｍｏｏｔｈＬ１ Ｌｏｓｓを使用して最適化し、顔検出の最終的な最適化目標は、バッチデータトレーニングサンプルに対応するＣｅｎｔｅｒ Ｌｏｓｓ、Ｓｏｆｔｍａｘ Ｌｏｓｓ、及びＳｍｏｏｔｈＬ１ Ｌｏｓｓの３つの損失値の加重合計が最小になることである。
【０１０３】
また、本発明の実施例は、一般的な大規模顔識別タスク（ＩｍａｇｅＮｅｔ）における事前トレーニング済みモデルを微調整し（Ｆｉｎｅｔｕｎｉｎｇ）、中心損失値を顔検出の補助最適化目標として導入することによって、顔検出モデルの最適化及びトレーニングを指導し、顔と顔との間のクラス内の差異に対する顔検出の判別能力を向上させてもよい。
【０１０４】
また、反復トレーニングの処理では、本発明の実施例は、前回の反復の顔検出モデルに基づいて、トレーニングサンプル集合における顔検出で検出されにくいトレーニングサンプルを確定し、次回の反復で使用されるバッチデータトレーニングサンプルを確定して、これらの検出が困難なトレーニングサンプルに対する顔検出の検出能力を向上し、トレーニングサンプルが検出されにくいどうかは、トレーニングサンプルに対応する目標損失値を測定することによって確定することができ、目標損失値が高いほど、トレーニングサンプルは最適化目標から遠く、検出の難しさはさらに大きいことを説明する。
【０１０５】
それに対応して、図７は、本発明の実施例によって提供される、今回の反復のバッチデータトレーニングサンプルを取得する方法のフローチャートを示し、図７を参照すると、当該方法は、以下のことを含むことができる。
【０１０６】
ステップＳ３００、前回の反復の顔検出モデルを固定し、前回の反復の顔検出モデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値を取得する。
【０１０７】
ステップＳ３１０、トレーニングサンプル集合における各トレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値に基づき、トレーニングサンプル集合における各トレーニングサンプルの目標損失値を確定する。
【０１０８】
また、一つのトレーニングサンプルについて、本発明の実施例は、当該トレーニングサンプルの中心損失値、分類損失値、及び顔枠座標回帰損失値を加重合計して、当該トレーニングサンプルの目標損失値を取得し、各トレーニングサンプルに対してこの処理を行うことによって、各トレーニングサンプルの目標損失値を取得してもよい。
【０１０９】
また、一つのトレーニングサンプルについて、その目標損失値は、分類損失値＋μ中心損失値＋λ顔枠座標回帰損失値として表してもよい。
【０１１０】
また、一つのトレーニングサンプルについて、本発明の実施例は、当該トレーニングサンプルの中心損失値、分類損失値、及び顔枠座標回帰損失値を合計して、当該トレーニングサンプルの目標損失値を取得してもよい。
【０１１１】
ステップＳ３２０、トレーニングサンプル集合におけるポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスのサンプルクラスのうち最大の目標損失値の第１の数のトレーニングサンプルを選択し、トレーニングサンプル集合におけるネガティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ネガティブクラスのサンプルクラスにおける最大の目標損失値の第２の数のトレーニングサンプルを選択し、前記第２の数に対する前記第１の数の比値は設定比例に対応する。
【０１１２】
また、本発明の実施例は、トレーニングサンプル集合における各トレーニングサンプルの目標損失値を得た後、トレーニングサンプル集合における各トレーニングサンプルをポジティブクラスとネガティブクラスのサンプルクラスに従って分類することができ、これにより、トレーニングサンプル集合におけるポジティブクラスに属するサンプルクラスのうち各トレーニングサンプルの目標損失値、及びトレーニングサンプル集合におけるネガティブクラスに属するサンプルクラスのうち各トレーニングサンプルの目標損失値を確定することができ、同時に、ポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスに属するトレーニングサンプルをソートし（目標損失値を大きい順にソートしてもよく、目標損失値を小さい順にソートしてもよい）、ネガティブクラスのサンプルクラスにおける各トレーニングサンプルの目標損失値に基づき、ネガティブクラスに属するトレーニングサンプルをソートしてもよい。
【０１１３】
さらに、バッチデータトレーニングサンプルにおけるポジティブクラスのトレーニングサンプルとネガティブクラスのトレーニングサンプルとの設定比例に従って、トレーニングサンプル集合におけるポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスのサンプルクラスのうち最大の目標損失値の第１の数のトレーニングサンプルを選択し、トレーニングサンプル集合におけるネガティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ネガティブクラスのサンプルクラスのうち最大の目標損失値の第２の数のトレーニングサンプルを選択し、前記第２の数に対する第１の数の比値がバッチデータトレーニングサンプルにおいて要求されるポジティブ、ネガティブクラスサンプルの数の設定比例に対応するようにする。
【０１１４】
また、Ｃｅｎｔｅｒ Ｌｏｓｓによるポジティブサンプル（顔）とネガティブサンプル（非顔）とのデータバランス要求の考慮に基づいて、本発明の実施例は、設定比例を１:１とすることができ、即ち、第１の数と第２の数が同じである。
【０１１５】
ステップＳ３３０、ポジティブクラスのサンプルクラスから選択されたトレーニングサンプルと、ネガティブクラスのサンプルクラスから選択されたトレーニングサンプルによって、今回の反復のバッチデータトレーニングサンプルを構成する。
【０１１６】
このように、本発明の実施例によって提供される顔検出トレーニング方法では、前回の反復のバッチデータトレーニングサンプルを顔検出モデルに送ってトレーニングした後、前回の反復のバッチデータトレーニングサンプルのＣｅｎｔｅｒ ＬｏｓｓとＳｏｆｔｍａｘ Ｌｏｓｓに基づき、顔検出を更新して最適化し、前回の反復のバッチデータトレーニングサンプルのＳｍｏｏｔｈＬ１ Ｌｏｓｓに基づき、顔回帰器を更新して最適化することによって、顔検出がＣｅｎｔｅｒ Ｌｏｓｓ、Ｓｏｆｔｍａｘ ＬｏｓｓとＳｍｏｏｔｈＬ１ Ｌｏｓｓとの最小加重合計に最適化する。
【０１１７】
前回の反復は、次回の反復で使用されるバッチデータトレーニングサンプルを確定することができ、前回反復された顔検出モデルによって、トレーニングサンプル集合における各トレーニングサンプルのＣｅｎｔｅｒ Ｌｏｓｓ、Ｓｏｆｔｍａｘ Ｌｏｓｓ、及びＳｍｏｏｔｈＬ１ Ｌｏｓｓの目標損失値を確定することができ、それにより、最大の目標損失値の第１の数のポジティブクラスのトレーニングサンプルと、最大の目標損失値の第２の数のネガティブクラスのトレーニングサンプルをトレーニングサンプル集合から選択して、次回の反復のＭｉｎｉｂａｔｃｈ（即ち、バッチデータトレーニングサンプル）が構築される。
【０１１８】
それにより、次回の反復に進み、次回の反復では、当該Ｍｉｎｉｂａｔｃｈを顔検出モデルに送ってトレーニングし、ある反復で、バッチデータトレーニングサンプルのＳｍｏｏｔｈＬ１ Ｌｏｓｓ、Ｓｏｆｔｍａｘ Ｌｏｓｓ、及びＳｍｏｏｔｈＬ１ Ｌｏｓｓの加重合計が最小になるまで、循環反復してトレーニングする。
【０１１９】
上述したトレーニングサンプル集合では、前回反復トレーニングされた顔検出で検出されにくいトレーニングサンプルは次回の反復で使用されるＭｉｎｉｂａｔｃｈとして使用され、これにより、毎回の反復でｃｅｎｔｅｒ ｌｏｓｓの推定をよりよく行うことができるので、トレーニングサンプルにおいてクラス内の差異の識別力を有する特徴をよりよく監視学習することができる。
【０１２０】
ここで説明する必要があるのは、確率勾配降下アルゴリズムを使用して顔検出を行う従来の反復トレーニングとは異なり、本発明の実施例は、単にランダムに抽出されたバッチデータトレーニングサンプル（Ｍｉｎｉｂａｔｃｈ）を使用して勾配降下最適化を行うことではなく、前回の反復における、トレーニングサンプル集合のうち検出されにくいトレーニングサンプルを組み合わせて次回の反復で使用するＭｉｎｉｂａｔｃｈを確定する。
【０１２１】
これにより分かるように、本発明の実施例は、ロバストな顔検出トレーニング方法を提供する。当該方法は、ニューラルネットワークによって実現され、反復トレーニングの各トレーニング処理では、顔と非顔の２つのカテゴリのタスクの補助損失関数として、バッチデータトレーニングサンプルに対応するＣｅｎｔｅｒ Ｌｏｓｓ（中心損失値）を導入して、バッチデータトレーニングサンプルに対応するＳｏｆｔｍａｘ Ｌｏｓｓ（分類損失値）と共に顔検出の最適化トレーニングを監視し、顔検出の学習処理を指導することができ、これによって、顔検出は、顔と非顔とのクラス間の差異区別可能を維持しながら、顔と顔との間のクラス内の差異を減少し、顔に対する顔検出の判別能力を向上させる。
【０１２２】
そして、困難サンプルオンラインマイニングアルゴリズム（ＯＨＥＭ）を利用して、トレーニングサンプルの総損失値に基づき、前回のトレーニングにおいて、検出されにくいポジティブクラストレーニングサンプルとネガティブクラストレーニングサンプルをマイニングして、ポジティブ・ネガティブサンプルの比例を１:１に保ち、これにより、検出されにくいトレーニングサンプルに対する顔検出の分類能力を増強し、顔検出の全体的な性能を向上させる。
【０１２３】
なお、本発明は、顔の目標により適するアンカー枠（複数のサイズ、複数のアスペクト比をカバーする）及びマルチスケールのトレーニング戦略を採用して、異なる解像度の顔目標に対する判別性を向上させ、候補枠の生成を異なる顔に適したものにすることができ、本発明の実施例によって提供された顔検出トレーニング方法によってトレーニングされた顔検出は、正確率を効果的に向上し、ロバスト性を増強することができる。本発明の実施例の顔検出と他の方式によってトレーニングされる顔検出との性能比較は以下の表１に示す通りである。
【０１２４】
【表１】
0006855098.tif 000012
【０１２５】
これにより分かるように、本発明の実施例は、顔検出の顔検出判別能力を向上させ、顔検出のロバスト性を向上させることができる。
【０１２６】
本発明の実施例によって提供される顔検出トレーニング装置を以下説明し、後述する顔検出トレーニング装置の内容は、本発明の実施例にって提供される顔検出トレーニング方法を実施するために、顔検出トレーニングを実施するための電子機器に必要なプログラムモジュールであるとみなすことができ、後述する顔検出トレーニング装置の内容は、上述した顔検出トレーニング方法の内容と互いに対応して参照することができる。
【０１２７】
図８は、本発明の実施例によって提供される顔検出トレーニング装置の構成ブロック図であり、図８を参照すると、当該顔検出トレーニング装置は、
今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれるサンプル取得モジュール１００と、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定するためのサンプル中心損失値確定モジュール２００と、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定するためのバッチサンプル中心損失値確定モジュール３００と、
少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定するための検出目標損失値確定モジュール４００と、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新して、次回の反復に進むためのパラメータ更新モジュール５００と、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出を出力するための検出出力モジュール６００と、
を含むことができる。
【０１２８】
また、検出目標損失値確定モジュール４００は、少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定し、具体的に、
前記バッチデータトレーニングサンプルに対応する中心損失値、前記バッチデータトレーニングサンプルに対応する分類損失値、及び前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値に基づき、顔検出の目標損失値を確定すること、を含んでもよい。
【０１２９】
また、検出目標損失値確定モジュール４００は、前記バッチデータトレーニングサンプルに対応する中心損失値、前記バッチデータトレーニングサンプルに対応する分類損失値、及び前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値に基づき、顔検出の目標損失値を確定し、具体的に、
前記バッチデータトレーニングサンプルに対応する中心損失値と第１の設定重みとの積、前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値と第２の設定重みとの積、及び、前記バッチデータトレーニングサンプルに対応する分類損失値を合計して、顔検出の目標損失値を得ることを含んでもよい。
【０１３０】
また、サンプル取得モジュール１００は、今回の反復のバッチデータトレーニングサンプルを取得し、具体的に、
前回の反復の顔検出モデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する目標損失値を確定することと、
トレーニングサンプル集合におけるポジティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ポジティブクラスのサンプルクラスのうち最大の目標損失値の第１の数のトレーニングサンプルを選択し、トレーニングサンプル集合におけるネガティブクラスのサンプルクラスのうち各トレーニングサンプルの目標損失値に基づき、ネガティブクラスのサンプルクラスのうち最大の目標損失値の第２の数のトレーニングサンプルを選択し、前記第２の数に対する前記第１の数の比値が設定された比例に対応することと、
ポジティブクラスのサンプルクラスから選択されたトレーニングサンプルと、ネガティブクラスのサンプルクラスから選択されたトレーニングサンプルによって、今回の反復のバッチデータトレーニングサンプルを構成することとを含んでもよい。
【０１３１】
また、サンプル取得モジュール１００は、前回の反復の顔検出モデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する目標損失値を確定し、具体的に、
前回の反復の顔検出モデルで、トレーニングサンプル集合における各トレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値を取得し、その中、トレーニングサンプルに対応する分類損失値は当該トレーニングサンプルに対応する分類予測確率と分類目標確率に基づき確定し、トレーニングサンプルに対応する顔枠座標回帰損失値は当該トレーニングサンプルに対応する顔枠予測座標と顔枠目標座標に基づき確定することと、
トレーニングサンプル集合における各トレーニングサンプルに対応する中心損失値、分類損失値、及び顔枠座標回帰損失値に基づき、トレーニングサンプル集合における各トレーニングサンプルの目標損失値を確定することと、を含んでもよい。
【０１３２】
また、図９は、本発明の実施例によって提供される顔検出トレーニング装置の他の構成を示し、図８及び図９を参照すると、当該顔検出トレーニング装置は、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類予測確率と分類目標確率に基づき、前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値を確定し、前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する分類損失値に基づき、前記バッチデータトレーニングサンプルに対応する分類損失値を確定するための、バッチサンプル分類損失値確定モジュール７００をさらに含んでもよい。
【０１３３】
また、サンプル中心損失値確定モジュール２００は、各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定し、具体的に、
前記バッチデータトレーニングサンプルにおける各トレーニングサンプルの特徴ベクトル、及び前記バッチデータトレーニングサンプルにおける各サンプルクラスの中心特徴ベクトルを確定することと、
前記バッチデータトレーニングサンプルのうち一つのトレーニングサンプルに対して、当該トレーニングサンプルの特徴ベクトルと、前記バッチデータトレーニングサンプルにおける当該トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルとの距離を確定して、当該トレーニングサンプルに対応する中心損失値を得ること、を含んでもよい。
【０１３４】
また、サンプル中心損失値確定モジュール２００は、前記バッチデータトレーニングサンプルにおける各サンプルクラスの中心特徴ベクトルを確定し、具体的に、
一つのサンプルクラスに対して、前記バッチデータトレーニングサンプルにおける当該サンプルクラスに属する各トレーニングサンプルを確定することと、
前記バッチデータトレーニングサンプルにおける当該サンプルクラスに属する各トレーニングサンプルの特徴ベクトルに基づき、当該サンプルクラスに属する各トレーニングサンプルの特徴ベクトルの平均値を確定して、前記バッチデータトレーニングサンプルにおける当該サンプルクラスの中心特徴ベクトルの更新変数を得ることと、
前記更新変数と設定された学習率に基づき、前記バッチデータトレーニングサンプルにおける当該サンプルクラスの中心特徴ベクトルを得ることと、を含んでもよい。
【０１３５】
また、図１０は、本発明の実施例によって提供される顔検出トレーニング装置の別の構成を示し、図９と図１０を参照すると、当該顔検出トレーニング装置は、
候補枠回帰器に基づき、各前記バッチデータトレーニングサンプルにおける各トレーニングサンプルに対応する顔枠予測座標を確定し、各トレーニングサンプルに対応する顔枠予測座標、及び各トレーニングサンプルに対応する顔枠目標座標に基づき、各トレーニングサンプルに対応する顔枠座標回帰損失値を確定し、各トレーニングサンプルに対応する顔枠座標回帰損失値に基づき、前記バッチデータトレーニングサンプルに対応する顔枠座標回帰損失値を確定するための、バッチサンプル顔枠座標回帰損失値確定モジュール８００をさらに含んでもよい。
【０１３６】
また、パラメータ更新モジュール５００は、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新し、具体的に、
顔検出の目標損失値に基づき、バックプロパゲーションにより、顔検出モデルにおけるネットワークパラメータを更新することを含んでもよい。
【０１３７】
また、パラメータ更新モジュール５００は、顔検出の目標損失値に基づき、バックプロパゲーションにより、顔検出モデルにおけるネットワークパラメータを更新し、具体的に、
前記顔検出の目標損失値、及び前回の反復の顔検出モデルにおけるネットワークパラメータに基づき、顔検出のパラメータ更新値を確定することと、
当該顔検出のパラメータ更新値に基づき、前回の反復の顔検出モデルにおけるネットワークパラメータを更新することと、を含んでもよい。
【０１３８】
また、本発明の実施例によって提供される顔検出トレーニング装置は、さらに、
異なる縮尺とアスペクト比をカバーする複数のアンカー枠を予め定義し、当該予め定義された前記複数のアンカー枠によって、トレーニングサンプルにおけるサブ枠を確定し、前記サブ枠によって候補枠を予測する。
【０１３９】
本発明の実施例は電子機器をさらに提供し、当該電子機器のハードウェア構成は図３に示すように、少なくとも一つのメモリと少なくとも一つのプロセッサーを含み、
前記メモリにはプログラムが記憶され、前記プロセッサーは前記プログラムを呼び出して、前記プログラムにより、
今回の反復のバッチデータトレーニングサンプルを取得し、前記バッチデータトレーニングサンプルには異なるサンプルクラスの複数のトレーニングサンプルが含まれ、
各トレーニングサンプルの特徴ベクトル、及び各トレーニングサンプルが属するサンプルクラスの中心特徴ベクトルに基づき、各トレーニングサンプルに対応する中心損失値を確定し、
前記各トレーニングサンプルに対応する中心損失値に基づき、前記バッチデータトレーニングサンプルに対応する中心損失値を確定し、
少なくとも前記バッチデータトレーニングサンプルに対応する中心損失値に基づき、顔検出の目標損失値を確定し、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達していないと、前記顔検出の目標損失値に基づき、顔検出モデルのネットワークパラメータを更新して、次回の反復に進み、
前記顔検出の目標損失値が設定されたトレーニング収束条件に達すると、顔検出のトレーニング結果を出力する。
【０１４０】
本明細書における各実施例は漸進的に記載されており、各実施例は他の実施形態との相違点について主に説明し、各実施例間の同じ又は類似の部分は互いに参照され得る。実施例に開示された装置は、実施例に開示された方法に対応するので、説明は比較的単純であり、関連部分は方法のセクションの説明を参照することができる。
【０１４１】
当業者はさらに以下のことを理解することができ、本明細書に開示されている実施例に関連して説明されている各例示的なユニット及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又はそれらの組み合わせによって実現することができ、ハードウェアとソフトウェアの互換性を明確に説明するために、各例示的な構成要素及びステップは、上記の説明では機能の観点から一般的に説明されている。これらの機能がハードウェアで実行されるかソフトウェアで実行されるかは、技術的解決策の特定のアプリケーション及びソリューションの設計上の制約に依存する。当業者であれば、特定の用途ごとに、説明した機能を実現するために異なる方法を使用することができるが、そのような実現は本発明の範囲を超えると見なされるべきではない。
【０１４２】
本明細書に開示されている実施例に関連して説明されている方法又はアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、又はそれらの組み合わせで直接実施することができる。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、メモリ、読み出し専用メモリ（ＲＯＭ）、電気的にプログラム可能なＲＯＭ、電気的に消去可能なプログラム可能なＲＯＭ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ - ＲＯＭ、又は当該技術分野で知られている既知の任意の他の形態の記憶媒体に配置することができる。
【０１４３】
開示された実施例の上記説明は、当業者が本発明を実現又は使用することを可能にする。これらの実施例に対する様々な修正は当業者に明らかであり、本明細書で定義された一般的な原理は本発明の精神又は範囲から逸脱することなく他の実施例において実現することができる。したがって、本発明は本明細書に示されたこれらの実施例に限定されるべきではなく、本明細書に開示されている原理及び新規の特徴と一致している最も広い範囲にある。
【符号の説明】
【０１４４】
１００  サンプル取得モジュール
２００  サンプル中心損失値確定モジュール
３００  バッチサンプル中心損失値確定モジュール
４００  検出目標損失値確定モジュール
５００  パラメータ更新モジュール
６００  検出出力モジュール
７００  バッチサンプル分類損失値確定モジュール
８００  バッチサンプル顔枠座標回帰損失値確定モジュール
【図１】
0006855098.tif 000013
【図２】
0006855098.tif 000014
【図３】
0006855098.tif 000015
【図４】
0006855098.tif 000016
【図５】
0006855098.tif 000017
【図６】
0006855098.tif 000018
【図７】
0006855098.tif 000019
【図８】
0006855098.tif 000020
【図９】
0006855098.tif 000021
【図１０】
0006855098.tif 000022