Conscience spatiale: que peuvent faire les lunettes Hololens?


Aujourd'hui, nous allons sauter dans le domaine de la conscience spatiale avec les lunettes Microsoft Hololens et parler du développement de Windows Mixed Reality (WMR), ainsi que de ce à quoi s'attendre de la deuxiÚme génération.


, Hololens Unity Mixed Reality Toolkit (MRTK).


UWP Microsoft.


Hololens?


Hololens – (Mixed Reality), (Spatial Awareness). Microsoft . EasyAR SDK 4.0 Sparse & Dense SpatialMap, .


Microsoft «» (25 ): Scene Understanding SDK.


, Spatial Understanding, Holotoolkit 2017.4.1.0 ( – MRTK) Unity 2017.4. – «How-To: Use Spatial Understanding to Query your Room with HoloLens».


, Hololens .


«» Hololens?


(: )


Hololens ToF- .
. , , Hololens ( ):



Hololens Spatial Awareness


– Unity, 3D-. .


«» (entry) , . Hololens : , , . Hololens .


( 5–10 , / ). . , , , .



Spatial Awareness MRTK Unity.
MRTK Microsoft. , Unity , github.


:


  • Observation Extents = 1.0f – ;
  • TPM = 600 – (scanning density). , ( );
  • Surface Update Time = 0.3f () – .

:




, Unity:


  • mesh.vertices Vector3 []– ;
  • mesh.triangles int []– , ;
  • mesh.uv Vector2[]– UV-.
    vertices triangles, :


, : :


  • i;
  • pi(x,y,z);
  • pi, i:

pi=1|Adj(i)|∑j∈Adj(i)qj


:


  • Adj(i)– , pi;
  • qj– , pi.

Wiki Unity , . MarkGX 2011 ( ). laplacianFilter, :


  • Vector3[] sv;
  • int[] t – , . ( ).

() . :


itt[k],t[k+1],t[k+2]: i, , , .

.


, , x, y, z, .


:


    public static Vector3[] laplacianFilter(Vector3[] sv, int[] t)
    {
        Vector3[] wv = new Vector3[sv.Length];
        List<Vector3> adjacentVertices = new List<Vector3>();

        float dx = 0.0f;
        float dy = 0.0f;
        float dz = 0.0f;

        for (int vi=0; vi< sv.Length; vi++)
        {
            adjacentVertices = MeshUtils.findAdjacentNeighbors (sv, t, sv[vi]);

            if (adjacentVertices.Count != 0)
            {
                dx = 0.0f;
                dy = 0.0f;
                dz = 0.0f;

                for (int j=0; j<adjacentVertices.Count; j++)
                {
                    dx += adjacentVertices[j].x;
                    dy += adjacentVertices[j].y;
                    dz += adjacentVertices[j].z;
                }

                wv[vi].x = dx / adjacentVertices.Count;
                wv[vi].y = dy / adjacentVertices.Count;
                wv[vi].z = dz / adjacentVertices.Count;
            }
        }
        return wv;
    }

:



, «» . , . , .


(HC-algorithm).
piqi() oidi.


bi:


bi:=pi−(αoi+(1−α)qi)


α– di. , di, , :


di:=−1|Adj(i)|∑j∈Adj(i)bj


i, biÎČ∈[0;1]:


di:=−(ÎČbi+1−ÎČ|Adj(i)|∑j∈Adj(i)bj)


ÎČ.


. .

, (α=0). «» ÎČ=0,5.


:




, ( ) «» .


Hololens , . , , , .


Extents , , .


, , (, Azure Kinect Snapdragon). .


All Articles