{"id":356,"date":"2020-04-03T04:04:33","date_gmt":"2020-04-03T04:04:33","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/?page_id=356"},"modified":"2020-12-18T18:47:16","modified_gmt":"2020-12-18T18:47:16","slug":"detection-subsystem","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/detection-subsystem\/","title":{"rendered":"Detection Subsystem"},"content":{"rendered":"<h3>Fall Semester Implementation Details (Final Version)<\/h3>\n<p>Any autonomous car is required to adhere to the rules of the road, namely staying safely within the desired lane. We wanted our system to follow these rules as well. In order for our lane following functionality to work, we had to make one assumption about the garage environment. We assumed<br \/>\nthere to be a solid line dividing the two lanes within the garage, which we saw in our testing environment in the CMU East Parking Garage. We performed lane detection to segment the lane in camera images obtained from the d435. This information is later used in the goal generation and<br \/>\nnavigation stage.<\/p>\n<p>At this point, we have decided to switch from deep learning neuron networks to classical computer vision methods for both hardware and simulation. It turns out that it worked pretty fine in both cases.<\/p>\n<p>We utilized classical computer vision methods to detect the center line in the lanes. We had initially been pursuing deep-learning-based methods for lane detection in the spring semester. However, we abandoned that method due to insufficient labeled data for training the system to work in the physical parking lot, as well as the fact that the training we performed on simulation data did not translate well to the physical environment. To make sure our subsystem is robust, we manually place a yellow seat belt on top of the center line in the CMU parking lot, since the existing road paint was fading. Our lane detection algorithm is described in five steps, summarized below.<\/p>\n<p>1. Perform HLS thresholding on a region of interest in the bottom-left of the image in order to<br \/>\nfilter out the yellow seat belt<br \/>\n2. Detect the line using a Canny edge detector and probabilistic Hough transforms.<br \/>\n3. Project the pixels on the line into a 3D point cloud using the depth camera<br \/>\n4. Find the normal vector of this new linear point cloud using singular value decomposition (SVD)<br \/>\n5. Generate the right boundary line by extending mirroring the current point cloud along with a pre-determined lane width.<\/p>\n<p>The point cloud of the center line and the right lane boundary is sent to the navigation subsystem as an obstacle constraint in the costmap. We also generated an ego-line point cloud by extending the center line point cloud to the right with 60% of the lane width. This ego-line point cloud is later<br \/>\nsent to the goal generation subsystem as an input, and goals are generated along this line. Overall, the lane detection subsystem is crucial to the success of the whole pipeline since both the goal generation and navigation subsystems rely heavily on accurate lane detections.<\/p>\n<h3 style=\"text-align: left\">Spring Semester Implementation Details<\/h3>\n<p>The purpose of the detection subsystem is to identify lanes in the environment in order to impose a constraint on where the robot can move. As of now, this system is still in progress, as we have been trying several different methods for lane detection with varying results.<\/p>\n<h4>Hardware<\/h4>\n<h5>Progress up to Progress Review 9<\/h5>\n<p>We are using classical computer vision methods here. The reason we gave up leveraging deep learning techniques to detect lanes in real-world data was because of insufficient labeled data for training. Moreover, the model trained in the simulation could not be transitioned to the real world properly.<\/p>\n<p>To make sure our subsystem is robust enough, we manually place a yellow seat belt on top of the faded center line in the CMU parking lot. Our lane detection pipeline in hardware could be decomposed into the followings:<\/p>\n<ol>\n<li>HLS thresholding with the image in order to filter out the yellow seat belt.<\/li>\n<li>Detect the line with <code>opencv<\/code> functions such as <code>Canny()<\/code> and <code>HoughLinesP()<\/code>, as shown in Fig. 1 &amp; 2.<\/li>\n<li>Project the pixels on the line back to the 3D world with respect to the depth camera.<\/li>\n<li>Find the normal vector of the line using SVD.<\/li>\n<li>Interpolate the right line by extending each point cloud with a fixed lane width, as shown in FIg. 3.<\/li>\n<\/ol>\n<div id='gallery-1' class='gallery galleryid-356 gallery-columns-2 gallery-size-medium'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/detection-subsystem\/screenshot-2020-10-01-12_46_35\/'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"170\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-300x170.png\" class=\"attachment-medium size-medium\" alt=\"\" aria-describedby=\"gallery-1-645\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-300x170.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-768x435.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-830x470.png 830w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-230x130.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-350x198.png 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35-480x272.png 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_35.png 846w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-645'>\n\t\t\t\tFig. 1 Line detection on straight line\n\t\t\t\t<\/figcaption><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/detection-subsystem\/screenshot-2020-10-01-12_46_27\/'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"170\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-300x170.png\" class=\"attachment-medium size-medium\" alt=\"\" aria-describedby=\"gallery-1-644\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-300x170.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-768x435.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-830x470.png 830w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-230x130.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-350x198.png 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27-480x272.png 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/Screenshot-2020-10-01-12_46_27.png 846w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-644'>\n\t\t\t\tFig. 2 Line detection on turns\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-647 size-medium\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-300x290.png\" alt=\"Fig. 3 Lane Projection\" width=\"300\" height=\"290\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-300x290.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-768x741.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-830x801.png 830w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-230x222.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-350x338.png 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1-480x463.png 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/10\/image-2-1.png 979w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p style=\"text-align: center\">Fig.3 Lane Projection<\/p>\n<h4>Simulation<\/h4>\n<h5>Milestone For SVD<\/h5>\n<p>Before the spring semester ends, we had our detection system successfully running under simulation. Our final decision is to use a deep network to get a segmented lane output. We use the ERFNet model, as shown in Fig.4, which was initially trained to segment detect lane lines in a highway scenario. We realized we had to collect custom data in the simulator and retrain part of the network. We have designed an automatic data collection pipeline in the simulator, as shown in Fig.5. To illustrate, we collect both data and label images simultaneously by tele-operating Husky around in the parking lot. The way we do this is that we first color the right lane of the ground image light green, and while tele-operating Husky around, we take the RGB image of the front camera and process it into data and label images. To recover the original data image, we replace the green pixels with gray. To get the ground truth label image, we replace the green pixels with pixel value 255 and all the other pixels with pixel value 0. This way, we make sure the time stamps between the data and the label are consistent.<\/p>\n<div id='gallery-2' class='gallery galleryid-356 gallery-columns-2 gallery-size-medium'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/detection-subsystem\/erf\/'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"123\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/erf-300x123.jpeg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/erf-300x123.jpeg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/erf-230x95.jpeg 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/erf.jpeg 350w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/detection-subsystem\/collect\/'><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"140\" src=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-300x140.png\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-300x140.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-768x358.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-1024x478.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-830x387.png 830w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-230x107.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-350x163.png 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect-480x224.png 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/collect.png 1196w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/div><\/figure>\n\t\t<\/div>\n\n<p style=\"text-align: center\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Fig. 4 ERFNet Model\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Fig. 5 Screenshot During Data Collection<\/p>\n<div class=\"pdf-page-container page-container ng-scope\">\n<div class=\"plv-page-view page-view\">\n<div class=\"plv-text-layer text-layer\">ERFNet is very much like other semantic segmentation models, consisting of an encoder followed by a decoder. We used the pre-trained weights for the encoder and we trained the decoder using training images that we collected on the simulator. We performed morphological postprocessing to filter out the noise in the segmentation output providing the final results seen inFig.6.We have experimented with the robustness of our system to varying lighting conditions, changing camera noise in both the depth and RGB channels. We have also tested robustness with respect to the environment. Overall, we find this to be a very effective method in simulation, and we have to test it on hardware to see if it is scalable.<\/div>\n<\/div>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-458 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/combine.png\" alt=\"\" width=\"524\" height=\"278\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/combine.png 524w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/combine-300x159.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/combine-230x122.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/combine-350x186.png 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/05\/combine-480x255.png 480w\" sizes=\"auto, (max-width: 524px) 100vw, 524px\" \/><\/p>\n<p style=\"text-align: center\">Fig. 6 Lane Detection Outputs in Different Views<\/p>\n<h5>Prior Work<\/h5>\n<p>Our first attempt to solve this problem utilized classical methods of computer vision to find lines and perform polynomial fitting over the lines found in the image. This produced solid results when tested on the KITTI dataset. When testing on our simulated parking lot, this algorithm had some issues dealing with sharp turns, specifically the fact that both lane lines may not be visible at all times during a 90-degree turn. Below are test images of this method on the KITTI dataset and on our Gazebo world.<\/p>\n<div class=\"page\" title=\"Page 2\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-403 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-300x111.png\" alt=\"\" width=\"627\" height=\"232\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-300x111.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-768x285.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-830x308.png 830w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-230x85.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-350x130.png 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM-480x178.png 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/Screen-Shot-2020-04-03-at-9.50.17-AM.png 996w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><\/div>\n<div style=\"text-align: center\" title=\"Page 2\">Fig. 7\u00a0 Classical filtering and line fitting on the KITTI dataset<\/div>\n<div title=\"Page 2\"><\/div>\n<div class=\"page\" title=\"Page 2\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-404 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/gazebo_classical-300x225.png\" alt=\"\" width=\"345\" height=\"260\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/gazebo_classical-300x225.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/gazebo_classical-230x173.png 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/gazebo_classical.png 337w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/div>\n<div style=\"text-align: center\" title=\"Page 2\">Fig. 8\u00a0 Classical detection algorithm on simulated gazebo lane<\/div>\n<div title=\"Page 2\"><\/div>\n<div title=\"Page 2\">After some more thought, we realized that an algorithm like this would only work well if there are well-defined lines on both sides of the lane, which is not the case in most parking garages. So, to address the required robustness of our lane detection, we moved to examine some deep learning architectures. We have successfully tested the Efficient Residual factorized ConvNet (ERFNet), a semantic segmentation network that has been trained on the CULane dataset.\u00a0Shown below is the output of ERFNet on our parking lot Gazebo world.<\/div>\n<div title=\"Page 2\"><\/div>\n<div title=\"Page 2\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-406 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/test_image00040-300x225.jpg\" alt=\"\" width=\"482\" height=\"361\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/test_image00040-300x225.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/test_image00040-230x173.jpg 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/test_image00040-350x263.jpg 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/test_image00040-480x360.jpg 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/test_image00040.jpg 640w\" sizes=\"auto, (max-width: 482px) 100vw, 482px\" \/><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-405 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-300x64.jpg\" alt=\"\" width=\"483\" height=\"103\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-300x64.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-768x164.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-830x177.jpg 830w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-230x49.jpg 230w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-350x75.jpg 350w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040-480x102.jpg 480w, https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-content\/uploads\/sites\/48\/2020\/04\/0test_image00040.jpg 976w\" sizes=\"auto, (max-width: 483px) 100vw, 483px\" \/><\/div>\n<div style=\"text-align: center\" title=\"Page 2\">Fig 9: Results of ERFNet<\/div>\n<div title=\"Page 2\"><\/div>\n<div title=\"Page 2\">As it turns out, even this network requires lines to be present in the image, so we have decided to leave two well-defined lane lines in our environment. This leaves the door open for potentially still using the classical method described above.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Fall Semester Implementation Details (Final Version) Any autonomous car is required to adhere to the rules of the road, namely staying safely [&hellip;]<\/p>\n","protected":false},"author":220,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/page_fullwidth.php","meta":{"footnotes":""},"class_list":["post-356","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/pages\/356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/users\/220"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/comments?post=356"}],"version-history":[{"count":17,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/pages\/356\/revisions"}],"predecessor-version":[{"id":719,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/pages\/356\/revisions\/719"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2020teami\/wp-json\/wp\/v2\/media?parent=356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}