国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

【項(xiàng)目實(shí)踐】車距+車輛+車道線+行人檢測(cè)項(xiàng)目實(shí)踐

共 20910字,需瀏覽 42分鐘

 ·

2021-04-12 10:20

點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

重磅干貨,第一時(shí)間送達(dá)

本文轉(zhuǎn)自 | AI算法與圖像處理

1、項(xiàng)目流程的簡(jiǎn)介

   項(xiàng)目的主題框架使用為Keras+OpenCV的形式實(shí)現(xiàn),而模型的選擇為基于DarkNet19的YOLO V2模型,權(quán)重為基于COCO2014訓(xùn)練的數(shù)據(jù)集,而車道線的檢測(cè)是基于OpenCV的傳統(tǒng)方法實(shí)現(xiàn)的。


2、項(xiàng)目主題部分

2.1、YOLO V2模型


    YoloV2的結(jié)構(gòu)是比較簡(jiǎn)單的,這里要注意的地方有兩個(gè):

    1.輸出的是batchsize x (5+20)*5 x W x H的feature map;

      2.這里為了提取細(xì)節(jié),加了一個(gè) Fine-Grained connection layer,將前面的細(xì)節(jié)信息匯聚到了后面的層當(dāng)中。

YOLOv2結(jié)構(gòu)示意圖


2.1.1、DarkNet19模型



    YOLOv2采用了一個(gè)新的基礎(chǔ)模型(特征提取器),稱為Darknet-19,包括19個(gè)卷積層和5個(gè)maxpooling層;Darknet-19與VGG16模型設(shè)計(jì)原則是一致的,主要采用3*3卷積,采用 2*2的maxpooling層之后,特征圖維度降低2倍,而同時(shí)將特征圖的channles增加兩倍。


    與NIN(Network in Network)類似,Darknet-19最終采用global avgpooling做預(yù)測(cè),并且在3*3卷積之間使用1*1卷積來壓縮特征圖channles以降低模型計(jì)算量和參數(shù)。


    Darknet-19每個(gè)卷積層后面同樣使用了batch norm層以加快收斂速度,降低模型過擬合。在ImageNet分類數(shù)據(jù)集上,Darknet-19的top-1準(zhǔn)確度為72.9%,top-5準(zhǔn)確度為91.2%,但是模型參數(shù)相對(duì)小一些。使用Darknet-19之后,YOLOv2的mAP值沒有顯著提升,但是計(jì)算量卻可以減少約33%。

"""Darknet19 Model Defined in Keras."""import functoolsfrom functools import partial
from keras.layers import Conv2D, MaxPooling2Dfrom keras.layers.advanced_activations import LeakyReLUfrom keras.layers.normalization import BatchNormalizationfrom keras.models import Modelfrom keras.regularizers import l2
from ..utils import compose
# Partial wrapper for Convolution2D with static default argument._DarknetConv2D = partial(Conv2D, padding='same')

@functools.wraps(Conv2D)def DarknetConv2D(*args, **kwargs): """Wrapper to set Darknet weight regularizer for Convolution2D.""" darknet_conv_kwargs = {'kernel_regularizer': l2(5e-4)} darknet_conv_kwargs.update(kwargs) return _DarknetConv2D(*args, **darknet_conv_kwargs)

def DarknetConv2D_BN_Leaky(*args, **kwargs): """Darknet Convolution2D followed by BatchNormalization and LeakyReLU.""" no_bias_kwargs = {'use_bias': False} no_bias_kwargs.update(kwargs) return compose( DarknetConv2D(*args, **no_bias_kwargs), BatchNormalization(), LeakyReLU(alpha=0.1))

def bottleneck_block(outer_filters, bottleneck_filters): """Bottleneck block of 3x3, 1x1, 3x3 convolutions.""" return compose( DarknetConv2D_BN_Leaky(outer_filters, (3, 3)), DarknetConv2D_BN_Leaky(bottleneck_filters, (1, 1)), DarknetConv2D_BN_Leaky(outer_filters, (3, 3)))

def bottleneck_x2_block(outer_filters, bottleneck_filters): """Bottleneck block of 3x3, 1x1, 3x3, 1x1, 3x3 convolutions.""" return compose( bottleneck_block(outer_filters, bottleneck_filters), DarknetConv2D_BN_Leaky(bottleneck_filters, (1, 1)), DarknetConv2D_BN_Leaky(outer_filters, (3, 3)))

def darknet_body(): """Generate first 18 conv layers of Darknet-19.""" return compose( DarknetConv2D_BN_Leaky(32, (3, 3)), MaxPooling2D(), DarknetConv2D_BN_Leaky(64, (3, 3)), MaxPooling2D(), bottleneck_block(128, 64), MaxPooling2D(), bottleneck_block(256, 128), MaxPooling2D(), bottleneck_x2_block(512, 256), MaxPooling2D(), bottleneck_x2_block(1024, 512))

def darknet19(inputs): """Generate Darknet-19 model for Imagenet classification.""" body = darknet_body()(inputs) logits = DarknetConv2D(1000, (1, 1), activation='softmax')(body) return Model(inputs, logits)


2.1.2、Fine-Grained Features



    YOLOv2的輸入圖片大小為416*416,經(jīng)過5次maxpooling之后得到13*13大小的特征圖,并以此特征圖采用卷積做預(yù)測(cè)。13*13大小的特征圖對(duì)檢測(cè)大物體是足夠了,但是對(duì)于小物體還需要更精細(xì)的特征圖(Fine-Grained Features)。因此SSD使用了多尺度的特征圖來分別檢測(cè)不同大小的物體,前面更精細(xì)的特征圖可以用來預(yù)測(cè)小物體。


    YOLOv2提出了一種passthrough層來利用更精細(xì)的特征圖。YOLOv2所利用的Fine-Grained Features是26*26大小的特征圖(最后一個(gè)maxpooling層的輸入),對(duì)于Darknet-19模型來說就是大小為 26*26*512的特征圖。passthrough層與ResNet網(wǎng)絡(luò)的shortcut類似,以前面更高分辨率的特征圖為輸入,然后將其連接到后面的低分辨率特征圖上。前面的特征圖維度是后面的特征圖的2倍,passthrough層抽取前面層的每個(gè)2*2的局部區(qū)域,然后將其轉(zhuǎn)化為channel維度,對(duì)于26*26*512的特征圖,經(jīng)passthrough層處理之后就變成了13*13*2048的新特征圖(特征圖大小降低4倍,而channles增加4倍,圖6為一個(gè)實(shí)例),這樣就可以與后面的13*13*1024特征圖連接在一起形成13*13*3072大小的特征圖,然后在此特征圖基礎(chǔ)上卷積做預(yù)測(cè)。

passthrough層實(shí)例

    另外,作者在后期的實(shí)現(xiàn)中借鑒了ResNet網(wǎng)絡(luò),不是直接對(duì)高分辨特征圖處理,而是增加了一個(gè)中間卷積層,先采用64個(gè) 1*1卷積核進(jìn)行卷積,然后再進(jìn)行passthrough處理,這樣26*26*512的特征圖得到13*13*256的特征圖。


    這算是實(shí)現(xiàn)上的一個(gè)小細(xì)節(jié)。使用Fine-Grained Features之后YOLOv2的性能有1%的提升。


2.1.3、Dimension Clusters



    在Faster R-CNN和SSD中,先驗(yàn)框的維度(長(zhǎng)和寬)都是手動(dòng)設(shè)定的,帶有一定的主觀性。如果選取的先驗(yàn)框維度比較合適,那么模型更容易學(xué)習(xí),從而做出更好的預(yù)測(cè)。因此,YOLOv2采用k-means聚類方法對(duì)訓(xùn)練集中的邊界框做了聚類分析。


    因?yàn)樵O(shè)置先驗(yàn)框的主要目的是為了使得預(yù)測(cè)框與ground truth的IOU更好,所以聚類分析時(shí)選用box與聚類中心box之間的IOU值作為距離指標(biāo)。

數(shù)據(jù)集VOC和COCO上的邊界框聚類分析結(jié)果


2.1.4、YOLOv2的訓(xùn)練



    YOLOv2的訓(xùn)練主要包括三個(gè)階段。第一階段就是先在coco分類數(shù)據(jù)集上預(yù)訓(xùn)練Darknet-19,此時(shí)模型輸入為224*224,共訓(xùn)練160個(gè)epochs。然后第二階段將網(wǎng)絡(luò)的輸入調(diào)整為448*448,繼續(xù)在ImageNet數(shù)據(jù)集上finetune分類模型,訓(xùn)練10個(gè)epochs,此時(shí)分類模型的top-1準(zhǔn)確度為76.5%,而top-5準(zhǔn)確度為93.3%。第三個(gè)階段就是修改Darknet-19分類模型為檢測(cè)模型,并在檢測(cè)數(shù)據(jù)集上繼續(xù)finetune網(wǎng)絡(luò)。

YOLOv2訓(xùn)練的三個(gè)階段

loss計(jì)算公式:

def yolo_loss(args,              anchors,              num_classes,              rescore_confidence=False,              print_loss=False):    """YOLO localization loss function.
Parameters ---------- yolo_output : tensor Final convolutional layer features.
true_boxes : tensor Ground truth boxes tensor with shape [batch, num_true_boxes, 5] containing box x_center, y_center, width, height, and class.
detectors_mask : array 0/1 mask for detector positions where there is a matching ground truth.
matching_true_boxes : array Corresponding ground truth boxes for positive detector positions. Already adjusted for conv height and width.
anchors : tensor Anchor boxes for model.
num_classes : int Number of object classes.
rescore_confidence : bool, default=False If true then set confidence target to IOU of best predicted box with the closest matching ground truth box.
print_loss : bool, default=False If True then use a tf.Print() to print the loss components.
Returns ------- mean_loss : float mean localization loss across minibatch """ (yolo_output, true_boxes, detectors_mask, matching_true_boxes) = args num_anchors = len(anchors) object_scale = 5 no_object_scale = 1 class_scale = 1 coordinates_scale = 1 pred_xy, pred_wh, pred_confidence, pred_class_prob = yolo_head( yolo_output, anchors, num_classes)
# Unadjusted box predictions for loss. # TODO: Remove extra computation shared with yolo_head. yolo_output_shape = K.shape(yolo_output) feats = K.reshape(yolo_output, [ -1, yolo_output_shape[1], yolo_output_shape[2], num_anchors, num_classes + 5 ]) pred_boxes = K.concatenate( (K.sigmoid(feats[..., 0:2]), feats[..., 2:4]), axis=-1)
# TODO: Adjust predictions by image width/height for non-square images? # IOUs may be off due to different aspect ratio.
# Expand pred x,y,w,h to allow comparison with ground truth. # batch, conv_height, conv_width, num_anchors, num_true_boxes, box_params pred_xy = K.expand_dims(pred_xy, 4) pred_wh = K.expand_dims(pred_wh, 4)
pred_wh_half = pred_wh / 2. pred_mins = pred_xy - pred_wh_half pred_maxes = pred_xy + pred_wh_half
true_boxes_shape = K.shape(true_boxes)
# batch, conv_height, conv_width, num_anchors, num_true_boxes, box_params true_boxes = K.reshape(true_boxes, [ true_boxes_shape[0], 1, 1, 1, true_boxes_shape[1], true_boxes_shape[2] ]) true_xy = true_boxes[..., 0:2] true_wh = true_boxes[..., 2:4]
# Find IOU of each predicted box with each ground truth box. true_wh_half = true_wh / 2. true_mins = true_xy - true_wh_half true_maxes = true_xy + true_wh_half
intersect_mins = K.maximum(pred_mins, true_mins) intersect_maxes = K.minimum(pred_maxes, true_maxes) intersect_wh = K.maximum(intersect_maxes - intersect_mins, 0.) intersect_areas = intersect_wh[..., 0] * intersect_wh[..., 1]
pred_areas = pred_wh[..., 0] * pred_wh[..., 1] true_areas = true_wh[..., 0] * true_wh[..., 1]
union_areas = pred_areas + true_areas - intersect_areas iou_scores = intersect_areas / union_areas
# Best IOUs for each location. best_ious = K.max(iou_scores, axis=4) # Best IOU scores. best_ious = K.expand_dims(best_ious)
# A detector has found an object if IOU > thresh for some true box. object_detections = K.cast(best_ious > 0.6, K.dtype(best_ious))
# TODO: Darknet region training includes extra coordinate loss for early # training steps to encourage predictions to match anchor priors.
# Determine confidence weights from object and no_object weights. # NOTE: YOLO does not use binary cross-entropy here. no_object_weights = (no_object_scale * (1 - object_detections) * (1 - detectors_mask)) no_objects_loss = no_object_weights * K.square(-pred_confidence)
if rescore_confidence: objects_loss = (object_scale * detectors_mask * K.square(best_ious - pred_confidence)) else: objects_loss = (object_scale * detectors_mask * K.square(1 - pred_confidence)) confidence_loss = objects_loss + no_objects_loss
# Classification loss for matching detections. # NOTE: YOLO does not use categorical cross-entropy loss here. matching_classes = K.cast(matching_true_boxes[..., 4], 'int32') matching_classes = K.one_hot(matching_classes, num_classes) classification_loss = (class_scale * detectors_mask * K.square(matching_classes - pred_class_prob))
# Coordinate loss for matching detection boxes. matching_boxes = matching_true_boxes[..., 0:4] coordinates_loss = (coordinates_scale * detectors_mask * K.square(matching_boxes - pred_boxes))
confidence_loss_sum = K.sum(confidence_loss) classification_loss_sum = K.sum(classification_loss) coordinates_loss_sum = K.sum(coordinates_loss) total_loss = 0.5 * ( confidence_loss_sum + classification_loss_sum + coordinates_loss_sum) if print_loss: total_loss = tf.Print( total_loss, [ total_loss, confidence_loss_sum, classification_loss_sum, coordinates_loss_sum ], message='yolo_loss, conf_loss, class_loss, box_coord_loss:')
return total_loss


2.2、車距的計(jì)算


    通過YOLO進(jìn)行檢測(cè)車量,然后返回的車輛檢測(cè)框的坐標(biāo)與當(dāng)前坐標(biāo)進(jìn)行透視變換獲取大約的距離作為車輛之間的距離。

    所使用的函數(shù)API接口為:

cv2.perspectiveTransform(src, m[, dst]) → dst

參數(shù)解釋

    ?src:輸入的2通道或者3通道的圖片

    ?m:變換矩陣

    返回距離

代碼:


2.3、車道線的分割


車道線檢測(cè)的流程:

實(shí)現(xiàn)步驟:

  1. 圖片校正(對(duì)于相機(jī)畸變較大的需要先計(jì)算相機(jī)的畸變矩陣和失真系數(shù),對(duì)圖片進(jìn)行校正);

  2. 截取感興趣區(qū)域,僅對(duì)包含車道線信息的圖像區(qū)域進(jìn)行處理;

  3. 使用透視變換,將感興趣區(qū)域圖片轉(zhuǎn)換成鳥瞰圖;

  4. 針對(duì)不同顏色的車道線,不同光照條件下的車道線,不同清晰度的車道線,根據(jù)不同的顏色空間使用不同的梯度閾值,顏色閾值進(jìn)行不同的處理。并將每一種處理方式進(jìn)行融合,得到車道線的二進(jìn)制圖;

  5. 提取二進(jìn)制圖中屬于車道線的像素;

  6. 對(duì)二進(jìn)制圖片的像素進(jìn)行直方圖統(tǒng)計(jì),統(tǒng)計(jì)左右兩側(cè)的峰值點(diǎn)作為左右車道線的起始點(diǎn)坐標(biāo)進(jìn)行曲線擬合;

  7. 使用二次多項(xiàng)式分別擬合左右車道線的像素點(diǎn)(對(duì)于噪聲較大的像素點(diǎn),可以進(jìn)行濾波處理,或者使用隨機(jī)采樣一致性算法進(jìn)行曲線擬合);

  8. 計(jì)算車道曲率及車輛相對(duì)車道中央的偏離位置;

  9. 效果顯示(可行域顯示,曲率和位置顯示)。

# class that finds the whole laneclass LaneFinder:    def __init__(self, img_size, warped_size, cam_matrix, dist_coeffs, transform_matrix, pixels_per_meter,                 warning_icon):        self.found = False        self.cam_matrix = cam_matrix        self.dist_coeffs = dist_coeffs        self.img_size = img_size        self.warped_size = warped_size        self.mask = np.zeros((warped_size[1], warped_size[0], 3), dtype=np.uint8)        self.roi_mask = np.ones((warped_size[1], warped_size[0], 3), dtype=np.uint8)        self.total_mask = np.zeros_like(self.roi_mask)        self.warped_mask = np.zeros((self.warped_size[1], self.warped_size[0]), dtype=np.uint8)        self.M = transform_matrix        self.count = 0        self.left_line = LaneLineFinder(warped_size, pixels_per_meter, -1.8288)  # 6 feet in meters        self.right_line = LaneLineFinder(warped_size, pixels_per_meter, 1.8288)        if (warning_icon is not None):            self.warning_icon = np.array(mpimg.imread(warning_icon) * 255, dtype=np.uint8)        else:            self.warning_icon = None
def undistort(self, img): return cv2.undistort(img, self.cam_matrix, self.dist_coeffs)
def warp(self, img): return cv2.warpPerspective(img, self.M, self.warped_size, flags=cv2.WARP_FILL_OUTLIERS + cv2.INTER_CUBIC)
def unwarp(self, img): return cv2.warpPerspective(img, self.M, self.img_size, flags=cv2.WARP_FILL_OUTLIERS + cv2.INTER_CUBIC + cv2.WARP_INVERSE_MAP)
def equalize_lines(self, alpha=0.9): mean = 0.5 * (self.left_line.coeff_history[:, 0] + self.right_line.coeff_history[:, 0]) self.left_line.coeff_history[:, 0] = alpha * self.left_line.coeff_history[:, 0] + \ (1 - alpha) * (mean - np.array([0, 0, 1.8288], dtype=np.uint8)) self.right_line.coeff_history[:, 0] = alpha * self.right_line.coeff_history[:, 0] + \ (1 - alpha) * (mean + np.array([0, 0, 1.8288], dtype=np.uint8))
def find_lane(self, img, distorted=True, reset=False): # undistort, warp, change space, filter if distorted: img = self.undistort(img) if reset: self.left_line.reset_lane_line() self.right_line.reset_lane_line() img = self.warp(img) img_hls = cv2.cvtColor(img, cv2.COLOR_RGB2HLS) img_hls = cv2.medianBlur(img_hls, 5) img_lab = cv2.cvtColor(img, cv2.COLOR_RGB2LAB) img_lab = cv2.medianBlur(img_lab, 5) big_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (31, 31)) small_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7)) greenery = (img_lab[:, :, 2].astype(np.uint8) > 130) & cv2.inRange(img_hls, (0, 0, 50), (138, 43, 226)) road_mask = np.logical_not(greenery).astype(np.uint8) & (img_hls[:, :, 1] < 250) road_mask = cv2.morphologyEx(road_mask, cv2.MORPH_OPEN, small_kernel) road_mask = cv2.dilate(road_mask, big_kernel) img2, contours, hierarchy = cv2.findContours(road_mask, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) biggest_area = 0 for contour in contours: area = cv2.contourArea(contour) if area > biggest_area: biggest_area = area biggest_contour = contour road_mask = np.zeros_like(road_mask) cv2.fillPoly(road_mask, [biggest_contour], 1) self.roi_mask[:, :, 0] = (self.left_line.line_mask | self.right_line.line_mask) & road_mask self.roi_mask[:, :, 1] = self.roi_mask[:, :, 0] self.roi_mask[:, :, 2] = self.roi_mask[:, :, 0] kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7, 3)) black = cv2.morphologyEx(img_lab[:, :, 0], cv2.MORPH_TOPHAT, kernel) lanes = cv2.morphologyEx(img_hls[:, :, 1], cv2.MORPH_TOPHAT, kernel) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (13, 13)) lanes_yellow = cv2.morphologyEx(img_lab[:, :, 2], cv2.MORPH_TOPHAT, kernel) self.mask[:, :, 0] = cv2.adaptiveThreshold(black, 1, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 13, -6) self.mask[:, :, 1] = cv2.adaptiveThreshold(lanes, 1, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 13, -4) self.mask[:, :, 2] = cv2.adaptiveThreshold(lanes_yellow, 1, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY,13, -1.5) self.mask *= self.roi_mask small_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) self.total_mask = np.any(self.mask, axis=2).astype(np.uint8) self.total_mask = cv2.morphologyEx(self.total_mask.astype(np.uint8), cv2.MORPH_ERODE, small_kernel) left_mask = np.copy(self.total_mask) right_mask = np.copy(self.total_mask) if self.right_line.found: left_mask = left_mask & np.logical_not(self.right_line.line_mask) & self.right_line.other_line_mask if self.left_line.found: right_mask = right_mask & np.logical_not(self.left_line.line_mask) & self.left_line.other_line_mask self.left_line.find_lane_line(left_mask, reset) self.right_line.find_lane_line(right_mask, reset) self.found = self.left_line.found and self.right_line.found if self.found: self.equalize_lines(0.875)
def draw_lane_weighted(self, img, thickness=5, alpha=0.8, beta=1, gamma=0): left_line = self.left_line.get_line_points() right_line = self.right_line.get_line_points() both_lines = np.concatenate((left_line, np.flipud(right_line)), axis=0) lanes = np.zeros((self.warped_size[1], self.warped_size[0], 3), dtype=np.uint8) if self.found: cv2.fillPoly(lanes, [both_lines.astype(np.int32)], (138, 43, 226)) cv2.polylines(lanes, [left_line.astype(np.int32)], False, (255, 0, 255), thickness=thickness) cv2.polylines(lanes, [right_line.astype(np.int32)], False, (34, 139, 34), thickness=thickness) cv2.fillPoly(lanes, [both_lines.astype(np.int32)], (138, 43, 226)) mid_coef = 0.5 * (self.left_line.poly_coeffs + self.right_line.poly_coeffs) curve = get_curvature(mid_coef, img_size=self.warped_size, pixels_per_meter=self.left_line.pixels_per_meter) shift = get_center_shift(mid_coef, img_size=self.warped_size, pixels_per_meter=self.left_line.pixels_per_meter) cv2.putText(img, "Road Curvature: {:6.2f}m".format(curve), (20, 50), cv2.FONT_HERSHEY_PLAIN, fontScale=2.5, thickness=5, color=(255, 0, 0)) cv2.putText(img, "Road Curvature: {:6.2f}m".format(curve), (20, 50), cv2.FONT_HERSHEY_PLAIN, fontScale=2.5, thickness=3, color=(0, 0, 0)) cv2.putText(img, "Car Position: {:4.2f}m".format(shift), (60, 100), cv2.FONT_HERSHEY_PLAIN, fontScale=2.5, thickness=5, color=(255, 0, 0)) cv2.putText(img, "Car Position: {:4.2f}m".format(shift), (60, 100), cv2.FONT_HERSHEY_PLAIN, fontScale=2.5, thickness=3, color=(0, 0, 0)) else: warning_shape = self.warning_icon.shape corner = (10, (img.shape[1] - warning_shape[1]) // 2) patch = img[corner[0]:corner[0] + warning_shape[0], corner[1]:corner[1] + warning_shape[1]] patch[self.warning_icon[:, :, 3] > 0] = self.warning_icon[self.warning_icon[:, :, 3] > 0, 0:3] img[corner[0]:corner[0] + warning_shape[0], corner[1]:corner[1] + warning_shape[1]] = patch cv2.putText(img, "Lane lost!", (50, 170), cv2.FONT_HERSHEY_PLAIN, fontScale=2.5, thickness=5, color=(255, 0, 0)) cv2.putText(img, "Lane lost!", (50, 170), cv2.FONT_HERSHEY_PLAIN, fontScale=2.5, thickness=3, color=(0, 0, 0)) lanes_unwarped = self.unwarp(lanes) return cv2.addWeighted(img, alpha, lanes_unwarped, beta, gamma)
def process_image(self, img, reset=False, show_period=10, blocking=False): self.find_lane(img, distorted=True, reset=reset) lane_img = self.draw_lane_weighted(img) self.count += 1 if show_period > 0 and (self.count % show_period == 1 or show_period == 1): start = 231 plt.clf() for i in range(3): plt.subplot(start + i) plt.imshow(lf.mask[:, :, i] * 255, cmap='gray') plt.subplot(234) plt.imshow((lf.left_line.line + lf.right_line.line) * 255)
ll = cv2.merge((lf.left_line.line, lf.left_line.line * 0, lf.right_line.line)) lm = cv2.merge((lf.left_line.line_mask, lf.left_line.line * 0, lf.right_line.line_mask)) plt.subplot(235) plt.imshow(lf.roi_mask * 255, cmap='gray') plt.subplot(236) plt.imshow(lane_img) if blocking: plt.show() else: plt.draw() plt.pause(0.000001)        return lane_img


2.4、測(cè)試過程和結(jié)果


Gif文件由于壓縮問題看上不不是很好,后續(xù)會(huì)對(duì)每一部分的內(nèi)容進(jìn)行更加細(xì)致的實(shí)踐和講解。


參考:

https://zhuanlan.zhihu.com/p/35325884

https://www.cnblogs.com/YiXiaoZhou/p/7429481.html

https://github.com/yhcc/yolo2

https://github.com/allanzelener/yad2k

https://zhuanlan.zhihu.com/p/74597564

https://zhuanlan.zhihu.com/p/46295711

https://blog.csdn.net/weixin_38746685/article/details/81613065?depth_1-

https://github.com/yang1688899/CarND-Advanced-Lane-Lines


end



下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

交流群


歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


瀏覽 52
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 黄色视频网站在线观看免费| 成人毛片在线播放免费| 青青草精品视频| 中文字幕一区二区三区日本在线| 亚洲婷婷在线观看| 99九九99九九九99九他書對| 成人自拍偷拍| 操BBBB| 无码123区| 一级a免一级a做免费线看内裤 | 最新中文字幕一区| 五月天中文字幕| 婷婷五月丁香花| AV福利在线观看| 蜜桃精品一区二区| 婷婷成人小说| 无码秘蜜桃一区二区| 欧美日韩性爱视频| 97自拍| 国产成人精品一区| 操b视频在线播放| 97黄色| 操老女人视频| 夜夜操天天干| 亚洲AV无码成人精品区| 久久福利社| 免费日比视频| 99热网址| 97资源网站| 国产精品123区| 国精产品一区一区三区| 国产一区二区成人久久919色| 色噜噜一区二区三区| 操比无码| 国产精品久久77777| 青青草免费在线视| 国产群交| 巜人妻初尝按摩师BD中字| 国产熟妇毛多久久久久一区| 超碰免费91| BBw日本熟妇BBwHD| 一起操在线视频| 国产AAA片| 天堂亚洲AV无码精品成人| 麻豆午夜福利视频| 亚洲免费观看视频| 国产一级婬片A片免费妖精视频| 97人妻一区二区精品免费视频| 欧美区亚洲区| 操一区| 国产毛片在线| 国产精品一级a毛视频| 日韩成人黄色电影| 婷婷黄色电影| 极品美鮑20p| av麻豆| 国产操逼网址| 亚洲精品一区二区三| 国产又大又粗又爽| 亲子伦视频一区二区三区| 国产午夜福利电影| 亚洲成a人| 91麻豆国产| 干B网| 91老熟女视频| 久久久久久三级电影| 一级a免一级a做免费线看内裤的注意事项 | 人人操人人妻人人看| 91无码在线视频| 日韩美女毛片| 蜜桃91精品入口| 中文字幕++中文字幕明步| 国产精品宾馆在线| 日韩一区二区视频| www.xxx国产| 波多野结衣av无码| 国产精品宾馆| 国产精品AV在线| 国产精品视频在线播放| 韩国精品一区二区| 少妇性受XXXX黑人XYX性爽| 日韩免费无码视频| 人妖和人妖互交性XXXX视频| 亚洲中文字幕免费视频| 日本一区二区三区四区| 欧美丰满人妻| 国产精品无码乱伦| 天天操狠狠操| 国产无码午夜| 久久精品视频在线观看| 成人精品一区二区三区无码视频| 三级片久久久| 久久国产精品精品国产色婷婷| 成人免费版欧美州| 成人午夜天堂| 思思热在线| 日韩WWW| 暗呦罗莉精品一区二区| 少妇无码在线观看| 正在播放李彩斐被洋老外| 91色秘乱码一区二区| 色婷婷AV国产精品| 人人妻人人躁人人DVD| 国产高清无码视频在线观看| 国产91白丝在线播放| 西西人体大胆ww4444多少集| 国产又爽又黄网站免费观看| 久久久天堂国产精品女人| 可以免费看AV的网站| 三级视频网址| 日韩国产在线| 午夜精品久久久久久久91蜜桃| 台湾成人在线| 男人天堂视频在线| 肏少妇女情人大骚逼直播一区二区 | 五月天丁香社区| 午夜亚洲福利| 日韩72页| 大香蕉欧美| 国产91在线亚洲| 五月天无码免费视频| 国产高清自拍| 中文无码日本一级A片久久影视| 三级黄片网站| 亚洲精品在| 亚洲综合日韩在线| 国产欧美综合在线| 成人永久免费视频| 国产喷水ThePorn| 92无码| 亚洲系列中文字幕| 91亚瑟视频| 亚洲AV在线人妻| 亚洲影院在线观看| 欧美成人怡红院| 亚洲婷婷视频| 天堂在线视频| 婷婷五月天在线播放| 午夜神马影院| 毛片A| 午夜成人亚洲| 青青久草| 九九黄片| 日本欧美在线视频| 青青国产在线观看| 国产一级婬片A片免费妖精视频| 国产免费成人视频| 成人在线不卡| 日韩欧美中文字幕公布| 亚洲中文字幕无码在线观看 | 国产精品一二区| 国产成人性爱| 日日操人人操| 国产91麻豆视频| 影音先锋成人| 久久综合99| 嫩BBB槡BBBB槡BBBB撒尿| 99精品免费观看| 色综合社区| 亚洲AV秘一区二区色盗战流出| 国产毛片在线看| 日韩色色网| 日逼网站视频| 一级片在线免费看| 丁香婷婷久久久综合精品国产 | 一级黄色电影免费看| 在线观看免费黄色| 日韩免费成人视频| 男女AV在线免费观看| 日逼视频| 黄色视频网站免费观看| 99re在线观看视频| 超碰在线观看免费| 影音先锋成人无码| 亚洲69v久久久无码精品| 国产夫妻自拍av| 狼友视频第二页| 亚洲日韩精品中文字幕| 91麻豆精品传媒国产| 黄片大全免费看| 俺也日| 成人一区在线观看| 91亚洲国产成人精品一区二区三| 91福利区| 三洞齐开Av在线免费观看| 亚洲秘无码一区二区三区av| 黄色小视频在线免费观看| 免费人成网站| 国产午夜激情视频| 亚洲第一成人久久网站| 国产精久久| 国产福利合集| 思思热这里只有精品| 欧美自拍性爱视频| 亚洲免费网站| 一区二区精品| 五月丁香婷婷综合| 97人妻在线| 日韩精品久久久久久久| 东京热在线免费观看| www.国产| 国产精品播放| 亚洲A网| 伊人国产视频| 人人看人人搂人人摸| 偷拍亚洲色图| 四季AV之日韩人妻无码| 亚洲男女啪啪视频| 国产又爽又黄网站免费观看| 能看毛片的网站| 成年视频在线观看| 九九re| 日韩日逼网站| 欧美+日产+中文| 一本色道久久综合狠狠| 青操在线| 精品多人P群无码视频| 亚洲无码成人AV| 午夜精品18视频国产| 免费看黄色电影| 中文字幕www一区| 特一级黄A片| 最新激情网站| 在线观看无码AV| 亚洲性图第一页| 天天干在线观看视频| 黄网站欧美内射| 日日夜夜天天综合| 波多野结衣无码网站| 亚洲AV无码成人精品区www| 亚洲国产综合AV在线| 国产精品毛片VA一区二区三区| 午夜无码久久| 午夜福利老司机| 北条麻妃99精品青青久久| 亚洲五月丁香婷婷| 一级性爱毛片| 人人操人人骑| 乖我硬了让老子cao你小视频| 国产精品成人99一区无码| 欧美黄色免费观看| 亚洲香蕉在线观看| 青青草免费公开视频| 最好看的MV中文字幕国语电影 | 五月激情综合| 亚洲精品自拍| 久久婷婷五月| 日本三级AAA三级AAAA97| 日韩色导航| 亚洲视频在线观看中文字幕| 国产影视av| 青娱乐成人电影| 国产精品视频在线免费观看| 911国产精品| 五月中文字幕| www.91麻豆| 俺也操| 性欧美亚洲| 蝌蚪窝在线免费观看视频| 中文字幕www一区| 男女啪啪啪网站| 黑人精品| 91网站免费观看| 国产传媒视频| 婷婷伊人綜合中文字幕小说| 性做久久久久久| 操B视频在线免费观看| 亲孑伦XXXⅹ熟女| www高清无码| 熟女嗷嗷叫高潮合集91| 国产成人AV网站| 先锋AV资源| 亚洲中文自拍| 日韩无码视频播放| 黄色工厂这里只有精品| 北条麻妃av在线播放| 亭亭五月丁香| 日本人妻视频| 天天摸天天肏| 69国产成人综合久久精品欧美| 无码一级二级| 欧美黄色片在线观看| 99中文字幕| 亚洲午夜精品久久久久久APP| 中文字幕丰满的翔田千里| 免费成人一级片| 亚洲三级片在线| 成人a毛片| 久久精品禁一区二区三区四区五区| 日本一区二区三区视频在线观看 | 成人乱无码AV在线观看| 人人摸人人爱| 好逼天天操| 午夜黄色视频在线观看| 亚洲中文字幕网站| 国产裸体美女网站| 97精品人妻麻豆一区二区| 懂色av蜜臀av粉嫩av分| 中文字幕在线免费看线人| av无码在线播放| 国产欧美一区二区三区视频| 久久久久久久久久久久国产精品| 日韩av第一页| av怡红院| 91白浆| 五月天国产视频| 日本爱爱网址| 国产porn| 色色网站免费| AAA片视频| 亚洲国产黄色视频| 国内久久| 黄色网页免费观看| 精品人妻午夜| 亚洲秘无码一区二区三区av| 内射黄片| 99热综合在线| 香蕉婷婷| 久久久精品久久| 99久re热视频精品98| 囯产精品久久久久久久久| 黄片免费观看| 人人妻日日摸狠狠躁视频| 丁香婷婷六月天| 亚洲偷| 婷婷电影网| 午夜福利成人网站| 九九大香蕉| 免费看黄片视频| 五月丁香激情综合| 久久av电影| 少妇熟女视频| 欧美激情视频一区二区| 欧美成人小视频| 国精品无码一区二区三区在线 | 69国产成人综合久久精品欧美 | 91AV成人| 91综合网| 荫蒂添到高潮免费视频| 国产成人精| 懂色成人视频在线观看| 国产视频999| 国产激情精品| 色哟哟视频在线观看| 一级黄色操逼视频| 中文字幕巨乱亚洲高清A片28| 揉BBB搡BBB搡BBB| 亚洲一级黄色视频| AAA片网站| 日本视频精品| 三级片欧美| 91丨熟女丨露脸| 丰满岳乱妇一区二区三区| 国产十欧洲十美国+亚洲一二三区在线午夜 | 亚洲成人网在线| 手机看片福利一区二区| 一级黄色免费片| 97欧美精品人妻系列| 日韩精品一区二区三区在线观看免费| 亚洲日本高清| 欧美性爱天天| 国产黄色无码| 日本欧美在线观看高清| 中文字幕在线一区二区a| 一区二区三区视频在线观看| 人妻操逼视频| av片在线免费观看| 校园春色成人| 你懂得在线观看| 亚洲无码电影视频| 欧美日韩精品一区| 北条麻妃久久视频在线播放| 88AV在线视频| 日批视频| 成人免费黄色片| 91日韩在线| 四川美人搡BBw搡BBw| 丰滿老婦BBwBBwBBw| 日韩日韩日韩日韩日韩| 伊人东京热| 息子交尾一区二区三区| 免费日韩| 啊啊啊亚洲| 国产三级自拍视频| 国产精品福利在线播放| 欧美77777| 日韩性爱一区| 足交在线观看| 欧美成人手机在线观看| 激情91| 四色影视| 欧美色小说| 九九综合网| 加勒比黑人和翔田千里在线播放| 欧美三级网站在线观看| 火淫玖玖免费精品| 国内自拍无码| 校园春色成人| 日本一区二区视频| 污污污污污www在线观看优势 | 日本三级黄色视频| 国产精品一区二区性色AV| 国产在线色视频| 亚洲无码视频一区| 视色AV| 亚洲AV无码国产精品| 精品一区二区三区四区五区六区 | 人人操人人插| 欧美在线视频网| 综合色国产精品欧美在线| 在线看91| 婷婷五月18永久免费视频| 91丨国产丨精品丨丝袜| 揉BBB搡BBB搡BBB| 亚洲日韩成人| 黄色片a片| 成人视频123| 8x8x黄色| 三级片AV在线| 久久毛片| 亚洲A在线观看| 麻豆18禁| 国产在线秘麻豆精品观看| 91精品婷婷国产综合久久蝌蚪| 五月天网址| 国产乱子伦-区二区三区四区| 中文字幕自拍偷拍| 黄色成人视频在线免费观看| 18成人网站在线观看| 操骚逼视频| 久久久久久毛片| 久久伊人在| 日本高清无码| 91人妻人人澡人人爽人人精| 国产精品嫩草久久久久yw193 | 欧美粗大| 久久三级片| 456亚洲影院| 国产黄片在线视频| 国产高清av| 波多野结衣东京热| 青青草在线观看视频| 美女一级变态毛片| 黄色片视频在线观看| 国产超碰青青草| 日本成人不卡视频| 夜夜狠狠躁日日躁| 无码9999| 欧美激情性爱网站| www.偷拍| 成人在线免费电影| 欧美日韩美女| 精品无码一区二区三区| a在线观看视频| 91丨九色丨老熟女探花| 国产亚洲99久久精品| 日韩第一页| 日本欧美一级| 操b视频在线播放| 土耳其电影《爱与罚》| 国产精品自拍小视频| 亚洲一本之道| 黄色网址在线观看视频| 无码视频在线播放| 国产一级片免费观看| 7799精品视频天天看| 青青免费视频| 免费在线观看黄片| 国产偷拍网站| 日韩在线视频一区二区三区| 你懂得视频在线观看| 亚洲精品成人| 欧美性爱免费网站| 狠狠干b| 日韩成人AV毛片| 一级二级无码| www.蜜桃| 五月婷婷亚洲| 熟女天堂| 国产精品99精品| 高清毛片AAAAAAAAA片| 国产九九| 婷婷六月激情| 熟女AV888| 天天草天天草| 久久久一级| 中文字幕免费| 婷婷五月丁香网| 日韩中文字幕在线观看视频| 亚洲精品久久久久毛片A级绿茶 | 国产吃奶| 日韩少妇| 亚洲一页| 麻豆性爱视频| 国产草莓视频| 欧美韩日一区二区| www.伊人大香蕉| 亚洲免费在线观看| 黄网在线看| 午夜福利成人视频| 男女拍拍免费视频| 亚洲二区在线| 国产人体视频| 久草五月| 精品视频导航| 国产精品视频瘾无码| 欧美日韩视频| 麻豆国产视频| 四虎成人视频| 欧美一级大香蕉| 亚洲成人影片在线观看| 亚洲欧美日韩动漫| 超碰九色| 亚洲无码人妻在线| 国产搡BBB爽爽爽视频| 黄色网址av| 日韩性爱网站| 爱操AV| 色欲99| 黄色一级免费| 亚洲手机视频| 99免费在线观看视频| 亚洲女人在线| 亚洲秘av无码一区二区| 蜜臀久久99精品久久久| 久久久123| 国产精品在线免费| 嫩BBB槡BBBB槡BBBB| 一区二区成人免费视频| 国产绿奴09-01| 狠狠色一区| 台湾省成人网站| 亚洲成人av| 99re在线观看| 人人妻人人澡人人爽人人| 西西特级无码444www| 欧美精品一二三| 伊人激情五月天| 91含羞草www·Com| 久草视频观看| 亚洲无码精品在线观看| www.精品视频| 91精品大屁股白浆自慰久久久 | 亚洲天堂无码| 色色婷婷五月天| 亚洲无码在线免费观看| 97国产视频| 亚洲人妻视频| 一区二区三区成人| 国产aa| 91成人片| 日本AI高清无码在线观看网址| 操骚逼视频| 精品视频在线观看| 大香蕉最新国产2025| 最新福利视频| 国外成人在线视频老鸭窝| 成人免费视频性爱| 欧美日韩男女淫乱一区二区| 午色婷婷国产无码| 伊人色色综合| 国产高潮视频在线观看| 无码国产精品一区二区性色AV| 91乱了伦国产乱子伦| 丁香婷婷社区| 美国黄色A片| 大炕上公让我高潮了六次| 免费国产A片| 国产精品VA| 日本黄色视| 99热在线看| 中文字幕第一区| 久久不卡| 日韩成人精品中文字幕| 午夜成人亚洲| 北条麻妃无码av| 天堂在线v| 国产成人自拍偷拍视频| 不卡a12| 97精品在线观看| 国产精品久久久久久久久夜色| 婷婷视频在线观看| 亚洲一级Av无码毛片久久精品| 精品在线播放| 亚洲AⅤ欧美AⅤ| 91丨PORNY丨在线中文| 水果派解说AV无码一区| 午夜在线无码| 天堂网在线播放| 欧美男人的天堂| 69式荫蒂被添全过程频| 国产黄色网| 2025四虎在线视频观看| 中字无码av| 国产精品自拍在线观看| 亚洲观看黄色网| 午夜久久电影| 免费看黄片,在线观看| 中文字幕在线日韩| 土耳其电影《爱与罚》| 在线观看免费视频无码| 欧美一区二区三区系列电影| 好吊妞视频在线| 能看的av| 双飞人妻13p| 一本大道香蕉av久久精东影业 | av干在线| 日本欧美成人片AAAA| 色欧美视频| 一级黄色毛片视频| 特级av| 熟女视频国产| 国产精品免费人成网站酒店| A片在线免费| 国产第一页在线播放| 欧美精品三级| 国产激情无码| 黄片网址在线观看| 亚洲国产成人在线视频| 北条麻妃精品| 色五月激情五月| 国产乱伦片、| 亚洲男女啪啪视频| 911精品人妻一区二区三区A片| 日本黄色大片| 伊人色色视频| 亚洲日本三级| 黄色免费在线观看| 波多野结衣AV在线播放| 久久毛久久久j| 91在线视频免费播放| 免费18禁网站| 人人操av| 天天天做夜夜夜夜爽无码| 国产免费AV在线观看| 乱子伦国产精品一区二区| 亚洲黄色无码| 免费一级黄色毛片| 免费人成视频在线| 欧美A区| 午夜性爱福利| 亚洲天堂高清无码| 日韩av中文| 不卡视频在线| 亚洲国产一区二区三区四区| 热九九热| 中文日韩在线| 亚洲视频免费观看| 在线观看免费a片| 久久久久久久久久8888| 日本精品人妻无码77777| 韩日高清无码| 91香蕉视频免费在线观看| 日本AⅤ在线| 一级a片在线| 中文字幕乱码中文乱码91| 91绿帽人妻-ThePorn| 蜜桃Av| 激情爱爱网| 一级特黄大片录像i| 人人操人人看人人摸| 少妇人妻av| 91亚洲精品在线| 特级毛片AAAAAA蜜桃| 色综合婷婷| 亚洲免费性爱视频| 69av视频在线观看| 日本一级视频| 玖玖在线视频| 一区免费在线观看| 国产综合久久777777麻豆 | 五月婷婷综合网| 九九成人精品| 91露脸熟女四川熟女在线观看| 91熟女视频| 麻豆一区在线| 成人小视频在线观看| 91视频熟女| 淫荡人妻视频| 日本伊人在线综合视频| jizz免费在线观看| 日韩黄色一级视频| 嫩草A片www在线观看| 黄色特级毛片| 日本精品电影| 人人妻人人澡人人爽人人爽| 亚洲AV成人无码| 91无码人妻东京热精品一区| 国产性爱在线视频| 国产精品aaa| 日本欧美在线播放中文| 成人三级片在线观看| 婷婷五月丁香在线| 操大香蕉| 强奸五月天| 在线免费观看一区| 日韩在线高清视频| 青春草在线观看国产| 欧美www| 亚洲精品视频免费看| 在线观看免费完整版中文字幕视频| 狠狠地日| 国产美女裸体网站| 婷婷午夜福利| 精品视频在线播放| 精品av在线观看| 免费看无码一级A片放24小时| 北条麻妃中文字幕旡码| 东京热AV在线| 小黄片免费看| 免费A片国产毛无码A片| jzzijzzij亚洲成熟少妇在线观看| 中文字幕一区二区三区四区在线视频 | 国产视频h| 国产欧美在线观看| 久久视频一区| 国内操B电影| 亚洲欧美成人网站| 就去色色五月丁香婷婷久久久| 老汉AV| 日韩字幕| 北条麻妃在线中文字幕| 精产国品一区二区| 日本AⅤ在线观看| 在线观看免费高清无码| 国产午夜精品电影| 激情五月天av| 国产传媒在线观看| www.199麻豆在线观看网站 | 一级真人毛片| 电影91久久久| 国产成人精品777777| 日韩在线一区二区三区| 日韩AV无码一区二区三区| 欧美亚洲系列| 五月天婷婷av| 日韩乱伦网站| 欧美肏逼视频| 人妻少妇精品无码| 久久久桃色| 黄色特级毛片| 日韩免费性爱视频| 无码一区在线观看| 9l视频自拍九色9l视频成人 | 日韩专区中文字幕| 激情婷婷| 久久精品夜色噜噜亚洲A∨| av日韩在线播放| av电影在线观看| 亚洲一卡二卡三卡四卡免| 人妻在线你懂的| 日韩精品综合| 97在线资源| 蜜桃一区二区三区| 五月婷婷婷婷| 日韩av中文字幕在线播放| 一区二区三区在线免费观看| 国产老女人农村HD| 亚洲无码电影在线观看| 亚洲va欧洲va国产va不卡| 国产伦精品一区二区三区色大师| 日本乱伦视频| 亚洲码无人客一区二区三区 | 91丨九色丨国产在线| 日韩精品成人AV| 五月天激情影院| 免费内射网站| 福利黄色片:片| 2025中文字幕| 88AV在线视频| 一级a一级a爱片兔兔软件| 免费一级电影| 日本一区二区三区在线观看网站| 中文原创麻豆传媒md0052| 亚洲成人精品在线观看| 青青青青青操| 日韩性无码| 操逼在线视频| 影音先锋成人片| 成人日韩AV| 一级大毛片| 国产三级片在线视频| 亚洲色五月天| 苍井空在线播放| 黄色片在线看| 99久在线精品99re8| 中文字幕+乱码+中文乱码91在线观看 | 亚洲不卡一区二区三区| 亚洲国产高清在线观看视频| 成人做爰黄AAA片免费直播岛国 | 激情一区二区三区| 国产色情视频在线观看| 粉嫩AV在线| 黄片网址| 俺也去av| 骚妇大战黑人15P| 91吴梦梦无码一区二区| 日韩AA视频| 激情操逼| 成人欧美视频| 蜜桃久久av一区| 国产婷婷五月| 免费黄色小视频| 欧美性爱免费网站| 水果派中文解说AⅤ| 青青草原免费在线视频| 牛牛精品视频一区二区| 免费视频a| 欧美精品18| 欧美中文字幕| 黄色大片网址| 久久国产热在8| 久久ww| 水蜜桃网| AV久草| 天天操天天日天天射| 吴梦梦无码| 人妻无码一二三区免费| 口爆在线观看| 成人无码一区二区三区| 暖暖高清无码| 国产成人精品a视频一区| 成人欧美一区二区三区白人| 亚洲色图偷拍| 日本黄色视频在线播放| 欧美亚洲一区二区三区| 中文一区在线| 成人在线日韩| 国产传媒AV| 亚洲无码视频在线播放| www.黄色在线观看| 亚洲av播放| 99热在线只有精品| AV无码一区二区三区| 二级黄色视频| 黄色成人视频网站在线观看| 黄色国产视频| 亚洲一级av| 亚洲精品日韩无码| 亚洲黄色小视频| 成人久久久久一级大黄毛片中国| jlzzzjlzzz国产免费观看| 99国产高清| 国产成人午夜福利视频| 午夜成人小视频| 天天干天天干天天干| 久草福利在线观看| 国产乱子伦一区二区三精品| 97人妻在线视频| 成人国产在线无码AV免费 | 天天撸天天日| 国产一区二区三区四区五区六区七区| 精品福利一区二区三区| 日本少妇午夜福利| 婷婷视频| 中文字幕无码AV| 九九偷拍视频| 日本一级黃色大片看免费| 亚洲AV激情无码专区在线播放| 亚州V| 亚洲精品久久久久久久久豆丁网| 成人免费A片喷| 日韩天堂在线观看| 国内不卡一卡二视频| 亚洲欧洲精品视频| 精品91在线视频| 大吊操| 亚洲综合二区| 9999re| 婷婷综合欧美| 嫩BBB搡BBB搡BBB四川| 欧一美一婬一伦一区二区三区| jizz在线观看免费视频| 嫩BBB搡BBBB搡BBBB| 69视频在线观看免费| 九九九色视频| 亚洲日日干| 日韩大吊| 狠狠躁夜夜躁人人爽视频| 中文字幕高清视频| 97超碰在线视| 三级操逼| 国产精品久久7777777精品无码| 欧美老女人的逼| 玩弄大荫蒂视频| yw尤物在线| 夜夜骑天天| 翔田千里无码播放| 人妻av无码| 亚洲系列中文字幕| 国产精品三| 男人天堂色| 日韩免费一级| 日韩毛片网| 日韩精品网| 亚洲久久无码| 亚洲视屏| 日韩精品一区二区三区四区蜜桃视频 | 超碰人人操人人爱| 精品国产91乱码一区二区三区|