Computer vision is an interdisciplinary field that deals with how to start making computers from digital images or videos to achieve a high level of knowledge. It seeks to automate functions that can be done by the human visual system from the engineering viewpoint. Computer vision is about automatically extracting, analysing and understanding helpful data from a single picture or picture sequence. It includes developing a theoretical and algorithmic foundation for automatic visual comprehension. As a scientific discipline, the theory behind artificial structures that extract data from pictures is concerned with computer vision.
The picture information can take many forms, such as video sequences, multi-cameras opinions, or medical scanner multi-dimensional information. Computer vision, as a technological discipline, seeks to apply its theories and models to computer vision systems building.In this report, the issue we solve is taking a video as input information and processing it to detect the lane the car is moving within. Then we will discover a representative line for both the left and right rows and return those depictions as a colour overlay to the video.
This study will focus on technical information on how to use the libraries available for solving this issue in the Python computer vision ecosystem.We use OpenCV to process the pictures input to find any lane lines retained inside and also to render a lane representation. Furthermore, pictures are just dense matrix information, so we’ll use numpy and matplotlib to transform and render picture information.a) Load Image:For loading an image in memory for project, we have to use some libraries 1. OpenCV(import cv2): OpenCV is a cross-platform library using which we can develop real-time computer vision applications. It mainly focuses on image processing, video capture and analysis including features like face detection and object detection.2. MATLAB Library(import matplotlib.pyplot as plt)3. Numpy (import numpy as np)import cv2image = cv2.imread(‘test_image.jpg’)cv2.imshow(‘result’,image)cv2.waitKey(0)Now we have an image in memory which we can now manipulate however we like in our python script.b) Edge DetectionEdge detection involves a range of mathematical techniques to identify points in a digital image where the brightness of the picture shifts significantly or has discontinuities more officially. Typically, the points with sharp modifications in image brightness are structured into a collection of curved line segments called edges. Edge detection is a fundamental tool in image processing, machine vision and computer vision, particularly in the areas of feature detection and feature extraction.Gradient measure the change in brightness over the adjacent pixels.import cv2import numpy as npimage = cv2.imread(‘test_image.jpg’)lane_image = np.copy(image)gray = cv2.cvtColor(lane_image, cv2.COLOR_RGB2GRAY)cv2.imshow(‘result’,gray)cv2.waitKey(0) After convert image to grayscale, we have to do the noise reduction in the image. For that we use Gaussian Blur to sharpen the edge and adjust further the brightness of image.Gaussian Blur: Gaussian blur is the consequence of a Gaussian function blurring an picture (named after Carl Friedrich Gauss, mathematician and scholar). In graphics software, it is a commonly used impact, typically to decrease image noise and decrease detail. This blurring technique’s visual effect is a soft blur resembling that of viewing the picture through a translucent screen, distinctly different from the bokeh impact generated by an out – of-focus lens or an object’s shadow under normal illumination. In computer vision algorithms, Gaussian smoothing is also used as a pre-processing phase to improve picture structures at distinct scale.blur = cv2.GaussianBlur(gray, (5,5), 0)cv2.imshow(‘result’,blur)in above code we use (5,5) kernel and reduce noise in the image by using Gaussian Blur.Canny Edge Detection : Canny edge detection is a method for extracting helpful structural information from various objects of vision and reducing the quantity of data to be processed dramatically. It has been commonly used in different systems of computer vision. Canny discovered that there are comparatively comparable requirements for applying edge detection to various vision schemes. Thus, in a broad range of circumstances, an edge detection solution can be introduced to tackle these demands. Canny edge detection algorithm is one of the most rigorously specified techniques for excellent and reliable detection.Canny algorithm : cv2.Canny(image, low_threshold ,high_threshold)canny = cv2.Canny(blur , 50 , 150)cv2.imshow(‘result’,canny)c) Region of Interest:By using matplotlib we find the coordinate and our region on which we have to work.After that we have to define a function, creating maskdef region_of_interest(image): height = image.shape polygons = np.array([ [(200, height) , (1100, height) , (550, 250)] ]) mask = np.zeros_like(image) cv2.fillPoly(mask, polygons, 255) return maskd) Hough Transform:The Hough transform is a method that can be used within an picture to isolate characteristics of a specific form. Since it requires specifying the desired features in some parametric form, the classic Hough transformation is most commonly used to detect regular curves such as lines, circles, ellipses, etc.In applications where a simple analytical description of a feature is not possible, a generalized Hough transformation can be used. We limit the primary focus of this debate to the classical Hough transformation due to the computational complexity of the generalized Hough algorithm. Despite its domain constraints, the classical transformation of Hough (hereafter referred to without the classical prefix) maintains many applications, as most manufactured parts (and many anatomical components examined in medical imaging) contain feature limits that can be characterized by periodic curves. The Hough transform technique’s primary benefit is that it tolerates gaps in feature border descriptions and is comparatively unaffected by picture noise.