日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

coco与voc相互转化

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 coco与voc相互转化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

把LabelImg標注的YOLO格式標簽轉化為VOC格式標簽 和 把VOC格式標簽轉化為YOLO格式標簽

點亮~黑夜 2020-07-07 11:08:24 ?3537 ?已收藏 90
分類專欄: 19—目標檢測 文章標簽: voc yolo
版權
把LabelImg標注的YOLO格式標簽轉化為VOC格式標簽 和 把VOC格式標簽轉化為YOLO格式標簽

文章目錄:
1 用LabelImgvoc和yolo標注標簽格式說明
1.1 LabelImg標注的VOC數據格式
1.2 LabelImg標注的YOLO數據格式
2 voc轉換為yolo格式計算
3 yolo轉換為voc格式計算
4 yolo格式標簽轉化為voc格式標簽代碼
5 VOC格式標簽轉化為YOLO格式標簽代碼
1 用LabelImgvoc和yolo標注標簽格式說明
關于LabelImg工具的使用,參考

1.1 LabelImg標注的VOC數據格式
VOC數據格式,會直接把每張圖片標注的標簽信息保存到一個xml文件中

例如:我們上面標注的JPEGImage/000001.jpg圖片,標注的標簽信息會保存到Annotation/000001.xml文件中,000001.xml中的信息如下:

<annotation>
?? ?<folder>JPEGImage</folder>
?? ?<filename>000000.jpg</filename>
?? ?<path>D:\ZF\2_ZF_data\3_stamp_data\標注公章數據\JPEGImage\000000.jpg</path>
?? ?<source>
?? ??? ?<database>Unknown</database>
?? ?</source>
?? ?<size>
?? ??? ?<width>500</width>
?? ??? ?<height>402</height>
?? ??? ?<depth>3</depth>
?? ?</size>
?? ?<segmented>0</segmented>
?? ?<object>
?? ??? ?<name>circle_red</name>
?? ??? ?<pose>Unspecified</pose>
?? ??? ?<truncated>0</truncated>
?? ??? ?<difficult>0</difficult>
?? ??? ?<bndbox>
?? ??? ??? ?<xmin>168</xmin>
?? ??? ??? ?<ymin>2</ymin>
?? ??? ??? ?<xmax>355</xmax>
?? ??? ??? ?<ymax>186</ymax>
?? ??? ?</bndbox>
?? ?</object>
?? ?<object>
?? ??? ?<name>circle_red</name>
?? ??? ?<pose>Unspecified</pose>
?? ??? ?<truncated>0</truncated>
?? ??? ?<difficult>0</difficult>
?? ??? ?<bndbox>
?? ??? ??? ?<xmin>2</xmin>
?? ??? ??? ?<ymin>154</ymin>
?? ??? ??? ?<xmax>208</xmax>
?? ??? ??? ?<ymax>367</ymax>
?? ??? ?</bndbox>
?? ?</object>
?? ?<object>
?? ??? ?<name>circle_red</name>
?? ??? ?<pose>Unspecified</pose>
?? ??? ?<truncated>0</truncated>
?? ??? ?<difficult>0</difficult>
?? ??? ?<bndbox>
?? ??? ??? ?<xmin>305</xmin>
?? ??? ??? ?<ymin>174</ymin>
?? ??? ??? ?<xmax>493</xmax>
?? ??? ??? ?<ymax>364</ymax>
?? ??? ?</bndbox>
?? ?</object>
</annotation>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
xml中的關鍵信息說明:

圖片的名字
每個目標的標定框坐標:即左上角的坐標和右下角的坐標
xmin
ymin
xmax
ymax
1.2 LabelImg標注的YOLO數據格式
YOLO數據格式,會直接把每張圖片標注的標簽信息保存到一個txt文件中

例如:我們上面標注的JPEGImage/000001.jpg圖片,標注的標簽信息會保存到Annotation/000001.txt文件中(同時會生成一個classes.txt文件,也保存到Annotation/classes.txt),000001.txt中的信息如下:

0 0.521000 0.235075 0.362000 0.450249
0 0.213000 0.645522 0.418000 0.519900
0 0.794000 0.665423 0.376000 0.470149
1
2
3
txt中信息說明:

每一行代表標注的一個目標
第一個數代表標注目標的標簽,第一目標circle_red,對應數字就是0
后面的四個數代表標注框的中心坐標和標注框的相對寬和高(進行了歸一化,如何歸一化可以參考我的這篇博客中的介紹)
五個數據從左到右以此為:c l a s s _ i n d e x , x _ c e n t e r , y _ c e n t e r , w , h class\_index, x\_center, y\_center, w, hclass_index,x_center,y_center,w,h。(后面的四個數據都是歸一化的)
同時會生成一個Annotation/classes.txt實際類別文件classes.txt,里面的內容如下:

circle_red
circle_gray
rectangle_red
rectangle_gray
fingeprint_red
fingeprint_gray
other
1
2
3
4
5
6
7
2 voc轉換為yolo格式計算
標注好的VOC格式的標簽xml文件,存儲的主要信息為:

圖片的名字
圖片的高height、寬width、通道depth
標定框的坐標位置:xmin、ymin、xmax、ymax
例如下圖代表的是一樣圖片:

紅框代表的是原圖大小:height=8,width=8
藍框代表的是標注物體的框:左上角坐標為 (xmin, ymin)=(2,2),右下角的坐標為 (xmax, ymax)=(6,6)

而voc_label.py目的就是把標注為VOC格式數據轉化為標注為yolo格式數據:
VOC格式標簽:圖片的實際寬和高,標注框的左上角和右下角坐標
YOLO格式標簽:標注框的中心坐標(歸一化的),標注框的寬和高(歸一化的)
VOC格式標簽轉換為YOLO格式標簽計算公式:

框中心的實際坐標(x, y):(一般可能還會在后面減去1)
x _ c e n t e r = x m a x + x m i n 2 = 6 + 2 2 = 4 x\_center=\frac{xmax+xmin}{2}=\frac{6+2}{2}=4
x_center=?
2
xmax+xmin
??? ?
?=?
2
6+2
??? ?
?=4

y _ c e n t e r = y m a x + y m i n 2 = 6 + 2 2 = 4 y\_center=\frac{ymax+ymin}{2}=\frac{6+2}{2}=4
y_center=?
2
ymax+ymin
??? ?
?=?
2
6+2
??? ?
?=4

框歸一化后的中心坐標(x, y):
x = x _ c e n t e r w i d t h = 4 8 = 0.5 x=\frac{x\_center}{width}=\frac{4}{8}=0.5
x=?
width
x_center
??? ?
?=?
8
4
??? ?
?=0.5

y = y _ c e n t e r h e i g h t = 4 8 = 0.5 y=\frac{y\_center}{height}=\frac{4}{8}=0.5
y=?
height
y_center
??? ?
?=?
8
4
??? ?
?=0.5

框的高和框(歸一化的):
w = x m a x ? x m i n w i d t h = 6 ? 2 8 = 0.5 w=\frac{xmax-xmin}{width}=\frac{6-2}{8}=0.5
w=?
width
xmax?xmin
??? ?
?=?
8
6?2
??? ?
?=0.5

h = y m a x ? y m i n h e i g h t = 6 ? 2 8 = 0.5 h=\frac{ymax-ymin}{height}=\frac{6-2}{8}=0.5
h=?
height
ymax?ymin
??? ?
?=?
8
6?2
??? ?
?=0.5

3 yolo轉換為voc格式計算
voc中保存的坐標信息為:xmin, ymin, xmax, ymax,所以只要根據上面的公式,推導出這四個值即可,推導如下:

推導:xmin, xmax
{ x m a x + x m i n = 2 x _ c e n t e r x m a x ? x m i n = w ? w i d t h
{xmax+xmin=2x_centerxmax?xmin=w?width
{xmax+xmin=2x_centerxmax?xmin=w?width
{?
xmax+xmin=2x_center
xmax?xmin=w?width
??? ?
?

{ 2 x m a x = 2 x _ c e n t e r + w ? w i d t h = > x m a x = x _ c e n t e r + 1 2 ? w ? w i d t h 2 x m i n = 2 x _ c e n t e r ? w ? w i d t h = > x m i n = x _ c e n t e r ? 1 2 ? w ? w i d t h
{2xmax=2x_center+w?width=>xmax=x_center+12?w?width2xmin=2x_center?w?width=>xmin=x_center?12?w?width
{2xmax=2x_center+w?width=>xmax=x_center+12?w?width2xmin=2x_center?w?width=>xmin=x_center?12?w?width
{?
2xmax=2x_center+w?width=>xmax=x_center+?
2
1
??? ?
??w?width
2xmin=2x_center?w?width=>xmin=x_center??
2
1
??? ?
??w?width
??? ?
?

推導:ymin, ymax
{ y m a x + y m i n = 2 y _ c e n t e r y m a x ? y m i n = y ? h e i g h t
{ymax+ymin=2y_centerymax?ymin=y?height
{ymax+ymin=2y_centerymax?ymin=y?height
{?
ymax+ymin=2y_center
ymax?ymin=y?height
??? ?
?

{ 2 y m a x = 2 y _ c e n t e r + h ? h e i g h t = > y m a x = y _ c e n t e r + 1 2 ? h ? h e i g h t 2 y m i n = 2 y _ c e n t e r ? h ? h e i g h t = > y m i n = y _ c e n t e r ? 1 2 ? h ? h e i g h t
{2ymax=2y_center+h?height=>ymax=y_center+12?h?height2ymin=2y_center?h?height=>ymin=y_center?12?h?height
{2ymax=2y_center+h?height=>ymax=y_center+12?h?height2ymin=2y_center?h?height=>ymin=y_center?12?h?height
{?
2ymax=2y_center+h?height=>ymax=y_center+?
2
1
??? ?
??h?height
2ymin=2y_center?h?height=>ymin=y_center??
2
1
??? ?
??h?height
??? ?
?

4 yolo格式標簽轉化為voc格式標簽代碼
代碼是把txt標簽轉化為voc標簽
代碼支持一個標簽文件中有多個目標
__Author__ = "Shliang"
__Email__ = "shliang0603@gmail.com"

import os
import xml.etree.ElementTree as ET
from xml.dom.minidom import Document
import cv2


'''
import xml
xml.dom.minidom.Document().writexml()
def writexml(self,
? ? ? ? ? ? ?writer: Any,
? ? ? ? ? ? ?indent: str = "",
? ? ? ? ? ? ?addindent: str = "",
? ? ? ? ? ? ?newl: str = "",
? ? ? ? ? ? ?encoding: Any = None) -> None
'''

class YOLO2VOCConvert:
? ? def __init__(self, txts_path, xmls_path, imgs_path):
? ? ? ? self.txts_path = txts_path ? # 標注的yolo格式標簽文件路徑
? ? ? ? self.xmls_path = xmls_path ? # 轉化為voc格式標簽之后保存路徑
? ? ? ? self.imgs_path = imgs_path ? # 讀取讀片的路徑個圖片名字,存儲到xml標簽文件中
? ? ? ? self.classes = ["shirt", "non_shirt", "western_style_clothes", "coat", "down_filled_coat",
? ? ? ? ? ? ? ? ? ? ? ? "cotton", "sweater", "silk_scarf", "tie", "bow_tie"]

? ? # 從所有的txt文件中提取出所有的類別, yolo格式的標簽格式類別為數字 0,1,...
? ? # writer為True時,把提取的類別保存到'./Annotations/classes.txt'文件中
? ? def search_all_classes(self, writer=False):
? ? ? ? # 讀取每一個txt標簽文件,取出每個目標的標注信息
? ? ? ? all_names = set()
? ? ? ? txts = os.listdir(self.txts_path)
? ? ? ? # 使用列表生成式過濾出只有后綴名為txt的標簽文件
? ? ? ? txts = [txt for txt in txts if txt.split('.')[-1] == 'txt']
? ? ? ? print(len(txts), txts)
? ? ? ? # 11 ['0002030.txt', '0002031.txt', ... '0002039.txt', '0002040.txt']
? ? ? ? for txt in txts:
? ? ? ? ? ? txt_file = os.path.join(self.txts_path, txt)
? ? ? ? ? ? with open(txt_file, 'r') as f:
? ? ? ? ? ? ? ? objects = f.readlines()
? ? ? ? ? ? ? ? for object in objects:
? ? ? ? ? ? ? ? ? ? object = object.strip().split(' ')
? ? ? ? ? ? ? ? ? ? print(object) ?# ['2', '0.506667', '0.553333', '0.490667', '0.658667']
? ? ? ? ? ? ? ? ? ? all_names.add(int(object[0]))
? ? ? ? ? ? # print(objects) ?# ['2 0.506667 0.553333 0.490667 0.658667\n', '0 0.496000 0.285333 0.133333 0.096000\n', '8 0.501333 0.412000 0.074667 0.237333\n']

? ? ? ? print("所有的類別標簽:", all_names, "共標注數據集:%d張" % len(txts))

? ? ? ? # 把從xmls標簽文件中提取的類別寫入到'./Annotations/classes.txt'文件中
? ? ? ? # if writer:
? ? ? ? # ? ? with open('./Annotations/classes.txt', 'w') as f:
? ? ? ? # ? ? ? ? for label in all_names:
? ? ? ? # ? ? ? ? ? ? f.write(label + '\n')

? ? ? ? return list(all_names)

? ? def yolo2voc(self):
? ? ? ? # 創建一個保存xml標簽文件的文件夾
? ? ? ? if not os.path.exists(self.xmls_path):
? ? ? ? ? ? os.mkdir(self.xmls_path)

? ? ? ? # # 讀取每張圖片,獲取圖片的尺寸信息(shape)
? ? ? ? # imgs = os.listdir(self.imgs_path)
? ? ? ? # for img_name in imgs:
? ? ? ? # ? ? img = cv2.imread(os.path.join(self.imgs_path, img_name))
? ? ? ? # ? ? height, width, depth = img.shape
? ? ? ? # ? ? # print(height, width, depth) ? # h 就是多少行(對應圖片的高度), w就是多少列(對應圖片的寬度)
? ? ? ? #
? ? ? ? # # 讀取每一個txt標簽文件,取出每個目標的標注信息
? ? ? ? # all_names = set()
? ? ? ? # txts = os.listdir(self.txts_path)
? ? ? ? # # 使用列表生成式過濾出只有后綴名為txt的標簽文件
? ? ? ? # txts = [txt for txt in txts if txt.split('.')[-1] == 'txt']
? ? ? ? # print(len(txts), txts)
? ? ? ? # # 11 ['0002030.txt', '0002031.txt', ... '0002039.txt', '0002040.txt']
? ? ? ? # for txt_name in txts:
? ? ? ? # ? ? txt_file = os.path.join(self.txts_path, txt_name)
? ? ? ? # ? ? with open(txt_file, 'r') as f:
? ? ? ? # ? ? ? ? objects = f.readlines()
? ? ? ? # ? ? ? ? for object in objects:
? ? ? ? # ? ? ? ? ? ? object = object.strip().split(' ')
? ? ? ? # ? ? ? ? ? ? print(object) ?# ['2', '0.506667', '0.553333', '0.490667', '0.658667']

? ? ? ? # 把上面的兩個循環改寫成為一個循環:
? ? ? ? imgs = os.listdir(self.imgs_path)
? ? ? ? txts = os.listdir(self.txts_path)
? ? ? ? txts = [txt for txt in txts if not txt.split('.')[0] == "classes"] ?# 過濾掉classes.txt文件
? ? ? ? print(txts)
? ? ? ? # 注意,這里保持圖片的數量和標簽txt文件數量相等,且要保證名字是一一對應的 ? (后面改進,通過判斷txt文件名是否在imgs中即可)
? ? ? ? if len(imgs) == len(txts): ? # 注意:./Annotation_txt 不要把classes.txt文件放進去
? ? ? ? ? ? map_imgs_txts = [(img, txt) for img, txt in zip(imgs, txts)]
? ? ? ? ? ? txts = [txt for txt in txts if txt.split('.')[-1] == 'txt']
? ? ? ? ? ? print(len(txts), txts)
? ? ? ? ? ? for img_name, txt_name in map_imgs_txts:
? ? ? ? ? ? ? ? # 讀取圖片的尺度信息
? ? ? ? ? ? ? ? print("讀取圖片:", img_name)
? ? ? ? ? ? ? ? img = cv2.imread(os.path.join(self.imgs_path, img_name))
? ? ? ? ? ? ? ? height_img, width_img, depth_img = img.shape
? ? ? ? ? ? ? ? print(height_img, width_img, depth_img) ? # h 就是多少行(對應圖片的高度), w就是多少列(對應圖片的寬度)

? ? ? ? ? ? ? ? # 獲取標注文件txt中的標注信息
? ? ? ? ? ? ? ? all_objects = []
? ? ? ? ? ? ? ? txt_file = os.path.join(self.txts_path, txt_name)
? ? ? ? ? ? ? ? with open(txt_file, 'r') as f:
? ? ? ? ? ? ? ? ? ? objects = f.readlines()
? ? ? ? ? ? ? ? ? ? for object in objects:
? ? ? ? ? ? ? ? ? ? ? ? object = object.strip().split(' ')
? ? ? ? ? ? ? ? ? ? ? ? all_objects.append(object)
? ? ? ? ? ? ? ? ? ? ? ? print(object) ?# ['2', '0.506667', '0.553333', '0.490667', '0.658667']

? ? ? ? ? ? ? ? # 創建xml標簽文件中的標簽
? ? ? ? ? ? ? ? xmlBuilder = Document()
? ? ? ? ? ? ? ? # 創建annotation標簽,也是根標簽
? ? ? ? ? ? ? ? annotation = xmlBuilder.createElement("annotation")

? ? ? ? ? ? ? ? # 給標簽annotation添加一個子標簽
? ? ? ? ? ? ? ? xmlBuilder.appendChild(annotation)

? ? ? ? ? ? ? ? # 創建子標簽folder
? ? ? ? ? ? ? ? folder = xmlBuilder.createElement("folder")
? ? ? ? ? ? ? ? # 給子標簽folder中存入內容,folder標簽中的內容是存放圖片的文件夾,例如:JPEGImages
? ? ? ? ? ? ? ? folderContent = xmlBuilder.createTextNode(self.imgs_path.split('/')[-1]) ?# 標簽內存
? ? ? ? ? ? ? ? folder.appendChild(folderContent) ?# 把內容存入標簽
? ? ? ? ? ? ? ? annotation.appendChild(folder) ? # 把存好內容的folder標簽放到 annotation根標簽下

? ? ? ? ? ? ? ? # 創建子標簽filename
? ? ? ? ? ? ? ? filename = xmlBuilder.createElement("filename")
? ? ? ? ? ? ? ? # 給子標簽filename中存入內容,filename標簽中的內容是圖片的名字,例如:000250.jpg
? ? ? ? ? ? ? ? filenameContent = xmlBuilder.createTextNode(txt_name.split('.')[0] + '.jpg') ?# 標簽內容
? ? ? ? ? ? ? ? filename.appendChild(filenameContent)
? ? ? ? ? ? ? ? annotation.appendChild(filename)

? ? ? ? ? ? ? ? # 把圖片的shape存入xml標簽中
? ? ? ? ? ? ? ? size = xmlBuilder.createElement("size")
? ? ? ? ? ? ? ? # 給size標簽創建子標簽width
? ? ? ? ? ? ? ? width = xmlBuilder.createElement("width") ?# size子標簽width
? ? ? ? ? ? ? ? widthContent = xmlBuilder.createTextNode(str(width_img))
? ? ? ? ? ? ? ? width.appendChild(widthContent)
? ? ? ? ? ? ? ? size.appendChild(width) ? # 把width添加為size的子標簽
? ? ? ? ? ? ? ? # 給size標簽創建子標簽height
? ? ? ? ? ? ? ? height = xmlBuilder.createElement("height") ?# size子標簽height
? ? ? ? ? ? ? ? heightContent = xmlBuilder.createTextNode(str(height_img)) ?# xml標簽中存入的內容都是字符串
? ? ? ? ? ? ? ? height.appendChild(heightContent)
? ? ? ? ? ? ? ? size.appendChild(height) ?# 把width添加為size的子標簽
? ? ? ? ? ? ? ? # 給size標簽創建子標簽depth
? ? ? ? ? ? ? ? depth = xmlBuilder.createElement("depth") ?# size子標簽width
? ? ? ? ? ? ? ? depthContent = xmlBuilder.createTextNode(str(depth_img))
? ? ? ? ? ? ? ? depth.appendChild(depthContent)
? ? ? ? ? ? ? ? size.appendChild(depth) ?# 把width添加為size的子標簽
? ? ? ? ? ? ? ? annotation.appendChild(size) ? # 把size添加為annotation的子標簽

? ? ? ? ? ? ? ? # 每一個object中存儲的都是['2', '0.506667', '0.553333', '0.490667', '0.658667']一個標注目標
? ? ? ? ? ? ? ? for object_info in all_objects:
? ? ? ? ? ? ? ? ? ? # 開始創建標注目標的label信息的標簽
? ? ? ? ? ? ? ? ? ? object = xmlBuilder.createElement("object") ?# 創建object標簽
? ? ? ? ? ? ? ? ? ? # 創建label類別標簽
? ? ? ? ? ? ? ? ? ? # 創建name標簽
? ? ? ? ? ? ? ? ? ? imgName = xmlBuilder.createElement("name") ?# 創建name標簽
? ? ? ? ? ? ? ? ? ? imgNameContent = xmlBuilder.createTextNode(self.classes[int(object_info[0])])
? ? ? ? ? ? ? ? ? ? imgName.appendChild(imgNameContent)
? ? ? ? ? ? ? ? ? ? object.appendChild(imgName) ?# 把name添加為object的子標簽

? ? ? ? ? ? ? ? ? ? # 創建pose標簽
? ? ? ? ? ? ? ? ? ? pose = xmlBuilder.createElement("pose")
? ? ? ? ? ? ? ? ? ? poseContent = xmlBuilder.createTextNode("Unspecified")
? ? ? ? ? ? ? ? ? ? pose.appendChild(poseContent)
? ? ? ? ? ? ? ? ? ? object.appendChild(pose) ?# 把pose添加為object的標簽

? ? ? ? ? ? ? ? ? ? # 創建truncated標簽
? ? ? ? ? ? ? ? ? ? truncated = xmlBuilder.createElement("truncated")
? ? ? ? ? ? ? ? ? ? truncatedContent = xmlBuilder.createTextNode("0")
? ? ? ? ? ? ? ? ? ? truncated.appendChild(truncatedContent)
? ? ? ? ? ? ? ? ? ? object.appendChild(truncated)

? ? ? ? ? ? ? ? ? ? # 創建difficult標簽
? ? ? ? ? ? ? ? ? ? difficult = xmlBuilder.createElement("difficult")
? ? ? ? ? ? ? ? ? ? difficultContent = xmlBuilder.createTextNode("0")
? ? ? ? ? ? ? ? ? ? difficult.appendChild(difficultContent)
? ? ? ? ? ? ? ? ? ? object.appendChild(difficult)

? ? ? ? ? ? ? ? ? ? # 先轉換一下坐標
? ? ? ? ? ? ? ? ? ? # (objx_center, objy_center, obj_width, obj_height)->(xmin,ymin, xmax,ymax)
? ? ? ? ? ? ? ? ? ? x_center = float(object_info[1])*width_img + 1
? ? ? ? ? ? ? ? ? ? y_center = float(object_info[2])*height_img + 1
? ? ? ? ? ? ? ? ? ? xminVal = int(x_center - 0.5*float(object_info[3])*width_img) ? # object_info列表中的元素都是字符串類型
? ? ? ? ? ? ? ? ? ? yminVal = int(y_center - 0.5*float(object_info[4])*height_img)
? ? ? ? ? ? ? ? ? ? xmaxVal = int(x_center + 0.5*float(object_info[3])*width_img)
? ? ? ? ? ? ? ? ? ? ymaxVal = int(y_center + 0.5*float(object_info[4])*height_img)

? ? ? ? ? ? ? ? ? ? # 創建bndbox標簽(三級標簽)
? ? ? ? ? ? ? ? ? ? bndbox = xmlBuilder.createElement("bndbox")
? ? ? ? ? ? ? ? ? ? # 在bndbox標簽下再創建四個子標簽(xmin,ymin, xmax,ymax) 即標注物體的坐標和寬高信息
? ? ? ? ? ? ? ? ? ? # 在voc格式中,標注信息:左上角坐標(xmin, ymin) (xmax, ymax)右下角坐標
? ? ? ? ? ? ? ? ? ? # 1、創建xmin標簽
? ? ? ? ? ? ? ? ? ? xmin = xmlBuilder.createElement("xmin") ?# 創建xmin標簽(四級標簽)
? ? ? ? ? ? ? ? ? ? xminContent = xmlBuilder.createTextNode(str(xminVal))
? ? ? ? ? ? ? ? ? ? xmin.appendChild(xminContent)
? ? ? ? ? ? ? ? ? ? bndbox.appendChild(xmin)
? ? ? ? ? ? ? ? ? ? # 2、創建ymin標簽
? ? ? ? ? ? ? ? ? ? ymin = xmlBuilder.createElement("ymin") ?# 創建ymin標簽(四級標簽)
? ? ? ? ? ? ? ? ? ? yminContent = xmlBuilder.createTextNode(str(yminVal))
? ? ? ? ? ? ? ? ? ? ymin.appendChild(yminContent)
? ? ? ? ? ? ? ? ? ? bndbox.appendChild(ymin)
? ? ? ? ? ? ? ? ? ? # 3、創建xmax標簽
? ? ? ? ? ? ? ? ? ? xmax = xmlBuilder.createElement("xmax") ?# 創建xmax標簽(四級標簽)
? ? ? ? ? ? ? ? ? ? xmaxContent = xmlBuilder.createTextNode(str(xmaxVal))
? ? ? ? ? ? ? ? ? ? xmax.appendChild(xmaxContent)
? ? ? ? ? ? ? ? ? ? bndbox.appendChild(xmax)
? ? ? ? ? ? ? ? ? ? # 4、創建ymax標簽
? ? ? ? ? ? ? ? ? ? ymax = xmlBuilder.createElement("ymax") ?# 創建ymax標簽(四級標簽)
? ? ? ? ? ? ? ? ? ? ymaxContent = xmlBuilder.createTextNode(str(ymaxVal))
? ? ? ? ? ? ? ? ? ? ymax.appendChild(ymaxContent)
? ? ? ? ? ? ? ? ? ? bndbox.appendChild(ymax)

? ? ? ? ? ? ? ? ? ? object.appendChild(bndbox)
? ? ? ? ? ? ? ? ? ? annotation.appendChild(object) ?# 把object添加為annotation的子標簽
? ? ? ? ? ? ? ? f = open(os.path.join(self.xmls_path, txt_name.split('.')[0]+'.xml'), 'w')
? ? ? ? ? ? ? ? xmlBuilder.writexml(f, indent='\t', newl='\n', addindent='\t', encoding='utf-8')
? ? ? ? ? ? ? ? f.close()


if __name__ == '__main__':
? ? txts_path1 = './Annotations_txt'
? ? xmls_path1 = './Annotations_xml'
? ? imgs_path1 = './JPEGImages'

? ? yolo2voc_obj1 = YOLO2VOCConvert(txts_path1, xmls_path1, imgs_path1)
? ? labels = yolo2voc.search_all_classes()
? ? print('labels: ', labels)
? ? yolo2voc_obj1.yolo2voc()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
5 VOC格式標簽轉化為YOLO格式標簽代碼
代碼參考

Github yolov3:https://github.com/AlexeyAB/darknet/blob/master/scripts/voc_label.py
YOLO官網:https://pjreddie.com/media/files/voc_label.py
把標注的VOC格式的.xml標簽文件,轉化為YOLO格式的txt標簽文件

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join

# classes = ['hard_hat', 'other', 'regular', 'long_hair', 'braid', 'bald', 'beard']

def convert(size, box):
? ? # size=(width, height) ?b=(xmin, xmax, ymin, ymax)
? ? # x_center = (xmax+xmin)/2 ? ? ? ?y_center = (ymax+ymin)/2
? ? # x = x_center / width ? ? ? ? ? ?y = y_center / height
? ? # w = (xmax-xmin) / width ? ? ? ? h = (ymax-ymin) / height
? ??
? ? x_center = (box[0]+box[1])/2.0
? ? y_center = (box[2]+box[3])/2.0
? ? x = x_center / size[0]
? ? y = y_center / size[1]

? ? w = (box[1] - box[0]) / size[0]
? ? h = (box[3] - box[2]) / size[1]
? ??
? ? # print(x, y, w, h)
? ? return (x,y,w,h)


def convert_annotation(xml_files_path, save_txt_files_path, classes): ?
? ? xml_files = os.listdir(xml_files_path)
? ? print(xml_files)
? ? for xml_name in xml_files:
? ? ? ? print(xml_name)
? ? ? ? xml_file = os.path.join(xml_files_path, xml_name)
? ? ? ? out_txt_path = os.path.join(save_txt_files_path, xml_name.split('.')[0] + '.txt')
? ? ? ? out_txt_f = open(out_txt_path, 'w')
? ? ? ? tree=ET.parse(xml_file)
? ? ? ? root = tree.getroot()
? ? ? ? size = root.find('size')
? ? ? ? w = int(size.find('width').text)
? ? ? ? h = int(size.find('height').text)

? ? ? ? for obj in root.iter('object'):
? ? ? ? ? ? difficult = obj.find('difficult').text
? ? ? ? ? ? cls = obj.find('name').text
? ? ? ? ? ? if cls not in classes or int(difficult) == 1:
? ? ? ? ? ? ? ? continue
? ? ? ? ? ? cls_id = classes.index(cls)
? ? ? ? ? ? xmlbox = obj.find('bndbox')
? ? ? ? ? ? b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text))
? ? ? ? ? ? # b=(xmin, xmax, ymin, ymax)
? ? ? ? ? ? print(w, h, b)
? ? ? ? ? ? bb = convert((w,h), b)
? ? ? ? ? ? out_txt_f.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')


if __name__ == "__main__":
? ? # 測試程序
? ? # classes = ['hard_hat', 'other', 'regular', 'long_hair', 'braid', 'bald', 'beard']
? ? # xml_files = r'D:\ZF\1_ZF_proj\3_腳本程序\2_voc格式轉yolo格式\voc_labels'
? ? # save_txt_files = r'D:\ZF\1_ZF_proj\3_腳本程序\2_voc格式轉yolo格式\yolo_labels'
? ? # convert_annotation(xml_files, save_txt_files, classes)

? ? #====================================================================================================
? ? # 把帽子頭發胡子的voc的xml標簽文件轉化為yolo的txt標簽文件
? ? # 1、帽子頭發胡子的類別
? ? classes1 = ['hard_hat', 'other', 'regular', 'long_hair', 'braid', 'bald', 'beard']
? ? # 2、voc格式的xml標簽文件路徑
? ? xml_files1 = r'D:\ZF\2_ZF_data\19_Yolov5_dataset\VOCdevkit_hat_hair_beard_補過標簽_合并類別\VOC2007\Annotations_合并類別之后的標簽'
? ? # 3、轉化為yolo格式的txt標簽文件存儲路徑
? ? save_txt_files1 = r'D:\ZF\2_ZF_data\19_Yolov5_dataset\VOCdevkit_hat_hair_beard_yolo\labels'

? ? convert_annotation(xml_files1, save_txt_files1, classes1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ?
————————————————
版權聲明:本文為CSDN博主「點亮~黑夜」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_41010198/article/details/107175968

總結

以上是生活随笔為你收集整理的coco与voc相互转化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

伊人看片 | 欧美一级免费黄色片 | 国产精品九九久久久久久久 | 青青久草在线 | 五月天丁香亚洲 | av先锋中文字幕 | 热久精品| 亚洲精品tv| 在线观看亚洲成人 | 久久免费视频2 | 91网在线观看 | 午夜精品电影 | 91九色在线视频观看 | 免费在线观看黄网站 | 好看的国产精品视频 | 亚洲区二区 | 不卡电影免费在线播放一区 | 国产91精品久久久久 | 久久少妇av| 中文字幕欲求不满 | 亚洲国产成人精品在线观看 | 国产高清黄色 | 成人一级影视 | 91精品视频在线 | 免费高清在线观看成人 | 国产免费激情久久 | 色www永久免费 | 欧美午夜精品久久久久久浪潮 | 久视频在线播放 | 精品久久久久久亚洲综合网站 | 国产一区二区在线视频观看 | 成全在线视频免费观看 | 91网站在线视频 | 福利一区二区在线 | 成人网在线免费视频 | 在线观看第一页 | 在线观看中文字幕第一页 | 涩涩在线 | 国产区精品在线 | 婷婷爱五月天 | 超碰97免费观看 | 91在线看视频免费 | 中文字幕4 | 精品国产色 | 日韩免费网址 | 日本久久成人中文字幕电影 | 国产精品一区二区久久久 | 91视频在线播放视频 | 一区二区三区精品在线 | 久久精品视频18 | av中文字幕网站 | 欧美在线视频a | 国产日韩欧美在线一区 | 久久久精品国产一区二区 | 黄色录像av| 亚洲天堂在线观看完整版 | 色综合久久久久综合99 | 4p变态网欧美系列 | 99精品视频免费观看视频 | 精品国产观看 | 国产网站av | 亚洲视频综合 | 狠狠狠色丁香婷婷综合久久88 | 亚洲精品成人在线 | 久久成人国产 | 国产精品毛片一区视频播 | 欧美日一级片 | 91一区啪爱嗯打偷拍欧美 | 国产成人精品女人久久久 | 在线 欧美 日韩 | 日韩精品一区在线观看 | 97色se| 久久精品国产精品 | 欧美另类一二三四区 | 免费久久99精品国产婷婷六月 | 日韩三级在线观看 | 国产日产高清dvd碟片 | 综合天天色 | 在线 影视 一区 | 国产精品99久久久精品免费观看 | 日韩精品在线视频免费观看 | 九九九热视频 | 久久久久 免费视频 | av看片网| 国产在线a | 久久国产午夜精品理论片最新版本 | 中文字幕高清有码 | 精品国产99 | 国产色网站 | 国产在线观看二区 | 在线v片免费观看视频 | 五月婷婷丁香六月 | 五月婷婷综合在线观看 | 久久久99精品免费观看乱色 | 又黄又爽免费视频 | 国产流白浆高潮在线观看 | 日韩欧美在线影院 | wwwwww色 | 久久小视频| 国产美女免费 | 最新国产中文字幕 | 91热精品 | 天堂在线成人 | 国产探花在线看 | 久久欧美综合 | 97在线资源 | 亚洲首页| 国产精品美女久久久 | 久艹在线观看视频 | 丁香婷婷综合激情 | 天天射天天 | 九九在线高清精品视频 | 夜夜骑天天操 | 国产色资源 | 亚洲理论片在线观看 | 亚洲va在线va天堂 | 超碰最新网址 | 日韩在观看线 | 日韩理论在线观看 | 免费在线国产黄色 | 天天做天天看 | 国产资源精品在线观看 | av在线影视| 欧美日韩三区二区 | 2000xxx影视 | 亚洲va韩国va欧美va精四季 | 欧美精品乱码久久久久久 | 99精品视频在线免费观看 | 成人av一二三区 | 不卡视频国产 | 婷婷免费视频 | 在线亚洲免费视频 | 国产视频在线免费观看 | 麻豆国产精品视频 | 欧美日韩高清不卡 | 国产精品va最新国产精品视频 | 在线观看久久 | 婷婷精品国产欧美精品亚洲人人爽 | 一区二区三区在线电影 | 亚洲毛片一区二区三区 | 99久久精品国产毛片 | 日本丰满少妇免费一区 | 亚洲一区二区精品在线 | 天天操天天操天天爽 | 国产亚洲精品久久久久久移动网络 | 国产精品麻豆果冻传媒在线播放 | 国产精品va视频 | 欧美日韩国产三级 | 亚洲国产美女精品久久久久∴ | 欧美成人精品三级在线观看播放 | 亚洲国产天堂av | 欧美日韩久 | 久久久久亚洲国产 | 亚洲精品美女在线观看播放 | 狠狠操精品 | 久久久久久毛片精品免费不卡 | 日韩在线资源 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 日韩精品 在线视频 | 超碰在线中文字幕 | 成人资源网 | 亚洲黄色小说网 | 亚洲国产中文字幕在线 | 日韩在线视频精品 | 婷婷成人在线 | 99热最新精品 | 亚洲精品乱码久久 | 国产三级视频 | 亚洲成av人影院 | 麻豆激情电影 | 操操操人人 | 中文视频在线 | 精品久久中文 | 国产精品毛片久久久 | 日韩h在线观看 | 一区二区三区在线视频111 | 国产特级毛片aaaaaa | 欧洲亚洲精品 | 欧美精品在线观看免费 | 五月天激情开心 | 国产日韩在线播放 | 国产理论一区二区三区 | 国产精品精品 | 婷婷丁香狠狠爱 | 久草干| 激情开心站| 人人躁 | 亚洲国产日韩精品 | 国产精品永久在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产免费一区二区三区网站免费 | 伊人天天操 | 黄色日本免费 | 亚洲精色 | 久久人人爽人人爽人人 | 中文字幕在线观看一区二区 | 婷婷日| 国产一区在线免费 | 久久国产热 | 91手机电影| 亚洲美女视频在线 | 午夜av在线播放 | 黄色影院在线播放 | 国产精品人成电影在线观看 | 国产精品video | 免费 在线 中文 日本 | 91超在线| 在线免费高清一区二区三区 | 激情久久小说 | 91视频a | 亚洲成a人片综合在线 | 国产精品成人免费精品自在线观看 | 九九精品无码 | 在线国产视频一区 | 亚洲精品免费观看 | 中日韩免费视频 | 日韩精品一区二 | 亚洲男男gⅴgay双龙 | 精品视频999| 天天综合色网 | 欧美日韩免费观看一区=区三区 | 欧美日韩高清一区二区 | 丁香婷婷激情国产高清秒播 | 天天亚洲 | 中文字幕久久亚洲 | 午夜精品99久久免费 | 久久综合视频网 | av中文字幕网| 久久九九久久九九 | www.福利| 亚洲国产精品激情在线观看 | 久久综合中文色婷婷 | 在线视频电影 | 天天夜操 | 国产成人亚洲在线观看 | 精品国产视频在线 | 蜜桃视频日韩 | 国产精品久久久久一区二区国产 | 亚洲国产精品电影 | 国产一区二区免费看 | 91色吧| 成人欧美日韩国产 | av综合网址| 久草在线这里只有精品 | 在线观看国产一区二区 | 欧洲精品二区 | 日韩av电影一区 | 免费福利视频网 | 免费在线观看污 | 国产黄色资源 | 不卡日韩av | 亚洲一级免费电影 | 综合激情婷婷 | a精品视频 | 亚洲人成网站精品片在线观看 | 欧美国产日韩在线观看 | 国产精品久久久亚洲 | 成人午夜剧场在线观看 | 又黄又爽免费视频 | 丁香六月婷婷激情 | 欧美一级片免费在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚洲国产精品视频在线观看 | 精品国产自在精品国产精野外直播 | a视频免费在线观看 | 在线高清| 最新极品jizzhd欧美 | 国产精品国产三级国产专区53 | 四虎影视成人精品国库在线观看 | 久久久久亚洲精品国产 | 夜色成人网 | 国产精品一区二区三区四 | 一级a性色生活片久久毛片波多野 | 丝袜美腿在线播放 | 久久99国产精品久久99 | 欧美二区视频 | 久久久综合香蕉尹人综合网 | 欧美日韩精品在线视频 | 超碰97在线资源 | 欧美一区二区三区在线 | 日本h视频在线观看 | 娇妻呻吟一区二区三区 | 久久99精品国产一区二区三区 | 超碰人人干人人 | 久久99精品久久久久久三级 | 九热精品| 国产精品美女999 | 日p视频在线观看 | 最新av在线播放 | 成人毛片在线观看视频 | 五月婷婷网站 | 国产成人精品999在线观看 | 国产一区二区精 | 欧美国产在线看 | 精品国模一区二区三区 | 91在线免费看片 | 成年人免费av网站 | 久久高清免费观看 | 国产资源网 | 亚洲精品小视频 | 亚洲综合射 | 免费av在线网 | 色偷偷88888欧美精品久久 | 成年人在线观看 | 在线观看精品国产 | 片网址 | 精品久久美女 | 在线观看一区二区视频 | 日韩电影中文 | 久久久精品欧美一区二区免费 | 97超碰资源网 | 欧美激情视频在线免费观看 | 狠狠狠干狠狠 | 久久久国产成人 | 亚州性色 | 成年人电影免费在线观看 | 国产精品免费不卡 | 在线激情影院一区 | 成人av免费在线观看 | 免费看高清毛片 | 天天摸日日操 | 久久精品成人欧美大片古装 | 99精品视频99 | 在线一区观看 | 波多野结衣在线视频一区 | 一级性视频| 黄色视屏在线免费观看 | 午夜精品成人一区二区三区 | 天天干一干 | 国产综合小视频 | 欧美不卡视频在线 | av青草 | 日本一区二区三区视频在线播放 | 久久亚洲精品国产亚洲老地址 | 国产精品自产拍在线观看网站 | 免费亚洲视频 | 天天se天天cao天天干 | 天天曰夜夜爽 | 欧美一区二区三区不卡 | 亚洲精品国产第一综合99久久 | 性色xxxxhd | 久久不色| www.五月婷婷.com | 亚洲精品久久久久中文字幕二区 | 天天操天天摸天天干 | 日韩在线观看网站 | 我爱av激情网 | 天天操人 | 成人影视片| 午夜国产福利在线 | 国产视频一区在线 | 中文字幕在线视频网站 | 国产日韩在线一区 | 激情偷乱人伦小说视频在线观看 | 国产精品久久久久久影院 | 四虎影视av | 看国产黄色大片 | 久久99网| 天天操天天玩 | 缴情综合网五月天 | 日日干天天爽 | 久久国产精品电影 | 亚洲国产精品一区二区久久hs | 91豆花在线观看 | 中文字幕在线视频一区二区三区 | 日本h视频在线观看 | .国产精品成人自产拍在线观看6 | 国产免费资源 | 视频在线观看99 | 网址你懂的在线观看 | 一级黄色片在线观看 | 国产精品igao视频网网址 | 欧美一区二区三区在线播放 | 中国一级片视频 | 国产91精品高清一区二区三区 | 中文永久字幕 | 一区中文字幕电影 | 国产精品女同一区二区三区久久夜 | 91麻豆精品国产自产在线游戏 | 国产精品视频永久免费播放 | 婷婷资源站 | 色九九影院 | 亚洲专区 国产精品 | 久久婷婷国产色一区二区三区 | 深爱五月网 | 99热这里只有精品8 久久综合毛片 | 日韩精品久久久久久 | 日韩av中文在线 | 91亚洲综合 | 成人av.com | 在线视频18在线视频4k | 国产精品美女网站 | 国产色视频一区二区三区qq号 | 欧美日韩有码 | 欧美日本在线视频 | 四虎国产| 超碰999| 欧美大片在线观看一区 | 久久高清国产视频 | 麻豆视频免费版 | 成人av电影免费观看 | 亚洲欧美成人综合 | 中文字幕丝袜一区二区 | 久久特级毛片 | 国产精品久久久久久影院 | 日韩精品中文字幕久久臀 | 亚洲精品美女免费 | 国产91大片 | 中文区中文字幕免费看 | 国产亚洲精品美女久久 | 亚洲色视频 | 国产精品色视频 | av色影院 | 国产不卡在线播放 | 成人久久国产 | 成人免费观看大片 | 少妇性bbb搡bbb爽爽爽欧美 | 国语精品免费视频 | 久99热| 亚洲国产高清在线观看视频 | 中文字幕制服丝袜av久久 | 91网免费观看 | av中文字幕在线看 | 91福利试看 | 欧美成人aa | 国产在线观看你懂得 | 黄色小说在线观看视频 | 色偷偷人人澡久久超碰69 | 91正在播放| 日韩毛片在线一区二区毛片 | 亚洲自拍偷拍色图 | 国产乱视频 | 亚洲人在线视频 | 亚洲欧美日韩一二三区 | 久热电影 | 四虎影视成人精品 | 亚洲日本一区二区在线 | 夜色在线资源 | 深夜免费福利网站 | 久久久久国产精品视频 | 99精品免费久久久久久久久日本 | www天天干| 久久99国产精品免费网站 | 国产成人av电影在线 | 91av电影网| 国产成在线观看免费视频 | 天堂av在线免费 | 国产美腿白丝袜足在线av | 欧美日韩视频观看 | 日本久久中文字幕 | 深爱激情五月网 | 欧美最猛性xxxxx免费 | 麻豆传媒在线视频 | 日韩高清av在线 | 国产精品成人品 | 久精品在线 | 日韩av中文在线观看 | 99久久精品免费看国产 | 中文字幕五区 | 91手机视频在线 | 日韩草比 | 香蕉久久国产 | 国产中文字幕大全 | 久久精品中文视频 | 99视频久久| 美女免费网站 | 911香蕉| 中文字幕成人在线观看 | 蜜臀久久99静品久久久久久 | 美女久久久久久久久久久 | 99在线免费观看视频 | 九色精品 | 婷婷资源站 | 国产亚洲精品xxoo | 午夜精品一区二区三区在线观看 | 成人精品在线 | 久久精品国产亚洲精品 | 玖玖精品在线 | 精品一区免费 | 视色网站| 2023亚洲精品国偷拍自产在线 | 久久综合狠狠狠色97 | 天天亚洲综合 | www.久久91| 久久久久久久久福利 | 午夜视频不卡 | 亚洲免费资源 | 久久在线观看视频 | 偷拍精品一区二区三区 | 国产网红在线观看 | 91av视频导航| 久久综合欧美 | 日韩www在线 | 久久人视频 | 在线涩涩| 国产精品久久 | 天堂久色| 久久福利 | 欧美日韩裸体免费视频 | 日本中文字幕网址 | 精品久久久久久久久久岛国gif | 五月婷婷播播 | 天天天色 | 91超国产| 国产中文视频 | 成人黄色毛片视频 | 九草在线视频 | 国产精品久久久久婷婷二区次 | 黄色视屏在线免费观看 | 九九九热精品免费视频观看 | 国产精品久久99精品毛片三a | 日日碰夜夜爽 | 国产高清小视频 | 久久久久久久久久网 | 日韩精品一区二区三区电影 | 高清av影院 | 久久免费大片 | 黄色免费网 | 18网站在线观看 | 在线亚洲激情 | 欧美韩日在线 | 69xx视频| 欧美一级在线 | 免费亚洲精品 | 国产精选在线观看 | 国产小视频在线观看免费 | 日p在线观看 | 中文字幕一区二区三区乱码在线 | 国产福利91精品一区 | 久久五月天综合 | 亚洲黄色影院 | 国模视频一区二区三区 | 九九爱免费视频在线观看 | 免费在线观看av电影 | 国产精品theporn | 中文字幕日韩国产 | 黄色三级在线看 | 日韩视频免费观看高清 | 日本三级中文字幕在线观看 | 人人爽人人爽av | 中文字幕在线观看视频一区 | 激情文学丁香 | 久久久亚洲影院 | 午夜视频在线观看一区二区三区 | 一区二区成人国产精品 | 亚洲 中文 在线 精品 | 国产精品自拍av | 日韩高清在线一区二区 | 五月综合网站 | 亚洲精品国产精品国产 | 亚洲日韩欧美视频 | 日本精品午夜 | 天天射天天爽 | 91网免费观看 | 精品国偷自产在线 | 国产精品一区二区美女视频免费看 | 中文字幕日韩一区二区三区不卡 | 天天操狠狠操网站 | 国产精品99久久免费观看 | 日本在线观看中文字幕 | 色偷偷人人澡久久超碰69 | 毛片网在线播放 | 成人理论电影 | 精品久久中文 | 天天综合成人 | 综合铜03| 久草久草在线观看 | 久久精品一二三区 | 国产成人精品av久久 | 91精品啪在线观看国产 | 四虎免费av | 日韩欧美一区二区三区视频 | 在线观看视频日韩 | 69久久久久久久 | 中文字幕二区在线观看 | 色久网 | 国产 视频 高清 免费 | 狠狠色噜噜狠狠 | 国产精品久久久久久久久久妇女 | 国产精品久久久久久一区二区三区 | 国产经典三级 | 伊人黄色网| 在线观看一区视频 | 一区二区三区高清不卡 | 中文字幕在线观看不卡 | 91麻豆精品国产91久久久久久久久 | 美女福利视频一区二区 | 成人在线视频网 | 五月婷婷爱 | 久久亚洲精品国产亚洲老地址 | 丰满少妇一级 | 欧美一级性生活视频 | 欧美日韩国产成人 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产女v资源在线观看 | 日韩av午夜在线观看 | 精品久久久久久综合日本 | 在线日本看片免费人成视久网 | 果冻av在线 | 国产看片 色 | 中文字幕日韩在线播放 | 成人动漫视频在线 | 国产成人精品一区二区在线观看 | 国产福利a| 人人插人人爱 | 日韩美女黄色片 | 久久一级片 | 日韩精品在线免费播放 | 国产精品一二 | 在线观看免费91 | 国产伦精品一区二区三区在线 | 中文在线资源 | 精品国产视频在线观看 | 天天射天天 | 日本公妇在线观看 | 99久久er热在这里只有精品66 | 一级做a爱片性色毛片www | 日日干激情五月 | 国产精品6 | 91麻豆操 | 久久专区 | 99热手机在线观看 | 在线免费成人 | 亚洲专区视频在线观看 | 在线观看中文字幕一区二区 | 欧美精品乱码久久久久久 | 福利视频一区二区 | 97电影在线看视频 | 久久视频免费在线 | 久草在线视频资源 | 久色小说 | 国内一级片在线观看 | 中文字幕在线看视频 | 久久在线一区 | 亚洲va欧美 | 久久久久久久久久久免费 | 日韩精品免费在线播放 | 西西444www大胆无视频 | 国产精品久久久久久婷婷天堂 | 国产精品一区二区麻豆 | 久艹视频在线观看 | 视频在线观看亚洲 | 亚洲mv大片欧洲mv大片免费 | 亚洲精品视频在 | 亚洲精品一区二区三区新线路 | 九九久久久久久久久激情 | 国产精品久久中文字幕 | 亚a在线| 国产精品久久片 | 国产精品永久久久久久久久久 | 中文字幕在线视频国产 | 中文字幕av有码 | 免费黄色特级片 | 亚洲综合激情 | 五月天婷婷在线视频 | 色先锋av资源中文字幕 | 亚洲最大的av网站 | 97精品电影院 | 蜜臀一区二区三区精品免费视频 | 色a综合| 天天综合网天天 | 中文字幕高清免费日韩视频在线 | 99免费在线视频 | 成全在线视频免费观看 | 不卡中文字幕av | 欧美一区二区三区在线看 | www夜夜操 | 中文字幕资源网 国产 | 中文字幕在线观看三区 | 91亚洲精品久久久蜜桃 | 在线观看中文字幕视频 | 福利视频网站 | 国产成人av福利 | 最新极品jizzhd欧美 | 美女久久精品 | 91香蕉视频在线 | 欧美日韩国产免费视频 | 四虎国产精品免费观看视频优播 | 日韩a在线观看 | 91污在线观看 | 天天亚洲 | 色婷婷亚洲精品 | 97视频在线看| 天天干,天天插 | 国产精品1000| 国产三级香港三韩国三级 | 69精品视频在线观看 | 国产高清网站 | 色噜噜日韩精品一区二区三区视频 | 99色免费| 婷婷综合亚洲 | 在线国产视频 | 午夜影院日本 | 婷婷丁香激情综合 | 99精品免费视频 | 一二三区高清 | 91亚洲网站| 久久久久久久久久久久久久免费看 | 国产又粗又硬又长又爽的视频 | 在线a人片免费观看视频 | 99精品国产一区二区三区麻豆 | 国内一区二区视频 | 久久精品观看 | 久久一本综合 | 99re8这里有精品热视频免费 | 国产一区二区日本 | 久久理伦片 | 成人午夜电影免费在线观看 | 精品久久久久久亚洲综合网 | 精品人妖videos欧美人妖 | 亚洲色图27p | av片子在线观看 | 免费视频在线观看网站 | 中文字幕第一页在线vr | 视频国产 | 韩国三级在线一区 | 国产成人精品亚洲日本在线观看 | 国产五月色婷婷六月丁香视频 | 久久99国产精品二区护士 | 日韩欧美在线第一页 | 国产尤物一区二区三区 | 国产在线免费观看 | 色综合久久久久综合体 | 欧美一区二区三区不卡 | 成人免费视频观看 | 97超碰人人爱| 久久久久综合精品福利啪啪 | 美女视频免费一区二区 | 五月婷婷影视 | 精品久久久999 | 国产中年夫妇高潮精品视频 | 国产一区精品在线观看 | 国产成人免费精品 | 亚洲va天堂va欧美ⅴa在线 | 天堂资源在线观看视频 | 五月天亚洲综合小说网 | 久久99国产综合精品免费 | 深爱婷婷网 | 最近免费观看的电影完整版 | 91污在线| 欧美激情综合色 | 欧美另类人妖 | 韩国在线一区 | 一区二区三区在线影院 | 狠狠插天天干 | 久久看毛片| 人人爽人人爽人人 | 欧美日韩综合在线观看 | 永久免费精品视频网站 | 中文不卡视频在线 | 中文字幕中文字幕在线一区 | 久久久免费高清视频 | 最近更新的中文字幕 | 国产小视频91 | 人人草在线视频 | 九九久久精品视频 | 伊人成人精品 | 久久激情电影 | 美女视频黄免费的 | 五月婷婷.com| 亚洲一区美女视频在线观看免费 | 最近久乱中文字幕 | 91桃花视频 | 六月丁香在线视频 | 在线看日韩 | 美腿丝袜一区二区三区 | 综合色婷婷 | 久久久成人精品 | 天天草天天摸 | 97在线视频网站 | 激情综合中文娱乐网 | 欧美最新大片在线看 | 中文字幕在线观看完整版 | 综合铜03 | 香蕉视频导航 | 国产一区二区影院 | 婷婷在线看 | 亚洲九九影院 | 国产一区二区久久久久 | 国产免费小视频 | 91午夜精品| 欧美日韩在线视频一区 | 国产五码一区 | 午夜电影av| 久青草视频在线观看 | 18av在线视频| 色婷婷免费视频 | 97视频在线免费 | 久久久综合九色合综国产精品 | 久久综合9988久久爱 | 中文在线最新版天堂 | 国产字幕在线播放 | 国产一区私人高清影院 | 天天摸夜夜操 | 一区二区三区免费在线观看视频 | 高清av在线 | 国产高清 不卡 | 五月天高清欧美mv | 最近最新mv字幕免费观看 | 久草视频在线观 | 精品国产一区二区三区在线观看 | 免费三级黄色片 | 天天综合操 | 亚洲国产美女精品久久久久∴ | 婷婷在线精品视频 | 亚洲国产网址 | 不卡精品视频 | 亚洲三级影院 | 五月综合激情婷婷 | 日韩av一区二区在线影视 | 91黄色在线看| 免费网站黄 | 视频精品一区二区三区 | 五月婷婷一区 | 欧美a级在线 | 精品成人国产 | 91av视频网站 | www.久艹 | 日韩视频一区二区 | 成人网在线免费视频 | 亚洲精品一区二区三区四区高清 | 久久国产99| 999视频网| 在线观看日韩视频 | 992tv在线 | 视频91在线| 天天躁日日躁狠狠 | 超碰97中文| 精品视频久久久久久 | 久久蜜臀一区二区三区av | 天天射天天操天天干 | 久久综合综合久久综合 | 色婷婷综合五月 | 亚洲精品动漫久久久久 | 久精品视频免费观看2 | 久久精品免费 | 国内精品小视频 | 偷拍精偷拍精品欧洲亚洲网站 | 久久久久亚洲精品 | 五月婷婷免费 | 天天操夜夜操 | 国产精品免费高清 | www黄com | 九九热精品视频在线观看 | 日韩精品无码一区二区三区 | 99免费在线视频 | 美女视频黄免费 | 欧美日韩中文在线观看 | 亚洲蜜桃在线 | 亚洲女欲精品久久久久久久18 | 亚洲成人影音 | 日韩在线播放av | 国产成人一二三 | 欧美久久99| 久久久久久久久福利 | 国产成人一区二区三区影院在线 | 日韩大片在线看 | av线上免费看 | 日韩在线国产精品 | 欧美另类视频 | 天天av天天 | 国产精品资源在线 | 久久三级视频 | 少妇自拍av | 97人人模人人爽人人少妇 | 国产精品系列在线 | 亚洲精品中文在线 | 日韩高清国产精品 | 国产精品高清在线 | 香蕉视频在线免费看 | 国产一区二区三区四区在线 | 黄色大片国产 | 欧美大码xxxx | 国产成人一区在线 | 国产视频久久久 | 97成人资源 | 黄网站免费大全入口 | 国产精品午夜8888 | 亚洲精品在线网站 | 国产人免费人成免费视频 | 久久国产女人 | 日韩成人看片 | 91精品久久久久久久久久久久久 | 亚洲成人影音 | 免费视频xnxx com | 青草视频在线播放 | 日韩av二区| 日韩色高清 | 天天插天天操天天干 | 91人人人| 久久调教视频 | 国产精品乱码久久久久久1区2区 | 日韩欧美高清在线 | 伊人丁香 | 欧美一级电影在线观看 | 黄色毛片视频 | av资源网在线播放 | 日本护士三级少妇三级999 | 久久久国产精品亚洲一区 | 粉嫩一二三区 | 99精品国产高清在线观看 | 免费观看一级视频 | 国产成人精品一区二区三区 | 国模一区二区三区四区 | 精品一区二区在线免费观看 | 制服丝袜一区二区 | 夜色成人av | 手机av电影在线观看 | 又黄又爽又色无遮挡免费 | 日韩免费一级a毛片在线播放一级 | 中文字幕免费一区二区 | 99久久久久久国产精品 | 天天插一插| 国产一级免费播放 | 国产99久久精品 | www.国产在线| 丁香六月网 | 女人久久久久 | 美州a亚洲一视本频v色道 | 国产a国产a国产a | 日本大片免费观看在线 | 久久公开免费视频 | 99久久婷婷国产综合亚洲 | 激情欧美丁香 | 99久久日韩精品免费热麻豆美女 | 婷婷丁香色 | 欧美日韩一二三四区 | 美女视频黄的免费的 | 91成人精品观看 | 日韩丝袜在线观看 | 九草视频在线 | 91精品在线免费 | 久久福利电影 | 91自拍成人 | 国产视| 天天射天天射天天射 | 久久国产精品免费一区二区三区 | 最近的中文字幕大全免费版 | 亚洲精品电影在线 | 亚洲黄色片一级 | 国产 日韩 在线 亚洲 字幕 中文 | 国产成人精品999在线观看 | 五月天婷婷视频 | 久久激情视频 久久 | 手机色站 | 免费在线观看不卡av | 最新精品国产 | 99热这里精品 | 色婷婷www | 欧美日韩一区三区 | 成人免费视频网址 | 国产精品毛片一区视频播 | 97视频在线观看网址 | 伊人国产在线观看 | 亚洲欧洲国产视频 | 日日夜夜天天射 | 四虎国产精品免费观看视频优播 | 国产精品第52页 | 在线视频观看国产 | 国产成人免费在线观看 | 欧美日韩精品久久久 | 色综合婷婷久久 | 日韩免费三区 | 97视频免费在线观看 | 免费福利在线播放 | 黄色avwww| 国产人成看黄久久久久久久久 | 亚洲精品伦理在线 | 在线免费国产视频 | 色在线视频 | 亚洲免费国产视频 | 91网免费看 | 久久精品视频在线免费观看 | 亚洲精品乱码久久久久久写真 | 成人免费在线播放 | 亚洲成av人片在线观看www | 成人性生交大片免费看中文网站 | 亚洲欧美视频一区二区三区 | 久久精品精品电影网 | 久久激情片 | 久草www| 天天干.com | av免费在线看网站 | 999国产在线| 三级黄色理论片 | 日韩一级精品 | 亚洲精品综合一二三区在线观看 | www.久久爱.cn | 色婷五月| 亚洲最大av | 免费在线国产 | 精精国产xxxx视频在线播放 | 激情欧美一区二区三区 | 在线观看韩国av | 一级成人免费视频 | 欧洲精品在线视频 | 久久美女免费视频 | 亚洲欧美国产精品 |