SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie JSARToolKit / LiveChromaKey / LivePointers - Next gen of AR

JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
gyuque
 
07 Collada Overview
07 Collada Overview07 Collada Overview
07 Collada Overview
johny2008
 
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
Wildan Maulana
 
Os Fetterupdated
Os FetterupdatedOs Fetterupdated
Os Fetterupdated
oscon2007
 

Ähnlich wie 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
 

Mehr von 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% Off
Yusuke 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 Meeting
Yusuke 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 2009
Yusuke Kawasaki
 
マッシュアップ×エンタープライズ開発 (XDev 2008)
マッシュアップ×エンタープライズ開発 (XDev 2008)マッシュアップ×エンタープライズ開発 (XDev 2008)
マッシュアップ×エンタープライズ開発 (XDev 2008)
Yusuke Kawasaki
 
英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5
Yusuke Kawasaki
 

Mehr von 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)
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
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
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

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