引言:探索AR的神奇世界,我們將從二維碼的誕生談起。在這個(gè)科技的海洋中,二維碼是如何幫助AR實(shí)現(xiàn)數(shù)據(jù)獲取與位姿識(shí)別的呢?讓我們一起揭開(kāi)這層神秘的面紗!
一、二維碼的由來(lái)
二維碼是將數(shù)據(jù)存儲(chǔ)在圖形中的技術(shù),在1994年由騰弘原(Masahiro Hara)發(fā)明。這里還有一個(gè)趣聞,騰弘原在發(fā)明二維碼后放棄了申請(qǐng)專(zhuān)利,他說(shuō)了這么一句話(huà):“這種技術(shù)其實(shí)隨便找個(gè)網(wǎng)絡(luò)工具就能實(shí)現(xiàn),所以這么簡(jiǎn)單的東西,我就不收專(zhuān)利費(fèi)啦。”,這也是二維碼得以廣泛應(yīng)用的原因之一。
于1999年,加藤博一等人率先將AR技術(shù)與二維碼聯(lián)系起來(lái),結(jié)合二維碼技術(shù),開(kāi)發(fā)了ARToolKit這一AR工具,這一工具在當(dāng)今仍被廣泛使用。讓我們切回主題,談一談二維碼是如何在AR中得到應(yīng)用的。
二、二維碼的工作原理
二維碼可以為AR提供兩樣信息:ID和位姿,接下來(lái)讓我們一一介紹
1.ID識(shí)別
首先,我們需要約定二維碼的尺寸:
二維碼存在 40種尺寸,也就是二維碼每行/列中的小方塊的個(gè)數(shù),在官方文檔中,尺寸又被命名為 Version。尺寸與 Version存在線性關(guān)系:Version 1是 21×21的矩陣,Version 2是 25×25的矩陣,每增加一個(gè) Version,尺寸都會(huì)增加 4。 接下來(lái),我們會(huì)為二維碼劃分區(qū)域,并編碼:
二維碼的各部分都有自己的作用,基本上可被分為定位、功能數(shù)據(jù)、數(shù)據(jù)內(nèi)容三部分:
1)定位區(qū)域:
定位圖形:用于標(biāo)記二維碼矩形的大小;用三個(gè)定位圖案即可標(biāo)識(shí)并確定一個(gè)二維碼矩形的位置和方向
定位圖案分隔符:用白邊框?qū)⒍ㄎ粓D案與其他區(qū)域區(qū)分;
校正圖形:只有在 Version 2及其以上才會(huì)需要,用于矯正二維碼的形變
2)功能數(shù)據(jù):
格式信息:存在于所有尺寸中,存放格式化的數(shù)據(jù)
版本信息:用于 Version 7以上,需要預(yù)留兩塊 3×6的區(qū)域存放部分版本信息;
3)數(shù)據(jù)內(nèi)容:剩余部分存儲(chǔ)二值化的數(shù)據(jù)內(nèi)容,例如黑色方塊代表1,白色方塊代表0,此外數(shù)據(jù)內(nèi)容還包括補(bǔ)齊符、糾錯(cuò)碼、結(jié)束符等
接下來(lái)是識(shí)別:
輸入圖像,通過(guò)相機(jī)捕獲圖像
圖像二值化,通過(guò)圖形算法將圖像進(jìn)行二值化處理,即將圖像變?yōu)楹诎變缮膱D像
提取具有一定面積的連續(xù)區(qū)域
提取矩形區(qū)域的輪廓
對(duì)矩形區(qū)域內(nèi)部的圖案進(jìn)行解析,識(shí)別標(biāo)識(shí)內(nèi)容
由此,相機(jī)可以“認(rèn)出”二維碼及二維碼的內(nèi)容,將二維碼的功能數(shù)據(jù)中的ID提取出來(lái),這些ID可以是網(wǎng)站,可以是一個(gè)登錄申請(qǐng),也可以是激活設(shè)備某個(gè)功能的字符串
2.位姿識(shí)別
此外,二維碼也可幫助AR設(shè)備進(jìn)行位姿識(shí)別,什么是位姿識(shí)別呢?就是讓設(shè)備知道自己和二維碼之間的距離和相對(duì)的姿態(tài)關(guān)系,也即二維碼離我多遠(yuǎn)?二維碼是左右傾斜、還是前后俯仰?
位姿識(shí)別過(guò)程與ID識(shí)別類(lèi)似,不過(guò)不同之處是,在提取各區(qū)域的輪廓后,位姿識(shí)別最需要的信息,是二維碼區(qū)域4個(gè)角的頂點(diǎn)坐標(biāo)(Xi,Yi)。
首先,我們用示意圖表示攝像機(jī)的坐標(biāo)系、圖像坐標(biāo)系(攝像機(jī)拍攝的平面圖形的坐標(biāo)系)、標(biāo)識(shí)坐標(biāo)系(二維碼在現(xiàn)實(shí)中所在的坐標(biāo)系)
我們通過(guò)相機(jī)拍攝到的圖像坐標(biāo)系的點(diǎn)(Xi,Yi),與相機(jī)內(nèi)置的矯正矩陣K,可以求得旋轉(zhuǎn)變換矩陣R與平移向量t,其中,R表示二維碼相對(duì)相機(jī)發(fā)生的旋轉(zhuǎn),t表示二維碼相對(duì)相機(jī)發(fā)生的平移
大致求解流程如下:
結(jié)合對(duì)二維碼在圖像坐標(biāo)系的4個(gè)頂點(diǎn)所得的4項(xiàng)公式,我們便可求得矩陣R與t,得到二維碼的旋轉(zhuǎn)方位與平移方位,也可由此利用二維碼實(shí)現(xiàn)各式的AR應(yīng)用。
三、各式各樣的二維碼
以上是對(duì)二維碼工作原理的簡(jiǎn)單介紹,而在實(shí)際生活中,二維碼的形態(tài)也在不斷更迭,除了我們?nèi)粘R?jiàn)到的二維碼,現(xiàn)在已經(jīng)出現(xiàn)了防遮擋二維碼、紅外隱形二維碼、隨機(jī)點(diǎn)二維碼、微透鏡片二維碼等,這些新型二維碼,也可以和AR結(jié)合,幫助我們更好地與現(xiàn)實(shí)世界的物體進(jìn)行交互。
參考文獻(xiàn)
[1]:版權(quán)聲明:本文為CSDN博主「琦小蝦」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:二維碼生成原理及解析代碼
[2]:《增強(qiáng)現(xiàn)實(shí)(AR)技術(shù)權(quán)威指南》
審核編輯 黃宇
-
Ar
+關(guān)注
關(guān)注
24文章
5096瀏覽量
169546 -
二維碼
+關(guān)注
關(guān)注
7文章
425瀏覽量
26467
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論