AR Vuforia開(kāi)發(fā)Cylinder Target(圓柱體目標(biāo)識(shí)別)(轉(zhuǎn))

轉(zhuǎn)自:? www.arvrschool.com/read.php

識(shí)別的是3D物體,雖然在4.0中,Object Reco已經(jīng)成為常規(guī)配置,對(duì)于不規(guī)則的形狀能夠很好識(shí)別。但是Cylinder的識(shí)別還是有應(yīng)用場(chǎng)景的,至少Target處理過(guò)程相對(duì)容易一些。所以我還是想寫一下這方面的教程。這在很多案例中,都會(huì)是很好的應(yīng)用,尤其是在產(chǎn)品展示中。The Cylinder Targets sample shows how to detect a cylindrical target and animate a 3D object around the circumference of the cylinder. Key functionality includes:?? ? ? ? Detection and tracking of a cylinder target?? ? ? ? Occlusion handling?? ? ? ? Activate Extended Tracking?? ? ? ? Manage camera functions: flash and continuous autofocus主要特點(diǎn)如下:1、識(shí)別的目標(biāo)是個(gè)圓柱體,例如易拉罐等。2、支持虛實(shí)遮擋什么是虛實(shí)遮擋的呢?我們一般經(jīng)常能夠看到的時(shí)真實(shí)物體對(duì)象被虛擬物體遮擋了。比如ImageTarget的例子。但是cylinder targets的例子,虛擬物體是可以被真實(shí)物體遮擋的。這就能形成更加真實(shí)的效果。由于在ImageTarget案例中,target是2d平面的,而cylinder target的案例中,識(shí)別的對(duì)象是3D的圓柱體。因此會(huì)有以下不同的地方:和ImageTarget案例相似,識(shí)別的方式一樣,不同的是:

1、標(biāo)志制作方式不同

標(biāo)志制作依然在官網(wǎng)中完成。你會(huì)發(fā)現(xiàn)和制作一般的target不同,這里不需要我們選擇圖片,那要怎么搞呢?而且需要填寫尺寸的三個(gè)參數(shù):頂部和底部圓 的直徑,以及邊長(zhǎng),見(jiàn)下圖所示。D,d為直徑,sL為Side Length。注意:請(qǐng)勿將sL與高h(yuǎn)eight混淆。兩個(gè)特殊的情況,圓柱體和椎體:將三個(gè)參數(shù)填寫完成之后,形成了一個(gè)空白的cylinder標(biāo)志:點(diǎn)擊之后,進(jìn)入一個(gè)奇妙的從來(lái)沒(méi)有見(jiàn)過(guò)的場(chǎng)景:主要分成三個(gè)部分,點(diǎn)擊右邊交叉圖像進(jìn)行圖片上傳。進(jìn)入上傳圖片界面,圖片設(shè)定需要滿足下圖所示的小字:8位或者24的png/jpg圖片,jpg格式必須是RGB或者是灰度圖。圖片大小不大于3M。依次點(diǎn)擊上傳設(shè)計(jì)好的圖片資源即可。

2、效果呈現(xiàn)不同

最后案例的效果如圖:再次強(qiáng)調(diào):有虛實(shí)遮擋功能哦。沒(méi)錯(cuò),你會(huì)發(fā)現(xiàn),足球圍繞著易拉罐旋轉(zhuǎn),當(dāng)在易拉罐另一側(cè)時(shí),會(huì)看不到足球,到了正面之后又會(huì)出現(xiàn)足球。這就是虛實(shí)遮擋。這個(gè)在AR的三要素之一——虛實(shí)融合中,也是研究的主要課題之一。

根據(jù)前面介紹的,可以看出Side Length的重要性,同樣從dataset xml配置文件中也能夠看出:


PS:

在官網(wǎng)的Target Manager中上傳自定義的Target。我們只需要設(shè)置Upload Side,但是要注意Target圖片的寬高比約為2.094。

另外如果需要設(shè)置頂部和底部圖片,圖片需要是正方行的。

設(shè)置頂部和底部Target有兩個(gè)方面的好處:

便于知道實(shí)物朝向,正放還是倒放;

當(dāng)你從上往下看的時(shí)候,這時(shí)候頂部就有作用了。

最后,完成之后,坐標(biāo)系如下圖所示:

底部中心為原點(diǎn),Z正向朝上。符合右手坐標(biāo)系。

運(yùn)行之后的截圖:

替換模型就不用再說(shuō)了,demo中的足球?qū)崿F(xiàn)的是繞著圓柱體Target進(jìn)行旋轉(zhuǎn)。

voidUpdate ()

{

TransformparentTransform = transform.parent;

transform.RotateAround(parentTransform.position, parentTransform.up, -60*Time.deltaTime);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容