本發(fā)明涉及室內(nèi)定位技術(shù)領(lǐng)域,具體涉及一種基于變數(shù)據(jù)區(qū)長度的可見光通信編碼擴(kuò)碼方法。
背景技術(shù):
可見光通信技術(shù)(visiblelightcommunication,vlc),其原理是將需要傳輸?shù)男畔⒕幋a成一段特殊信號(hào),用某種調(diào)制方法將這個(gè)信號(hào)附加到led燈具的驅(qū)動(dòng)電流上,使led燈具以極高的頻率閃爍。雖然人眼看不到這種閃爍,但是通過光敏設(shè)備或者成像元件可以檢測(cè)到這種高頻閃爍并將其還原為要傳輸?shù)男畔?,從而通過燈具完成信息傳輸?shù)哪康模皇覂?nèi)定位技術(shù)作為導(dǎo)航的“最后一公里”,一直是當(dāng)前的關(guān)注熱點(diǎn),在這方面現(xiàn)有的研究方法有基于led、wi-fi、射頻識(shí)別(radiofrequencyidentification,rfid)、zigbee、超聲波、藍(lán)牙、計(jì)算機(jī)視覺等的定位技術(shù)。
與其他室內(nèi)定位技術(shù)相比,基于vlc的室內(nèi)定位技術(shù)有如下優(yōu)點(diǎn):vlc技術(shù)帶寬資源豐富,不需獲得管理機(jī)構(gòu)的授權(quán);基于vlc的定位系統(tǒng)不會(huì)產(chǎn)生任何電磁干擾,也不易受外部電磁干擾影響;基于vlc的室內(nèi)定位使用led做光源,兼顧照明與定位。
基于vlc的室內(nèi)定位技術(shù)可分為非成像定位技術(shù)和成像定位技術(shù)兩類;其中成像定位技術(shù)用cmos成像器件做接收端,根據(jù)燈具的成像,通過圖像處理還原燈具傳輸?shù)男盘?hào),獲得燈具的特征信息。
成像定位技術(shù)的第一個(gè)缺點(diǎn)是圖像處理耗時(shí)大,若進(jìn)行多圖處理,圖片數(shù)量過多時(shí)會(huì)影響到定位的實(shí)時(shí)性;第二個(gè)缺點(diǎn)是:成像定位技術(shù)中使用數(shù)據(jù)流的編碼技術(shù)在通信時(shí)都需要添加區(qū)分符,以提高抗干擾能力,如果無區(qū)分符會(huì)造成通信誤碼及譯碼困難,但此時(shí)區(qū)分符會(huì)占用有效的數(shù)據(jù)編碼區(qū)域資源;而且一般攝像頭由于拍攝距離和硬件的限制,可以拍攝到的對(duì)應(yīng)編碼的圖像條紋數(shù)目是有限的,比如在3米的距離時(shí),拍攝直徑180mm的筒燈,手機(jī)前置攝像頭在典型情況下一張圖像只能拍攝到30多個(gè)編碼條紋,去掉數(shù)據(jù)區(qū)兩端的區(qū)分符及合理的余量,單圖數(shù)據(jù)區(qū)可以表示的編碼數(shù)量是很有限的。
數(shù)據(jù)區(qū)可表示的編碼數(shù)量多少關(guān)系到可以使用的燈具數(shù)量、定位場(chǎng)所面積大小,也會(huì)影響到室內(nèi)定位的精度;在一些典型的應(yīng)用場(chǎng)景中,比如商場(chǎng),地下停車場(chǎng),為了避免由于led燈間距過大導(dǎo)致的定位盲區(qū),需要對(duì)大量的燈具進(jìn)行編碼,編碼數(shù)量要求達(dá)到十萬甚至百萬以上,在拍攝距離和攝像頭硬件的限制下,單圖數(shù)據(jù)區(qū)可以表示的編碼數(shù)量遠(yuǎn)遠(yuǎn)不夠,這限制了基于vlc的室內(nèi)定位技術(shù)的應(yīng)用。尋找一種簡(jiǎn)單高效的擴(kuò)碼方法,擴(kuò)充數(shù)據(jù)區(qū)的長度,解決編碼數(shù)量問題,是目前基于vlc的室內(nèi)定位技術(shù)急需解決的關(guān)鍵技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)存在的問題,本發(fā)明的目的是提供一種基于變數(shù)據(jù)區(qū)長度的可見光通信編碼擴(kuò)碼方法,以解決現(xiàn)有技術(shù)中,實(shí)際應(yīng)用時(shí)攝像頭硬件以及拍攝距離限制下的編碼數(shù)量不夠,無法滿足大面積定位場(chǎng)所需求的問題。
為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于變數(shù)據(jù)區(qū)長度的可見光通信編碼擴(kuò)碼方法,包括如下步驟:
步驟1、通過數(shù)據(jù)區(qū)編碼變長度分解方法,將n位長編碼數(shù)據(jù)進(jìn)行分段,分成k組數(shù)據(jù)區(qū)長度不一致的短編碼,為短編碼添加區(qū)分符,構(gòu)成k組通信碼;
步驟2、led燈具通過變長度編碼發(fā)送方法,將k組通信碼序列循環(huán)發(fā)送出去;
步驟3、可見光通信接收終端通過變長度編碼接收方法,采用攝像頭接收led燈具發(fā)送的通信碼序列并形成p張圖像;
步驟4、可見光通信接收終端通過圖像解碼與合成方法解碼,首先對(duì)p張圖像進(jìn)行處理與解碼,從中挑選出k組短編碼,依據(jù)數(shù)據(jù)區(qū)編碼變長度分解方法進(jìn)行逆向合成,還原成原n位長編碼,長編碼為發(fā)送端led燈的唯一身份(identification,id)碼,對(duì)應(yīng)該led燈的特征信息。
所述步驟1中的數(shù)據(jù)區(qū)編碼變長度分解方法,將要發(fā)送的n位長編碼分為k組短編碼,各組短編碼長度分別為n1,n2,...,nk,并且滿足
步驟1.1、通信碼中如果數(shù)據(jù)區(qū)有與區(qū)分符重合的部分,則該編碼無效,剔除這種情況;
步驟1.2、如果用戶對(duì)于光通量調(diào)制率有下限要求,如要求光通信時(shí)光通量調(diào)制率不得低于a%,則需要進(jìn)一步篩選有效通信碼:開通和關(guān)斷分別代表1和0,則通信碼中,1的個(gè)數(shù)至少是總個(gè)數(shù)的a%;最后k組通信碼中符合要求的通信碼數(shù)目依次是m1,m2,...,mk;
步驟1.3、滿足上面步驟1.1與步驟1.2的k組通信碼,表示有效的n位數(shù)據(jù)編碼數(shù)量,共有
所述步驟2中的變長度編碼發(fā)送方法,首先每組通信碼構(gòu)成一個(gè)小周期,k組通信碼序列構(gòu)成一個(gè)大周期;然后使用編碼控制器控制led燈具發(fā)光亮暗變化,實(shí)現(xiàn)對(duì)應(yīng)小周期中01編碼的發(fā)送;其次按照k組通信碼依次控制led燈具實(shí)現(xiàn)k個(gè)小周期的編碼發(fā)送,k個(gè)小周期構(gòu)成一個(gè)大周期;按照該方法用編碼控制器控制led燈具循環(huán)發(fā)送大周期編碼。
所述步驟3中的變長度編碼接收方法,所述的可見光通信接收終端包括帶攝像頭和帶數(shù)據(jù)處理能力的處理器系統(tǒng),通過控制該可見光通信接收終端,使其連續(xù)接收p張圖像,要求p≥k,以保證p張圖像中含有k張有不同數(shù)據(jù)區(qū)長度的短編碼圖像。
所述步驟4中的圖像解碼與合成方法,具體步驟是:
步驟4.1、針對(duì)可見光通信接收端接收到的p張圖像,依次進(jìn)行圖像處理,使用圖像預(yù)處理去除干擾,根據(jù)led燈形狀特征提取led燈區(qū)域,根據(jù)區(qū)分符特征提取出通信碼數(shù)據(jù)區(qū)編碼圖像;
步驟4.2、解碼算法包括:對(duì)通信碼數(shù)據(jù)區(qū)圖像進(jìn)行濾波和二值化操作,使數(shù)據(jù)區(qū)圖像轉(zhuǎn)為黑白條紋;遍歷搜索黑白條紋的寬度,同時(shí)求出數(shù)據(jù)區(qū)的總寬度;以區(qū)分符的寬度為基準(zhǔn),求出數(shù)據(jù)區(qū)的長度,結(jié)合數(shù)據(jù)區(qū)長度和區(qū)分符寬度確定黑白條紋寬度基準(zhǔn),將數(shù)據(jù)區(qū)黑白條紋依據(jù)與對(duì)應(yīng)寬度基準(zhǔn)的比值,轉(zhuǎn)化為對(duì)應(yīng)的01數(shù)值,數(shù)據(jù)區(qū)的黑白條紋通過解碼算法轉(zhuǎn)變?yōu)槎M(jìn)制短編碼;按照上述解碼算法從p張圖像中解碼得到p個(gè)數(shù)據(jù)短編碼;
步驟4.3、從步驟4.2中解出的p個(gè)數(shù)據(jù)短編碼中,挑選出k個(gè)數(shù)據(jù)位長度不同的數(shù)據(jù)短編碼,作為k個(gè)有效短編碼;
步驟4.4、將步驟4.3獲得的k個(gè)有效短編碼按照數(shù)據(jù)位長度進(jìn)行排序,組合成原n位長編碼數(shù)據(jù),長編碼為發(fā)送端led燈的唯一id碼,對(duì)應(yīng)該led燈的特征信息。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
本方法每段短數(shù)據(jù)使用相同的區(qū)分符,數(shù)據(jù)區(qū)長度信息由與區(qū)分符的寬度比值求取,短編碼還原成長編碼使用數(shù)據(jù)區(qū)編碼變長度分解方法進(jìn)行逆向合成,區(qū)分符不需要添加表示編碼數(shù)據(jù)區(qū)長度以及編碼順序信息的數(shù)據(jù)位,由此減少了發(fā)送信號(hào)的冗余度,同樣的硬件條件下,單幀圖片可以獲取的數(shù)據(jù)區(qū)長度更長,并且通過多張圖片的組合就可以實(shí)現(xiàn)長編碼的通信,簡(jiǎn)單有效地?cái)U(kuò)大了數(shù)據(jù)區(qū)長度,同時(shí)保證了解碼的實(shí)時(shí)性。本方法簡(jiǎn)單易行且便于實(shí)現(xiàn)。
附圖說明
圖1為本發(fā)明基于變數(shù)據(jù)區(qū)長度的可見光通信編碼擴(kuò)碼方法及其實(shí)施例程的流程圖。
圖2為本發(fā)明及具體實(shí)施方式中將n位長編碼分解成k組短編碼的過程圖。
圖3為本發(fā)明及具體實(shí)施方式中從p張圖片獲取k組短編碼并拼接成原n位長編碼的流程圖。
圖4為本發(fā)明及具體實(shí)施方式中接受端攝像頭形成的圖像及解碼結(jié)果圖。
具體實(shí)施方式
為了更好的說明本發(fā)明的目的和優(yōu)點(diǎn),下面結(jié)合附圖和實(shí)施例對(duì)發(fā)明內(nèi)容做進(jìn)一步說明。
本發(fā)明一種基于變數(shù)據(jù)區(qū)長度的可見光通信編碼擴(kuò)碼方法,其流程如圖1所示,具體實(shí)施時(shí),包括如下步驟:
步驟1、通過數(shù)據(jù)區(qū)編碼變長度分解方法將n位長編碼數(shù)據(jù)進(jìn)行分段,分成k組數(shù)據(jù)區(qū)長度不一致的短編碼,為短編碼添加區(qū)分符,構(gòu)成k組通信碼;
所述數(shù)據(jù)區(qū)編碼變長度分解方法,將要發(fā)送的n位長編碼分為k組短編碼,各組短編碼長度分別為n1,n2,...,nk,并且滿足
在形成通信碼時(shí),有些通信碼是無效編碼,需要剔除,具體方法是:
步驟1.1、通信碼中如果數(shù)據(jù)區(qū)有與區(qū)分符000重合的部分,則該編碼無效,剔除這種情況;
步驟1.2、如果用戶對(duì)于光通量調(diào)制率有下限要求,如要求光通信時(shí)光通量調(diào)制率不得低于60%,則需要進(jìn)一步篩選有效通信碼:開通和關(guān)斷分別代表1和0,則通信碼中,1的個(gè)數(shù)至少是總個(gè)數(shù)的60%,才能保證光通量調(diào)制率不低于60%;以12位編碼與區(qū)分符000構(gòu)成的通信碼為例,通信碼長度為15,則編碼中1的個(gè)數(shù)至少是15*60%=9,同理15位編碼與區(qū)分符000構(gòu)成的通信碼中,1的個(gè)數(shù)至少是19*60%=10.6,即編碼1至少出現(xiàn)11次;
步驟1.3、根據(jù)步驟1.1和步驟1.2的要求可以求出區(qū)分符為000、光通量調(diào)制率下限為60%時(shí),數(shù)據(jù)區(qū)長度為12時(shí)符合要求的通信碼數(shù)目是168種,數(shù)據(jù)區(qū)長度為15時(shí)符合要求的通信碼數(shù)目是982種。則2組通信碼的數(shù)據(jù)區(qū)組合成原27位長編碼,共有168*982=164976種不同的編碼。
步驟2、led燈具通過變長度編碼發(fā)送方法,將2組通信碼序列循環(huán)發(fā)送出去;
所述變長度編碼發(fā)送方法,首先每組通信碼構(gòu)成一個(gè)小周期,2組通信碼序列構(gòu)成一個(gè)大周期;然后使用編碼控制器控制led燈具發(fā)光亮暗變化實(shí)現(xiàn)對(duì)應(yīng)小周期中01編碼的發(fā)送;其次按照2組通信碼依次控制led燈具實(shí)現(xiàn)2個(gè)小周期的編碼發(fā)送,2個(gè)小周期構(gòu)成一個(gè)大周期;按照該方法用編碼控制器控制led燈具循環(huán)發(fā)送大周期編碼。
步驟3、可見光通信接收終端通過變長度編碼接收方法,采用攝像頭接收led燈具發(fā)送的通信碼序列并形成p張圖像;通過控制手機(jī)前置攝像頭,使其連續(xù)接收p張圖像,要求p≥2,保證接收的圖像中含有12位數(shù)據(jù)區(qū)和15位數(shù)據(jù)區(qū)的通信碼圖像。
步驟4、可見光通信接收終端通過圖像解碼與合成方法解碼,首先對(duì)p張圖像進(jìn)行處理與解碼,從中挑選出12位短編碼和15位短編碼,依據(jù)數(shù)據(jù)區(qū)編碼變長度分解方法進(jìn)行逆向合成,還原成原27位長編碼,長編碼為發(fā)送端led燈的唯一id碼,可對(duì)應(yīng)該led燈的特征信息;所述圖像解碼與合成方法,其流程圖如圖3所示,具體步驟是:
步驟4.1、針對(duì)可見光通信接收端接收到的p張圖像,依次進(jìn)行圖像處理,使用圖像預(yù)處理去除干擾,根據(jù)led燈形狀特征提取led燈區(qū)域,根據(jù)區(qū)分符特征提取出通信碼數(shù)據(jù)區(qū)編碼圖像;
步驟4.2、解碼算法包括:對(duì)通信碼數(shù)據(jù)區(qū)圖像進(jìn)行濾波和二值化操作,使數(shù)據(jù)區(qū)圖像轉(zhuǎn)為黑白條紋;遍歷搜索黑白條紋的寬度,同時(shí)求出數(shù)據(jù)區(qū)的總寬度;以區(qū)分符的寬度為基準(zhǔn),求出數(shù)據(jù)區(qū)的長度,結(jié)合數(shù)據(jù)區(qū)長度和區(qū)分符寬度確定黑白條紋寬度基準(zhǔn);將數(shù)據(jù)區(qū)黑白條紋依據(jù)與對(duì)應(yīng)寬度基準(zhǔn)的比值,轉(zhuǎn)化為對(duì)應(yīng)的01數(shù)值,如圖4所示,圖中的兩張圖片通過解碼算法分別轉(zhuǎn)變?yōu)?2位和15位二進(jìn)制短編碼;從p張圖像中獲取p個(gè)數(shù)據(jù)短編碼;
步驟4.3、從步驟4.2中解出的p個(gè)數(shù)據(jù)短編碼中,挑選出12位短編碼和15位短編碼;
步驟4.4、如圖4所示,將步驟4.3獲得的12位短編碼和15位短編碼按照數(shù)據(jù)位長度進(jìn)行排序,組合成原27位長編碼數(shù)據(jù),該長編碼即為發(fā)送端led燈的唯一id碼,可對(duì)應(yīng)該led燈的特征信息。
至此,從步驟1至步驟4完成了基于變數(shù)據(jù)區(qū)長度的可見光通信編碼擴(kuò)碼方法。