国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于智能云和AR的模塊識別軟件開發(fā)

2020-03-10 06:00
關(guān)鍵詞:紋理攝像頭矩陣

吳 正

(上海船舶運(yùn)輸科學(xué)研究所 艦船自動(dòng)化系統(tǒng)事業(yè)部, 上海 200135)

0 引 言

增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)是一種實(shí)時(shí)計(jì)算攝影機(jī)影像的位置和角度并加上相應(yīng)圖像,將真實(shí)世界的信息與虛擬世界的信息“無縫”集成的技術(shù),其目標(biāo)是在屏幕上將虛擬世界套在現(xiàn)實(shí)世界中并與之互動(dòng)。這種技術(shù)最早于二十世紀(jì)九十年代提出,效用是通過計(jì)算機(jī)等科學(xué)技術(shù)對原本在現(xiàn)實(shí)世界中的一定時(shí)間和空間范圍內(nèi)很難體驗(yàn)到的實(shí)體信息(視覺信息、聲音、味道和觸覺等)進(jìn)行模擬仿真和疊加,將虛擬的信息應(yīng)用到真實(shí)世界中被人類感官感知,從而達(dá)到超越現(xiàn)實(shí)的感官體驗(yàn)。AR技術(shù)不僅能展現(xiàn)真實(shí)世界的信息,而且能將虛擬的信息顯示出來,2種信息相互補(bǔ)充、疊加。隨著電子產(chǎn)品的運(yùn)算能力不斷提升,輸入和輸出設(shè)備的價(jià)格不斷下降,視頻顯示的質(zhì)量不斷提高,以及功能很強(qiáng)大且易于應(yīng)用的軟件不斷實(shí)用化,AR的應(yīng)用將越來越廣泛。

本文結(jié)合百度云技術(shù)對圖形的智能識別功能,利用AR技術(shù)將對象參數(shù)標(biāo)記到人們正在觀察的特定目標(biāo)模塊上,對比預(yù)設(shè)定的采樣特征,準(zhǔn)確識別目標(biāo),使使用者能更便捷地獲取相關(guān)信息。

1 設(shè)計(jì)環(huán)境

本文設(shè)計(jì)的硬件設(shè)備至少由以下2部分組成:

1) 搭載Unity3D軟件系統(tǒng)的計(jì)算機(jī)主機(jī),用于構(gòu)建AR環(huán)境并打包成APP安裝文件;

2) 采樣攝像頭,用于在軟件中對建模對象進(jìn)行三維攝像取樣,同時(shí)對捕捉目標(biāo)(模塊模型)的圖像進(jìn)行機(jī)器辨識。

注:簡易AR設(shè)備可由智能手機(jī)替代,且同時(shí)滿足以上硬件要求。

1.1 電腦主機(jī)的硬件要求

基于Unity3D的系統(tǒng)要求,計(jì)算機(jī)需具備4個(gè)條件。

1) OS: Windows 7 SP1+, Windows 8, Windows 10; Mac OS X 10.9+。

2) GPU: 支持DX9 (shader model 3.0) 或DX11 (feature level 9.3) 的顯卡。

3) 硬盤空間大于64G。

4) 內(nèi)存大于8G。

1.2 輸入采樣設(shè)備

為保證識別跟蹤效果,對攝像圖片的大小和格式等作以下規(guī)范性限制:

1) 識別圖應(yīng)為不小于480×480像素的圖片;

2) 識別圖的格式應(yīng)為JPG或JPEG;

3) 上傳的識別圖占用的內(nèi)存應(yīng)小于3M。

注:常用智能手機(jī)攝像頭滿足以上要求。

1.3 軟件基礎(chǔ)

1) DuMix AR Unity SDK 支持發(fā)布Android和iOS應(yīng)用,且手機(jī)需保持聯(lián)網(wǎng)狀態(tài)。

2) DuMix AR Unity SDK開發(fā)環(huán)境需滿足:Unity3D開發(fā)版本2017以上;XCode版本9.0以上;Android Studio版本4.0.0以上;架構(gòu)滿足armeabi-v7a 和arm64-v8a。

2 軟件設(shè)計(jì)流程

2.1 設(shè)計(jì)原理與制作流程

機(jī)器視覺就是用機(jī)器代替人眼對目標(biāo)進(jìn)行測量和判斷。機(jī)器視覺系統(tǒng)是指通過機(jī)器視覺產(chǎn)品(即圖像攝取裝置,如手機(jī)攝像頭)將被攝取目標(biāo)轉(zhuǎn)換成圖像信號,并傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布、亮度和顏色等信息轉(zhuǎn)換成數(shù)字信號;圖像系統(tǒng)通過對這些信號進(jìn)行運(yùn)算,抽取目標(biāo)的特征,進(jìn)而根據(jù)判別結(jié)果將相關(guān)信息反饋給用戶。圖1為機(jī)器視覺工作流程。

圖1 機(jī)器視覺工作流程

根據(jù)圖1,制作過程簡化如下:

1) 拍攝大量對象照片,多角度采集目標(biāo)圖像特征數(shù)據(jù);

2) 通過百度識圖平臺檢測出目標(biāo)模塊的多個(gè)關(guān)鍵點(diǎn)(下文有相關(guān)特征點(diǎn)處理介紹);

3) 通過識圖平臺找到這些點(diǎn)與目標(biāo)關(guān)鍵點(diǎn)的對應(yīng)關(guān)系,即可簡單地通過替換對應(yīng)行的數(shù)據(jù)達(dá)到動(dòng)態(tài)識別模型的目的;

4) 創(chuàng)建Unity3D應(yīng)用,導(dǎo)入SDK,獲得平臺許可;

5) 使用Blender、Maya和Rhino等第三方軟件建立該模型,這里省略制作過程,生成格式為obj,對這些點(diǎn)進(jìn)行連線得到一個(gè)低面數(shù)的模塊模型;

6) 借助Unity3D引擎整合相關(guān)內(nèi)容,配置應(yīng)用程序并制作AR界面,打包發(fā)布軟件作品。

2.1.1 圖像特征提取

2.1.1.1 紋理

紋理是一種反映相似圖像中同質(zhì)現(xiàn)象的視覺特征,體現(xiàn)物體表面的緩慢變化或周期性變化的表面結(jié)構(gòu)組織排列屬性。紋理具有3個(gè)標(biāo)志,即:某種局部序列性不斷重復(fù);非隨機(jī)排列;紋理區(qū)域內(nèi)大致為均勻的統(tǒng)一體。

不同于灰度和顏色等圖像特征,紋理通過像素及其空間鄰域的灰度分布來表現(xiàn),即局部紋理信息。另外,局部紋理信息在不同程度上的重復(fù)性決定了全局紋理。 紋理特征能在體現(xiàn)全局特征的性質(zhì)的同時(shí),描述圖像或圖像區(qū)域?qū)?yīng)景物的表面性質(zhì)。然而,紋理只是物體表面的一種特性,并不能完全反映出物體的本質(zhì)屬性,因此僅利用紋理特征是無法獲得高層次圖像內(nèi)容的。與顏色特征不同,紋理特征不是基于像素點(diǎn)的特征,其需在包含多個(gè)像素點(diǎn)的區(qū)域內(nèi)進(jìn)行統(tǒng)計(jì)計(jì)算。

2.1.1.2 分形模型方法

分形維數(shù)作為分形的重要特征和度量,在應(yīng)用時(shí)以下面2點(diǎn)為基礎(chǔ):

1) 不同種類的形態(tài)物質(zhì)一般具有不同的分形維數(shù);

2) 自然界中的分形與圖像的灰度表示之間存在著一定的對應(yīng)關(guān)系。

隨機(jī)場模型法中的典型方法有馬爾可夫隨機(jī)場(Markov Random Field, MRF)模型法、Gibbs隨機(jī)場模型法、分形模型法和自回歸模型法等。這些方法主要通過模型系數(shù)標(biāo)識紋理特征,模型系數(shù)的求解有難度,計(jì)算量很大。由于基于MRF模型的紋理圖像分割是一個(gè)迭代的優(yōu)化過程,其由局部到全局的收斂速度很慢(即使條件迭代模式(Iterated Conditional Mode, ICM)能加速尋找解),通常需迭代數(shù)百次才能收斂,因此有必要借助網(wǎng)絡(luò)的云計(jì)算服務(wù)進(jìn)行復(fù)雜的計(jì)算,本文借助的是百度智能云識圖平臺[1]。

2.1.1.3 識圖平臺

在通過識圖平臺獲取目標(biāo)的采樣圖時(shí),有以下過程:

1) 將圖像的空間信息和灰度信息簡單、有機(jī)地結(jié)合起來,從而建立分形模型描述圖像區(qū)域的紋理特征。應(yīng)用比較多的是SIFT(Scale-Invariant Feature Transform)描述子、指紋算法函數(shù)、bundling features算法和hash function(散列函數(shù))等。此外,可根據(jù)不同的圖像設(shè)計(jì)不同的算法,比如采用圖像局部N階矩的方法提取圖像特征。

2) 由平臺對圖像特征信息進(jìn)行編碼,并根據(jù)海量圖像編碼制作查找表。對于目標(biāo)圖像,可對分辨率較高的圖像進(jìn)行降采樣,減少運(yùn)算量之后再進(jìn)行圖像特征提取和編碼處理。

3) 在應(yīng)用軟件中進(jìn)行相似度匹配運(yùn)算,利用目標(biāo)圖像的編碼值,在圖像數(shù)據(jù)庫中進(jìn)行全局或局部的相似度計(jì)算;根據(jù)需要的魯棒性設(shè)定閾值,將相似度高的圖像或數(shù)字模型找出來。

2.1.1.4 尋找單應(yīng)性變換求相似度

當(dāng)2張圖的相對位置鎖定之后,需分別找到對應(yīng)的點(diǎn),Homography就是一個(gè)變換(3×3矩陣),將一張圖中的點(diǎn)映射到另一張圖中對應(yīng)的點(diǎn)上[2],可表示為

(1)

此時(shí)2張圖之間的H映射關(guān)系就可表示為

(2)

要得到2張圖的H,至少需知道8個(gè)相同位置的點(diǎn),代碼如下:

{/*允許匹配的最小數(shù)量*/

const int minNumberMatchesAllowed = 8;

/*數(shù)量過小返回*/

if (matches.size()

return false;

/*準(zhǔn)備數(shù)據(jù)存儲映射矩陣*/

vectorsrcPoints(matches.size()); //保存原圖點(diǎn)中和當(dāng)前動(dòng)態(tài)圖匹配的點(diǎn)

vectordstPoints(matches.size());

/*將匹配的點(diǎn)找出來*/

for (size_t i = 0; i

srcPoints[i] = trainKeyPoints[matches[i].trainIdx].pt;

dstPoints[i] = queryKeypoints[matches[i].queryIdx].pt; }

vectorinliersMask(srcPoints.size()); //內(nèi)層mask

/*在原平面和目標(biāo)平面之間返回一個(gè)單映射矩陣(類似仿射變換中變換矩陣*/

homography = findHomography(

/*(識別圖)原圖中匹配的點(diǎn)集*/

srcPoints,

/*相機(jī)圖中匹配的點(diǎn)集*/

dstPoints,

/*采用隨機(jī)采樣一致性算法,最大容忍重投影誤差*/

CV_FM_RANSAC, 3,

/*輸出矩陣這里使用無符號char類型數(shù)組來保存*/

inliersMask );

vectorinliers;

for (size_t i = 0; i

{ if (inliersMask[i])

/*按照單映射矩陣的大小提取一些匹配點(diǎn)*/

inliers.push_back(matches[i]); }

/*將2個(gè)數(shù)組內(nèi)容交換matche中存儲當(dāng)前的匹配集合*/

atches.swap(inliers);

/*返回時(shí)大于8個(gè)點(diǎn)*/

return matches.size()>minNumberMatchesAllowed; }

2.1.2 識別圖管理

首先前往https://ar.baidu.com/上傳對象采樣照片(見圖2),生成并下載資源包(見圖3)。本文為對取樣模塊相關(guān)信息作馬賽克處理,軟件制作步驟真實(shí)有效,3D建模過程省略。

圖2 試驗(yàn)?zāi)K樣品

圖3 生成資源包

識圖機(jī)制為:服務(wù)器對上傳的圖片進(jìn)行灰度處理,圖片變?yōu)楹诎讏D像;提取黑白圖像的特征點(diǎn);將特征點(diǎn)數(shù)據(jù)打包;程序運(yùn)行時(shí)對比特征點(diǎn)數(shù)據(jù)包。攝像頭的參數(shù)是事先計(jì)算出來的,項(xiàng)目中單應(yīng)性矩陣的計(jì)算方式為:從優(yōu)化之后的匹配點(diǎn)對中挑選幾個(gè)進(jìn)行計(jì)算,在opencv中采用findHomography函數(shù),分2步進(jìn)行,第一步是直接計(jì)算得到單應(yīng)性粗糙矩陣,第二步是對圖像進(jìn)行透視變換扭曲,再次測得一個(gè)透視的單應(yīng)性矩陣,將其與第一步中的粗糙矩陣相乘得到精確的單應(yīng)性矩陣。根據(jù)單應(yīng)性矩陣可得出一張圖片在另一張圖片中的位置,這也是空間坐標(biāo)的確定方式。本文借助云識圖處理相關(guān)特征點(diǎn),這里不作詳細(xì)敘述。

2.2 創(chuàng)建軟件應(yīng)用

本文采用的Unity3D版本為2018.2.6f1,已在百度云中創(chuàng)建AR應(yīng)用,得到相應(yīng)的AppID、APIKey、SecretKey、包名和License文件。導(dǎo)入U(xiǎn)nity3D,應(yīng)用創(chuàng)建與設(shè)置見圖4[3]。

圖4 應(yīng)用創(chuàng)建與設(shè)置

2.3 導(dǎo)入SDK

新建Unity工程,找到DuMix AR Unity SDK Unitypackage (.unitypackage) ,打開并導(dǎo)入U(xiǎn)nity中(見圖5)。

2.4 場景設(shè)置

為使DuMix AR Unity SDK正常使用,需將prefab添加到場景中。將場景中的相機(jī)刪除,將ARCamera prefab拖入場景中。圖6為軟件設(shè)置平臺權(quán)限。

2.5 Unity3D應(yīng)用設(shè)置

將平臺上生成的資源包導(dǎo)入U(xiǎn)nity3D場景StreamingAssets文件夾中之后,BaiduARImageTracker組件中可調(diào)用的監(jiān)聽事件的后臺定義指令如下:

BaiduARImageTracker tracker=imageTracker.GetComponent;

/*身份信息報(bào)錯(cuò)時(shí)響應(yīng)*/

tracker.OnErrorEvent.AddListener(ErrorInfo);

/*跟蹤失敗*/

Tracker.OnTrackFail.AddListener(Fail);

/*跟蹤成功*/

Tracker.OnTrackSuccess.AddListener(Success);

目前只能跟蹤1個(gè)模型,且模型的大小需根據(jù)顯示效果調(diào)整。只有2D跟蹤功能支持Unity直接預(yù)覽。

將ARObjectTracker prefab添加到場景中,將模型添加到ARObjectTracker節(jié)點(diǎn)下,在模型上添加BaiduARObjectTrackable組件。通過調(diào)整模型的Tranform中Rotation的值,對模型的初始角度進(jìn)行控制;通過調(diào)整Transform中Position的X值和Y值,對模型在屏幕上的初始位置進(jìn)行控制;通過調(diào)整Transform中Position的Z值,對相機(jī)的距離進(jìn)行控制。圖7為軟件設(shè)置全景圖。

圖7 軟件設(shè)置全景圖

在開發(fā)實(shí)時(shí)識別功能時(shí),需調(diào)用BaiduARImageRecognitionResult組件中的OnRespond監(jiān)聽事件。OnRespond監(jiān)聽事件在識別成功之后響應(yīng),給監(jiān)聽事件添加自定義的方法。

_result=gameObject.GetComponent();

_result.OnRespond.AddListener(CreateObject);

先根據(jù)百度云數(shù)據(jù)提供的特征進(jìn)行相似度計(jì)算,得到比較值;接著按百分比降序,首位即是機(jī)器辨識出的結(jié)果(見圖8)。

圖8 軟件界面

測試結(jié)果:模塊A為0.967;模塊B為0.021;模塊C為0.011。顯然,通過試驗(yàn)得出,目標(biāo)最接近模塊A,當(dāng)在百度智能識圖平臺上提交大量采樣數(shù)據(jù)之后,辨識度可接近100%[4]。

2.6 接口說明

2.6.1 BaiduARWebCamera

程序打開之后,首先需確認(rèn)可選攝像頭,鑒于常用手機(jī)都帶有前、后雙攝像頭,而目前前置攝像頭只支持圖像識別功能,故采用后置攝像頭作為AR主攝像頭。

void SwitchCamera();

2.6.2 BaiduARObjectTracker

目標(biāo)對象選取之后,首先需對物體進(jìn)行圖像采樣,從外部得到的樣本中選出相關(guān)數(shù)字模型。用一種可自定義變更的算法跟蹤攝像頭拍攝到的圖片中的目標(biāo),并用 state object 方式對其進(jìn)行存儲。跟蹤器可同時(shí)追蹤多個(gè)數(shù)據(jù)集(被追蹤對象),但同一時(shí)間只能有1個(gè)被激活。

/*啟動(dòng)AR 開始對物體位置的實(shí)時(shí)監(jiān)控*/

void StartAR();

/*停止AR 停止對物體位置的實(shí)時(shí)傳送*/

void StopAR();

/*暫停AR*/

void PauseAR();

/*繼續(xù)AR*/

void ResumeAR();

接著,鎖定位置,上傳智能云進(jìn)行特征碼比較。若出現(xiàn)選取不符合要求的情況,則關(guān)閉接口,停止程序。

/*切換模型參數(shù):index 索引,模型的序列號*/

bool SetActiveTrack(int index);

/*定位成功*/

UnityEvent OnSlamSuccess;

/*定位失敗*/

UnityEvent OnSlamFail;

/*身份報(bào)錯(cuò)信息*/

UnityEventEx OnErrorEvent;

2.6.3 BaiduARObjectTrackable

當(dāng)程序進(jìn)行云對比時(shí),禁止用戶隨意改變目標(biāo)位置,需對物體進(jìn)行實(shí)時(shí)監(jiān)測。但是,之前的過程可在六自由度中追蹤到所有現(xiàn)實(shí)世界中的目標(biāo),分別為x(向右為正方向)、y(向正上方為正方向)和z(遠(yuǎn)離圖像的方向?yàn)檎较?。

/*更新物體的位置,角度信息*/

void UpdateSlamPos();

2.6.4 BaiduARImageTracker

當(dāng)預(yù)置的模型符合參照物的特征時(shí),可進(jìn)行跟蹤比對;反之,需從資源包中搜索相關(guān)模型參數(shù),資源包位置可選擇絕對路徑或相對路徑。

/*切換模型參數(shù) :path 路徑,模型上BaiduARImageTrackable組件中的filePath*/

bool SetActiveTrack (string path);

/*跟蹤成功*/

UnityEvent OnTrackSuccess;

/*跟蹤失敗*/

UnityEvent OnTrackFail;

/*身份報(bào)錯(cuò)信息*/

UnityEventEx OnErrorEvent;

/*自定義資源包的加載路徑參數(shù) :path 絕對路徑,

比如”/Users/WuZheng/Desktop/picture/module/model/8e361528.feam“*/

SetAbsolutePath(string path)

2.6.5 BaiduARCloudRecognition

以上步驟完成之后,通過對模塊識別進(jìn)行監(jiān)聽,即可直接收到AR云的回調(diào),通過數(shù)據(jù)處理顯示在程序中。

/*拍攝模塊*/

void TakePictureModule();

/*普通場景識別監(jiān)聽*/

void ResultSceneRecognition(Action> call);

/*模塊識別監(jiān)聽*/

void ResultModuleRecognition(Action> call);

/*身份報(bào)錯(cuò)信息*/

UnityEventEx OnErrorEvent;

2.7 軟件缺陷

由于是初次用AR智能云識別工業(yè)產(chǎn)品,在實(shí)際使用過程中發(fā)現(xiàn)一些問題,具體如下。

2.7.1 Dlib

1) 因Dlib庫依賴離線dat數(shù)據(jù)文件,其大小約為100M,加載需花費(fèi)數(shù)秒。

2) Dlib庫檢測目標(biāo)的速度與圖像的大小成反比,因此需對攝像頭的預(yù)覽畫面進(jìn)行截取。若截取得太小,則檢測不出模塊。在圖像的大小不影響檢測效果的情況下,檢測速度依然不理想。

3) 由于3D模型是根據(jù)單張圖片構(gòu)建的,無法獲取Z軸的數(shù)值,因此在估算三維姿態(tài)時(shí)用的是模擬數(shù)據(jù),得出的數(shù)值可能不準(zhǔn)確。

2.7.2 百度云識圖平臺API

1) 若采樣圖數(shù)量較少,則識別的準(zhǔn)確度呈指數(shù)級下降,因此對前期工作的要求比較嚴(yán)格;

2) 圖像跟蹤可將模型定位到圖片上,但本地識圖只有回調(diào),開發(fā)者必須自己定義加載的是模型還是UI圖片等;

3) 不排除百度智能云后期收費(fèi)問題。

2.7.3 Unity3D

1) Unity3D本身無法建模,必須借助第三方軟件制作數(shù)字模型并導(dǎo)入;

2) 建立識圖過程中生成的特征采樣點(diǎn)都是借助百度智能云數(shù)據(jù)后臺處理的,屬于商業(yè)機(jī)密,相關(guān)算法不可修改,無法提供自定義設(shè)計(jì)。

2.8 改進(jìn)方向

由于本文所述軟件的制作僅以優(yōu)化實(shí)際生產(chǎn)為目標(biāo),初次應(yīng)用還有很多不足,設(shè)計(jì)測試對象單一(模塊單板),沒有充分發(fā)揮出AR和智能云的優(yōu)點(diǎn)。對此,提出以下設(shè)計(jì)改進(jìn)方向:

1) 因模塊化對象的相似度較高,需增加更多采樣圖片,充實(shí)特征庫,穩(wěn)定測試數(shù)據(jù),提高軟件辨識的準(zhǔn)確度;

2) 針對模塊印刷電路板的不同布局,增加更多電路元器件的特征點(diǎn),使軟件能直接細(xì)化和排錯(cuò),AR圖像化印刷電路板上的明顯不同;

3) 圖片應(yīng)避免出現(xiàn)大面積色值相近的相鄰色塊,否則經(jīng)灰度處理之后整張圖都會變模糊,撞色的圖片設(shè)計(jì)能使灰度處理之后的識別圖仍保有清晰的分界線;

4) 顯示的物體距離鏡頭中識別圖的中心太遠(yuǎn),若物體能正好在識別圖特征點(diǎn)分布較多、較均勻的位置,且貼近識別圖,則能很好地解決抖動(dòng)問題。

3 結(jié) 語

本文所述模塊識別軟件有助于提高模塊制作和調(diào)試人員的工作效率和準(zhǔn)確性,在模塊制造和調(diào)試作業(yè)中快速查詢到相應(yīng)模塊的型號和功能。采用AR設(shè)備可完全做到仿真辨識檢測,對于一些具有高度相似性或高復(fù)雜度特性的模塊產(chǎn)品而言,這種AR系統(tǒng)能提供更具體的對比參數(shù)和更便捷的工作體驗(yàn)。

隨著科技的不斷進(jìn)步,AR技術(shù)將在未來的制造業(yè)領(lǐng)域得到廣泛應(yīng)用,本文的研究可為AR技術(shù)在船舶領(lǐng)域的應(yīng)用提供參考。

猜你喜歡
紋理攝像頭矩陣
浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
攝像頭連接器可提供360°視角圖像
肺紋理增多是病嗎?
童夢
多項(xiàng)式理論在矩陣求逆中的應(yīng)用
TEXTURE ON TEXTURE質(zhì)地上的紋理
消除凹凸紋理有妙招!
矩陣
矩陣
矩陣
成武县| 额尔古纳市| 贺兰县| 聂拉木县| 青海省| 荥经县| 逊克县| 马关县| 浑源县| 北宁市| 抚州市| 临高县| 凤翔县| 固阳县| 分宜县| 丰城市| 宝丰县| 珠海市| 彭泽县| 南安市| 南靖县| 扎兰屯市| 教育| 西吉县| 金坛市| 英吉沙县| 宁明县| 金溪县| 银川市| 安吉县| 梁平县| 搜索| 黄冈市| 榕江县| 温泉县| 葵青区| 黔南| 黄龙县| 雷波县| 柳江县| 孟津县|