I've been playing around with ARKit and I am interested in the orientation of ARGeoAnchor, ARImageAnchor and ARFaceAnchor. First of all, I notice that Apple says that ARGeoAnchor is based on an East-North-Up orientation, with its x- and z-axes matching the longitude and latitude directions. This should actually be characterized as an East-Up-South orientation (see https://developer.apple.com/documentation/arkit/arconfiguration/worldalignment/gravityandheading). I created an image to illustrate my point.
It's the ferry building. Referring to the ARKit 4 presentation (wwdc20-10611), one can see that the 'Ferry Building' label is initially facing south and needs to be rotated by approximately -51.4 degrees about the y axis in order to face in the proper direction. As far as ARImageAnchor is concerned, it appears to me that the coordinate system is as in the below image.
This is surprising to me as I would have expected it to be x to the right, y pointing up in the image and z pointing out of the image. It appears that ARPlaneAnchor's orientation is the same as ARImageAnchor. As far as ARFaceAnchor is concerned, its orientation is clearly explained in https://developer.apple.com/documentation/arkit/arfaceanchor and the orientation seems consistent to me. I wish that the other anchors were explained as well. Anyway, feel free to chime in with corrections and comments.