SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Spark project 勉強会 #09




    JSARToolKit / LiveChromaKey

                             2009.05.27
                          Yusuke Kawasaki
                        川﨑 有亮 (kawanet)
                       http://www.kawa.net/



http://www.kawa.net/                          1
Yusuke Kawasaki(川﨑 有亮)

 • Perl monger
         – XML::TreePP, XML::FeedPP, ...
 • JavaScript addict
         – Wiimote over HTTP, Gainer, ...
 • ActionScript 3.0 newbie
         – Today!
 • Media Technology Labs
         – Recruit Co., Ltd. in Japan

   http://www.kawa.net/
   http://twitter.com/kawa0117
http://www.kawa.net/                        2
§1 - JSARToolKit




             JavaScript Augmented Reality
http://www.kawa.net/                        3
JSARToolKit

 • JSAR(ジャバスクリプト拡張現実)
    – JavaScript Augmented Reality

 • JSARToolKit
    – My first work using ActionScript 3.0
    – Powered by SWFObject!
    – A library to run AR by JavaScript
    – A proxy wrapper for a Flash app using FLARToolKit
    – Debuted at OSDC.TW 2009 in Taipei

 • Genealogy
    – 2008.03 – NyARToolKit for Java - by A⻁@nyatla.jp
    – 2008.05 – FLARToolKit for ActionScript3 by Saqoosha
    – 2009.04 – JSARToolKit for JavaScript by Kawanet

 • Saqoosha さん、本当にありがとうございます!!_o_

http://www.kawa.net/                                        4
JSARToolKit Synopsis

       It needs just several lines of JavaScript code to run AR.
       When a marker found, it calls onDetect callback function.


  < s c r i p            t     t y p             e = quot; t           e x t /         j a v        a s c   r i p       t quot;       s r c   = quot; s w f o b j e c t . j s quot; > < / s c r i p t >
   < s c r i p           t      t y p             e = quot; t           e x t /         j a v        a s c   r i p      t quot; s r c          = quot; j s a r . j s quot; > < / s c r i p t >
    < s c r i p          t       t y p             e = quot; t           e x t /         j a v        a s c   r i p      t quot; > < ! -      -
              v a        r        p a t             s =               [ ' j           s a r        l o g   o . p      a t ' ] ;
               v a       r         j s a             r =               n e w           J S A        R ( '   j s a      r _ h e r e    ' ) ;
                j s      a r        . d r             a w M a           r k e r         R e c   t = t r                 u e ;
                 j s     a r         . o n             D e t e           c t e d           =     f u n c t i             o n ( r e    s u l t )   { . . . } ;
                  j s    a r          . i n             i t ( )    ;
                   j s   a r           . s e             t M a r   k e r ( p a t s ) ;
     - - > < / s         c r            i p t    >
      < d i v i          d =             quot; j s   a r _ h e r e quot; > < / d i v >




http://www.kawa.net/                                                                                                                                                                      5
JSAR returns a JavaScript Object

                       {
                           quot; d e t e c        t e d quot; : t r u e ,
                            quot; m a r k e        r s quot; : [
                                 {
                                     quot; c      o d e       i d quot;          :       0 ,
                                      quot; d      i r e       c t i         o n quot; :            2 ,
                                       quot; c      o n f       i d e         n c e quot;       :      0 . 5 1 2 6 3 7 ,
                                        quot; v      e r t       e x quot;         : [
                                              {       quot;       x quot; :          3 4 6      ,      quot; y quot;      :   2 0 1      } ,
                                              {       quot;        x quot; :          2 7 7     ,       quot; y quot;     :    1 9 1     } ,
                                              {       quot;         x quot; :          3 5 3    ,        quot; y quot;    :     1 3 0    } ,
                                              {       quot;          x quot; :          3 9 5   ,         quot; y quot;   :      1 5 4   }
                                       ]
                                 } ,
                           ] ,
                       }



http://www.kawa.net/                                                                                                           6
JSARToolKit Layers




                                     Flash Layer jsar.swf


                                     HTML Canvas Layer


                                     HTML Div Layer




http://www.kawa.net/                                        7
AiR Xiaolongbao(エア⼩籠包)

   2009.04.19 @ Taipei (OSDC.TW)




http://www.kawa.net/                8
§2 - LiveChromaKey




      Bluescreen-less augmented IN reality
http://www.kawa.net/                         9
LiveChromaKey
 • A new image synthesizing engine for AR
    – 2009.05 released by Kawanet (me!)
 • Pure ActionScripe 3.0
    – No library dependencies
    – No JavaScript
 • Only webcam needed
    – No blue back screen
    – No need to print
      AR marker PDF


http://www.kawa.net/                        10
Step 1/3 - Stationary background

 At first, connect you webcam and run LiveChromaKey.
 Never move until it recognizes stationary background.




http://www.kawa.net/                                     11
Step 2/3 – Bluescreen on the fly

   It generates bluescreen automatically.
   Live Video – Background = Bluescreen




                       -           ⇒




http://www.kawa.net/                        12
Step 3/3 - Transparent foreground

   Get the foreground image as a translarent Sprite.
   Live Video – Bluescreen = Foreground




                       -              ⇒




http://www.kawa.net/                                   13
LiveChromaKey Synopsis

   LiveChromaKey provides four kinds of Sprites.


          v a r c h r o m a k e y : L C K _ C o r e                                              =       n e w         L C K _ C o r e ( ) ;
           c h r o m a k e y . i n i t ( ) ;

          v a r          s p L      i v e       : S p      r i t       e      =       c h r      o m a      k e y      . g e      t L i      v e (      ) ;
           v a r          s p B      a c k       : S p      r i t      e      =        c h r      o m a      k e y      . g e      t B a      c k g     r o u n d ( ) ;
            v a r          s p M      a s k       : S p      r i t     e      =         c h r      o m a      k e y      . g e      t M a      s k (     ) ;
             v a r          s p F      o r e       : S p      r i t    e      =          c h r      o m a      k e y      . g e      t F o      r e g     r o u n d ( ) ;

          t h i      s . a       d d C      h i l       d (        s p L      i v e           ) ;
           t h i      s . a       d d C      h i l      d (         s p B      a c k          ) ;
            t h i      s . a       d d C      h i l     d (          s p M      a s k         ) ;
             t h i      s . a       d d C      h i l    d (           s p F      o r e        ) ;




http://www.kawa.net/                                                                                                                                                        14
Example: Travelling in Egypt




                       egypt.swf
http://www.kawa.net/                      15
Sprites augmented IN reality

   The key feature of LiveChromaKey is to insert
   Sprites augmented between background and
   foreground images.

                       Sprite




http://www.kawa.net/                               16
Example: Slideshow in reality




                       minority.swf
http://www.kawa.net/                      17
Multiarmed deity (or 美川健⼀)




                       exile.swf
http://www.kawa.net/                   18
ひとり おそ松くん




                         exile.swf
http://www.kawa.net/                 19
ひとり Exile




                        exile.swf
http://www.kawa.net/                20
§3 - LivePointers




        Live Color Pointer Detection Library
http://www.kawa.net/                           21
LivePointers

 • Live Color Pointer Detection Library
    – will be released soon!

 • Pure ActionScripe 3.0
    – No library dependencies
    – No JavaScript


 • Webcam as a 3D human interface
    – No need to print AR marker PDF

http://www.kawa.net/                      22
Pointer = Pixel Cluster



 • Ex.
   – Cluster #0
   – 250 pixels
   – RGB: 25D985
   – H: 152
   – S: 0.83
   – V: 0.85


http://www.kawa.net/                       23
Labeled Pointer Detection

 • Labeled pointer needs a guide color.

 • ex. fingercap
    – 0x2197A9 (uint)
    – ¥105(キャン・ドゥ)

 • Fingercap is definitely
   important user interface
   device of the future.



http://www.kawa.net/                      24
LivePointers(⽇本語のみスマソ)

 • 最短距離法 (Nearest Neighbor Clustering) をベース
   にして、ActionScript 3.0 でリアルタイムに表⽰でき
   る程度に単純化したクラスタ分析処理を⾏う。

 • 画⾯内の単⾊のカラーマーカーを検出します。
   – ⽩・⿊・グレー・淡⾊は検出しません。
   – (S・V値が⾼い)くっきりした⾊が得意です。
   – 模様は検出しません。(⾊のみを認識する)
   – 通常は、画⾯内の全ての検出⽤ガイドとしてRGBで
     ⾊指定した「ラベル付マーカー」を利⽤する。

 • 3次元⼊⼒のポインティングデバイスとして利⽤可能。

http://www.kawa.net/                          25
Now on the Spark!


  JSARToolKit
  http://www.libspark.org/svn/js/JSARToolKit/

  LiveChromaKey
  http://www.libspark.org/svn/as3/LiveChromaKey/

  LivePointers
  ... coming soon!



http://www.kawa.net/                               26
Thank you!


                          Yusuke Kawasaki
                        川﨑 有亮 (kawanet)
                       http://www.kawa.net/



http://www.kawa.net/                          27

Contenu connexe

Similaire à JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR

Plone Interactivity
Plone InteractivityPlone Interactivity
Plone InteractivityEric Steele
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009gyuque
 
Rocky Mountain URISA Talk (June 2008)
Rocky Mountain URISA Talk (June 2008)Rocky Mountain URISA Talk (June 2008)
Rocky Mountain URISA Talk (June 2008)Dave Bouwman
 
Ajax On S2 Odp
Ajax On S2 OdpAjax On S2 Odp
Ajax On S2 Odpghessler
 
Out with Regex, In with Tokens
Out with Regex, In with TokensOut with Regex, In with Tokens
Out with Regex, In with Tokensscoates
 
High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)Stoyan Stefanov
 
톰캣 #05-배치
톰캣 #05-배치톰캣 #05-배치
톰캣 #05-배치GyuSeok Lee
 
07 Collada Overview
07 Collada Overview07 Collada Overview
07 Collada Overviewjohny2008
 
炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作Johnny Sung
 
Solr and symfony in Harmony with SolrJs
Solr and symfony in Harmony with SolrJsSolr and symfony in Harmony with SolrJs
Solr and symfony in Harmony with SolrJsWildan Maulana
 
Os Fetterupdated
Os FetterupdatedOs Fetterupdated
Os Fetterupdatedoscon2007
 
Ajax и будущее Java Script
Ajax и будущее Java ScriptAjax и будущее Java Script
Ajax и будущее Java ScriptConstantin Kichinsky
 
JavaScript Beginner Tutorial | WeiYuan
JavaScript Beginner Tutorial | WeiYuanJavaScript Beginner Tutorial | WeiYuan
JavaScript Beginner Tutorial | WeiYuanWei-Yuan Chang
 

Similaire à JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR (20)

Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
 
JSON Viewer XPATH Workbook
JSON Viewer XPATH WorkbookJSON Viewer XPATH Workbook
JSON Viewer XPATH Workbook
 
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
 
Rocky Mountain URISA Talk (June 2008)
Rocky Mountain URISA Talk (June 2008)Rocky Mountain URISA Talk (June 2008)
Rocky Mountain URISA Talk (June 2008)
 
Ajax On S2 Odp
Ajax On S2 OdpAjax On S2 Odp
Ajax On S2 Odp
 
Out with Regex, In with Tokens
Out with Regex, In with TokensOut with Regex, In with Tokens
Out with Regex, In with Tokens
 
High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)
 
톰캣 #05-배치
톰캣 #05-배치톰캣 #05-배치
톰캣 #05-배치
 
my resume
my resumemy resume
my resume
 
Revisited
RevisitedRevisited
Revisited
 
JavaFX Overview
JavaFX OverviewJavaFX Overview
JavaFX Overview
 
07 Collada Overview
07 Collada Overview07 Collada Overview
07 Collada Overview
 
recycle
recyclerecycle
recycle
 
Cooking with Chef
Cooking with ChefCooking with Chef
Cooking with Chef
 
炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作炎炎夏日學 Android 課程 - Part3: Android app 實作
炎炎夏日學 Android 課程 - Part3: Android app 實作
 
Sinatra
SinatraSinatra
Sinatra
 
Solr and symfony in Harmony with SolrJs
Solr and symfony in Harmony with SolrJsSolr and symfony in Harmony with SolrJs
Solr and symfony in Harmony with SolrJs
 
Os Fetterupdated
Os FetterupdatedOs Fetterupdated
Os Fetterupdated
 
Ajax и будущее Java Script
Ajax и будущее Java ScriptAjax и будущее Java Script
Ajax и будущее Java Script
 
JavaScript Beginner Tutorial | WeiYuan
JavaScript Beginner Tutorial | WeiYuanJavaScript Beginner Tutorial | WeiYuan
JavaScript Beginner Tutorial | WeiYuan
 

Plus de Yusuke Kawasaki

IR Light vs HEV Light - OSDC.TW 2013 #osdctw
IR Light vs HEV Light - OSDC.TW 2013 #osdctwIR Light vs HEV Light - OSDC.TW 2013 #osdctw
IR Light vs HEV Light - OSDC.TW 2013 #osdctwYusuke Kawasaki
 
Blue Light Filter 〜 おばかアプリ選手権
Blue Light Filter 〜 おばかアプリ選手権Blue Light Filter 〜 おばかアプリ選手権
Blue Light Filter 〜 おばかアプリ選手権Yusuke Kawasaki
 
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet Yusuke Kawasaki
 
HTML5 Conference [LT] Blue Light Filter 50% Off
HTML5 Conference [LT] Blue Light Filter 50% OffHTML5 Conference [LT] Blue Light Filter 50% Off
HTML5 Conference [LT] Blue Light Filter 50% OffYusuke Kawasaki
 
Mashup Awards 6 - YAPC::Asia 2010 Tokyo
Mashup Awards 6 - YAPC::Asia 2010 TokyoMashup Awards 6 - YAPC::Asia 2010 Tokyo
Mashup Awards 6 - YAPC::Asia 2010 TokyoYusuke Kawasaki
 
MR Weathercaster - The Obaka Appli Championship 3
MR Weathercaster - The Obaka Appli Championship 3MR Weathercaster - The Obaka Appli Championship 3
MR Weathercaster - The Obaka Appli Championship 3Yusuke Kawasaki
 
Corporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 Tokyo
Corporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 TokyoCorporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 Tokyo
Corporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 TokyoYusuke Kawasaki
 
YAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf Meeting
YAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf MeetingYAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf Meeting
YAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf MeetingYusuke Kawasaki
 
Recent Web Tech Updates from Japan - YAPC::Europe 2009 Lisbon
Recent Web Tech Updates from Japan - YAPC::Europe 2009 LisbonRecent Web Tech Updates from Japan - YAPC::Europe 2009 Lisbon
Recent Web Tech Updates from Japan - YAPC::Europe 2009 LisbonYusuke Kawasaki
 
The JUI Digest Taipei (JSAR) - OSDC.TW 2009
The JUI Digest Taipei (JSAR) - OSDC.TW 2009The JUI Digest Taipei (JSAR) - OSDC.TW 2009
The JUI Digest Taipei (JSAR) - OSDC.TW 2009Yusuke Kawasaki
 
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Yusuke Kawasaki
 
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Yusuke Kawasaki
 
Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)Yusuke Kawasaki
 
Recruit's OpenID RP Services (渋谷テクニカルナイト)
Recruit's OpenID RP Services (渋谷テクニカルナイト)Recruit's OpenID RP Services (渋谷テクニカルナイト)
Recruit's OpenID RP Services (渋谷テクニカルナイト)Yusuke Kawasaki
 
OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)Yusuke Kawasaki
 
JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009
JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009
JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009Yusuke Kawasaki
 
ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)Yusuke Kawasaki
 
マッシュアップ×エンタープライズ開発 (XDev 2008)
マッシュアップ×エンタープライズ開発 (XDev 2008)マッシュアップ×エンタープライズ開発 (XDev 2008)
マッシュアップ×エンタープライズ開発 (XDev 2008)Yusuke Kawasaki
 
英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5Yusuke Kawasaki
 
Facebook.JS (JavaScript)
Facebook.JS (JavaScript)Facebook.JS (JavaScript)
Facebook.JS (JavaScript)Yusuke Kawasaki
 

Plus de Yusuke Kawasaki (20)

IR Light vs HEV Light - OSDC.TW 2013 #osdctw
IR Light vs HEV Light - OSDC.TW 2013 #osdctwIR Light vs HEV Light - OSDC.TW 2013 #osdctw
IR Light vs HEV Light - OSDC.TW 2013 #osdctw
 
Blue Light Filter 〜 おばかアプリ選手権
Blue Light Filter 〜 おばかアプリ選手権Blue Light Filter 〜 おばかアプリ選手権
Blue Light Filter 〜 おばかアプリ選手権
 
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
シリコンバレーと世界のPerlエンジニア #yapcasia @kawanet
 
HTML5 Conference [LT] Blue Light Filter 50% Off
HTML5 Conference [LT] Blue Light Filter 50% OffHTML5 Conference [LT] Blue Light Filter 50% Off
HTML5 Conference [LT] Blue Light Filter 50% Off
 
Mashup Awards 6 - YAPC::Asia 2010 Tokyo
Mashup Awards 6 - YAPC::Asia 2010 TokyoMashup Awards 6 - YAPC::Asia 2010 Tokyo
Mashup Awards 6 - YAPC::Asia 2010 Tokyo
 
MR Weathercaster - The Obaka Appli Championship 3
MR Weathercaster - The Obaka Appli Championship 3MR Weathercaster - The Obaka Appli Championship 3
MR Weathercaster - The Obaka Appli Championship 3
 
Corporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 Tokyo
Corporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 TokyoCorporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 Tokyo
Corporate Perl in Recruit, OpenSocial and Emoji‎ - YAPC::Asia 2009 Tokyo
 
YAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf Meeting
YAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf MeetingYAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf Meeting
YAPC::Europe 2009 Lisbon Report @ Yapc::Asia Pre-conf Meeting
 
Recent Web Tech Updates from Japan - YAPC::Europe 2009 Lisbon
Recent Web Tech Updates from Japan - YAPC::Europe 2009 LisbonRecent Web Tech Updates from Japan - YAPC::Europe 2009 Lisbon
Recent Web Tech Updates from Japan - YAPC::Europe 2009 Lisbon
 
The JUI Digest Taipei (JSAR) - OSDC.TW 2009
The JUI Digest Taipei (JSAR) - OSDC.TW 2009The JUI Digest Taipei (JSAR) - OSDC.TW 2009
The JUI Digest Taipei (JSAR) - OSDC.TW 2009
 
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
 
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
 
Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)
 
Recruit's OpenID RP Services (渋谷テクニカルナイト)
Recruit's OpenID RP Services (渋谷テクニカルナイト)Recruit's OpenID RP Services (渋谷テクニカルナイト)
Recruit's OpenID RP Services (渋谷テクニカルナイト)
 
OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)
 
JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009
JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009
JUI Conference "Flashはもういらない!?" Adobe MAX Japan 2009
 
ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)
 
マッシュアップ×エンタープライズ開発 (XDev 2008)
マッシュアップ×エンタープライズ開発 (XDev 2008)マッシュアップ×エンタープライズ開発 (XDev 2008)
マッシュアップ×エンタープライズ開発 (XDev 2008)
 
英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5
 
Facebook.JS (JavaScript)
Facebook.JS (JavaScript)Facebook.JS (JavaScript)
Facebook.JS (JavaScript)
 

Dernier

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR

  • 1. Spark project 勉強会 #09 JSARToolKit / LiveChromaKey 2009.05.27 Yusuke Kawasaki 川﨑 有亮 (kawanet) http://www.kawa.net/ http://www.kawa.net/ 1
  • 2. Yusuke Kawasaki(川﨑 有亮) • Perl monger – XML::TreePP, XML::FeedPP, ... • JavaScript addict – Wiimote over HTTP, Gainer, ... • ActionScript 3.0 newbie – Today! • Media Technology Labs – Recruit Co., Ltd. in Japan http://www.kawa.net/ http://twitter.com/kawa0117 http://www.kawa.net/ 2
  • 3. §1 - JSARToolKit JavaScript Augmented Reality http://www.kawa.net/ 3
  • 4. JSARToolKit • JSAR(ジャバスクリプト拡張現実) – JavaScript Augmented Reality • JSARToolKit – My first work using ActionScript 3.0 – Powered by SWFObject! – A library to run AR by JavaScript – A proxy wrapper for a Flash app using FLARToolKit – Debuted at OSDC.TW 2009 in Taipei • Genealogy – 2008.03 – NyARToolKit for Java - by A⻁@nyatla.jp – 2008.05 – FLARToolKit for ActionScript3 by Saqoosha – 2009.04 – JSARToolKit for JavaScript by Kawanet • Saqoosha さん、本当にありがとうございます!!_o_ http://www.kawa.net/ 4
  • 5. JSARToolKit Synopsis It needs just several lines of JavaScript code to run AR. When a marker found, it calls onDetect callback function. < s c r i p t t y p e = quot; t e x t / j a v a s c r i p t quot; s r c = quot; s w f o b j e c t . j s quot; > < / s c r i p t > < s c r i p t t y p e = quot; t e x t / j a v a s c r i p t quot; s r c = quot; j s a r . j s quot; > < / s c r i p t > < s c r i p t t y p e = quot; t e x t / j a v a s c r i p t quot; > < ! - - v a r p a t s = [ ' j s a r l o g o . p a t ' ] ; v a r j s a r = n e w J S A R ( ' j s a r _ h e r e ' ) ; j s a r . d r a w M a r k e r R e c t = t r u e ; j s a r . o n D e t e c t e d = f u n c t i o n ( r e s u l t ) { . . . } ; j s a r . i n i t ( ) ; j s a r . s e t M a r k e r ( p a t s ) ; - - > < / s c r i p t > < d i v i d = quot; j s a r _ h e r e quot; > < / d i v > http://www.kawa.net/ 5
  • 6. JSAR returns a JavaScript Object { quot; d e t e c t e d quot; : t r u e , quot; m a r k e r s quot; : [ { quot; c o d e i d quot; : 0 , quot; d i r e c t i o n quot; : 2 , quot; c o n f i d e n c e quot; : 0 . 5 1 2 6 3 7 , quot; v e r t e x quot; : [ { quot; x quot; : 3 4 6 , quot; y quot; : 2 0 1 } , { quot; x quot; : 2 7 7 , quot; y quot; : 1 9 1 } , { quot; x quot; : 3 5 3 , quot; y quot; : 1 3 0 } , { quot; x quot; : 3 9 5 , quot; y quot; : 1 5 4 } ] } , ] , } http://www.kawa.net/ 6
  • 7. JSARToolKit Layers Flash Layer jsar.swf HTML Canvas Layer HTML Div Layer http://www.kawa.net/ 7
  • 8. AiR Xiaolongbao(エア⼩籠包) 2009.04.19 @ Taipei (OSDC.TW) http://www.kawa.net/ 8
  • 9. §2 - LiveChromaKey Bluescreen-less augmented IN reality http://www.kawa.net/ 9
  • 10. LiveChromaKey • A new image synthesizing engine for AR – 2009.05 released by Kawanet (me!) • Pure ActionScripe 3.0 – No library dependencies – No JavaScript • Only webcam needed – No blue back screen – No need to print AR marker PDF http://www.kawa.net/ 10
  • 11. Step 1/3 - Stationary background At first, connect you webcam and run LiveChromaKey. Never move until it recognizes stationary background. http://www.kawa.net/ 11
  • 12. Step 2/3 – Bluescreen on the fly It generates bluescreen automatically. Live Video – Background = Bluescreen - ⇒ http://www.kawa.net/ 12
  • 13. Step 3/3 - Transparent foreground Get the foreground image as a translarent Sprite. Live Video – Bluescreen = Foreground - ⇒ http://www.kawa.net/ 13
  • 14. LiveChromaKey Synopsis LiveChromaKey provides four kinds of Sprites. v a r c h r o m a k e y : L C K _ C o r e = n e w L C K _ C o r e ( ) ; c h r o m a k e y . i n i t ( ) ; v a r s p L i v e : S p r i t e = c h r o m a k e y . g e t L i v e ( ) ; v a r s p B a c k : S p r i t e = c h r o m a k e y . g e t B a c k g r o u n d ( ) ; v a r s p M a s k : S p r i t e = c h r o m a k e y . g e t M a s k ( ) ; v a r s p F o r e : S p r i t e = c h r o m a k e y . g e t F o r e g r o u n d ( ) ; t h i s . a d d C h i l d ( s p L i v e ) ; t h i s . a d d C h i l d ( s p B a c k ) ; t h i s . a d d C h i l d ( s p M a s k ) ; t h i s . a d d C h i l d ( s p F o r e ) ; http://www.kawa.net/ 14
  • 15. Example: Travelling in Egypt egypt.swf http://www.kawa.net/ 15
  • 16. Sprites augmented IN reality The key feature of LiveChromaKey is to insert Sprites augmented between background and foreground images. Sprite http://www.kawa.net/ 16
  • 17. Example: Slideshow in reality minority.swf http://www.kawa.net/ 17
  • 18. Multiarmed deity (or 美川健⼀) exile.swf http://www.kawa.net/ 18
  • 19. ひとり おそ松くん exile.swf http://www.kawa.net/ 19
  • 20. ひとり Exile exile.swf http://www.kawa.net/ 20
  • 21. §3 - LivePointers Live Color Pointer Detection Library http://www.kawa.net/ 21
  • 22. LivePointers • Live Color Pointer Detection Library – will be released soon! • Pure ActionScripe 3.0 – No library dependencies – No JavaScript • Webcam as a 3D human interface – No need to print AR marker PDF http://www.kawa.net/ 22
  • 23. Pointer = Pixel Cluster • Ex. – Cluster #0 – 250 pixels – RGB: 25D985 – H: 152 – S: 0.83 – V: 0.85 http://www.kawa.net/ 23
  • 24. Labeled Pointer Detection • Labeled pointer needs a guide color. • ex. fingercap – 0x2197A9 (uint) – ¥105(キャン・ドゥ) • Fingercap is definitely important user interface device of the future. http://www.kawa.net/ 24
  • 25. LivePointers(⽇本語のみスマソ) • 最短距離法 (Nearest Neighbor Clustering) をベース にして、ActionScript 3.0 でリアルタイムに表⽰でき る程度に単純化したクラスタ分析処理を⾏う。 • 画⾯内の単⾊のカラーマーカーを検出します。 – ⽩・⿊・グレー・淡⾊は検出しません。 – (S・V値が⾼い)くっきりした⾊が得意です。 – 模様は検出しません。(⾊のみを認識する) – 通常は、画⾯内の全ての検出⽤ガイドとしてRGBで ⾊指定した「ラベル付マーカー」を利⽤する。 • 3次元⼊⼒のポインティングデバイスとして利⽤可能。 http://www.kawa.net/ 25
  • 26. Now on the Spark! JSARToolKit http://www.libspark.org/svn/js/JSARToolKit/ LiveChromaKey http://www.libspark.org/svn/as3/LiveChromaKey/ LivePointers ... coming soon! http://www.kawa.net/ 26
  • 27. Thank you! Yusuke Kawasaki 川﨑 有亮 (kawanet) http://www.kawa.net/ http://www.kawa.net/ 27