Tangible user interface: object recognition when working with a multi-touch system

We will share our experience with the Tangible User Interface and tell you how to recognize markers by dot patterns. You will learn how to make spectacular visualizations using the display and infrared frame, as well as what pitfalls can be encountered when working with TUIO.



image



A note from the partner of the MAI IT center and the organizer of the “ VR / AR & AImaster's program - PHYGITALISM .



When solving scientific, educational or business problems, the problem often arises of finding the simplest and most understandable visualization of complex processes and data. Now this problem is being solved through computer technology and mobile devices. One approach for human interaction with digital information is the tangible user interface (TUI) or tactile user interface .



, // , . TUI , , , , .

TUI — Phygital Platform . - .



image



, , . , . ,  -  . , .



, ObjectViz, TUIO. , , .



, :



. . , ( ). , , . , . , , , : , , .



, ( , id, , ). , — , — , .



— () , , , , . , , .





G5S (Ultra-Slim) Multi-Touch Screen, 32 . TUIO (). :



 {"Id":15237,
     "Timestamp":397449,
     "Touches":[{
                    "Id":0,
                    "Position":{
                        "X":0.480208337,
                        "Y":0.5842593},
                    "Acceleration":{
                        "X":0.00208333344,
                        "Y":0.00370370364},
                    "Type":1},
                 {  
                    "Id":1,
                    "Position":{
                        "X":0.4859375,
                        "Y":0.484259248},
                    "Acceleration":{
                        "X":0.00208333344,
                        "Y":0.00370370364},
                    "Type":0},
                {
                    "Id":2,
                    "Position":{
                        "X":0.5140625,
                        "Y":0.551851869},
                    "Acceleration":{
                        "X":0.00208333344,
                        "Y":0.00370370364},
                    "Type":0}],
     "Count":3}


  • ID ();
  • Id ( );
  • Position ( X Y);
  • Type , (0 ; 1 , ; 2 );
  • Count


: , [0,1]. , :



image

, .



, . , , 0, .



, 100% . .



MAD=1ni=1n|LiL¯|



L¯=1ni=1nLi



D=maxLiiminLii



: MAD, L D , .



image

.



, , 2–3 . , , , Id, 20 .





, , — . . , .





, . . , , — .



image

.



, , , .



:



  • ;
  • ( ).


image

, .



image

, .



V0VsVl (s— shortest, l — longest). (V0Vl) , , (V0Vs). Vs , .



, :



|(VlxV0x)(VlyV0y)(VsxV0x)(VsyV0y)|>0



(VlxV0x)(VsyV0y)(VlyV0y)(VsxV0x)>0



.





, , , . , . .





, d. , , , , — , .



image

.



, , , , d. .



, — , , d, .



image

.



, , . , d. -, . . O(V+E), V — , E — .



:



  1. ;
  2. v:

    • v , DFS(v);
    • .


v:DFS(v):



  1. v ;
  2. v;
  3. v u:

    u , DFS(u).




— , .



, ( , ). , s , .



sk=13i=13|LkiLi¯|



RecognizedMarkerNumber=argmink(sk)



Lki — , Li — .



, , , .



image

.



, . , , , , . , , , — , , .



, . :



  • , . , "" . : , .



  • , , , .



  • , , — . , - , , , .





, .





, , , , Id . , , . Type.



, . , .







Active
Passive


, .



, ; , . Active ( = ) Passive ( = ). , , , .



: Added, Updated, Unstable, Removed. , .





Added , . UI . - Updated
Updated , , . Updated, Unstable, Removed
Unstable , , . Unstable, Updated, Removed
Removed , , . UI , - - -






n n+1
Added Updated
Updated Removed
Updated Updated
Unstable Updated ID
Unstable Removed
Unstable Unstable
Removed - .


, , (. . 10), , , : . 4,5.





Marker ,
Passive ,




New , Type = 0
Active , Type = 1
Lost , , Type = 2


image

.





, — .





image

.



, , , , . , , .



:



x=mamb(y1y3)+mb(x1+x2)ma(x2+x3)2(mbma)



y=1ma(x(x1+x2)2)+(y1+y2)2,



m — , :



ma=y2y1x2x1



mb=y3y2x3x2





image



φ . α₁ Oy . , — Oy . Vlx,VlyVl , VoVl ( ) . φ :



φ=α1α2



alpha=arctanvxvy



α, , , πθ<π.



image

, .



, , , .



, TUI , — , ( C#).



— !




All Articles