<!--
{
  "availability" : [
    "iOS: 12.0.0 -",
    "iPadOS: 12.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARImageTrackingConfiguration",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARImageTrackingConfiguration"
  },
  "title" : "ARImageTrackingConfiguration"
}
-->

# ARImageTrackingConfiguration

A configuration that tracks known images using the rear-facing camera.

```
class ARImageTrackingConfiguration
```

## Overview

All AR configurations establish a correspondence between the real world the device inhabits and a virtual 3D coordinate space where you can model content. When your app displays that content together with a live camera image, the user experiences the illusion that your virtual content is part of the real world.

With [`ARImageTrackingConfiguration`](/documentation/ARKit/ARImageTrackingConfiguration), ARKit establishes a 3D space not by tracking the motion of the device relative to the world, but solely by detecting and tracking the motion of known 2D images in view of the camera. [`ARWorldTrackingConfiguration`](/documentation/ARKit/ARWorldTrackingConfiguration) can also detect images, but each configuration has its own strengths:

- World tracking has a higher performance cost than image-only tracking, so your session can reliably track more images at once with [`ARImageTrackingConfiguration`](/documentation/ARKit/ARImageTrackingConfiguration).
- Image-only tracking lets you anchor virtual content to known images only when those images are in view of the camera. World tracking with image detection lets you use known images to add virtual content to the 3D world, and continues to track the position of that content in world space even after the image is no longer in view.
- World tracking works best in a stable, nonmoving environment. You can use image-only tracking to add virtual content to known images in more situations—for example, an advertisement inside a moving subway car.

When an image-tracking configuration detects known images, it tracks their movement with six degrees of freedom (6DOF): specifically, the three rotation axes (roll, pitch, and yaw), and three translation axes (movement in x, y, and z).

To use [`ARImageTrackingConfiguration`](/documentation/ARKit/ARImageTrackingConfiguration), define ARReferenceImage objects (either at runtime or by bundling them in your Xcode asset catalog) and assign them to the configuration’s [`trackingImages`](/documentation/ARKit/ARImageTrackingConfiguration/trackingImages) property. Then, as with any AR configuration, pass the configuration to your session’s [`run(_:options:)`](/documentation/ARKit/ARSession/run(_:options:)) method.

## Topics

### Creating a Configuration

[`-  init`](/documentation/ARKit/ARImageTrackingConfiguration/init())

Initializes a new image-tracking configuration.

[`+  new`](/documentation/ARKit/ARImageTrackingConfiguration/new)

Creates a new image-tracking configuration.

### Choosing Images to Track

[`trackingImages`](/documentation/ARKit/ARImageTrackingConfiguration/trackingImages)

A set of images that ARKit searches for and tracks in the user’s environment.

[`maximumNumberOfTrackedImages`](/documentation/ARKit/ARImageTrackingConfiguration/maximumNumberOfTrackedImages)

The number of image anchors to monitor closely for position and orientation updates.

### Managing Device Camera Behavior

[`autoFocusEnabled`](/documentation/ARKit/ARImageTrackingConfiguration/isAutoFocusEnabled)

A Boolean value that determines whether the device camera uses fixed focus or autofocus behavior.

## Relationships

### Conforms To

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

### Inherits From

[`ARConfiguration`](/documentation/ARKit/ARConfiguration)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)