本文主要是介绍视觉无人机高速公路违章检测的研究——阶段思考与计划2018.12.25-2019.1.1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上周的思路: https://blog.csdn.net/u010712012/article/details/85082271
上周的flag:
1.车道线怎么单独给检测出来,能不能通过阈值处理/ROI选取,把其他非车道线的部分给滤除。因为高速公路车道线基本都是白线,所以用阈值可能管用,或者彩色空间也可以试试。看看专门检测车道线的论文,只剩下背景和车道线的,相当于车道线分割提取出来的论文,是这周到的重点。12.19-12.25
2.车辆检测,这个用YOLO可以把车辆分类出来还能有一个bbx,怎么在一张图片中单独检测出有车,这个恰好是目前深度学习的优势,或者有HOG_SVM检测车辆,这个就是需要得到车辆的特征,机器学习算法无非就是我们人为给是车辆的标上正,不是的标负的标签,然后用大量数据去训练,最后计算机才知道一张图片当中是不是车。这个也努力弄出来12.19-12.25
1.车道线检测成果
1.1颜色空间尝试
车辆违章压线和变道的前提就是车道线检测,利用阈值分割的手动阈值与OTSU算法得到黑白二值阈值分割图,这里取的200,黑色的车被滤除了,白色的车道线和白色的车辆都能被滤出来,但是能不能用其他的颜色空间来研究?最终对车道线检测有帮助?
HSV空间的解释:https://blog.csdn.net/u010712012/article/details/85240100
这里的饱和度Saturation,值越大,颜色越纯,V亮度越大,图像越白。
HLS和HSV不一样,所以可以看到图片的状态不一样。HSB 中的 S 控制纯色中混入白色的量,值越大,白色越少,颜色越纯;HSB 中的 B 控制纯色中混入黑色的量,值越大,黑色越少,明度越高;HSL 中的 S 和黑白没有关系,饱和度不控制颜色中混入黑白的多寡;HSL 中的 L 控制纯色中的混入的黑白两种颜色。
暂时还没有单独把HSV/HLS通道单独提取出来,后面可以看看三通道怎么提取,看能否提高效果。逻辑就是:分开来增强或者处理,再融合得到更好的结果。
以下是经过RGB三通道split之后的图,可以看到B通道的图对比度很高,车道那块区域感觉会很容易被区分出来。
再进行阈值分割后:这张图阈值是145
我们看到B通道和R通道的背景会没那么多干扰,于是就将这两个通道给合并融合,如下:
如果是将融合的双通道图片经过高斯模糊,再取相同阈值145
可以看到背景基本没有噪点了,这可能也是为什么图像预处理都需要有降采样,平滑的操作。
再对高斯平滑去躁的图像进行边缘检测,得到如下图。
再对边缘检测的结果进行形态学的闭操作(先膨胀后腐蚀),把线与线之间的间隔或者断续的地方进行填充补全。
因为是借鉴了一些论文的思路,把边缘检测形态学填充的结果和双通道阈值分割的结果进行融合:
最后当然还是我们的Hough变换监测和直线了。https://blog.csdn.net/u010712012/article/details/84780943
这次进行了多车道线检测
再加在原图上:
非常好的实现了实线的车道线检测。这里很多参数需要调整才行,因为github挂了,后续把代码放在github上面供大家参考。
https://github.com/zengdiqing1994/Highway_violation_detection/blob/master/carlane_detection/carlane_channels.ipynb
https://github.com/zengdiqing1994/Highway_violation_detection/blob/master/carlane_detection/carlane_detect.ipynb
欢迎star!
2.车辆检测结果
用的YOLO_v1,这是详解:https://blog.csdn.net/u010712012/article/details/85116365
我用的是网上的检测代码,别人已经通过训练得到了初始模型和权重,我拿来自己测试,可怜的是置信度低的可怕,而且小物体基本识别不出来。
原因一是模型yolov1本身的缺陷,二是数据集我无法知道质量和数量。
所以后面需要自己拿无人机去航拍并且标注,得到自己的数据集去训练和检测。
思考与计划2018.12.25-2019.1.1:
这个课题最终应当是作为项目来实现,并能够写出论文。算法项目就必然有方法方案的对比优化,并用抽象的数学模型去解决现实的问题。
因为需要检测出车辆是否压线,那么有两种思路:
1.如果是在有偏航角的二值图像中,怎么判断哪些是实线,哪些是虚线?有篇论文中设置峰值阈值peak_threshold来表示图像空间的车道线。设置 T m a x T_{max} Tmax表示检测实车道线,当检测出的直线长度大于阈值,就认为该直线是实车道线,否则小于阈值就不是。用变量 T m i n T_{min} Tmin来表示检测虚车道线的阈值,当检测到的直线大于该值,就是,否则就不是。这里其实我不太明白,那介于中间的是什么?
或者我们只显示感兴趣区域的实线部分,虚线部分我们不做处理,如果是深色车辆压在线上,投影部分实线必然会有断续,实线断续前一部分判断是否大于实线阈值,大于的话再判断与他斜率一致的断续上面的那一根实线,如果也大于实线阈值,就说明仿佛是实线了!看车辆检测模块的情况是否在那里有车。如果是亮色白色车辆压线,二值图就有在线那里有一块白色区域,那么就在检测车辆的那一部分如果检测到车(YOLO算法框定车),那么两张图进行计算机图像匹配,就能判定是车辆压线。
2.用Hough变换检测出的车道线(彩色图原图),与YOLO检测出的矩形框进行线与矩形的相交数学判定,进而判断是否压线。
这两种判断压线算法可以算作论文一小部分对比。
以上情况在无人机有俯仰视角时和垂直拍摄时是有区别的,垂直情况会更好判断,所有这里论文也可以进行算法情况对比。
计划
2018.12.25-2019.1.1:
1.把yolov2,yolov3原理搞懂,并用coco数据集/voc数据集实现(ubuntu)。28,29,30
2.拍摄自己的航拍车辆数据集,调研标注方法。29
3.车辆压线算法模型调研。图像处理方法,数学方法,与上述步骤衔接。30,31,1
这篇关于视觉无人机高速公路违章检测的研究——阶段思考与计划2018.12.25-2019.1.1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!