When I tried this, using very similar code to the WWDC presentation using sceneview.snapshot(), all I got was a white texture. This is of course because currentFrame.capturedImage is actually two textures in YUV format.
This led me to look into how a metal based ARKit app renders the background, which is via a custom shader that does the format conversion straight to the screen. This is well documented here: https://developer.apple.com/documentation/arkit/displaying_an_ar_experience_with_metal but I presumably have to do the same thing into an RGB texture.
It seems this will involve a mix of scenekit and metal. I have several questions about this. Firstly, can I get access to the metalDevice that is running under the hood in ARKit? and is that even the right question to be asking?
It also occurs to me that there might be a simpler way. Is there some function, possibly built into the AV APIs, that will do the conversion for me?