本發(fā)明涉及一種定位方法,具體涉及一種快速的基于太陽影子信息的定位方法。
背景技術:
現(xiàn)有的技術都是通過網(wǎng)格遍歷方法進行太陽影子信息的定位,沒有考慮到求解問題可以使用具有啟發(fā)性的方法進行定位計算,計算的時間復雜度十分巨大計算緩慢。無法在短時間內(nèi)完成對問題的求解特別是無法適用于移動端的實時求解。
技術實現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術中的不足,提供一種可以快速的完成太陽影子信息的定位方法。
這種快速的基于太陽影子信息的定位方法,包括如下步驟:
1)、用戶提交待定位的數(shù)據(jù)(圖片,視頻,或者影子長度數(shù)組數(shù)據(jù));
2)、將用戶提供的數(shù)據(jù)(圖片,視頻,或者影子長度數(shù)組數(shù)據(jù))通過三維還原標定算法統(tǒng)一轉(zhuǎn)化為太陽高度角數(shù)組數(shù)據(jù);
2.1)、對圖片進行區(qū)域分割;
2.2)、對分割后的有效區(qū)域進行二值化去噪處理,將彩色圖轉(zhuǎn)化成黑白兩色的黑白圖;
2.3)、將提取物體的像素長度與影子的像素長度,并且依據(jù)相應的像素長度與三維投影公式計算太陽高度角、太陽方位角;
2.4)、然后將轉(zhuǎn)化形成的太陽方向角輸出;
3)、建立好求解的數(shù)學模型環(huán)境;
影子長度顯然與緯度、經(jīng)度、日期,鐘時(單位為分鐘)等四個變量密切相關;求解拍攝地點的問題轉(zhuǎn)化為如下四參數(shù)規(guī)劃問題;規(guī)劃的目標是尋找影長的誤差平方和最小的x、y、n、t四個參數(shù)的最優(yōu)組合;
s.t.:0≤x≤180.0;0≤y≤180.0;0≤n≤360;0≤t≤1440(1)
其中e代表影長誤差的累計平方和,x,y,n代表所求的拍攝地點經(jīng)度、緯度、日期和鐘時,k表示可用數(shù)據(jù)的個數(shù);g(x,y,n,t)為從圖片中提取的影長數(shù)據(jù);f(x,y,n,t)代表以x,y,n,t為原料,根據(jù)數(shù)學公式計算得到的影長,計算公式如下:
f(x,y,n,t)=l/tan(arcsin(sinαsiny+cosαcosycosω))(2)
sinα=0.39795cos[0.98563(n-173)](3)
ω=15*(t+(120°-x)/15°-12)(4)
其中(2)式定義影長為實際桿長與當?shù)貢r間太陽高度角的比值,l代表圖像中有影物體的實際高度;α代表太陽高度角,(3)、(4)式為太陽的赤緯和太陽時角作為太陽高度角的計算公式;式中α代表該日期對應的太陽赤緯,ω代表當時的太陽時角;
4)、利用快速有效的啟發(fā)式魚群算法對拍攝位置進行定位;
4.1)、初始化:確定種群規(guī)模n,設定人工魚可視范圍,人工魚步長,擁擠度因子,和人工魚覓食的最大試探次數(shù)。在可行域中隨機生成n個個體,并且作為最大試探次數(shù);
4.2)、取最優(yōu)人工魚狀態(tài)及賦值給公告板,如果滿意則算法結(jié)束;
4.3)、執(zhí)行聚群操作;
4.4)、執(zhí)行追尾操作;
4.5)、執(zhí)行覓食操作;
4.6)、循環(huán)返回步驟2.2);
5)、對所有人工魚的位置進行確定并且比較出最優(yōu)秀的人工魚的位置作為最優(yōu)解;
6)、將最終的最優(yōu)解,求解過程量繪制過程曲線反饋給用戶。
作為優(yōu)選:步驟2.3)的具體步驟為:oh為木桿,ha為光線,oa為木桿在太陽光照射下形成的影子,δx、δy表示橫縱坐標的變化量。toa為oa的投影長度。在假定攝像頭到物體距離為j,攝像頭的高度為n的情況下,可以得到:
作為優(yōu)選:步驟4.3)的具體步驟為:人工魚當前的狀態(tài)為pa,探測其相鄰人工魚中狀態(tài)最好的pmax,與伙伴數(shù),如果
否則不執(zhí)行此行為。
作為優(yōu)選:步驟4.4)的具體步驟為:假設人工魚當前的狀態(tài)為pa,探測其鄰域的pb位置所計算的影長誤差累計平方和eb,與伙伴數(shù)n,如果
否則不執(zhí)行此行為。
作為優(yōu)選:步驟4.5)的具體步驟為:當前人工魚的位置代表了當前探索的經(jīng)緯度位置,記為pa,進行覓食時,在其視野范圍va內(nèi)隨機的選擇一個經(jīng)緯度pb,如果pb位置所計算的影長誤差累計平方和eb小于位置所計算的影長誤差累計平方和ea,則表明在pb位置更有可能是我們尋找的解,也就是對人工魚來說更適合其生存,人工魚會向pb位置移動,通過如下方程:
其中,η為移動的步長,rand()為生成的隨機數(shù),表現(xiàn)人工魚移動的隨機性;如果隨機選擇的位置pb并不能使eb小于ea,那么重新選擇pb,直到到達一定次數(shù)n,或者成功移動一步。
本發(fā)明的有益效果是:魚群算法能夠使其在速度上和精度上都能夠達到優(yōu)秀的水平,擁有快速,穩(wěn)定并且誤差較小的特點,性能優(yōu)于其他算法。
附圖說明
圖1為太陽影子形成示意圖;
圖2為二維圖片還原三維信息三視圖;
圖3為魚群算法偽碼表示圖;
圖4至圖6為搜索次數(shù)與魚群位置示意圖;
圖7為精確度迭代次數(shù)分析圖。
具體實施方式
下面結(jié)合實施例對本發(fā)明做進一步描述。下述實施例的說明只是用于幫助理解本發(fā)明。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權利要求的保護范圍內(nèi)。
1原理概述
快速有效地確定視頻或圖片的拍攝地點對于司法機關取證,有影物體的自動分類和對gps等其他定位系統(tǒng)進行驗證有很大的實際意義。但是現(xiàn)階段國內(nèi)外并沒有成型的從圖片或者連續(xù)的真實的視頻中提取有效經(jīng)緯度數(shù)據(jù)的軟件或產(chǎn)品。通過太陽陰影的變化軌跡對拍攝圖片、視頻的大致位置進行估計的想法,通過有影物體和影子軌跡的幾何關系來估計拍攝照片的位置。提出物體拍攝的位置取決于投影物體所在緯度位置以及太陽光朝向與投影平面之間的幾何關系。
2算法原理說明
圖1所示,如果連續(xù)視頻的拍攝時間較長,隨時間的推移,在水平地面上,太陽光產(chǎn)生的影子會隨著太陽的變化而產(chǎn)生長度上和角度上的變化,同時影子的長度和角度變化的量與拍攝地點(即經(jīng)緯度)有關。所以理論上可以利用影子的變化反推拍攝地點。本申請對數(shù)學模型、數(shù)據(jù)的存儲方式進行了簡化,采用啟發(fā)式的魚群算法代替了傳統(tǒng)算法,使模型的運算時間相較傳統(tǒng)方法縮短了80%。
3定位數(shù)學模型的推導
影子長度顯然與緯度、經(jīng)度、日期,鐘時(單位為分鐘)等四個變量密切相關。求解拍攝地點的問題可以轉(zhuǎn)化為如下四參數(shù)規(guī)劃問題。規(guī)劃的目標是尋找影長的誤差平方和最小的x、y、n、t四個參數(shù)的最優(yōu)組合。
s.t.:0≤x≤180.0;0≤y≤180.0;0≤n≤360;0≤t≤1440(9)
其中e代表影長誤差的累計平方和,x,y,n代表所求的拍攝地點經(jīng)度、緯度、日期和鐘時,k表示可用數(shù)據(jù)的個數(shù)。g(x,y,n,t)為從圖片中提取的影長數(shù)據(jù)。f(x,y,n,t)代表以x,y,n,t為原料,根據(jù)數(shù)學公式計算得到的影長,計算公式如下:
f(x,y,n,t)=l/tan(arcsin(sinαsiny+cosαcosycosω))(10)
sinα=0.39795cos[0.98563(n-173)](11)
ω=15*(t+(120°-x)/15°-12)(12)
其中(10)式定義影長為實際桿長與當?shù)貢r間太陽高度角的比值,l代表圖像中有影物體的實際高度。α代表太陽高度角,太陽高度角的計算在有詳細的介紹,這里不進行贅述。(11)、(12)式為太陽的赤緯和太陽時角作為太陽高度角的計算公式。式中α代表該日期對應的太陽赤緯,ω代表當時的太陽時角。
為了成功地求解該規(guī)劃,需要從圖片或者視頻中進行提取使用的數(shù)據(jù),于是在物體直立并且物距可估算的假設之下,做如圖2所示的坐標長度變換。
其中oh為木桿,ha為光線,oa為木桿在太陽光照射下形成的影子,δx、δy表示橫縱坐標的變化量。toa為oa的投影長度。在假定攝像頭到物體距離為j,攝像頭的高度為n。的情況下,可以得到:
3魚群算法的實現(xiàn)步驟
魚群算法是模仿成群的魚類在覓食時采取的自治體優(yōu)化的策略,其基本思想是,在魚類生存的環(huán)境中,食物最豐富的地方,往往也是魚類聚集最多的地方。魚群算法根據(jù)魚類覓食,聚群,追尾等行為創(chuàng)造出若干即自制又能夠進行有效的信息交換的人工魚。每一個人工魚的位置都代表了一個有效解,人工魚生存的水域?qū)藘?yōu)化問題的解空間,食物的濃度對應了目標函數(shù)的值,通過人工魚在目標水域中的游動,描述整個的尋優(yōu)過程。
算法的偽碼表示如圖3所示:
1)初始化:確定種群規(guī)模n,設定人工魚可視范圍,人工魚步長,擁擠度因子,和人工魚覓食的最大試探次數(shù)。在可行域中隨機生成n個個體,并且作為最大試探次數(shù)。
2)取最優(yōu)人工魚狀態(tài)及賦值給公告板,如果滿意則算法結(jié)束。
3)通過覓食,聚群,追尾行為進行每一條人工魚的各自尋優(yōu)
4)返回步驟2)
將算法應用到解決視頻定位場景的方法如下:
可取區(qū)間:
可取區(qū)間即為人工魚的活動水域范圍,由于本文所涉數(shù)據(jù)在中國采集,所以使用東經(jīng)0~180°北緯0~180°作為可能區(qū)間,也就是人工魚的活動水域。
覓食行為:
當前人工魚的位置代表了當前探索的經(jīng)緯度位置,記為pa,進行覓食時,在其視野范圍va內(nèi)隨機的選擇一個經(jīng)緯度pb,如果pb位置所計算的影長誤差累計平方和eb小于位置所計算的影長誤差累計平方和ea,則表明在pb位置更有可能是我們尋找的解,也就是對人工魚來說更適合其生存,人工魚會向pb位置移動,通過如下方程:
其中,η為移動的步長,rand()為生成的隨機數(shù),表現(xiàn)人工魚移動的隨機性。如果隨機選擇的位置pb并不能使eb小于ea,那么重新選擇pb,直到到達一定次數(shù)n,或者成功移動一步。
聚群行為:
考慮到現(xiàn)實中,誤差e與經(jīng)度緯度日期鐘時的函數(shù)關系在大部分求解空間是連續(xù)的,那么在誤差較小的經(jīng)緯度旁邊的旁邊的到問題的最優(yōu)解的可能性更大,值得著力去探索。假設人工魚當前的狀態(tài)為pa,探測其鄰域的pb位置所計算的影長誤差累計平方和eb,與伙伴數(shù)n,如果
否則不執(zhí)行此行為。
追尾行為:
與聚群行為類似,整個種群中的誤差最小的經(jīng)緯度的旁邊同樣值得去探索。人工魚當前的狀態(tài)為pa,探測其相鄰人工魚中狀態(tài)最好的pmax,與伙伴數(shù),如果
否則不執(zhí)行此行為。
魚群算法的求解結(jié)果示例:
魚群算法的搜索結(jié)果如圖4至圖6所示。為了畫圖的整潔,我們將經(jīng)度,緯度和日期的三維圖像簡化為經(jīng)度、緯度的二維搜索圖像。
其中(a)圖(b)圖(c)圖表示開始狀態(tài)時,經(jīng)過20次迭代和經(jīng)過300次迭代時,隨機產(chǎn)生的人工魚所處的位置。在每一張圖片中橫坐標為經(jīng)度,縱坐標為緯度,黑色的六邊形表示人工魚的位置,黑色的六角星表示正確的物體的位置。在圖中可以清楚地看到當?shù)螖?shù)達到300次時,已經(jīng)可以得到優(yōu)秀的解。
為了更好的分析精確度與迭代次數(shù)的關系,精確度與迭代次數(shù)的圖像如圖7:
圖片顯示,精確度在第五十次收斂前快速增長,達到接近于1的水平。故可以認為魚群算法對與解決本問題是有效的。
魚群算法與傳統(tǒng)算法的速度比較:
為了表現(xiàn)魚群算法解決本問題的快速性,通過網(wǎng)格搜索算法,貪婪算法,兩段貪婪法與魚群算法的比較數(shù)據(jù)來進行說明。
網(wǎng)格搜索算法是將待搜索參數(shù)在一定的空間范圍中劃分成網(wǎng)格,通過遍歷網(wǎng)格中所有的點來尋找最優(yōu)參數(shù)。這種方法在尋優(yōu)區(qū)間足夠大且步距足夠小的情況下可以找出全局最優(yōu)解。
貪婪算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,貪婪算法不會從整體上考慮算法的優(yōu)劣性,只能得到某種意義上的局部最優(yōu)解。
兩段貪婪法則對兩者的特點進行了融合。第一階段通過快速的貪婪法確定大概位置,然后使用網(wǎng)格化搜索得到最終的解。
表1三種算法定位結(jié)果比較
表格顯示,我們將所研究的幾種算法分為兩類,傳統(tǒng)算法(包括網(wǎng)格化搜索算法,貪婪算法,兩段貪婪法)和智能算法(包括遺傳算法,粒子群算法,魚群算法)??偟膩碚f傳統(tǒng)算法在存在速度緩慢慢的缺陷:其中網(wǎng)格索搜算法雖然在精度上可調(diào),但是運算的時間十分巨大;貪婪算法存在很大的不確定性,其搜索的成功與否沒完全取決于其初始位置到最優(yōu)解之間是否存在局部最優(yōu)解;兩段貪婪法雖然在一定程度上對上述兩種算法做出改進,但是在性能上并不能達到理想狀態(tài)。
智能算法的應用都可以很好的解決本問題,并且解決問題的效果好于傳統(tǒng)算法,但是都依賴于相應計算參數(shù)的調(diào)整,并且一定程度上受到隨機性的影響。
三種智能算法橫向比較來看遺傳算法的收斂誤差較小,但是搜索的時間相對較長,并且在試驗中可以觀察到其對于初始種群的敏感性較高,也就是說對于隨機生成的不同初始種群來說,收斂的時間差距較大。
粒子群算法在速度上優(yōu)于遺傳算法,但是其精度存在較大誤差。經(jīng)過參數(shù)的調(diào)整,我們發(fā)現(xiàn),魚群算法能夠使其在速度上和精度上都能夠達到優(yōu)秀的水平,擁有快速,穩(wěn)定并且誤差較小的特點,性能優(yōu)于其余兩種智能算法。對于本問題的解決可魚群算法可以在30秒內(nèi)得出最優(yōu)解。