Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

To implement AR with Plain White Walls/Floors

I have implemented Augmented Reality in my swift project by using Apple's ArKit. I have to show user's artworks on walls if they are trying to check if how those artworks will look on their walls and then they can decide to purchase it. It is working fine with some texture/designed/embossed walls/floors. But it unable to detect the plain surface like white/plain colored walls or floors. I need a solution to implement it with ARKit or If anyone can suggest achieving the same with any other way means by Unity, OpenCV or in any other language.

I have checked with ARKit and it says it will not detect the plain walls/surface horizontally or vertically. It must have any texture on it.

Is ML/AI help us to achieve this? If yes then how?

So if anyone can suggest anything to achieve this would be appreciated. Thanks

like image 967
Ravi Agrawal Avatar asked Aug 06 '19 11:08

Ravi Agrawal


1 Answers

ARKit uses technology called SLAM. It can track points on video from camera, but this points might be distinguishable. If we put some point on white wall, we unable to track it on next frame. If enough point are tracked on plane, ARKit will give you info about this plane.

We have other sensors like IMU, but it just help track device position in 3d space. It not provide any info about wall. Possible directions to dig in:

  • Give user ability manually put virtual wall in 3d space. If wall is only vertical, it really good constraint to wall placement.
  • Stick marker on the wall
  • Stick on wall some colored stickers to help ARKit find enough points on wall
  • Attach some additional sensor to device which can give info about wall (RGB-D camera or Lidar)
like image 135
Gralex Avatar answered Oct 08 '22 05:10

Gralex