火车轨道铁轨检测识别(弯轨+直轨)通用性(Python源码+讲解)
在前几天的文章中,对直线的铁轨可以实现检测,但是实际的过程中,火车的弯轨也是特别多,比如从北京-石家庄的铁路线路,弯路占到了70%以上的比例,所以对于铁轨的弯道检测,也是很重要的一块内容,在一段时间的研究下,终于实现了弯道铁轨的检测,同时也可以拟合S形的铁轨,并且检测速度可以实现实时性的要求,在接下来的工作中,我会把铁轨检测+YOLOv3移植到Jetson TX2+Intel NCS2(神经元计算棒2代)实现实时性检测的过程贴出来供大家参考。
另:本文是参考优达学城的公路车道线检测的项目来进行改进优化调参实现的。
需求环境:
Ubuntu16.04
python3.5
opencv3.2
首先的第一步,就是读入图片
import os
import cv2
import utils
import matplotlib.pyplot as plt
import numpy as np
from moviepy.editor import VideoFileClip
import line
test_imgs = utils.get_images_by_dir('pic')
很重要的一步就是选取RIO区域,就是摄像机的记录铁轨区域,选取梯形图,如下图所示:
梯形所示的部分就是我们的RIO区域,只要我们的摄像机安装在火车的固定位置,那么这个RIO区域就是固定的区域,只要在一张图片上校准之后,我们就可以适用于这一个火车所对应的所有的铁轨检测。
选取完RIO区域之后,我们需要将选取的RIO区域转换成鸟瞰图,然后从鸟瞰图里去进行边缘侧检测。
明天继续更。。。