{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/polylanenet-lane-estimation-via-deep","title":"PolyLaneNet: Lane Estimation via Deep Polynomial Regression","arxiv_id":"2004.10924","date":"2020-04-23","proceeding":"arXiv 2020 4","authors":["Lucas Tabelini","Rodrigo Berriel","Thiago M. Paixão","Claudine Badue","Alberto F. de Souza","Thiago Oliveira-Santos"],"abstract":"One of the main factors that contributed to the large advances in autonomous driving is the advent of deep learning. For safer self-driving vehicles, one of the problems that has yet to be solved completely is lane detection. Since methods for this task have to work in real-time (+30 FPS), they not only have to be effective (i.e., have high accuracy) but they also have to be efficient (i.e., fast). In this work, we present a novel method for lane detection that uses as input an image from a forward-looking camera mounted in the vehicle and outputs polynomials representing each lane marking in the image, via deep polynomial regression. The proposed method is shown to be competitive with existing state-of-the-art methods in the TuSimple dataset while maintaining its efficiency (115 FPS). Additionally, extensive qualitative results on two additional public datasets are presented, alongside with limitations in the evaluation metrics used by recent works for lane detection. Finally, we provide source code and trained models that allow others to replicate all the results shown in this paper, which is surprisingly rare in state-of-the-art lane detection methods. The full source code and pretrained models are available at https://github.com/lucastabelini/PolyLaneNet.","url_abs":"https://arxiv.org/abs/2004.10924v2","url_pdf":"https://arxiv.org/pdf/2004.10924v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"polylanenet-lane-estimation-via-deep","repo_url":"https://github.com/lucastabelini/PolyLaneNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"lane-detection","task_name":"Lane Detection"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/lane-detection-on-llamas","task":"Lane Detection","dataset":"LLAMAS","model":"PolyLaneNet","rank_in_archive_order":9,"of":10,"metrics":{"F1":"0.8840"},"uses_additional_data":false},{"leaderboard":"/sota/lane-detection-on-tusimple","task":"Lane Detection","dataset":"TuSimple","model":"PolyLaneNet","rank_in_archive_order":38,"of":43,"metrics":{"Accuracy":"93.36%","F1 score":"90.62"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2004.10924","atlas_url":"https://app.syntology.ai/?focus=2004.10924","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2004.10924"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lucastabelini/PolyLaneNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":4},"by_repo_kind":{"official":{"samples":10,"ran":6,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"4648a2af225d49fd","entry":"area_distance","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/metric.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/metric.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4648a2af225d49fd"}},{"code_sha256_prefix":"7b9f75652d0c8239","entry":"area_metric","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/metric.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/metric.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7b9f75652d0c8239"}},{"code_sha256_prefix":"fe37f79f76eab305","entry":"create_video","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/gen_video.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/gen_video.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fe37f79f76eab305"}},{"code_sha256_prefix":"51d50b31b8fe13e0","entry":"ir","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"lib/datasets/llamas.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/lib/datasets/llamas.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"51d50b31b8fe13e0"}},{"code_sha256_prefix":"d1c3c14d98baf762","entry":"parse_log","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/plot_log.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/plot_log.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d1c3c14d98baf762"}},{"code_sha256_prefix":"e93e343e68c08583","entry":"smooth_curve","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/plot_log.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/plot_log.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e93e343e68c08583"}},{"code_sha256_prefix":"f4aa5ab4bed99b4b","entry":"convert_tusimple_format","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/metric.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/metric.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f4aa5ab4bed99b4b"}},{"code_sha256_prefix":"42d07e7a73ed1b03","entry":"get_horizontal_values_for_four_lanes","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"lib/datasets/llamas.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/lib/datasets/llamas.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"42d07e7a73ed1b03"}},{"code_sha256_prefix":"a3d164c22a005dc7","entry":"parse_line","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"utils/plot_log.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/utils/plot_log.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3d164c22a005dc7"}},{"code_sha256_prefix":"1cf08d93a9b54189","entry":"read_json","repo":"lucastabelini/PolyLaneNet","repo_kind":"official","path":"lib/datasets/llamas.py","file_url":"https://github.com/lucastabelini/PolyLaneNet/blob/HEAD/lib/datasets/llamas.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cf08d93a9b54189"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}