本發(fā)明涉及導(dǎo)航
技術(shù)領(lǐng)域:
,尤其涉及一種手持終端的室內(nèi)導(dǎo)航方法及手持終端。
背景技術(shù):
:目前,在用戶使用手持終端時(shí),有些室內(nèi)場(chǎng)所很大,區(qū)域分布狀況比較復(fù)雜,用戶進(jìn)入這類場(chǎng)所后,很難找到目標(biāo)區(qū)域或位置。雖然目前有些在室內(nèi)場(chǎng)所利用手持終端進(jìn)行導(dǎo)航的方案,但這些方案對(duì)這些場(chǎng)所的軟、硬件要求較高,同時(shí),這些方案無(wú)法快速且準(zhǔn)確的對(duì)手持終端的實(shí)時(shí)位置進(jìn)行精確的計(jì)算,進(jìn)而使得導(dǎo)航精度較低。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于提供一種手持終端的室內(nèi)導(dǎo)航方法及手持終端,旨在低成本地實(shí)現(xiàn)手持終端的室內(nèi)精確導(dǎo)航。為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種手持終端的室內(nèi)導(dǎo)航方法,所述方法包括以下步驟:在接收到用戶發(fā)出的室內(nèi)導(dǎo)航指令后,手持終端控制其相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像,對(duì)鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的條形碼進(jìn)行數(shù)據(jù)解析,獲取鏡頭范圍內(nèi)的影像中的各個(gè)條形碼標(biāo)簽的標(biāo)識(shí)信息,并按照預(yù)設(shè)的彩色塊選擇規(guī)則,從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;按照選擇的每一個(gè)彩色塊在鏡頭范圍內(nèi)的影像中的位置,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo);根據(jù)預(yù)先設(shè)定的條形碼標(biāo)簽的標(biāo)識(shí)信息與彩色塊的世界坐標(biāo)系的坐標(biāo)的關(guān)聯(lián)數(shù)據(jù),按照選擇的每一個(gè)彩色塊所在的條形碼標(biāo)簽,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);基于選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),得到所述手持終端的位置。優(yōu)選地,所述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊,所述條形碼和兩個(gè)彩色塊設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊位于所述條形碼的兩端,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息;所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則鎖定離鏡頭最近的兩個(gè)條形碼標(biāo)簽,并分別從鎖定的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊。優(yōu)選地,所述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊組合,所述條形碼和兩個(gè)彩色塊組合設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊組合位于所述條形碼的兩端;所述彩色塊組合包括顏色不相同的多個(gè)彩色塊,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息;所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)處于所在標(biāo)簽基體的最外端的彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊。優(yōu)選地,所述若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊的步驟包括:從不同的條形碼標(biāo)簽中以排列組合的方式分別抽取四個(gè)彩色塊以組成不同的彩色塊組合;針對(duì)每一個(gè)彩色塊組合,確定彩色塊組合中四個(gè)彩色塊的預(yù)設(shè)位置點(diǎn),如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則確定所述凹四邊形的四個(gè)點(diǎn)中構(gòu)成的三角形面積最大的三個(gè)點(diǎn),并將確定的三個(gè)點(diǎn)構(gòu)成的三角形面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);比較各個(gè)彩色塊組合對(duì)應(yīng)的分散指標(biāo),確定出具有最大分散指標(biāo)的彩色塊組合中四個(gè)彩色塊。優(yōu)選地,所述若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊的步驟還包括:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則從凸四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合;分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,將所有三角形頂點(diǎn)組合對(duì)應(yīng)的三角形面積之和除以2,得到凸四邊形的面積,并將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。優(yōu)選地,所述若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊的步驟還包括:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則從所述凹四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合,分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,確定出最大的三角形面積對(duì)應(yīng)的三角形頂點(diǎn)組合,并將最大的三角形面積作為所述凹四邊形對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。優(yōu)選地,所述分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積的步驟包括:在計(jì)算一個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積時(shí),遍歷預(yù)存的三角形頂點(diǎn)組合與三角形面積的關(guān)聯(lián)數(shù)據(jù),分析是否有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配;若有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則找出匹配的三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將找出的面積作為該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積;若沒(méi)有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則根據(jù)該三角形頂點(diǎn)組合中各個(gè)頂點(diǎn)在世界坐標(biāo)系中的坐標(biāo),確定出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形各條邊的邊長(zhǎng),根據(jù)確定出的邊長(zhǎng)計(jì)算出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將該三角形頂點(diǎn)組合與計(jì)算出的三角形面積形成關(guān)聯(lián)數(shù)據(jù)并保存,以供后續(xù)進(jìn)行三角形面積的查找。優(yōu)選地,所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則如下:根據(jù)選擇的四個(gè)彩色塊對(duì)應(yīng)的四個(gè)像素坐標(biāo)系中的坐標(biāo)和四個(gè)世界坐標(biāo)系中的坐標(biāo),并根據(jù)預(yù)存在所述手持終端內(nèi)的相機(jī)內(nèi)參數(shù),計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)矩陣和平移矩陣;根據(jù)所述旋轉(zhuǎn)矩陣和平移矩陣轉(zhuǎn)換獲取所述手持終端的攝像頭在世界坐標(biāo)系中的坐標(biāo)作為所述手持終端在世界坐標(biāo)系中的坐標(biāo)。優(yōu)選地,所述基于選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),得到所述手持終端的位置的步驟之后還包括:基于計(jì)算出的所述手持終端在世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的方向計(jì)算規(guī)則,計(jì)算出所述手持終端的方向向量。優(yōu)選地,所述預(yù)設(shè)的方向計(jì)算規(guī)則如下:根據(jù)所述手持終端在世界坐標(biāo)系中的坐標(biāo)、所述相機(jī)內(nèi)參數(shù)、所述旋轉(zhuǎn)矩陣及所述平移矩陣,并由預(yù)設(shè)的攝像頭標(biāo)定模型計(jì)算得到所述手持終端的方向向量。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種室內(nèi)導(dǎo)航的手持終端,所述手持終端包括:獲取模塊,用于在接收到用戶發(fā)出的室內(nèi)導(dǎo)航指令后,控制手持終端的相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像,對(duì)鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的條形碼進(jìn)行數(shù)據(jù)解析,獲取鏡頭范圍內(nèi)的影像中的各個(gè)條形碼標(biāo)簽的標(biāo)識(shí)信息,并按照預(yù)設(shè)的彩色塊選擇規(guī)則,從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;計(jì)算模塊,用于按照選擇的每一個(gè)彩色塊在鏡頭范圍內(nèi)的影像中的位置,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo);根據(jù)預(yù)先設(shè)定的條形碼標(biāo)簽的標(biāo)識(shí)信息與彩色塊的世界坐標(biāo)系的坐標(biāo)的關(guān)聯(lián)數(shù)據(jù),按照選擇的每一個(gè)彩色塊所在的條形碼標(biāo)簽,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);定位模塊,用于基于選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),得到所述手持終端的位置。優(yōu)選地,所述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊,所述條形碼和兩個(gè)彩色塊設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊位于所述條形碼的兩端,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息;所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則鎖定離鏡頭最近的兩個(gè)條形碼標(biāo)簽,并分別從鎖定的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊。優(yōu)選地,所述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊組合,所述條形碼和兩個(gè)彩色塊組合設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊組合位于所述條形碼的兩端;所述彩色塊組合包括顏色不相同的多個(gè)彩色塊,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息;所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)處于所在標(biāo)簽基體的最外端的彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊。優(yōu)選地,所述計(jì)算模塊還用于:從不同的條形碼標(biāo)簽中以排列組合的方式分別抽取四個(gè)彩色塊以組成不同的彩色塊組合;針對(duì)每一個(gè)彩色塊組合,確定彩色塊組合中四個(gè)彩色塊的預(yù)設(shè)位置點(diǎn),如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則確定所述凹四邊形的四個(gè)點(diǎn)中構(gòu)成的三角形面積最大的三個(gè)點(diǎn),并將確定的三個(gè)點(diǎn)構(gòu)成的三角形面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);比較各個(gè)彩色塊組合對(duì)應(yīng)的分散指標(biāo),確定出具有最大分散指標(biāo)的彩色塊組合中四個(gè)彩色塊。優(yōu)選地,所述計(jì)算模塊還用于:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則從凸四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合;分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,將所有三角形頂點(diǎn)組合對(duì)應(yīng)的三角形面積之和除以2,得到凸四邊形的面積,并將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。優(yōu)選地,所述計(jì)算模塊還用于:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則從所述凹四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合,分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,確定出最大的三角形面積對(duì)應(yīng)的三角形頂點(diǎn)組合,并將最大的三角形面積作為所述凹四邊形對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。優(yōu)選地,所述計(jì)算模塊還用于:在計(jì)算一個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積時(shí),遍歷預(yù)存的三角形頂點(diǎn)組合與三角形面積的關(guān)聯(lián)數(shù)據(jù),分析是否有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配;若有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則找出匹配的三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將找出的面積作為該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積;若沒(méi)有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則根據(jù)該三角形頂點(diǎn)組合中各個(gè)頂點(diǎn)在世界坐標(biāo)系中的坐標(biāo),確定出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形各條邊的邊長(zhǎng),根據(jù)確定出的邊長(zhǎng)計(jì)算出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將該三角形頂點(diǎn)組合與計(jì)算出的三角形面積形成關(guān)聯(lián)數(shù)據(jù)并保存,以供后續(xù)進(jìn)行三角形面積的查找。優(yōu)選地,所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則如下:根據(jù)選擇的四個(gè)彩色塊對(duì)應(yīng)的四個(gè)像素坐標(biāo)系中的坐標(biāo)和四個(gè)世界坐標(biāo)系中的坐標(biāo),并根據(jù)預(yù)存在所述手持終端內(nèi)的相機(jī)內(nèi)參數(shù),計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)矩陣和平移矩陣;根據(jù)所述旋轉(zhuǎn)矩陣和平移矩陣轉(zhuǎn)換獲取所述手持終端的攝像頭在世界坐標(biāo)系中的坐標(biāo)作為所述手持終端在世界坐標(biāo)系中的坐標(biāo)。優(yōu)選地,所述手持終端還包括:方向確定模塊,用于基于計(jì)算出的所述手持終端在世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的方向計(jì)算規(guī)則,計(jì)算出所述手持終端的方向向量。優(yōu)選地,所述預(yù)設(shè)的方向計(jì)算規(guī)則如下:根據(jù)所述手持終端在世界坐標(biāo)系中的坐標(biāo)、所述相機(jī)內(nèi)參數(shù)、所述旋轉(zhuǎn)矩陣及所述平移矩陣,并由預(yù)設(shè)的攝像頭標(biāo)定模型計(jì)算得到所述手持終端的方向向量。本發(fā)明提出的一種手持終端的室內(nèi)導(dǎo)航方法及手持終端,利用手持終端的相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的標(biāo)識(shí)信息,并從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);再根據(jù)選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算得到所述手持終端的位置。由于僅需利用手持終端的相機(jī)攝像頭及在室內(nèi)預(yù)設(shè)位置預(yù)置條形碼標(biāo)簽即可進(jìn)行室內(nèi)導(dǎo)航,對(duì)軟、硬件要求較低,且根據(jù)在室內(nèi)預(yù)設(shè)位置預(yù)置的條形碼標(biāo)簽的彩色塊的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo)進(jìn)行綜合計(jì)算,能快速準(zhǔn)確的對(duì)手持終端的實(shí)時(shí)位置進(jìn)行精確的計(jì)算,從而提高室內(nèi)導(dǎo)航精度。附圖說(shuō)明圖1為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法第一實(shí)施例的流程示意圖;圖2為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中條形碼標(biāo)簽的結(jié)構(gòu)示意圖;圖3為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中凸四邊形的四個(gè)點(diǎn)組成的4種三角形頂點(diǎn)組合示意圖;圖4為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中凹四邊形的四個(gè)點(diǎn)組成的4種三角形頂點(diǎn)組合示意圖;圖5為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法第二實(shí)施例的流程示意圖;圖6為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中的導(dǎo)航應(yīng)用示意圖;圖7為本發(fā)明室內(nèi)導(dǎo)航的手持終端第一實(shí)施例的功能模塊示意圖;圖8為本發(fā)明室內(nèi)導(dǎo)航的手持終端第二實(shí)施例的功能模塊示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供一種手持終端的室內(nèi)導(dǎo)航方法。參照?qǐng)D1,圖1為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法第一實(shí)施例的流程示意圖。在第一實(shí)施例中,該手持終端的室內(nèi)導(dǎo)航方法包括:步驟S10,在接收到用戶發(fā)出的室內(nèi)導(dǎo)航指令后,手持終端控制其相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像,對(duì)鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的條形碼進(jìn)行數(shù)據(jù)解析,獲取鏡頭范圍內(nèi)的影像中的各個(gè)條形碼標(biāo)簽的標(biāo)識(shí)信息,并按照預(yù)設(shè)的彩色塊選擇規(guī)則,從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;本實(shí)施例中,可預(yù)先在室內(nèi)場(chǎng)所的預(yù)設(shè)位置如地面、墻壁、天花板等設(shè)置條形碼標(biāo)簽,該條形碼標(biāo)簽中至少包括相應(yīng)的標(biāo)識(shí)信息、彩色塊等。在手持終端接收到用戶通過(guò)物理按鍵或虛擬按鍵發(fā)出的室內(nèi)導(dǎo)航指令后,開(kāi)啟手持終端的相機(jī)攝像頭,并控制相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像。通過(guò)手持終端的相機(jī)攝像頭采集鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽,并對(duì)鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的條形碼進(jìn)行數(shù)據(jù)解析,獲取鏡頭范圍內(nèi)的影像中的各個(gè)條形碼標(biāo)簽的標(biāo)識(shí)信息,并按照預(yù)設(shè)的彩色塊選擇規(guī)則,從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊,在此對(duì)選擇的彩色塊數(shù)量不作限定。步驟S20,按照選擇的每一個(gè)彩色塊在鏡頭范圍內(nèi)的影像中的位置,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo);根據(jù)預(yù)先設(shè)定的條形碼標(biāo)簽的標(biāo)識(shí)信息與彩色塊的世界坐標(biāo)系的坐標(biāo)的關(guān)聯(lián)數(shù)據(jù),按照選擇的每一個(gè)彩色塊所在的條形碼標(biāo)簽,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);為選擇的每一個(gè)彩色塊,按照其在鏡頭范圍內(nèi)的影像中的位置,確定出對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo),如在一種實(shí)施方式中,可計(jì)算彩色塊的幾何中心在像素坐標(biāo)系中的坐標(biāo);根據(jù)預(yù)先確定的條形碼標(biāo)簽的標(biāo)識(shí)信息和彩色塊的世界坐標(biāo)系的坐標(biāo)的關(guān)聯(lián)數(shù)據(jù),為選擇的每一個(gè)彩色塊,按照其所在的條形碼標(biāo)簽,確定出對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo),如在一種實(shí)施方式中,可計(jì)算彩色塊的幾何中心在世界坐標(biāo)系中的坐標(biāo)。步驟S30,基于選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),得到所述手持終端的位置。根據(jù)選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)和世界坐標(biāo)系中的坐標(biāo),并按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),也即所述手持終端的位置,從而實(shí)現(xiàn)對(duì)手持終端的實(shí)時(shí)位置進(jìn)行精確的計(jì)算,進(jìn)行室內(nèi)導(dǎo)航。本實(shí)施例利用手持終端的相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的標(biāo)識(shí)信息,并從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);再根據(jù)選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算得到所述手持終端的位置。由于僅需利用手持終端的相機(jī)攝像頭及在室內(nèi)預(yù)設(shè)位置預(yù)置條形碼標(biāo)簽即可進(jìn)行室內(nèi)導(dǎo)航,對(duì)軟、硬件要求較低,且根據(jù)在室內(nèi)預(yù)設(shè)位置預(yù)置的條形碼標(biāo)簽的彩色塊的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo)進(jìn)行綜合計(jì)算,能快速準(zhǔn)確的對(duì)手持終端的實(shí)時(shí)位置進(jìn)行精確的計(jì)算,從而提高室內(nèi)導(dǎo)航精度。進(jìn)一步地,在其他實(shí)施例中,上述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊,所述條形碼和兩個(gè)彩色塊設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊位于所述條形碼的兩端,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息(例如,ID);所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則鎖定離鏡頭最近的兩個(gè)條形碼標(biāo)簽,并分別從鎖定的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊。進(jìn)一步地,在其他實(shí)施例中,上述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊組合,所述條形碼和兩個(gè)彩色塊組合設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊組合位于所述條形碼的兩端;所述彩色塊組合包括顏色不相同的多個(gè)彩色塊,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息(例如,ID);所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)處于所在標(biāo)簽基體的最外端的彩色塊,也即分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)最外圍的彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊。具體的,如圖2所示,圖2為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中條形碼標(biāo)簽的結(jié)構(gòu)示意圖。該條形碼標(biāo)簽包括標(biāo)簽基體1、條形碼2和兩個(gè)彩色塊組合3,所述條形碼2和兩個(gè)彩色塊組合3設(shè)于所述標(biāo)簽基體1上,且所述兩個(gè)彩色塊組合3位于所述條形碼2的兩端;所述彩色塊組合3包括顏色不相同的多個(gè)彩色塊31,如圖2中位于所述條形碼2的兩端的紅、綠、藍(lán)彩色塊31。其中,最外圍的彩色塊是處于所在標(biāo)簽基體1的最外端,如圖2中的紅色彩色塊31。進(jìn)一步地,在其他實(shí)施例中,上述若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊的步驟包括:從不同的條形碼標(biāo)簽中以排列組合的方式分別抽取四個(gè)彩色塊以組成不同的彩色塊組合;針對(duì)每一個(gè)彩色塊組合,確定彩色塊組合中四個(gè)彩色塊的預(yù)設(shè)位置點(diǎn),如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則確定所述凹四邊形的四個(gè)點(diǎn)中構(gòu)成的三角形面積最大的三個(gè)點(diǎn),并將確定的三個(gè)點(diǎn)構(gòu)成的三角形面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);比較各個(gè)彩色塊組合對(duì)應(yīng)的分散指標(biāo),確定出具有最大分散指標(biāo)的彩色塊組合中四個(gè)彩色塊。本實(shí)施例中,從不同的條形碼標(biāo)簽中以排列組合的方式分別抽取四個(gè)彩色塊以組成不同的彩色塊組合,例如,若所有的條形碼標(biāo)簽共有N個(gè)彩色塊,則共可以組成種彩色塊組合;針對(duì)每一個(gè)彩色塊組合,確定彩色塊組合中四個(gè)彩色塊的預(yù)設(shè)位置點(diǎn)如幾何中心點(diǎn),如果確定的四個(gè)點(diǎn)構(gòu)成的是凸四邊形,則將凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);如果確定的四個(gè)點(diǎn)構(gòu)成的是凹四邊形,則確定所述四個(gè)點(diǎn)中構(gòu)成的三角形面積最大的三個(gè)點(diǎn),并將確定的三個(gè)點(diǎn)構(gòu)成的三角形面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);比較各個(gè)彩色塊組合對(duì)應(yīng)的分散指標(biāo),確定出具有最大分散指標(biāo)的彩色塊組合中四個(gè)彩色塊。其中,本實(shí)施例中將四邊形分為凸四邊形和凹四邊形,有任意一個(gè)內(nèi)角大于180度的四邊形為凹四邊形,否則為凸四邊形。對(duì)于凸四邊形,將其面積作為其分散程度的衡量指標(biāo);而對(duì)于凹四邊形,則任取三個(gè)點(diǎn)構(gòu)成的三角形的面積,將其中最大的面積作為其分散指標(biāo)。進(jìn)一步地,在其他實(shí)施例中,上述若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊的步驟還包括:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則從凸四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合;分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,將所有三角形頂點(diǎn)組合對(duì)應(yīng)的三角形面積之和除以2,得到凸四邊形的面積,并將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。本實(shí)施例子,從凸四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合。分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,將所有三角形頂點(diǎn)組合對(duì)應(yīng)的三角形面積之和除以2,以得到凸四邊形的面積。具體的,如圖3所示,圖3為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中凸四邊形的四個(gè)點(diǎn)組成的4種三角形頂點(diǎn)組合示意圖;凸四邊形共有四個(gè)頂點(diǎn),共可以組成種三角形頂點(diǎn)組合。進(jìn)一步地,在其他實(shí)施例中,上述若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊的步驟還包括:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則從所述凹四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合,分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,確定出最大的三角形面積對(duì)應(yīng)的三角形頂點(diǎn)組合,并將最大的三角形面積作為所述凹四邊形對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。本實(shí)施例子,從凹四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合。分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,確定出最大的三角形面積對(duì)應(yīng)的三角形頂點(diǎn)組合,并將最大的三角形面積作為凹四邊形的分散指標(biāo)。具體的,如圖4所示,圖4為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中凹四邊形的四個(gè)點(diǎn)組成的4種三角形頂點(diǎn)組合示意圖;凹四邊形共有四個(gè)頂點(diǎn),共可以組成種三角形頂點(diǎn)組合。進(jìn)一步地,在其他實(shí)施例中,上述分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積的步驟包括:在計(jì)算一個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積時(shí),遍歷預(yù)存的三角形頂點(diǎn)組合與三角形面積的關(guān)聯(lián)數(shù)據(jù),分析是否有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配;例如,假設(shè)預(yù)存的三角形頂點(diǎn)組合包括A1、A2、A3組合,若該三角形頂點(diǎn)組合由A1、A2、A3頂點(diǎn)組成,則代表有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配。若有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則找出匹配的三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將找出的面積作為該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積;若沒(méi)有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則根據(jù)該三角形頂點(diǎn)組合中各個(gè)頂點(diǎn)在世界坐標(biāo)系中的坐標(biāo)即該三角形頂點(diǎn)組合各個(gè)頂點(diǎn)所在的彩色塊對(duì)應(yīng)的世界坐標(biāo)系的坐標(biāo),確定出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形各條邊的邊長(zhǎng),根據(jù)確定出的邊長(zhǎng)計(jì)算出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將該三角形頂點(diǎn)組合與計(jì)算出的三角形面積形成關(guān)聯(lián)數(shù)據(jù)并保存,以供后續(xù)進(jìn)行三角形面積的查找。進(jìn)一步地,在其他實(shí)施例中,所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則如下:根據(jù)選擇的四個(gè)彩色塊對(duì)應(yīng)的四個(gè)像素坐標(biāo)系中的坐標(biāo)和四個(gè)世界坐標(biāo)系中的坐標(biāo),并根據(jù)預(yù)存在所述手持終端內(nèi)的相機(jī)內(nèi)參數(shù),計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)矩陣和平移矩陣;根據(jù)所述旋轉(zhuǎn)矩陣和平移矩陣轉(zhuǎn)換獲取所述手持終端的攝像頭在世界坐標(biāo)系中的坐標(biāo)作為所述手持終端在世界坐標(biāo)系中的坐標(biāo)。本實(shí)施例中,根據(jù)選擇的四個(gè)彩色塊對(duì)應(yīng)的四個(gè)像素坐標(biāo)系中的坐標(biāo)和四個(gè)世界坐標(biāo)系中的坐標(biāo),并根據(jù)預(yù)存于手持終端內(nèi)的相機(jī)內(nèi)參數(shù)(fx,fy,u0,v0),計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)矩陣R和平移矩陣T,例如,可由OpenCV中的solvePnP函數(shù)計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)向量Rvec和平移矩陣T,并由OpenCV中的cvRodrigues2函數(shù)轉(zhuǎn)換旋轉(zhuǎn)向量Rvec得到旋轉(zhuǎn)矩陣R;將攝像頭坐標(biāo)系坐標(biāo)原點(diǎn)坐標(biāo)(Xc=0,Yc=0,Zc=0)帶入以下坐標(biāo)系轉(zhuǎn)換公式:其中,c指攝像頭坐標(biāo)系,w指世界坐標(biāo)系;進(jìn)而求出攝像頭在世界坐標(biāo)系中的坐標(biāo),也即手持終端在世界坐標(biāo)系中的坐標(biāo)為:Xw1Yw1Zw1=-T·R-1.]]>如圖5所示,本發(fā)明第二實(shí)施例提出一種手持終端的室內(nèi)導(dǎo)航方法,在上述實(shí)施例的基礎(chǔ)上,在上述步驟S30之后還包括:步驟S40,基于計(jì)算出的所述手持終端在世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的方向計(jì)算規(guī)則,計(jì)算出所述手持終端的方向向量。本實(shí)施例中,在計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo)之后,還可按照預(yù)設(shè)的方向計(jì)算規(guī)則,計(jì)算出所述手持終端的方向向量。具體的,所述預(yù)設(shè)的方向計(jì)算規(guī)則如下:設(shè)方向向量與地面交點(diǎn)在世界坐標(biāo)系中的坐標(biāo)是(Xw2,Yw2,Zw2),其中Zw2=0,則只需求Xw2,Yw2。根據(jù)手持終端在世界坐標(biāo)系中的坐標(biāo)(Xw1,Yw1,Zw1),相機(jī)內(nèi)參數(shù)(fx,fy,u0,v0),旋轉(zhuǎn)矩陣R,平移矩陣T,并由攝像頭標(biāo)定模型得:Zcu0v01=fx0u00fyv0001R11R12R13T1R21R22R23T2R31R32R33T3Xw2Yw2Zw21,(Zw2=0)---(3)]]>為使表達(dá)式簡(jiǎn)潔,使用矩陣S表示,設(shè)S=S11S12S13S14S21S22S23S24S31S32S33S34=fx0u00fyv0001R11R12R13T1R21R22R23T2R31R32R33T3---(4)]]>可得uZc=S11Xw2+S12Yw2+S14(5)vZc=S21Xw2+S22Yw2+S24(6)Zc=S31Xw2+S32Yw2+S34(7)聯(lián)立(5)(6)(7)三元一次方程可解得:Xw2=S12S24-S14S22+u0S22S34-u0S24S32-v0S12S34+v0S14S32S11S22-S12S21+u0S12S32-u0S22S31-v0S11S32+v0S12S32---(8)]]>Yw2=-S11S24-S14S21+uS21S34-uS24S32-v0S11S34+v0S14S31S11S22-S12S21+uS12S32-uS22S31-v0S11S32+v0S12S31---(9)]]>Zc=S11S22S34-S11S24S32-S12S21S34+S12S24S31+S14S21S32+S14S22S31S11S22-S12S21+u0S12S32-u0S22S31-v0S11S32+v0S12S31---(10)]]>又已知Zw2=0,法向量與地面交點(diǎn)在世界坐標(biāo)系的坐標(biāo)(Xw2,Yw2,Zw2)有解析解,則所述手持終端的方向向量為(Xw2-Xw1,Yw2-Yw1,Zw2-Zw1)。進(jìn)一步地,如圖6所示,圖6為本發(fā)明手持終端的室內(nèi)導(dǎo)航方法一實(shí)施例中的導(dǎo)航應(yīng)用示意圖;本實(shí)施例利用手持終端的相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的標(biāo)識(shí)信息,并從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);再根據(jù)選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算得到所述手持終端的位置及方向向量。由于根據(jù)在室內(nèi)預(yù)設(shè)位置預(yù)置的條形碼標(biāo)簽的彩色塊的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo)進(jìn)行綜合計(jì)算,能快速準(zhǔn)確的對(duì)手持終端的實(shí)時(shí)位置及方向向量進(jìn)行精確的計(jì)算,從而提高室內(nèi)導(dǎo)航精度。本發(fā)明進(jìn)一步提供一種室內(nèi)導(dǎo)航的手持終端。參照?qǐng)D7,圖7為本發(fā)明室內(nèi)導(dǎo)航的手持終端第一實(shí)施例的功能模塊示意圖。在第一實(shí)施例中,該室內(nèi)導(dǎo)航的手持終端包括:獲取模塊01,用于在接收到用戶發(fā)出的室內(nèi)導(dǎo)航指令后,控制手持終端的相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像,對(duì)鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的條形碼進(jìn)行數(shù)據(jù)解析,獲取鏡頭范圍內(nèi)的影像中的各個(gè)條形碼標(biāo)簽的標(biāo)識(shí)信息,并按照預(yù)設(shè)的彩色塊選擇規(guī)則,從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;本實(shí)施例中,可預(yù)先在室內(nèi)場(chǎng)所的預(yù)設(shè)位置如地面、墻壁、天花板等設(shè)置條形碼標(biāo)簽,該條形碼標(biāo)簽中至少包括相應(yīng)的標(biāo)識(shí)信息、彩色塊等。在手持終端接收到用戶通過(guò)物理按鍵或虛擬按鍵發(fā)出的室內(nèi)導(dǎo)航指令后,開(kāi)啟手持終端的相機(jī)攝像頭,并控制相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像。通過(guò)手持終端的相機(jī)攝像頭采集鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽,并對(duì)鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的條形碼進(jìn)行數(shù)據(jù)解析,獲取鏡頭范圍內(nèi)的影像中的各個(gè)條形碼標(biāo)簽的標(biāo)識(shí)信息,并按照預(yù)設(shè)的彩色塊選擇規(guī)則,從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊,在此對(duì)選擇的彩色塊數(shù)量不作限定。計(jì)算模塊02,用于按照選擇的每一個(gè)彩色塊在鏡頭范圍內(nèi)的影像中的位置,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo);根據(jù)預(yù)先設(shè)定的條形碼標(biāo)簽的標(biāo)識(shí)信息與彩色塊的世界坐標(biāo)系的坐標(biāo)的關(guān)聯(lián)數(shù)據(jù),按照選擇的每一個(gè)彩色塊所在的條形碼標(biāo)簽,計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);為選擇的每一個(gè)彩色塊,按照其在鏡頭范圍內(nèi)的影像中的位置,確定出對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo),如在一種實(shí)施方式中,可計(jì)算彩色塊的幾何中心在像素坐標(biāo)系中的坐標(biāo);根據(jù)預(yù)先確定的條形碼標(biāo)簽的標(biāo)識(shí)信息和彩色塊的世界坐標(biāo)系的坐標(biāo)的關(guān)聯(lián)數(shù)據(jù),為選擇的每一個(gè)彩色塊,按照其所在的條形碼標(biāo)簽,確定出對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo),如在一種實(shí)施方式中,可計(jì)算彩色塊的幾何中心在世界坐標(biāo)系中的坐標(biāo)。定位模塊03,用于基于選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),得到所述手持終端的位置。根據(jù)選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)和世界坐標(biāo)系中的坐標(biāo),并按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo),也即所述手持終端的位置,從而實(shí)現(xiàn)對(duì)手持終端的實(shí)時(shí)位置進(jìn)行精確的計(jì)算,進(jìn)行室內(nèi)導(dǎo)航。本實(shí)施例利用手持終端的相機(jī)攝像頭獲取鏡頭范圍內(nèi)的影像中預(yù)置在室內(nèi)預(yù)設(shè)位置的條形碼標(biāo)簽的標(biāo)識(shí)信息,并從鏡頭范圍內(nèi)的影像中的至少兩個(gè)條形碼標(biāo)簽中選擇預(yù)設(shè)數(shù)量的彩色塊;計(jì)算出每一個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo);再根據(jù)選擇的各個(gè)彩色塊對(duì)應(yīng)的像素坐標(biāo)系中的坐標(biāo)及世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則,計(jì)算得到所述手持終端的位置。由于僅需利用手持終端的相機(jī)攝像頭及在室內(nèi)預(yù)設(shè)位置預(yù)置條形碼標(biāo)簽即可進(jìn)行室內(nèi)導(dǎo)航,對(duì)軟、硬件要求較低,且根據(jù)在室內(nèi)預(yù)設(shè)位置預(yù)置的條形碼標(biāo)簽的彩色塊的像素坐標(biāo)系中的坐標(biāo)及對(duì)應(yīng)的世界坐標(biāo)系中的坐標(biāo)進(jìn)行綜合計(jì)算,能快速準(zhǔn)確的對(duì)手持終端的實(shí)時(shí)位置進(jìn)行精確的計(jì)算,從而提高室內(nèi)導(dǎo)航精度。進(jìn)一步地,在其他實(shí)施例中,上述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊,所述條形碼和兩個(gè)彩色塊設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊位于所述條形碼的兩端,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息(例如,ID);所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則鎖定離鏡頭最近的兩個(gè)條形碼標(biāo)簽,并分別從鎖定的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)彩色塊。進(jìn)一步地,在其他實(shí)施例中,上述條形碼標(biāo)簽包括標(biāo)簽基體、條形碼和兩個(gè)彩色塊組合,所述條形碼和兩個(gè)彩色塊組合設(shè)于所述標(biāo)簽基體上,且所述兩個(gè)彩色塊組合位于所述條形碼的兩端;所述彩色塊組合包括顏色不相同的多個(gè)彩色塊,所述條形碼編碼有所屬的條形碼標(biāo)簽的標(biāo)識(shí)信息(例如,ID);所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的彩色塊選擇規(guī)則為:若鏡頭范圍內(nèi)的影像中只有兩個(gè)條形碼標(biāo)簽,則分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)處于所在標(biāo)簽基體的最外端的彩色塊,也即分別從鏡頭范圍內(nèi)的影像中的兩個(gè)條形碼標(biāo)簽中各選擇兩個(gè)最外圍的彩色塊;若鏡頭范圍內(nèi)的影像中的條形碼標(biāo)簽數(shù)量大于兩個(gè),則從各個(gè)條形碼標(biāo)簽中確定出具有最大分散指標(biāo)的四個(gè)彩色塊。進(jìn)一步地,在其他實(shí)施例中,上述計(jì)算模塊02還用于:從不同的條形碼標(biāo)簽中以排列組合的方式分別抽取四個(gè)彩色塊以組成不同的彩色塊組合;針對(duì)每一個(gè)彩色塊組合,確定彩色塊組合中四個(gè)彩色塊的預(yù)設(shè)位置點(diǎn),如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則確定所述凹四邊形的四個(gè)點(diǎn)中構(gòu)成的三角形面積最大的三個(gè)點(diǎn),并將確定的三個(gè)點(diǎn)構(gòu)成的三角形面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);比較各個(gè)彩色塊組合對(duì)應(yīng)的分散指標(biāo),確定出具有最大分散指標(biāo)的彩色塊組合中四個(gè)彩色塊。本實(shí)施例中,從不同的條形碼標(biāo)簽中以排列組合的方式分別抽取四個(gè)彩色塊以組成不同的彩色塊組合,例如,若所有的條形碼標(biāo)簽共有N個(gè)彩色塊,則共可以組成種彩色塊組合;針對(duì)每一個(gè)彩色塊組合,確定彩色塊組合中四個(gè)彩色塊的預(yù)設(shè)位置點(diǎn)如幾何中心點(diǎn),如果確定的四個(gè)點(diǎn)構(gòu)成的是凸四邊形,則將凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);如果確定的四個(gè)點(diǎn)構(gòu)成的是凹四邊形,則確定所述四個(gè)點(diǎn)中構(gòu)成的三角形面積最大的三個(gè)點(diǎn),并將確定的三個(gè)點(diǎn)構(gòu)成的三角形面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo);比較各個(gè)彩色塊組合對(duì)應(yīng)的分散指標(biāo),確定出具有最大分散指標(biāo)的彩色塊組合中四個(gè)彩色塊。其中,本實(shí)施例中將四邊形分為凸四邊形和凹四邊形,有任意一個(gè)內(nèi)角大于180度的四邊形為凹四邊形,否則為凸四邊形。對(duì)于凸四邊形,將其面積作為其分散程度的衡量指標(biāo);而對(duì)于凹四邊形,則任取三個(gè)點(diǎn)構(gòu)成的三角形的面積,將其中最大的面積作為其分散指標(biāo)。進(jìn)一步地,在其他實(shí)施例中,上述計(jì)算模塊02還用于:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凸四邊形,則從凸四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合;分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,將所有三角形頂點(diǎn)組合對(duì)應(yīng)的三角形面積之和除以2,得到凸四邊形的面積,并將該凸四邊形的面積作為對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。本實(shí)施例子,從凸四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合。分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,將所有三角形頂點(diǎn)組合對(duì)應(yīng)的三角形面積之和除以2,以得到凸四邊形的面積。進(jìn)一步地,在其他實(shí)施例中,上述計(jì)算模塊02還用于:如果確定的四個(gè)預(yù)設(shè)位置點(diǎn)構(gòu)成的是凹四邊形,則從所述凹四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合,分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,確定出最大的三角形面積對(duì)應(yīng)的三角形頂點(diǎn)組合,并將最大的三角形面積作為所述凹四邊形對(duì)應(yīng)的彩色塊組合的分散指標(biāo)。本實(shí)施例子,從凹四邊形的四個(gè)點(diǎn)中以排列組合的方式分別抽取三個(gè)點(diǎn)以組成不同的三角形頂點(diǎn)組合。分別計(jì)算出每個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,確定出最大的三角形面積對(duì)應(yīng)的三角形頂點(diǎn)組合,并將最大的三角形面積作為凹四邊形的分散指標(biāo)。進(jìn)一步地,在其他實(shí)施例中,上述計(jì)算模塊02還用于:在計(jì)算一個(gè)三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積時(shí),遍歷預(yù)存的三角形頂點(diǎn)組合與三角形面積的關(guān)聯(lián)數(shù)據(jù),分析是否有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配;例如,假設(shè)預(yù)存的三角形頂點(diǎn)組合包括A1、A2、A3組合,若該三角形頂點(diǎn)組合由A1、A2、A3頂點(diǎn)組成,則代表有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配。若有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則找出匹配的三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將找出的面積作為該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積;若沒(méi)有預(yù)存的三角形頂點(diǎn)組合與該三角形頂點(diǎn)組合匹配,則根據(jù)該三角形頂點(diǎn)組合中各個(gè)頂點(diǎn)在世界坐標(biāo)系中的坐標(biāo)即該三角形頂點(diǎn)組合各個(gè)頂點(diǎn)所在的彩色塊對(duì)應(yīng)的世界坐標(biāo)系的坐標(biāo),確定出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形各條邊的邊長(zhǎng),根據(jù)確定出的邊長(zhǎng)計(jì)算出該三角形頂點(diǎn)組合對(duì)應(yīng)的三角形的面積,并將該三角形頂點(diǎn)組合與計(jì)算出的三角形面積形成關(guān)聯(lián)數(shù)據(jù)并保存,以供后續(xù)進(jìn)行三角形面積的查找。進(jìn)一步地,在其他實(shí)施例中,所述選擇的預(yù)設(shè)數(shù)量的彩色塊的數(shù)量為四個(gè),所述預(yù)設(shè)的坐標(biāo)計(jì)算規(guī)則如下:根據(jù)選擇的四個(gè)彩色塊對(duì)應(yīng)的四個(gè)像素坐標(biāo)系中的坐標(biāo)和四個(gè)世界坐標(biāo)系中的坐標(biāo),并根據(jù)預(yù)存在所述手持終端內(nèi)的相機(jī)內(nèi)參數(shù),計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)矩陣和平移矩陣;根據(jù)所述旋轉(zhuǎn)矩陣和平移矩陣轉(zhuǎn)換獲取所述手持終端的攝像頭在世界坐標(biāo)系中的坐標(biāo)作為所述手持終端在世界坐標(biāo)系中的坐標(biāo)。本實(shí)施例中,根據(jù)選擇的四個(gè)彩色塊對(duì)應(yīng)的四個(gè)像素坐標(biāo)系中的坐標(biāo)和四個(gè)世界坐標(biāo)系中的坐標(biāo),并根據(jù)預(yù)存于手持終端內(nèi)的相機(jī)內(nèi)參數(shù)(fx,fy,u0,v0),計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)矩陣R和平移矩陣T,例如,可由OpenCV中的solvePnP函數(shù)計(jì)算出屬于相機(jī)外參數(shù)的旋轉(zhuǎn)向量Rvec和平移矩陣T,并由OpenCV中的cvRodrigues2函數(shù)轉(zhuǎn)換旋轉(zhuǎn)向量Rvec得到旋轉(zhuǎn)矩陣R;將攝像頭坐標(biāo)系坐標(biāo)原點(diǎn)坐標(biāo)(Xc=0,Yc=0,Zc=0)帶入以下坐標(biāo)系轉(zhuǎn)換公式:其中,c指攝像頭坐標(biāo)系,w指世界坐標(biāo)系;進(jìn)而求出攝像頭在世界坐標(biāo)系中的坐標(biāo),也即手持終端在世界坐標(biāo)系中的坐標(biāo)為:Xw1Yw1Zw1=-T·R-1.]]>如圖8所示,本發(fā)明第二實(shí)施例提出一種室內(nèi)導(dǎo)航的手持終端,在上述實(shí)施例的基礎(chǔ)上,還包括:方向確定模塊04,用于基于計(jì)算出的所述手持終端在世界坐標(biāo)系中的坐標(biāo),按照預(yù)設(shè)的方向計(jì)算規(guī)則,計(jì)算出所述手持終端的方向向量。本實(shí)施例中,在計(jì)算出所述手持終端在世界坐標(biāo)系中的坐標(biāo)之后,還可按照預(yù)設(shè)的方向計(jì)算規(guī)則,計(jì)算出所述手持終端的方向向量。具體的,所述預(yù)設(shè)的方向計(jì)算規(guī)則如下:設(shè)方向向量與地面交點(diǎn)在世界坐標(biāo)系中的坐標(biāo)是(Xw2,Yw2,Zw2),其中Zw2=0,則只需求Xw2,Yw2。根據(jù)手持終端在世界坐標(biāo)系中的坐標(biāo)(Xw1,Yw1,Zw1),相機(jī)內(nèi)參數(shù)(fx,fy,u0,v0),旋轉(zhuǎn)矩陣R,平移矩陣T,并由攝像頭標(biāo)定模型得:Zcu0v01=fx0u00fyv0001R11R12R13T1R21R22R23T2R31R32R33T3Xw2Yw2Zw21,(Zw2=0)---(3)]]>為使表達(dá)式簡(jiǎn)潔,使用矩陣S表示,設(shè)S=S11S12S13S14S21S22S23S24S31S32S33S34=fx0u00fyv0001R11R12R13T1R21R22R23T2R31R32R33T3---(4)]]>可得uZc=S11Xw2+S12Yw2+S14(5)vZc=S21Xw2+S22Yw2+S24(6)Zc=S31Xw2+S32Yw2+S34(7)聯(lián)立(5)(6)(7)三元一次方程可解得:Xw2=S12S24-S14S22+u0S22S34-u0S24S32-v0S12S34+v0S14S32S11S22-S12S21+u0S12S32-u0S22S31-v0S11S32+v0S12S32---(8)]]>Yw2=-S11S24-S14S21+uS21S34-uS24S32-v0S11S34+v0S14S31S11S22-S12S21+uS12S32-uS22S31-v0S11S32+v0S12S31---(9)]]>Zc=S11S22S34-S11S24S32-S12S21S34+S12S24S31+S14S21S32+S14S22S31S11S22-S12S21+u0S12S32-u0S22S31-v0S11S32+v0S12S31---(10)]]>又已知Zw2=0,法向量與地面交點(diǎn)在世界坐標(biāo)系的坐標(biāo)(Xw2,Yw2,Zw2)有解析解,則所述手持終端的方向向量為(Xw2-Xw1,Yw2-Yw1,Zw2-Zw1)。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的
技術(shù)領(lǐng)域:
,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)1 2 3