哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于EAIDK的人臉?biāo)惴☉?yīng)用-源碼解讀(2)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 21:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 本期內(nèi)容介紹

上一期介紹了基于EAIDK的人臉算法應(yīng)用,本期從應(yīng)用角度,解讀一下該案例源碼。
本期案例源碼解讀,主要從源碼目錄結(jié)構(gòu)、配置文件、模型目錄、源碼流程、重點(diǎn)源碼文件等進(jìn)行解讀。

本期源碼解讀目標(biāo):

1. 讓EAIDK-310開發(fā)者對EAIDK-310環(huán)境更加熟練
2. 熟悉EAIDK-310人臉識別案例源碼
3. 方便開發(fā)者使用vision.sdk的調(diào)用流程,為二次開發(fā)做指引參考

2 目錄結(jié)構(gòu)介紹

ftp://ftp.eaidk.net/EAIDK310/_Source/eaidk310/_face/_package/獲取源碼包后,直接解壓后得到eaidk310_face_package文件夾,文件夾內(nèi)容如下圖所示:

eaidk310_face_demo.zip解壓后,源碼包整體目錄結(jié)構(gòu)如下:

doc目錄:指文檔目錄,包含Vision.Face SDK手冊,Vision.Face SDK人臉?biāo)惴≦&A手冊。其中Vision.Face SDK手冊,詳細(xì)介紹了人臉?biāo)惴ǖ母鱾€(gè)API接口,本案例人臉應(yīng)用調(diào)用的接口全部在該文檔中有介紹。

face-sdk目錄:vision.sdk人臉?biāo)惴◣欤?code>libface.so)

eaidk310/_face/_demo.zip:eaidk310人臉推廣案例的源代碼包,解壓后的目錄截圖如下:

build-eaidk/_visual/_embedded-Desktop-Debug:編譯目錄和運(yùn)行目錄,里面有demo運(yùn)行時(shí)必需的文件和目錄,比如配置文件demo.conf,models模型目錄。

eaidk/_visual/_embeded:源碼目錄,案例實(shí)現(xiàn)的源代碼都在該目錄下,下文也將重點(diǎn)介紹該目錄下源碼文件。

libs:本案例依賴的vision.sdk人臉庫,內(nèi)容與上文提到的face-sdk目錄內(nèi)容一致。

3 配置文件&模型文件

demo.conf,該文件必須在案例程序的運(yùn)行的當(dāng)前路徑,已配置好默認(rèn)的參數(shù),理解即可。

VideoWidth=1280      -->采集視頻圖像的寬
VideoHeight=720      -->采集視頻圖像的高
Scale=1              -->采集視頻圖像的縮放比例
MinFaceSize=40       -->人臉?biāo)惴ǖ淖畹拖袼匾?Clarity=200          -->人臉?biāo)惴ǖ淖畹颓逦纫?FaceAngle=0.4        -->人臉?biāo)惴ǖ淖畹徒嵌纫?ThresHold=0.7        -->人臉識別的最低閾值要求
UseApi=0             -->人臉?biāo)惴ǖ恼{(diào)用策略
Dbsize=10000         -->人臉庫的最大存儲人臉數(shù)
RegisterMethod=0     -->人臉注冊策略
FacePicturePATH=./models/faces/   -->人臉存儲本地路徑

模型目錄
mfn.tmfile,mobilefacenet人臉識別模型文件
det1,det2,det3.tmfile,人臉檢測模型文件
face_attr.tmfile,人臉屬性模型文件

4 流程介紹及源碼解讀

4.1 實(shí)現(xiàn)流程

整體流程結(jié)構(gòu)如下:

4.2 流程與源碼解讀

下面我們對此案例中的重要&核心的代碼內(nèi)容進(jìn)行解釋,為讀者提供參考,方便讀者了解vision.sdk算法應(yīng)用。

4.2.1 mainwindow.cpp

程序從main函數(shù)入口,在main中創(chuàng)建顯示窗口,具體顯示內(nèi)容在mainwindow.cpp中實(shí)現(xiàn)。mainwindow.cpp源程序中主要實(shí)現(xiàn)2個(gè)功能:

    1. UI布局
    2. 圖像采集

mainwindow.cpp源程序包含構(gòu)造函數(shù)、updateImage函數(shù)、open_camera函數(shù)等重要函數(shù)。

4.2.1.1 構(gòu)造函數(shù)

所有對象創(chuàng)建時(shí),都需要初始化才可以使用,而構(gòu)造函數(shù)就是用于給對象進(jìn)行初始化,在堆內(nèi)存中開辟出一個(gè)空間來存放建立的對象并賦初始值。

    /* connects */
    connect(&theTimer, &QTimer::timeout, this, &MainWindow::updateImage);

    connect(ui->face_attr_2, SIGNAL(clicked(bool)), this, SLOT(convert_to_face_attr()));
    connect(ui->face_rec_2, SIGNAL(clicked(bool)), this, SLOT(convert_to_face_rec()));
    connect(ui->rb_face_track, SIGNAL(clicked(bool)), this, SLOT(convert_to_face_track()));

updateImage,是theTimer對應(yīng)的槽函數(shù),每隔33ms調(diào)用一次,該函數(shù)是mainwindow.cpp文件中最重要的函數(shù),它包含圖像的顯示、人臉?biāo)惴ㄌ幚斫Y(jié)果的顯示。
其他connect均為顯示界面的各個(gè)按鈕及其對應(yīng)槽函數(shù):

    /* regist related */
    connect(ui->regist, SIGNAL(clicked(bool)), this, SLOT(user_regist()));
    connect(ui->cancel, SIGNAL(clicked(bool)), this, SLOT(user_cancel_regist()));
    connect(ui->ok, SIGNAL(clicked(bool)), this, SLOT(user_save_regist()));
    connect(ui->ok_2, SIGNAL(clicked(bool)), this, SLOT(get_user_name()));
    connect(ui->cancel_2, SIGNAL(clicked(bool)), this, SLOT(back_to_face_rec()));
4.2.1.2 updateImage函數(shù)

updateimage函數(shù)是UI顯示的核心函數(shù),每隔33ms調(diào)用1次,填充視頻窗口的區(qū)域。

void MainWindow::updateImage()
{
    ui->label_diku->clear();
    ui->label_diku_2->clear();
    cam->videoCapL>>cam->srcImageL;

cam->videoCapL>>cam->srcImageL;該行功能是獲取攝像頭數(shù)據(jù)并存入srcImageL變量。

updateimage函數(shù)下調(diào)用了face_rec_enabledface_attr_enabled、face_track_enabled等函數(shù)

face/_rec/_enabled,表示打開人臉識別功能,該{}內(nèi)表示人臉識別的代碼處理部分。
人臉識別處理部分:

if(face_rec_enabled)
{
       algThd->setUseApiParams(0);
       algThd->face_rec_label = true;
       cv::resize(cam->srcImageL, ResImg, ResImgSiz, CV_INTER_LINEAR);
       algThd->sendFrame(ResImg, cam->srcImageL);
       Mface face_result = algThd->getFace();

獲取人臉的結(jié)果后,line函數(shù)對圖像中的人臉畫框,label_diku_2對人臉圖像做show(顯示)處理。

       if(face_result.drawflag && strcmp(face_result.name, "")!=0 && strcmp(face_result.name, "unknown")!=0){
           if(access(facepath, F_OK) < 0)
           {
               printf("%s:%d %s not exist./n", __func__, __LINE__, facepath);
               return;
           }

           int x = face_result.pos[0].x;
           int y = face_result.pos[0].y;
           int w = face_result.pos[0].width;
           int h = face_result.pos[0].height;
           line(cam->srcImageL, cvPoint(x, y), cvPoint(x, y + 20), cvScalar(0, 255, 0, 0), 2);
           line(cam->srcImageL, cvPoint(x, y), cvPoint(x + 20, y), cvScalar(0, 255, 0, 0), 2);

           line(cam->srcImageL, cvPoint(x + w - 20, y), cvPoint(x + w, y), cvScalar(0, 255, 0, 0), 2);
           line(cam->srcImageL, cvPoint(x + w, y), cvPoint(x + w, y + 20), cvScalar(0, 255, 0, 0), 2);

           line(cam->srcImageL, cvPoint(x, y + h), cvPoint(x + 20, y + h), cvScalar(0, 255, 0, 0), 2);
           line(cam->srcImageL, cvPoint(x, y + h), cvPoint(x, y + h - 20), cvScalar(0, 255, 0, 0), 2);

           line(cam->srcImageL, cvPoint(x + w, y + h), cvPoint(x + w, y + h - 20), cvScalar(0, 255, 0, 0), 2);
           line(cam->srcImageL, cvPoint(x + w, y + h), cvPoint(x + w - 20, y + h), cvScalar(0, 255, 0, 0), 2);

           Mat diku = cv::imread(facepath);
           cvtColor(diku, diku, CV_BGR2RGB);
           QImage imagel = QImage((uchar*)(diku.data), diku.cols, diku.rows, QImage::Format_RGB888);
           ui->label_diku->setPixmap(QPixmap::fromImage(imagel));
           ui->label_diku->resize(imagel.size());
           ui->label_diku->show();

           cv::Mat realtime_face;
           cam->srcImageL(Rect(face_result.pos[0].x, face_result.pos[0].y, face_result.pos[0].width, face_result.pos[0].height)).copyTo(realtime_face);
           cvtColor(realtime_face, realtime_face, CV_BGR2RGB);
           cv::resize(realtime_face, realtime_face, Size(120, 120), CV_INTER_LINEAR);
           QImage imagel2 = QImage((uchar*)(realtime_face.data), realtime_face.cols, realtime_face.rows, realtime_face.cols*realtime_face.channels(), QImage::Format_RGB888);
           ui->label_diku_2->setPixmap(QPixmap::fromImage(imagel2));
           ui->label_diku_2->resize(imagel2.size());
           ui->label_diku_2->show();

face_attr/enabled,表示打開人臉屬性功能,該{}內(nèi)是人臉屬性演示的代碼部分。
人臉屬性處理部分:

else if(face_attr_enabled)
{
       algThd->setUseApiParams(1);

       cv::resize(cam->srcImageL, ResImg, ResImgSiz, CV_INTER_LINEAR);
       algThd->sendFrame(ResImg, cam->srcImageL);
       Mface face_result = algThd->getFace();

face/_track/_enabled,表示打開人臉跟蹤功能,該{}內(nèi)是人臉跟蹤的處理部分。
人臉跟蹤處理部分:

else if(face_track_enabled)
{
       algThd->setUseApiParams(6);

       cv::resize(cam->srcImageL, ResImg, ResImgSiz, CV_INTER_LINEAR);
       algThd->Tracker(ResImg,cam->srcImageL);
       cv::resize(cam->srcImageL, ResImg, ResImgSiz, CV_INTER_LINEAR);
       algThd->sendFrame(ResImg, cam->srcImageL);
       Mface face_result = algThd->getFace();

上面人臉識別、人臉屬性、人臉跟蹤的處理部分都用到了setUseApiParams()sendFrame()、getFace()函數(shù):

setUseApiParams(),設(shè)置算法處理策略,0表示做人臉識別功能,1表示做人臉屬性功能,6表示做人臉跟蹤功能;
sendFrame(),將采集到的圖像發(fā)送到算法線程進(jìn)行處理;
getFace(),獲取返回的人臉數(shù)據(jù)。當(dāng)mainwindow采集圖象時(shí),調(diào)用sendFrame()函數(shù),把采集到的數(shù)據(jù)傳送給循環(huán)處理的線程,并通過getFace()函數(shù)獲取結(jié)果并顯示。
4.2.1.3 open_camera函數(shù)

open_camera是用來采集USB攝像頭視頻的函數(shù),獲取的圖像用來輸入給人臉?biāo)惴ê瘮?shù)。其中參數(shù)0表示USB攝像頭的設(shè)備節(jié)點(diǎn)(/dev/video0),當(dāng)該節(jié)點(diǎn)不存在或者非usb攝像頭設(shè)備時(shí),采集圖像會失敗。

if(cam->videoCapL.open(0))
{
    cam->srcImageL = Mat::zeros(cam->videoCapL.get(CV_CAP_PROP_FRAME_HEIGHT), cam->videoCapL.get(CV_CAP_PROP_FRAME_WIDTH), CV_8UC3);
    theTimer.start(33);
}

4.2.2 AlgThread.cpp

mainwindow類的構(gòu)造函數(shù)中,line131創(chuàng)建人臉?biāo)惴ㄌ幚淼膶ο?code>algThd,并調(diào)用start()函數(shù)開啟人臉處理線程,其內(nèi)容的實(shí)現(xiàn)在AlgThread.cpp中。人臉?biāo)惴ǖ牧鞒淌禽斎雸D像、深度學(xué)習(xí)類型人臉?biāo)惴ㄌ幚怼⒎祷亟Y(jié)果、窗口顯示。

    ConfigParam param;
    LoadConfig(param,false);

    algThd = new AlgThread(param);
    algThd->start();
    ResImgSiz = cv::Size(NORMAL_FRAME_W, NORMAL_FRAME_H);

AlgThread.cpp源程序包含線程函數(shù)run,來實(shí)現(xiàn)人臉跟蹤/人臉檢測/特征值提取/人臉特征值比對/人臉注冊等核心功能。

4.2.2.1 線程函數(shù)run

線程函數(shù)run()是一個(gè)while(1)循環(huán)函數(shù),param.useapi為0時(shí)表示人臉識別,為1時(shí)表示人臉屬性,為6時(shí)表示人臉跟蹤。

void AlgThread::run()
{
    static unsigned long long tv_start, tv_end,t0,t1;
    float feature0[FEATURE_SIZE];
    float feature1[FEATURE_SIZE];
    float score;

    for (int i=0;i lck(m_mtx_reg);
        getframe(mat);
        getSrcframe(grayframe);
        if (mat.empty()) continue;
        int face_recognize_return_value = FaceRecognize(mat,grayframe,0);;++i)>

其他重要的函數(shù)如下,用黃色背景標(biāo)注:
FaceRecognize,人臉識別函數(shù)
GetFeature,獲取特征值函數(shù),提取檢測到的人臉的特征值
Register,人臉注冊,特征值存入數(shù)據(jù)庫函數(shù)
CompareFaceDB,人臉比對函數(shù)

        int face_recognize_return_value = FaceRecognize(mat,grayframe,0);

        if(0x0b == param.useapi)//liveness do not need compare feature
        {
            continue;
        }
        printf("%s %d face_recognize_return_value:%d/n", __FUNCTION__, __LINE__, face_recognize_return_value);
        if(face_recognize_return_value != SUCCESS){
            printf("%s %d face_recognize fail.../n", __FUNCTION__, __LINE__);
            t0=tv_start;
            if (param.useapi==2) {
                //gettimeofday(&tv_end, NULL);
                //tv_end = get_ms();
                //m_fps = (float)1000.0 /(tv_end.tv_sec * 1000 + tv_end.tv_usec / 1000 - tv_start.tv_sec * 1000 - tv_start.tv_usec / 1000);
            }
            continue;
        }
        else
        {
            printf("%s %d face_recognize success.../n", __FUNCTION__, __LINE__);
        }
        if(1 == param.useapi)
        {
            continue;
        }
        ret=faceapp::GetFeature(mFace,feature1,&res);
        if (ret!=SUCCESS) {
            printf("%s %d get feature fail..../n", __FUNCTION__, __LINE__);
            t0=tv_start;
            if(ret==ERROR_BAD_QUALITY)
                m_face.nam;
            continue;
        }

        if(regist_label){
            Register(mat, feature1, (char*)reg_name.c_str());
            regist_label = false;
            reg_name = "";
        }

        if(face_rec_label){
            ret = CompareFaceDB(feature1);

vision.sdk的使用,流程是初始化->人臉檢測->人臉特征值提取->人臉注冊->人臉比對函數(shù)使用,如上函數(shù)調(diào)用順序基本也是vision.sdk的調(diào)用順序:

5 總結(jié)

該案例解讀文檔主要主要從源碼目錄結(jié)構(gòu)、源碼簡要流程、重點(diǎn)源碼函數(shù)幾個(gè)方面進(jìn)行了解讀和介紹,并按照功能實(shí)現(xiàn)流程順序,介紹了基于EAIDK的人臉識別案例源碼中的重要函數(shù)及其實(shí)現(xiàn)的功能,并貼出實(shí)際使用代碼,方便開發(fā)者理解,為開發(fā)者進(jìn)行二次開發(fā)提供參考。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4800

    瀏覽量

    98481
  • 人臉識別
    +關(guān)注

    關(guān)注

    77

    文章

    4129

    瀏覽量

    88719
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5603

    瀏覽量

    124603
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    瑞芯微(EASY EAI)RV1126B 人臉98關(guān)鍵點(diǎn)算法識別

    的影響,人臉關(guān)鍵點(diǎn)定位也是一個(gè)賦有挑戰(zhàn)性的任務(wù)工作。人臉關(guān)鍵點(diǎn)的檢測有許多重要的應(yīng)用場景。l人臉姿態(tài)對齊:人臉識別等算法都需要對
    的頭像 發(fā)表于 04-03 10:39 ?129次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>人臉</b>98關(guān)鍵點(diǎn)<b class='flag-5'>算法</b>識別

    【瑞薩AI挑戰(zhàn)賽】階段一:基于RA8P1的人臉識別模型轉(zhuǎn)換和部署

    前言 該報(bào)告是介紹了基于RA8P1開發(fā)板的人臉識別模型的轉(zhuǎn)換和部署。所使用的人臉識別模型是BlazeFace,通過RUHMI工具鏈進(jìn)行模型轉(zhuǎn)換,最后基于官方提供的人臉識別例程進(jìn)行修改,并部署本文轉(zhuǎn)換
    發(fā)表于 03-09 00:49

    【上海晶珩睿莓 1 單板計(jì)算機(jī)】人臉識別

    【上海晶珩睿莓 1 單板計(jì)算機(jī)】人臉識別 本文介紹了上海晶珩睿莓 1 單板計(jì)算機(jī)結(jié)合 OpenCV 內(nèi)置 YuNet 算法和 SFace 模型實(shí)現(xiàn)人臉識別的項(xiàng)目設(shè)計(jì),包括環(huán)境部署、預(yù)訓(xùn)練模型獲取
    發(fā)表于 01-04 20:22

    基于AIK-RA8D1的人臉識別的應(yīng)用演示

    與Aizip人臉識別技術(shù)結(jié)合,實(shí)現(xiàn)高效且低功耗的人臉識別應(yīng)用。人臉識別的優(yōu)勢傳統(tǒng)的密碼驗(yàn)證方式存在很多缺點(diǎn)。首先,密碼容易泄露或被共享,可能導(dǎo)致未
    的頭像 發(fā)表于 12-02 14:29 ?5632次閱讀
    基于AIK-RA8D1<b class='flag-5'>的人臉</b>識別的應(yīng)用演示

    基于級聯(lián)分類器的人臉檢測基本原理

    本次分享的內(nèi)容是基于級聯(lián)分類器的人臉檢測基本原理 1) 人臉檢測概述 關(guān)于人臉檢測算法,目前主流方法分為兩類,一類是基于知識,主要方法包括模板匹配,
    發(fā)表于 10-30 06:14

    E203_NICE軟件demo_nice源碼解讀

    2.在下載得到的文件夾中,進(jìn)入…………nuclei-board-labs-mastere203_hbirdv2common路徑,即可找到nice_demo源碼文件夾 進(jìn)入文件夾
    發(fā)表于 10-29 07:14

    如何挑選人臉識別終端?人臉識別一體機(jī)品牌排行榜

    考慮這些人臉識別終端的具體應(yīng)用場景在哪里。下面,小編就總結(jié)了2025年最新的人臉識別一體機(jī)品牌排行榜:一、海康威視人臉門禁一體機(jī)優(yōu)勢:采用先進(jìn)的人臉識別
    的頭像 發(fā)表于 08-18 10:44 ?2338次閱讀
    如何挑選<b class='flag-5'>人臉</b>識別終端?<b class='flag-5'>人臉</b>識別一體機(jī)品牌排行榜

    【Milk-V Duo S 開發(fā)板免費(fèi)體驗(yàn)】基于Duo S 使用 TDL SDK(V2版本)

    ,行人檢測,語義分割,車牌辨識,車牌檢測,活體識別,IR活體識別,嬰兒檢測,哭聲檢測,姿態(tài)檢測,手勢偵測,手勢識別 等算法2 實(shí)例部署(V2版本) 2.1 TDL SDK環(huán)境搭建 TDL SDK
    發(fā)表于 08-10 22:35

    【Milk-V Duo S 開發(fā)板免費(fèi)體驗(yàn)】人臉檢測

    多張人臉識別 針對畫面中存在多張人臉的情況進(jìn)行測試 識別效果較好,速度較快。 同時(shí)終端輸出檢測到的人臉數(shù)量 動態(tài)效果見底部視頻。 總結(jié) 本文介紹了 Milk-V Duo S 開發(fā)板結(jié)合 OV5647 攝像頭模塊,實(shí)現(xiàn)
    發(fā)表于 07-27 16:53

    人臉方向識別算法

    人臉識別
    深蕾半導(dǎo)體
    發(fā)布于 :2025年07月22日 09:58:29

    【EASY EAI Orin Nano開發(fā)板試用體驗(yàn)】EASY-EAI-Toolkit人臉識別

    /EASY-EAI-Toolkit-3576.git 2.下載人臉檢測算法模型https://pan.baidu.com/s/1UflOWeHJOBf1envujW7tEA?pwd=1234 (提取
    發(fā)表于 07-20 14:40

    基于LockAI視覺識別模塊:C++人臉識別

    本文基于RV1106做成的LockAI視覺識別模塊,采用 LZ-Picodet 模型訓(xùn)練的人臉檢測模型 LZ-Face,以及ArcFace人臉識別模型,實(shí)現(xiàn)人臉識別系統(tǒng)。 源代碼:https
    發(fā)表于 07-01 12:01

    單片機(jī)常用算法源碼下載!

    單片機(jī)常用算法源碼下載!
    發(fā)表于 06-10 20:44

    選擇戶外場景的人臉識別門禁一體機(jī),需要具備哪些條件?

    我們常用于企業(yè)打卡或單位校園門禁的人臉識別身份核驗(yàn)終端、刷臉核驗(yàn)一體機(jī)、人臉識別門禁考勤機(jī)或人臉識別門禁一體機(jī)通常都是用于室內(nèi)。但其實(shí)用于戶外場景的身份證人臉識別身份核驗(yàn)終端和
    的頭像 發(fā)表于 06-09 10:26 ?1136次閱讀
    選擇戶外場景<b class='flag-5'>的人臉</b>識別門禁一體機(jī),需要具備哪些條件?

    基于RK3576開發(fā)板的人臉識別算法

    RK3576開發(fā)板展示人臉識別算法例程和API說明
    的頭像 發(fā)表于 05-07 16:48 ?2895次閱讀
    基于RK3576開發(fā)板<b class='flag-5'>的人臉</b>識別<b class='flag-5'>算法</b>
    南部县| 广灵县| 扶余县| 昆山市| 北安市| 五寨县| 台中县| 平乐县| 濉溪县| 南开区| 沐川县| 安庆市| 神木县| 高密市| 东乌| 九龙坡区| 沂南县| 津南区| 汕头市| 探索| 西平县| 卓资县| 梧州市| 秦皇岛市| 德保县| 东光县| 仙桃市| 洛南县| 淮安市| 湛江市| 馆陶县| 遂川县| 丹巴县| 莫力| 上虞市| 鹤山市| 鄯善县| 长治县| 来安县| 湖南省| 阿坝县|