# PoseDetectorOptions.Builder

public static class **PoseDetectorOptions.Builder** extends [Object](https://developer.android.com/reference/java/lang/Object.html)  
Builder for `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions`.

### Public Constructor Summary

|---|---|
|   | [Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder#Builder())() |

### Public Method Summary

|---|---|
| [PoseDetectorOptions](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions) | [build](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder#build())() |
| [PoseDetectorOptions.Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder) | [setDetectorMode](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder#setDetectorMode(int))(int detectorMode) Set the detector mode to be used, depending on what kind of input is being processed. |
| [PoseDetectorOptions.Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder) | [setExecutor](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder#setExecutor(java.util.concurrent.Executor))([Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html) executor) Sets the custom `https://developer.android.com/reference/java/util/concurrent/Executor.html` to use. |
| [PoseDetectorOptions.Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder) | [setPreferredHardwareConfigs](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder#setPreferredHardwareConfigs(int,%20int...))(int config, int... moreConfigs) Sets preferred `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase.HardwareConfig`s. |

### Inherited Method Summary

From class java.lang.Object

|---|---|
| [Object](https://developer.android.com/reference/java/lang/Object.html) | clone() |
| boolean | equals([Object](https://developer.android.com/reference/java/lang/Object.html) arg0) |
| void | finalize() |
| final [Class](https://developer.android.com/reference/java/lang/Class.html)\<?\> | getClass() |
| int | hashCode() |
| final void | notify() |
| final void | notifyAll() |
| [String](https://developer.android.com/reference/java/lang/String.html) | toString() |
| final void | wait(long arg0, int arg1) |
| final void | wait(long arg0) |
| final void | wait() |

## Public Constructors

#### public **Builder** ()

## Public Methods

#### public [PoseDetectorOptions](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions)
**build** ()

#### public [PoseDetectorOptions.Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder) **setDetectorMode** (int detectorMode)

Set the detector mode to be used, depending on what kind of input is being
processed. The `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetector#process(com.google.mlkit.vision.common.InputImage)` and `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetector#process(com.google.android.odml.image.MlImage)` call will treat the inputs differently based
on this mode.

Default: `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#STREAM_MODE`

Use `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#STREAM_MODE` for input frames consisting of related
images, for example, frames from a user's camera. This mode uses tracking, which
provides a speed-up when the frames consists of related images without much of a scene
change.

Use `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#SINGLE_IMAGE_MODE` for a single still image, or when
the input frames are unrelated.

##### Parameters

| detectorMode | the detector mode used, depending on what kind of input is being processed. One of `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#STREAM_MODE` or `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#SINGLE_IMAGE_MODE`. |
|---|---|

#### public [PoseDetectorOptions.Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder) **setExecutor** ([Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html) executor)

Sets the custom `https://developer.android.com/reference/java/util/concurrent/Executor.html`
to use. If no `https://developer.android.com/reference/java/util/concurrent/Executor.html`
is set, an internal background thread pool will be used.

Most clients should not need to call this method.

#### public [PoseDetectorOptions.Builder](https://developers.google.com/android/reference/com/google/mlkit/vision/pose/defaults/PoseDetectorOptions.Builder) **setPreferredHardwareConfigs** (int config, int... moreConfigs)

Sets preferred `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase.HardwareConfig`s.

Available options: `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#CPU`,
`https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#CPU_GPU`.

ML Kit will take availability, stability, correctness and latency of each config
into consideration and pick the best one from the preferred configs. If none of the
preferred configs is applicable, the default CPU config will be used automatically as
fallback.

Example usages:

- To let ML Kit pick the best config, no need to call this API.
- If don't want to enable any acceleration, pass in only `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#CPU`.
- If want to use GPU to offload CPU, even if GPU could be slower, pass in only `https://developers.google.com/android/reference/com/google/mlkit/vision/pose/PoseDetectorOptionsBase#CPU_GPU`.