Can ARKit detect specific surfaces as planes?
ARKit has no support for such thing at the moment. You can indeed capture the plane detected as an image and if you're able to match this through core ML in real time, I'm sure lot of people would be interested!
You should:
- get the 3D position of the corners of the plane
- find their 2D position in the frame, using
sceneView.projectPoint
- extract the frame from the
currentFrame.capturedImage
- do an affine transform on the image to be left with the your plane, reprojected to a rectangle
- do some ML / image processing to detect a match
Keep in mind that the ARKit rectangle detection is often not well aligned, and can have only part of the full plane.
Finally, unfortunately, the feature points that ARKit exposes are not useful since they dont contain any characteristics used for matching feature points across frames, and Apple has not say what algorithm they use to compute their feature points.