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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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