高速公路违章检测

高速公路违章检测

研究背景

随着交通需求的不断增长,高速公路快速发展,带动和促进了社会进步与经济发展,产生巨大的经济效益和社会效益,但是由于某些驾驶员安全意识淡薄、法规意识差、驾驶经验不足使得交通事故频发,造成高速公路通行能力下降,经济损失和资源浪费。

我国近年来建成的高速公路交通监控系统大多是在特定路段安装固定的监控摄像头,仍需要人工观看视频录像的方式进行,劳动强度大、工作效率低且容易发生异常事件发现不及时和漏判现象,难以实现预定的功能,影响高速公路监控效果,实时性差。而且目前在高速公路交通环境下,难把城市道路中的交通信息采集技术移植到高速公路环境中来,原因在于高速公路特殊的环境背景不利于硬件设备的安装,很难在大范围的道路上实时采集交通信息。若发生交通堵塞、交通事故或者出现极端气候时,传统方法更是无法实时监测。

采用算法

采用UAV实时进行高速公路信息采集技术,能有效克服极端情况和环境的影响,在广阔的范围内采集交通信息,对高速公路实现实时监控。UAV可实现较大范围内的交通视频图像采集,结合视频图像处理技术,可为交通规划、交通仿真、交通控制、交通安全、交通拥堵等研究提供一种新颖的处理方法,可和传统的交通信息采集技术相结合,极大丰富和发展传统的交通信息采集方法。

"""
Demo for yolov2,主函数
"""

import numpy as np
import tensorflow as tf
import cv2
from PIL import Image

from model import darknet
from detect_ops import decode
from utils import preprocess_image, postprocess, draw_detection
from config import anchors, class_names
# global box
global img_detection
from carlane_det import image

input_size = (416, 416)
# image_file = "/home/zdq/python_code/push_lane/good1.jpg"
# image_file = "/home/zdq/tensorflow-yolov3-master/data/UAV_pic0/1100.jpg"

# image = cv2.imread(image_file)
image_shape = image.shape[:2] #只能取wh,channel=3不取

# copy,resize 416*416,归一化,在第0维增加存放batchsize维度
image_cp = preprocess_image(image, input_size)
"""
image = Image.open(image_file)
image_cp = image.resize(input_size, Image.BICUBIC)
image_cp = np.array(image_cp, dtype=np.float32)/255.0
image_cp = np.expand_dims(image_cp, 0)
#print(image_cp)
"""

# (1)输入图片进入darknet19网络得到特征图,并进行解码得到:xmin xmax表示的边界框,置信度,类别概率
images = tf.placeholder(tf.float32, [1, input_size[0], input_size[1], 3])
detection_feat = darknet(images) #darknet网络输出的特征图
feat_sizes = input_size[0] // 32, input_size[1] // 32   #特征图尺寸是图像下采样32倍
detection_results = decode(detection_feat, feat_sizes, len(class_names), anchors) #解码

checkpoint_path = "/home/zdq/YOLO/checkpoint_dir/yolo2_coco.ckpt"
saver = tf.train.Saver()
with tf.Session() as sess:
    saver.restore(sess, checkpoint_path)
    bboxes, obj_probs, class_probs = sess.run(detection_results, feed_dict={images: image_cp})

# (2)筛选解码后回归边界框——NMS(post process后期处理)
bboxes, scores, class_inds = postprocess(bboxes, obj_probs, class_probs,
                                         image_shape=image_shape)

# (3)绘制筛选后的边界框
img_detection = draw_detection(image, bboxes, scores, class_inds, class_names)


#cv2.imwrite("/home/zdq/YOLO/detection.jpg", img_detection)
# cv2.imshow("detection results", img_detection)
#
# cv2.waitKey(0)




数据场景

UAV可装载各类传感器和摄像机,通过航拍的方式可采集高速公路中的视频图像,利用高性能,低功耗的机载嵌入式平台经过一系列的深度学习与图像处理技术能获取并检测该区域的多种交通信息。UAV技术还可以定性的检测一些违章交通事件,具体的交通违章事件包括:车辆违章轧实线,违章变道,违法占用应急车道等等。

本项目目前已实现车辆违章轧实线的功能,具体代码请移步"push_lane_detection"文件夹

你可能感兴趣的:(计算机视觉实战项目集锦,人工智能,深度学习,计算机视觉,图像识别,AI,AI识别)