顔検出モデルを指定するSpecify a face detection model

このガイドでは、Azure Face サービスの顔検出モデルを指定する方法を示します。This guide shows you how to specify a face detection model for the Azure Face service.

Face サービスでは、機械学習モデルを使用して、画像内の人間の顔に対して操作を実行します。The Face service uses machine learning models to perform operations on human faces in images. お客様からのフィードバックや研究の進展に基づいてモデル精度の改善を続けており、これらの改善をモデルの更新として提供します。We continue to improve the accuracy of our models based on customer feedback and advances in research, and we deliver these improvements as model updates. 開発者には、使用する顔検出モデルのバージョンを指定する選択肢があり、自分のユースケースに最も適したモデルを選択できます。Developers have the option to specify which version of the face detection model they'd like to use; they can choose the model that best fits their use case.

特定の顔操作での顔検出モデルの指定方法について、後続の説明をお読みください。Read on to learn how to specify the face detection model in certain face operations. Face サービスは、顔の画像を他の形式のデータに変換するときは常に、顔検出を使用します。The Face service uses face detection whenever it converts an image of a face into some other form of data.

最新モデルを使用すべきかどうかわからない場合は、「さまざまなモデルを評価する」のセクションに進み、新しいモデルを評価したり、現在のデータセットを使用して結果を比較したりしてください。If you aren't sure whether you should use the latest model, skip to the Evaluate different models section to evaluate the new model and compare results using your current data set.

前提条件Prerequisites

AI による顔検出の概念を理解している必要があります。You should be familiar with the concept of AI face detection. そうでない場合は、顔検出に関する概念ガイドまたはハウツー ガイドを参照してください。If you aren't, see the face detection conceptual guide or how-to guide:

指定されたモデルで顔を検出するDetect faces with specified model

顔検出では、人間の顔の境界ボックス位置を見つけ、それらの視覚的な目印を識別します。Face detection finds the bounding-box locations of human faces and identifies their visual landmarks. 顔の特徴を抽出し、後で認識操作で使用するために保存します。It extracts the face's features and stores them for later use in recognition operations.

Face - Detect API を使用するときは、detectionModel パラメーターを使用してモデルのバージョンを割り当てることができます。When you use the Face - Detect API, you can assign the model version with the detectionModel parameter. 使用できる値は次のとおりです。The available values are:

  • detection_01
  • detection_02

Face - Detect REST API の要求 URL は次のようになります。A request URL for the Face - Detect REST API will look like this:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel][&detectionModel]&subscription-key=<Subscription key>

クライアント ライブラリを使用している場合は、適切な文字列を渡すことによって detectionModel の値を割り当てることができます。If you are using the client library, you can assign the value for detectionModel by passing in an appropriate string. 未割り当てのままにした場合、API は既定のモデル バージョン (detection_01) を使用します。If you leave it unassigned, the API will use the default model version (detection_01). .NET クライアント ライブラリの次のコード例を参照してください。See the following code example for the .NET client library.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(imageUrl, false, false, recognitionModel: "recognition_03", detectionModel: "detection_02");

指定したモデルを使用して Person に顔を追加するAdd face to Person with specified model

Face サービスは画像から顔データを抽出し、 PersonGroup Person - Add Face API によってそれを Person オブジェクトに関連付けることができます。The Face service can extract face data from an image and associate it with a Person object through the PersonGroup Person - Add Face API. この API 呼び出しでは、Face - Detect と同じ方法で検出モデルを指定できます。In this API call, you can specify the detection model in the same way as in Face - Detect.

.NET クライアント ライブラリの次のコード例を参照してください。See the following code example for the .NET client library.

// Create a PersonGroup and add a person with face detected by "detection_02" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_03");

string personId = (await faceClient.PersonGroupPerson.CreateAsync(personGroupId, "My Person Name")).PersonId;

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.PersonGroupPerson.AddFaceFromUrlAsync(personGroupId, personId, imageUrl, detectionModel: "detection_02");

このコードは、ID mypersongroupid を持つ PersonGroup を作成し、それに Person を追加します。This code creates a PersonGroup with ID mypersongroupid and adds a Person to it. 次に、detection_02 モデルを使用して、この Person に顔を追加します。Then it adds a Face to this Person using the detection_02 model. detectionModel パラメーターを指定しない場合、API は既定のモデルである detection_01 を使用します。If you don't specify the detectionModel parameter, the API will use the default model, detection_01.

注意

Person オブジェクト内のすべての顔に同じ検出モデルを使用する必要はありません。また、( Face - Identify API などで) Person オブジェクトと比較するために新しい顔を検出するときに、同じ検出モデルを使用する必要もありません。You don't need to use the same detection model for all faces in a Person object, and you don't need to use the same detection model when detecting new faces to compare with a Person object (in the Face - Identify API, for example).

指定したモデルを使用して FaceList に顔を追加するAdd face to FaceList with specified model

既存の FaceList オブジェクトに顔を追加するときにも検出モデルを指定できます。You can also specify a detection model when you add a face to an existing FaceList object. .NET クライアント ライブラリの次のコード例を参照してください。See the following code example for the .NET client library.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_03");

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
await client.FaceList.AddFaceFromUrlAsync(faceListId, imageUrl, detectionModel: "detection_02");

このコードは、My face collection という FaceList を作成し、それに detection_02 モデルを使用して顔を追加します。This code creates a FaceList called My face collection and adds a Face to it with the detection_02 model. detectionModel パラメーターを指定しない場合、API は既定のモデルである detection_01 を使用します。If you don't specify the detectionModel parameter, the API will use the default model, detection_01.

注意

FaceList オブジェクト内のすべての顔に同じ検出モデルを使用する必要はありません。また、 FaceList オブジェクトと比較するために新しい顔を検出するときに、同じ検出モデルを使用する必要もありません。You don't need to use the same detection model for all faces in a FaceList object, and you don't need to use the same detection model when detecting new faces to compare with a FaceList object.

さまざまなモデルを評価するEvaluate different models

各顔検出モデルは、異なるタスクに合わせて最適化されています。The different face detection models are optimized for different tasks. 相違点の概要については、次の表を参照してください。See the following table for an overview of the differences.

detection_01detection_01 detection_02detection_02
すべての顔検出操作に対する既定の選択です。Default choice for all face detection operations. 2019 年 5 月にリリースされ、すべての顔検出操作でオプションとして利用可能です。Released in May 2019 and available optionally in all face detection operations.
小さい顔、横顔、不鮮明な顔には最適化されていません。Not optimized for small, side-view, or blurry faces. 小さい顔、横顔、不鮮明な顔での精度が向上しています。Improved accuracy on small, side-view, and blurry faces.
検出呼び出しで顔の属性 (頭部姿勢、年齢、感情など) が指定されている場合は、それらを返します。Returns face attributes (head pose, age, emotion, and so on) if they're specified in the detect call. 顔の属性を返しません。Does not return face attributes.
検出呼び出しで顔のランドマークが指定されている場合は、それらを返します。Returns face landmarks if they're specified in the detect call. 顔のランドマークを返しません。Does not return face landmarks.

detection_01detection_02 モデルのパフォーマンスを比較する最良の方法は、それらをサンプル データセットで使用することです。The best way to compare the performances of the detection_01 and detection_02 models is to use them on a sample dataset. さまざまな画像、特に多数の顔や識別しづらい顔に対して、それぞれの検出モデルを使用して Face - Detect API を呼び出すことをお勧めします。We recommend calling the Face - Detect API on a variety of images, especially images of many faces or of faces that are difficult to see, using each detection model. 各モデルによって返される顔の数に注意してください。Pay attention to the number of faces that each model returns.

次のステップNext steps

この記事では、さまざまな Face API で使用する検出モデルを指定する方法について説明しました。In this article, you learned how to specify the detection model to use with different Face APIs. 次は、クイック スタートに従って顔検出を使い始めてみましょう。Next, follow a quickstart to get started using face detection.