欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Linux_Faster_RCNN_TensorFlow_Python

系統 1773 0

? ? ? ? ?首先,我用的工程文件是https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5里的windows下的代碼。這個代碼在windows我已經調通過。過程中也是遇到windows下安裝pycocotools的難題,需要去下載一個windows下的安裝文件去安裝,我參考了 CSDN博主 行勝于言的博客:?windows 安裝 pycocotools 方法(windows10編譯 Pycocotools出錯解決方案最新)

#####################################################################################################

下面這兩個鏈接里面是支持windows的

Clone of COCO API - Dataset @ http://cocodataset.org/ - with changes to support Windows build and python3

下面這個是原版鏈接 (在windows上安裝會出問題,在linux下應該不會。我沒在linux下試過用這個安裝,因為我貌似直接參考其他CSND博客用pip3或者是apt等方法給安裝好了?)

COCO API - Dataset @ http://cocodataset.org/

之前的一種解決方案

windows10編譯 Pycocotools出錯解決方案(不可取哦)

#####################################################################################################

好了下面進入正題

【Linux_Faster_RCNN_TensorFlow_Python3_5_master 心路歷程(踩坑筆記)】

遇到的主要大問題如下:

  • 一、【cython_bbox.cpython-35m-x86_64-linux-gnu.so和cython_bbox.so文件。導致程序運行過程中找不到bbox?!?

問題原因: windows下,用的是cython_bbox.cp35-win_amd64.pyd文件,而linux下需要重新make一下。

解決辦法: 這個需要在linux下,準備好make文件放進lib文件夾,在lib路徑make一下。具體步驟參見博客園 靜心得文章Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法。

? ? ? ? 其中我還遇到了meke出錯的問題,開始是說文件修改時間和linux系統時間不一致,這個用linux命令將linux時間給更新到最新的當前時間就好。但是還是沒有解決,我索性直接搜到了好心人在網上的編譯好的cython_bbox.cpython-35m-x86_64-linux-gnu.so文件,拷貝進了utils文件夾里參見基于tensorflow+python3.5環境實現Faster R-CNN 下載cython_bbox.cpython-35m-x86_64-linux-gnu.so? ? ? 后來我的make又好了,用ls發現自己也make好了一份,只不過直接在文件夾下看不到,需要用ls命令列出來,才能看到這個編譯中的文件——后綴名.so文件。

? ? ? ?總之,一般make好了,就會生成好cython_bbox.cpython-35m-x86_64-linux-gnu.so和cython_bbox.so文件,之后程序再去運行就不會報沒有bbox的問題啦!

? ? ? ?如果還是有各種問題,那就還是要求助BING,谷歌,CSDN,stackoverflow等等網站了。。。

? ? ? ?博客園 靜心的文章,我也搬了過來,以做備份,內容如下:

Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法

目錄

  • Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法
    • 安裝過程
      • 1. 深度學習環境Tensorflow的安裝
      • 2. 安裝python包
      • 3. ?Go to ./data/coco/PythonAPI
      • 4. git clone
      • 5. 下載預訓練模型
      • 6. 自己數據集的制作
      • 7. 替換成自己的數據
      • 11. 開始訓練
      • 12. 跑demo.py

Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法

安裝過程

1. 深度學習環境Tensorflow的安裝

參考這一篇博客:https://www.cnblogs.com/pprp/p/9463974.html

2. 安裝python包

cython, python-opencv, easydict,numpy

              
                pip install Cython
pip install opencv-python
pip install matplotlib
              
            

opencv 的包下載安裝,安裝教程

  • ImportError: No module named 'PIL'

    • solution: easy_install PIL ?&? pip install image
  • ImportError: No module named 'scipy'

    • solution:

                            
                               pip install numpy 
       pip install scipy
                            
                          
  • ImportError: No module named 'lib.utils.cython_bbox'

                      
                        git clone --recursive https://github.com/rbgirshick/fast-rcnn.git
    cd $FRCN_ROOT/lib
    make
    cp fast-rcnn/lib/utils/cython_bbox.cpython-35m-x86_64-linux-gnu.so Faster-RCNN-TensorFlow-Python3.5/lib/utils/
                      
                    

?

3. ?Go to ./data/coco/PythonAPI

? Run? python setup.py build_ext --inplace

? Run? python setup.py build_ext install

4. git clone

用git命令將這個庫下載到本地?Faster-RCNN-TensorFlow-Python3.5

              
                git clone https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5.git
# 將cython_bbox.cpython-36m-x86_64-linux-gnu.so下載下來
wget https://github.com/pprp/DL/blob/master/cython_bbox.cpython-36m-x86_64-linux-gnu.so
              
            

把Faster-RCNN_TF 中的cython_bbox.xxx.so 復制到 lib/utils

              
                cp cython_bbox.cpython-36m-x86_64-linux-gnu.so Faster-RCNN-TensorFlow-Python3.5/lib/utils
              
            

5. 下載預訓練模型

Download pre-trained VGG16 from?here?and place it as "data\imagenet_weights\vgg16.ckpt"

              
                wget http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
unzip vgg*
#重命名為vgg16.ckpt
cp vgg* vgg16.ckpt
#放到以下位置
mv vgg16.ckpt data\imagenet_weights\vgg16.ckpt
              
            

6. 自己數據集的制作

  • xml文件的制作需要labelImg軟件的幫助,這里提供在window下的exe包,打開即可使用

                      
                        wget https://github.com/pprp/DL/blob/master/LabelIMG.zip
                      
                    
    • 使用方法:
                      
                        Ctrl + u  加載目錄中的所有圖像,鼠標點擊Open dir同功能
    Ctrl + r  更改默認注釋目標目錄(xml文件保存的地址) 
    Ctrl + s  保存
    Ctrl + d  復制當前標簽和矩形框
    space     將當前圖像標記為已驗證
    w         創建一個矩形框
    d         下一張圖片
    a         上一張圖片
    del       刪除選定的矩形框
    Ctrl++    放大
    Ctrl--    縮小
    ↑→↓←        鍵盤箭頭移動選定的矩形框
                      
                    
  • 數據的放置結構(自己手動建立)

              
                -data
    - VOCdevkit2007
        - VOC2007
            - Annotations (標簽XML文件,用對應的圖片處理工具人工生成的)
            - ImageSets (生成的方法是用sh或者MATLAB語言生成)
                - Main
                    - test.txt
                    - trian.txt
                    - trainval.txt
                    - val.txt
            - JPEGImages(原始文件)
              
            
  • Main中的四個txt文件的制作

    詳見附件二,注意要修改路徑位置,最好是絕對路徑

              
                xmlfilepath = 'Annotations'  
txtsavepath = 'ImageSets\Main'  
              
            

7. 替換成自己的數據

將制作好的數據按照以上的目錄結構進行放置

用你的Annotations,ImagesSets和JPEGImages替換…\Faster-RCNN-TensorFlow-Python3.5\data\VOCdevkit2007\VOC2007中對應文件夾

8. 將原始代碼修改為適配你自己的代碼

    1. Pascal_VOC.py,修改自己的標注的類別

                            
                              self._classes = ('__background__',  # always index 0
                       'aeroplane', 'bicycle', 'bird', 'boat',
                        'bottle', 'bus', 'car', 'cat', 'chair',
                        'cow', 'diningtable', 'dog', 'horse',
                        'motorbike', 'person', 'pottedplant',
                        'sheep', 'sofa', 'train', 'tvmonitor')
                            
                          

      將這些類別替換成你自己的類別。

                            
                              self.__classes=('__background__',
      '你的標簽1','你的標簽2',你的標簽3','你的標簽4')
                            
                          
    1. demo.py, 修改為自己的標注類別

                            
                              CLASSES = ('__background__',
                  'aeroplane', 'bicycle', 'bird', 'boat',
                  'bottle', 'bus', 'car', 'cat', 'chair',
                  'cow', 'diningtable', 'dog', 'horse',
                  'motorbike', 'person', 'pottedplant',
                  'sheep', 'sofa', 'train', 'tvmonitor')
                            
                          

      更改為:

                            
                              CLASSES = ('__background__',
                 '你的標簽1','你的標簽2',你的標簽3','你的標簽4')
                            
                          
    1. demo.py 更改另外一處代碼:

                            
                              net.create_architecture(sess, "TEST", 21,tag='default', anchor_scales=[8, 16, 32])
                            
                          

      更改為:

                            
                              net.create_architecture(sess, "TEST", 5,tag='default', anchor_scales=[8, 16, 32])
                            
                          

      原本的代碼是有20類物體+背景,所以是21。 把類別數改為,你的類別+背景。如果是只檢測一類物體,那就改為2

    9. 出現的問題

可能出現以下報錯:

              
                m = cv2.imread(roidb[i][‘image’]) 
KeyError
              
            

解決:

將Faster-RCNN-TensorFlow-Python3.5-master\data\cache文件夾中之前生成的文件模型刪除。

因為會自己讀取cache中的文本,導致訓練出現錯誤。

10. 作出的其他調整
具體方案如下:

  • 將demo.py中main函數中進行如下修改:

                      
                            # -----------------------
        # demonet = args.demo_net
        # dataset = args.dataset
        # -----------------------
        demonet = 'vgg16'
        dataset = 'pascal_voc'    
      # -----------------------
                      
                    
  • demo.py中main函數中將im_names中的內容替換成自己的測試圖片

                      
                        im_names = ['IMG_1.jpg', 'IMG_40.jpg', 'IMG_23.jpg', 'IMG_127.jpg',
                    'IMG_134.jpg', 'IMG_185.jpg']
                      
                    

    然后將Faster-RCNN-TensorFlow-Python3.5/data/demo中替換上相應的圖片

  • 將NETS,DATASETS進行如下修改

    NETS = {'vgg16': ('vgg16.ckpt',)}

    DATASETS = {'pascal_voc': ('voc_2007_trainval',)}

  • 可以運行了python demo.py

11. 開始訓練

              
                python train.py
              
            

12. 跑demo.py

              
                #如果可以直接跑,就直接跑
python demo.py
              
            

如果不能運行demo.py,則進行以下處理:
找到通過訓練得到的訓練結果:路徑為:/Faster-RCNN-TensorFlow-Python3.5/default/voc_2007_trainval/default

內容如下:

              
                checkpoint
vgg16.ckpt.data-00000-of-00001
vgg16.ckpt.index
vgg16.ckpt.meta
vgg16_faster_rcnn_iter_10000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_10000.ckpt.index
vgg16_faster_rcnn_iter_10000.ckpt.meta
vgg16_faster_rcnn_iter_10000.pkl
vgg16_faster_rcnn_iter_15000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_15000.ckpt.index
vgg16_faster_rcnn_iter_15000.ckpt.meta
vgg16_faster_rcnn_iter_15000.pkl
vgg16_faster_rcnn_iter_20000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_20000.ckpt.index
vgg16_faster_rcnn_iter_20000.ckpt.meta
vgg16_faster_rcnn_iter_20000.pkl
vgg16_faster_rcnn_iter_25000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_25000.ckpt.index
vgg16_faster_rcnn_iter_25000.ckpt.meta
vgg16_faster_rcnn_iter_25000.pkl
vgg16_faster_rcnn_iter_30000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_30000.ckpt.index
vgg16_faster_rcnn_iter_30000.ckpt.meta
vgg16_faster_rcnn_iter_30000.pkl
vgg16_faster_rcnn_iter_35000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_35000.ckpt.index
vgg16_faster_rcnn_iter_35000.ckpt.meta
vgg16_faster_rcnn_iter_35000.pkl
vgg16_faster_rcnn_iter_40000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_40000.ckpt.index
vgg16_faster_rcnn_iter_40000.ckpt.meta
vgg16_faster_rcnn_iter_40000.pkl
vgg16_faster_rcnn_iter_5000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_5000.ckpt.index
vgg16_faster_rcnn_iter_5000.ckpt.meta
vgg16_faster_rcnn_iter_5000.pkl
vgg16.pkl
              
            

將其中的

              
                vgg16_faster_rcnn_iter_40000.ckpt.data-00000-of-00001
vgg16_faster_rcnn_iter_40000.ckpt.index
vgg16_faster_rcnn_iter_40000.ckpt.meta
vgg16_faster_rcnn_iter_40000.pkl
              
            

文件復制到以下路徑
/Faster-RCNN-TensorFlow-Python3.5/output/vgg16/voc_2007_trainval/default/
并重命名為:

              
                vgg16.ckpt.data-00000-of-00001
vgg16.ckpt.index
vgg16.ckpt.meta
vgg16.pkl
              
            

修改完成,再次運行 python demo.py

附件代碼:

下面是適用于我本地環境的MATLAB代碼

              
                %注意修改下面四個值  
xmlfilepath='/home/pprp/github/Faster-RCNN-TensorFlow-Python3.5/data/VOC2007/Annotations';  
txtsavepath='/home/pprp/github/Faster-RCNN-TensorFlow-Python3.5/data/VOC2007/ImageSets/Main';  
trainval_percent=0.5; #trainval占整個數據集的百分比,剩下部分就是test所占百分比  
train_percent=0.5; #train占trainval的百分比,剩下部分就是val所占百分比  

xmlfile=dir(xmlfilepath);  
numOfxml=length(xmlfile)-2;#減去.和..  總的數據集大小  

trainval=sort(randperm(numOfxml,floor(numOfxml*trainval_percent)));  
test=sort(setdiff(1:numOfxml,trainval));  

trainvalsize=length(trainval); #trainval的大小  
train=sort(trainval(randperm(trainvalsize,floor(trainvalsize*train_percent))));  
val=sort(setdiff(trainval,train));  

ftrainval=fopen([txtsavepath 'trainval.txt'],'w');  
ftest=fopen([txtsavepath 'test.txt'],'w');  
ftrain=fopen([txtsavepath 'train.txt'],'w');  
fval=fopen([txtsavepath 'val.txt'],'w');  

for i=1:numOfxml  
    if ismember(i,trainval)  
        fprintf(ftrainval,'%s\n',xmlfile(i+2).name(1:end-4));  
        if ismember(i,train)  
            fprintf(ftrain,'%s\n',xmlfile(i+2).name(1:end-4));  
        else  
            fprintf(fval,'%s\n',xmlfile(i+2).name(1:end-4));  
        end  
    else  
        fprintf(ftest,'%s\n',xmlfile(i+2).name(1:end-4));  
    end  
end  
fclose(ftrainval);  
fclose(ftrain);  
fclose(fval);  
fclose(ftest);
              
            

Python代碼:

              
                import os  
import random  
  
trainval_percent = 0.66  
train_percent = 0.5  
xmlfilepath = 'Annotations'  
txtsavepath = 'ImageSets\Main'  
total_xml = os.listdir(xmlfilepath)  
  
num=len(total_xml)  
list=range(num)  
tv=int(num*trainval_percent)  
tr=int(tv*train_percent)  
trainval= random.sample(list,tv)  
train=random.sample(trainval,tr)  
  
ftrainval = open('ImageSets/Main/trainval.txt', 'w')  
ftest = open('ImageSets/Main/test.txt', 'w')  
ftrain = open('ImageSets/Main/train.txt', 'w')  
fval = open('ImageSets/Main/val.txt', 'w')  
  
for i  in list:  
    name=total_xml[i][:-4]+'\n'  
    if i in trainval:  
        ftrainval.write(name)  
        if i in train:  
            ftrain.write(name)  
        else:  
            fval.write(name)  
    else:  
        ftest.write(name)  
  
ftrainval.close()  
ftrain.close()  
fval.close()  
ftest .close()

              
            

批量修改圖片名稱,以及XML名稱:

              
                import os
import glob
import shutil
# 目錄名稱,你要自己修改
_dir = "H:/mypic/"
file_name = os.listdir(_dir)
print(file_name)
 
n=1
for file in file_name:
    pic_name = os.listdir(_dir+file)
    #print(pic_name)
    for pic in pic_name:
        if os.path.isdir(_dir+file+'/'+pic):
            xml_name=os.listdir(_dir+file+"/"+pic)
            for xml in xml_name:
                shutil.copy( _dir+file+'/'+pic+"/"+xml, 'G:/data/VOCdevkit2007/VOC2007/Annotations/')
               # print(pic)
 
 
              #修改個別XML名稱
              # if xml == '1000010.xml':
                   #print(dir + file + '/' + pic)
                  # os.rename(_dir+file + '/' + pic + '/' + xml, _dir + file + '/' + pic + "/" + "100010.xml")
 
 
               # oldname = _dir+file+'/'+pic+"/"+xml
               # newname = _dir+file+'/'+pic+"/"+ str(n).zfill(6) + ".xml"
                #os.rename(oldname, newname)
                #n = n + 1
               # print(oldname, '--->', newname)
 
    # zfill是一個自動補零的函數 6 就是一共六位 不足的補零 只有字符串才有這個函數 所以轉換了
    # newname = _dir+str(xml_name.index(xml)+1).zfill(6)+".xml"
 
"""
#批量修改圖片的名稱
n=1
for file in file_name:
    pic_name = os.listdir(_dir+file)
    print(pic_name)
    for pic in pic_name:
        oldname = _dir+file+"/"+pic
        newname = _dir+file+"/" + str(n).zfill(6) + ".jpg"
        os.rename(oldname, newname)
        n = n + 1
        print(oldname, '--->', newname)
    # zfill是一個自動補零的函數 6 就是一共六位 不足的補零 只有字符串才有這個函數 所以轉換了
    # newname = _dir+str(xml_name.index(xml)+1).zfill(6)+".xml"
"""
              
            

修改對應xml文件

              
                import os
import re
 
_dir = "G:/Annotations/"
xmlList = os.listdir(_dir)
n = 1
for xml in xmlList:
    #f = open(_dir + xml, "r")
    f = open(_dir + xml, "r", encoding='utf-8')
    xmldata = f.read()
    xmldata = re.sub('\
                
                  (.*?)\
                
                ', '
                
                  G:/data/VOCdevkit2007/VOC2007/JPEGImages/' + str(n).zfill(6) + '.jpg
                
                ', xmldata)
    f.close()
    f = open(_dir + xml, "w")
    f.write(xmldata)
    f.close()
    n += 1

              
            

pascal_voc.py的一些解讀

              
                 def init(self, image_set, year,devkit_path=None)
/*這個是初始化函數,它對應著的是pascal_voc的數據集訪問格式,其實我們將其接口修改的更簡單一點*/

def image_path_at(self, i)
/*根據第i個圖像樣本返回其對應的path,其調用了image_path_from_index(self, index)作為其具體實現*/

def image_path_from_index(self, index)
//實現了 image_path的具體功能

def _load_image_set_index(self)
//加載了樣本的list文件

def _get_default_path(self)
//獲得數據集地址

def gt_roidb(self)
//讀取并返回ground_truth(真實值,設定的一個正確的基準)的db

def selective_search_roidb
//讀取并返回ROI的db

def _load_selective_search_roidb(self, gt_roidb)
//加載預選框的文件

def selective_search_IJCV_roidb(self)
//在這里調用讀取Ground_truth和ROI db并將db合并

def _load_selective_search_IJCV_roidb(self, gt_roidb)
//這里是專門讀取作者在IJCV上用的dataset

def _load_pascal_annotation(self, index)
//這個函數是讀取gt的具體實現

def _write_voc_results_file(self, all_boxes)
//voc的檢測結果寫入到文件

def _do_matlab_eval(self, comp_id, output_dir='output')
//根據matlab的evluation接口來做結果的分析

def evaluate_detections
//其調用了_do_matlab_eval

def competition_mode
//設置competitoin_mode,加了一些噪點
              
            

reference

https://blog.csdn.net/jcli1_14/article/details/81458847

https://blog.csdn.net/hzhj2007/article/details/79399587

代碼改變世界


二、【UnrecognizedFlagError:Unknown command line flag 'f'】

Linux_Faster_RCNN_TensorFlow_Python3_5_master 心路歷程(踩坑筆記)_第1張圖片

這是在jupyter上運行faster-rcnn遇到的錯誤...在window上的pycharm下是不會報這個錯的。由于我用的是超算服務器節點(有TeslaK40顯卡,不算很好,不過還湊合了)的linux,上面就只能用jupyter來運行或者在命令行運行。據查是jupyter不支持這樣用沒定義的flag???我在程序開頭寫了flag定義(FLAGS = tf.app.flags.FLAGS),也不行。

問題原因: 用到了ims_per_batch這個字符串,卻沒有在config.py中的FLAG里去定義它。

解決辦法: 在此程序開頭寫

            
              tf.app.flags.DEFINE_string('f', '', 'ims_per_batch')
            
          

?

請參看代碼截圖: Linux_Faster_RCNN_TensorFlow_Python3_5_master 心路歷程(踩坑筆記)_第2張圖片

三、【AssertionError: Path does not exist: /WANGZAI/Faster_RCNN_TensorFlow_Python3_5_master/data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt 】

我用find -name?trainval.txt找到了這個路徑下是有的,但就是會報路徑不存在這個斷言,于是細心的再對一遍路徑發現:我的文件夾名寫錯了一個,VOCdevkit2007寫成了VOCDevkit2007。實在無語,這個是我在windows上弄好的,沒問題不會報錯的,到了linux+jupyter就報錯。

解決辦法: 修改VOCDevkit2007為VOCdevkit2007即可。

?

最后總結一些Faster-RCNN訓練過程中需要用到的參考網址,可能不全。

faster r-cnn(準備階段)(RPN、Anchor、感受野、region proposal)

python3+Tensorflow+Faster R-CNN訓練自己的數據

詳細的Faster R-CNN源碼解析之RPN源碼解析

Linux TensorFlow implementation of Faster R-CNN

博客園首頁新隨筆聯系訂閱管理 隨筆 - 305 文章 - 0 評論 - 12 Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法

基于深度學習的目標檢測技術演進:R-CNN、Fast R-CNN、Faster R-CNN

實例分割模型Mask R-CNN詳解:從R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN

基于tensorflow+python3.5環境實現Faster R-CNN 下載cython_bbox.cpython-35m-x86_64-linux-gnu.so

faster-rcnn tensorflow windows demo測試

faster-rcnn tensorflow windows demo運行

Windows 下 TensorFlow 和 Faster rcnn 詳細安裝步驟(二)

dBeker Tensorflow Faster R-CNN for Windows by using Python 3.5

windows 安裝 pycocotools 方法(windows10編譯 Pycocotools出錯解決方案最新)

Faster R-CNN / Mask R-CNN on COCO

?

2018-11-10


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成年视频在线观看免费 | 成人免费播放视频777777 | 亚洲午夜在线观看 | 国产剧情一区二区三区 | 96国产精品久久久久aⅴ四区 | 日本三级久久 | 久久我们这里只有精品国产4 | 日日干干 | av av在线 | 国产一级特黄aa大片免费 | 欧美日韩精品一区二区三区 | 奇米奇米777 | 福利在线播放 | 欧美一区二区三区成人 | 色综合久久天天综合绕观看 | 日日日日干 | 草草线在成年免费视频网站 | 综合一区二区三区 | 欧美一级高潮片免费的 | 美腿丝袜亚洲综合 | 国产伦精品一区二区三区精品视频 | 免费在线看a | 日本免费三级网站 | 国产免费一区二区在线看 | 日本人视频jizz页码69 | 日韩一区二区福利视频 | 久久久久99 | 日本三级带日本三级带黄国产 | 久久久9999久久精品小说 | 久久免费99精品久久久久久 | 久久精品视频免费 | 国产原创91 | 国产三级在线播放 | 欧美精品 在线观看 | 中文字幕成人乱码在线电影 | 一区二区三区免费视频 www | 精品国产第一国产综合精品gif | 久久精品国产久精国产 | 操欧美女 | 波多野结衣中文字幕视频 | 国产高清在线精品一区αpp |