Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos

Este documento presenta el desarrollo de un sistema de detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos. El primer paso, consistió en seleccionar un tipo de dataset que permitiera entrenar el sistema de una manera consistente a la realidad de la conducción humana;...

Full description

Autores:
Dussan Narvaez, German Andres
Mosquera Victoria, Camilo Andres
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2020
Institución:
Universidad Autónoma de Occidente
Repositorio:
RED: Repositorio Educativo Digital UAO
Idioma:
spa
OAI Identifier:
oai:red.uao.edu.co:10614/12295
Acceso en línea:
http://red.uao.edu.co//handle/10614/12295
Palabra clave:
Ingeniería Mecatrónica
Seguimiento de múltiples objetos
Carros autónomos
Filtro de kalman
Evaluacion IOU
YOLO
Vehículos autónomos
Detectores de vehículos
Autonomous vehicles
Vehicle detectors
Rights
openAccess
License
Derechos Reservados - Universidad Autónoma de Occidente
id REPOUAO2_c6cb20e7d48dc841885105c4e3f5ce0a
oai_identifier_str oai:red.uao.edu.co:10614/12295
network_acronym_str REPOUAO2
network_name_str RED: Repositorio Educativo Digital UAO
repository_id_str
dc.title.spa.fl_str_mv Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
title Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
spellingShingle Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
Ingeniería Mecatrónica
Seguimiento de múltiples objetos
Carros autónomos
Filtro de kalman
Evaluacion IOU
YOLO
Vehículos autónomos
Detectores de vehículos
Autonomous vehicles
Vehicle detectors
title_short Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
title_full Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
title_fullStr Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
title_full_unstemmed Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
title_sort Detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos
dc.creator.fl_str_mv Dussan Narvaez, German Andres
Mosquera Victoria, Camilo Andres
dc.contributor.advisor.none.fl_str_mv Perafán Villota, Juan Carlos
dc.contributor.advisor.spa.fl_str_mv Romero Cano, Víctor Adolfo
dc.contributor.author.spa.fl_str_mv Dussan Narvaez, German Andres
Mosquera Victoria, Camilo Andres
dc.subject.spa.fl_str_mv Ingeniería Mecatrónica
Seguimiento de múltiples objetos
Carros autónomos
Filtro de kalman
Evaluacion IOU
YOLO
topic Ingeniería Mecatrónica
Seguimiento de múltiples objetos
Carros autónomos
Filtro de kalman
Evaluacion IOU
YOLO
Vehículos autónomos
Detectores de vehículos
Autonomous vehicles
Vehicle detectors
dc.subject.armarc.spa.fl_str_mv Vehículos autónomos
Detectores de vehículos
dc.subject.armarc.eng.fl_str_mv Autonomous vehicles
Vehicle detectors
description Este documento presenta el desarrollo de un sistema de detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos. El primer paso, consistió en seleccionar un tipo de dataset que permitiera entrenar el sistema de una manera consistente a la realidad de la conducción humana; el tipo seleccionado fue el Dashcam, que consiste en videos tomados desde una cámara localizada en el parabrisas del auto, grabando continuamente la vista frontal de la carretera. El segundo paso, consistió en seleccionar dos técnicas, una para detección de vehículos y la otra para seguimiento de estos. Dado los grandes avances que se han obtenido en la última década en sistemas basados en inteligencia artificial, se hizo uso de esta para crear el sistema de detección basado en el uso de una red convolucional You Only Look Once (YOLO) de la interfaz Darknet. Este sistema funciona de manera supervisada en su fase de entrenamiento y ha demostrado ser capaz de detectar una gran cantidad de diferentes clases de objetos. Para nuestro caso particular, se realizó un reentrenamiento con el fin de que la detección se limitará solo a vehículos. En este orden de ideas, para realizar la detección, cada imagen procesada es dividida en SxS celdas, sobre las cuales se predicen N posibles cajas delimitadoras de objetos, a las cuales les es asignado una probabilidad basados en el grado de certidumbre relativo al objeto que se desea aprender a detectar. Después de obtener estas predicciones se procede a eliminar las cajas que estén por debajo de un umbral previamente definido. A las cajas restantes se les eliminan posibles objetos que fueron detectados por duplicado y se mantiene únicamente el más exacto de ellos. Con el fin de garantizar una conducción segura, cada vehículo detectado debe ser posteriormente seguido mientras este se encuentre dentro del rango de actuación del vehículo autónomo. Dado que en un ambiente real se pueden tener varias detecciones de diferentes vehículos al mismo tiempo, el seguimiento de cada uno de ellos de manera precisa y eficiente fue llevado a cabo utilizando un estimador conocido como Filtro de Kalman, el cual fue replicado para crear un banco de estimadores, de manera tal que cada estimador dentro del banco sea asignado a un vehículo en particular detectado dentro de la escena. La detección y el posterior seguimiento de cada vehículo dentro de la escena, por sí solas, no permiten al vehículo autónomo tomar decisiones acerca de frenado y reducción o aumento de velocidad. Para esto, se hace imprescindible calcular las 14 distancias relativas entre cada vehículo detectado y el vehículo autónomo, lo cual se logró utilizando una transformación de perspectiva. Después de la selección de los algoritmos de detección y seguimiento, se prosiguió con la validación de estos mismos. Cabe resaltar que, para obtener buenos resultados, se analizaron previamente diferentes dataset los cuales debían contener, para nuestro caso específico, muestras de imágenes de diferentes clases de carros. Teniendo en cuenta lo mencionado, se utilizó una tarjeta JETSON NVIDIA TK1 que permitió compilar los algoritmos eficientemente gracias a la GPU integrada en la tarjeta embebida. Finalmente, esta tarjeta fue montada sobre un vehículo para realizar pruebas de detección, seguimiento y posterior toma de decisiones en cuanto a manejo reactivo en tiempo real
publishDate 2020
dc.date.accessioned.spa.fl_str_mv 2020-05-05T20:34:55Z
dc.date.available.spa.fl_str_mv 2020-05-05T20:34:55Z
dc.date.issued.spa.fl_str_mv 2020-03-19
dc.type.spa.fl_str_mv Trabajo de grado - Pregrado
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.eng.fl_str_mv Text
dc.type.driver.eng.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.redcol.spa.fl_str_mv https://purl.org/redcol/resource_type/TP
dc.type.version.eng.fl_str_mv info:eu-repo/semantics/publishedVersion
format http://purl.org/coar/resource_type/c_7a1f
status_str publishedVersion
dc.identifier.uri.spa.fl_str_mv http://red.uao.edu.co//handle/10614/12295
url http://red.uao.edu.co//handle/10614/12295
dc.language.iso.eng.fl_str_mv spa
language spa
dc.relation.references.spa.fl_str_mv Smith, Matthew. "The number of cars worldwide is set to double by 2040". [En línea]. [Consultado: 20 de enero de 2020]. Disponible en: https://www.weforum.org/agenda/2016/04/the-number-of-cars-worldwide-is-setto- double-by-2040 B. I. I. Intelligence BI, “10 million self-driving cars will be on the road by 2020”, Business Insider. [En línea]. [Consultado: 19 de septiembre de 2018]. Disponible en: https://www.businessinsider.com/report-10-million-self-driving-cars-will-beon- the-road-by-2020-2015-5-6. Reyes Fajardo, Juan Manuel. “Vehículos autónomos, ¿a la vuelta de la esquina?”. [En línea]. [Consultado: 19 de septiembre de 2018]. Disponible en: https://www.publimetro.co/co/tacometro/2018/01/18/vehiculos-autonomos-lavuelta- la-esquina.html. A. Agarwal y S. Suryavanshi, «Real-Time* Multiple Object Tracking (MOT) for Autonomous Navigation», p. 5. Girshick, Ross. (2015). Fast r-cnn. 10.1109/ICCV.2015.169. Held, David & Thrun, Sebastian & Savarese, Silvio. (2016). Learning to Track at 100 FPS with Deep Regression Networks. LNCS. 9905. 749-765. 10.1007/978- 3-319-46448-0_45. D.-A. Beaupré, G.-A. Bilodeau, y N. Saunier, «Improving Multiple Object Tracking with Optical Flow and Edge Preprocessing», arXiv:1801.09646 [cs], ene. 2018. Yang, Yuebin & Bilodeau, Guillaume-Alexandre. (2017). Multiple Object Tracking with Kernelized Correlation Filters in Urban Mixed Traffic. 209-216. 10.1109/CRV.2017.18. J. Jodoin, G. Bilodeau and N. Saunier, «Urban Tracker: Multiple object tracking in urban mixed traffic», IEEE Winter Conference on Applications of Computer Vision, Steamboat Springs, CO, 2014, pp. 885-892.L. Ding y A. Goshtasby, «On the Canny edge detector», Pattern Recognition, vol. 34, No. 3, pp. 721-725, mar. 2001. A. K. Chauhan y P. Krishan, «Moving Object Tracking using Gaussian Mixture Model and Optical Flow», International Journal of Advanced Research in Computer Science and Software Engineering, p. 4, 2013. R. S. Rakibe y B. D. Patil, «Background Subtraction Algorithm Based Human Motion Detection», vol. 3, No. 5, p. 4, 2013. Li, Chenge Lexi & Dobler, Gregory & Feng, Xin & Wang, Yao. (2019). TrackNet: Simultaneous Object Detection and Tracking and Its Application in Traffic Video Analysis. Hou, Rui & Chen, Chen & Shah, Mubarak. (2017). An End-to-end 3D Convolutional Neural Network for Action Detection and Segmentation in Videos. 14. Simonyan, Karen & Zisserman, Andrew. (2014). Very Deep Convolutional Networks for Large-Scale Image Recognition. arXiv 1409.1556. Jaderberg, Max & Simonyan, Karen & Zisserman, Andrew & Kavukcuoglu, Koray. (2015). Spatial Transformer Networks. Advances in Neural Information Processing Systems 28 (NIPS 2015). R. Hou, C. Chen, y M. Shah, «Tube Convolutional Neural Network (TCNN) for Action Detection in Videos», en 2017 IEEE International Conference on Computer Vision (ICCV), Venice, 2017, pp. 5823-5832. Dong, Z.; Wu, Y.; Pei, M.; Jia, Y. Vehicle type classification using a semisupervised convolutional neural network. IEEE Trans. Intel. Transp. Syst. 2015, 16, 2247–2256. Sang, Jun & Wu, Zhongyuan & Guo, Pei & Hu, Haibo & Xiang, Hong & Zhang, Qian & Cai, Bin. An improved YOLOv2 for vehicle detection. Sensors. [Consultado: 16 de enero de 2020]. vol. 18, doi: 10.3390/s18124272.M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth, and B. Schiele, “The Cityscapes Dataset for Semantic Urban Scene Understanding,” in Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016. [21] Arróspide, Jon & Salgado, Luis & Nieto, Marcos. Vehicle Image Database. [Consultado: 16 de enero de 2020]. Disponible en: https://www.gti.ssr.upm.es/data/Vehicle_database.html Geiger, Andreas & Lenz, Philip & Urtasun, Raquel. Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite. 2012. [Consultado: 16 de enero de 2020]. Disponible en: http://www.cvlibs.net/datasets/kitti/eval_object.php Sudarshan & Adhikari, Anup & Koirala, Binish & Bhattarai, Sparsha. Vehicles - Nepal. 2017. [Consultado: 16 de enero de 2020]. Disponible en: https://www.kaggle.com/sdevkota007/vehicles-nepal/metadata. Krause, Jonathan & Stark, Michael & Deng, Jia & Fei-Fei, Li. Cars Dataset. [Consultado: 16 de enero de 2020]. Disponible en: https://ai.stanford.edu/~jkrause/cars/car_dataset.html Lin, Tsung-Yi & Maire, Michael & Belongie, Serge & Bourdev, Lubomir & Girshick, Ross & Hays, James & Perona, Pietro & Ramanan, Deva & Zitnick, Lawrence & Dollár, Piotr. Microsoft COCO: Common Objects in Context. 2015. [Consultado: 16 de enero de 2020]. Disponible en: https://arxiv.org/abs/1405.0312. [26] Saha, Sumit. “A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way”. [En línea]. [Consultado: 6 de noviembre de 2019]. Disponible en: https://towardsdatascience.com/a-comprehensive-guide-to-convolutionalneural- networks-the-eli5-way-3bd2b1164a53 Howard, Andrew & Zhu, Menglong & Chen, Bo & Kalenichenko, Dmitry & Wang, Weijun & Weyand, Tobias & Andreetto, Marco & Adam, Hartwig. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications.Mansouri, Ilias. Computer Vision Part 4: An overview of Image Classification architectures. 2019. [Consultado: 16 de enero de 2020]. Disponible en: https://medium.com/overture-ai/part-4-image-classification-9a8bc9310891. Sandler, Mark & Howard, Andrew & Zhu, Menglong & Zhmoginov, Andrey & Chen, Liang-Chieh. (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks. 4510-4520. 10.1109/CVPR.2018.00474. Ren, Shaoqing & He, Kaiming & Girshick, Ross & Sun, Jian. (2016). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. 1-10. Szegedy, Christian & Liu, Wei & Jia, Yangqing & Sermanet, Pierre & Reed, Scott & Anguelov, Dragomir & Erhan, Dumitru & Vanhoucke, Vincent & Rabinovich, Andrew. (2015). Going deeper with convolutions. The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 1-9. 10.1109/CVPR.2015.7298594. Szegedy, Christian & Vanhoucke, Vincent & Ioffe, Sergey & Shlens, Jon & Wojna, ZB. (2016). Rethinking the Inception Architecture for Computer Vision. 10.1109/CVPR.2016.308. He, Kaiming & Zhang, Xiangyu & Ren, Shaoqing & Sun, Jian. (2016). Deep Residual Learning for Image Recognition. 770-778. 10.1109/CVPR.2016.90. Dwivedi, Priya. Understanding and Coding a ResNet in Keras. 2019. [Consultado: 16 de enero de 2020]. Disponible en: https://towardsdatascience.com/understanding-and-coding-a-resnet-in-keras- 446d7ff84d33. Redmon, Joseph & Divvala, Santosh & Girshick, Ross & Farhadi, Ali. (2016). You Only Look Once: Unified, Real-Time Object Detection. 779-788. 10.1109/CVPR.2016.91. G. Welch and G. Bishop, “An Introduction to the Kalman Filter,” p. 16, 2006.Zumino, Wesley. "Intuition behind the Hungarian Algorithm". [En línea]. [Consultado: 20 de enero de 2020]. Disponible en: https://brilliant.org/discussions/thread/intuition-behind-the-hungarian-algorithm/. Rosebrock, Adrian. "Intersection over Union (IoU) for object detection". [En línea]. [Consultado: 20 de enero de 2020]. Disponible en: https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-forobject- detection/ Sarkar, Dipanjan. A Comprehensive Hands-on Guide to Transfer Learning with Real-World Applications in Deep Learning. 2018. [Consultado: 16 de enero de 2020]. Disponible en: https://towardsdatascience.com/a-comprehensivehands- on-guide-to-transfer-learning-with-real-world-applications-in-deeplearning- 212bf3b2f27a. Pavel Khleovich. (2010). Ip Webcam (1.14.31.737) [Aplicación Móvil]. Disponible en: https://play.google.com/store/apps/details?id=com.pas.webcam&hl=es_419 David Dao. 2016, Tensorflow models, [GitHub repository]. [Consultado: 10 de mayo de 2019]. Disponible en: https://github.com/tensorflow/models Redmon, Joseph & Farhadi, Ali. (2018). YOLOv3: An Incremental Improvement. Farhadi, Ali. “YOLO: Rea-Time Object Detection”. [En línea]. [Consultado: 10 de mayo de 2019]. Disponible en: https://pjreddie.com/darknet/yolo/ Toro, Walter & Perafan, Juan & Mondragon, Oscar & Obando-Ceron, Johan. (2019). Divide and Conquer: an Accurate Machine Learning Algorithm to Process Split Videos on a Parallel Processing Infrastructure. Cohen, Jeremy. Computer Vision for tracking. 2019. [Consultado: 16 de enero de 2020]. Disponible en: https://towardsdatascience.com/computer-visionfor- tracking-8220759eee85.Videmo. 2016, pymot, [GitHub repository]. [Consultado: 18 de marzo de 2020]. Disponible en: https://github.com/Videmo/pymot Bernardin, Keni & Elbs, Alexander & Stiefelhagen, Rainer. (2006). Multiple object tracking performance metrics and evaluation in a smart Room environment. Proceedings of IEEE International Workshop on Visual Surveillance. Udacity. project_video [video]. Udacity. 0:55 minutos. [Consultado: 15 de mayo de 2019]. Disponible en: https://raw.githubusercontent.com/udacity/CarND-Advanced-Lane- Lines/master/project_video.mp4 dtmoodie. 2016, darknet, [GitHub repository]. [Consultado: 3 de septiembre de 2019]. Disponible en: https://github.com/dtmoodie/darknet/tree/tk1 BML electronics. BML Safe CCTV 8CH - sample view on the street [video]. YouTube. 3:00 minutos. [Consultado: 15 de febrero de 2020]. Disponible en: https://www.youtube.com/watch?v=FQnhIjvKIZE Bradski, Gary. (2000). The OpenCV library. Dr. Dobb's Journal of Software Tools. 25. Rosebrock, Adrian. “Find distance from camera to object/marker using Python and OpenCV”. [En línea]. [Consultado: 10 de octubre de 2019]. Disponible en: https://www.pyimagesearch.com/2015/01/19/find-distancecamera- objectmarker-using-python-opencv/ Zuccolo, Ricardo. “Self-driving Cars — Advanced computer vision with OpenCV, finding lane lines”. [En línea]. [Consultado: 10 de agosto de 2019]. Disponible en: https://chatbotslife.com/self-driving-cars-advanced-computervision- with-opencv-finding-lane-lines-488a411b2c3d Rosebrock, Adrian. “4 Point OpenCV getPerspective Transform Example". [En línea]. [Consultado: 10 de octubre de 2019]. Disponible en: https://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspectivetransform- example/AlexeyAB. 2016, darknet, [GitHub repository]. [Consultado: 6 de mayo de 2019]. Disponible en: https://github.com/AlexeyAB Ssaru. 2018. convert2Yolo, [GitHub repository]. [Consultado: 10 de mayo de 2019]. Disponible en: https://github.com/ssaru/convert2Yolo Geiger, Andreas & Lenz, P & Stiller, Christoph & Urtasun, Raquel. (2013). Vision meets robotics: the KITTI dataset. The International Journal of Robotics Research. 32. 1231-1237. 10.1177/0278364913491297. Nowak, Will. “How to Train Your Model (Dramatically Faster)”. [En línea]. [Consultado: 10 de mayo de 2019]. Disponible en: https://towardsdatascience.com/how-to-train-your-model-dramatically-faster- 9ad063f0f718 Abadi, Martín & Agarwal, Ashish & Barham, Paul & Brevdo, Eugene & Chen, Zhifeng & Citro, Craig & Corrado, G.s & Davis, Andy & Dean, Jeffrey & Devin, Matthieu & Ghemawat, Sanjay & Goodfellow, Ian & Harp, Andrew & Irving, Geoffrey & Isard, Michael & Jia, Yangqing & Jozefowicz, Rafal & Kaiser, Lukasz & Kudlur, Manjunath & Zheng, Xiaoqiang. (2016). TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems.
dc.rights.spa.fl_str_mv Derechos Reservados - Universidad Autónoma de Occidente
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.spa.fl_str_mv https://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.eng.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
rights_invalid_str_mv Derechos Reservados - Universidad Autónoma de Occidente
https://creativecommons.org/licenses/by-nc-nd/4.0/
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.spa.fl_str_mv application/pdf
dc.format.extent.spa.fl_str_mv 108 páginas
dc.coverage.spatial.spa.fl_str_mv Universidad Autónoma de Occidente. Calle 25 115-85. Km 2 vía Cali-Jamundí
dc.publisher.spa.fl_str_mv Universidad Autónoma de Occidente
dc.publisher.program.spa.fl_str_mv Ingeniería Mecatrónica
dc.publisher.department.spa.fl_str_mv Departamento de Automática y Electrónica
dc.publisher.faculty.spa.fl_str_mv Facultad de Ingeniería
dc.source.spa.fl_str_mv instname:Universidad Autónoma de Occidente
reponame:Repositorio Institucional UAO
instname_str Universidad Autónoma de Occidente
institution Universidad Autónoma de Occidente
reponame_str Repositorio Institucional UAO
collection Repositorio Institucional UAO
bitstream.url.fl_str_mv https://red.uao.edu.co/bitstreams/d8ef0f14-a378-4519-aeb6-ac0aa728cd13/download
https://red.uao.edu.co/bitstreams/038487b4-aa04-4a64-9c05-07358457a76e/download
https://red.uao.edu.co/bitstreams/81fbec80-6347-4bd8-a49b-905f1a694bbe/download
https://red.uao.edu.co/bitstreams/db3fc0ef-a1ec-4d3f-8724-0185e6a166b7/download
https://red.uao.edu.co/bitstreams/c257a379-f76f-4207-863e-e2cf601a1469/download
https://red.uao.edu.co/bitstreams/e80bbc52-e2bc-420c-8331-632cb56ae1bd/download
https://red.uao.edu.co/bitstreams/f32694a8-1ffb-4144-914e-2775d5fa5576/download
https://red.uao.edu.co/bitstreams/e5a67b2f-9edf-48b1-9b27-8fabd6502e47/download
bitstream.checksum.fl_str_mv d0e54b439f4125fe3e0c1eaec32e0be3
ce17bbb4d4f1cbe9a2413e4ea88bb0b2
668d6b9da49ba5c5401143983d9be91f
353115adadbf1d4002426115d02f0a73
4460e5956bc1d1639be9ae6146a50347
20b5ba22b1117f71589c7318baa2c560
65ee2ccce29bf089620c402fc6b7b8dc
2444e23d6e8e2073ccdb3d8b3a3fd7e1
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Digital Universidad Autonoma de Occidente
repository.mail.fl_str_mv repositorio@uao.edu.co
_version_ 1814259938165260288
spelling Perafán Villota, Juan Carlosvirtual::4117-1Romero Cano, Víctor Adolfo9954a524fa7777dea88ef2222f28cb52Dussan Narvaez, German Andrese285ae305c1d096f5bc4c244ec107bb1Mosquera Victoria, Camilo Andres1ab3bbc9a4ac38244a8f523a4bc75749Ingeniero MecatrónicoUniversidad Autónoma de Occidente. Calle 25 115-85. Km 2 vía Cali-Jamundí2020-05-05T20:34:55Z2020-05-05T20:34:55Z2020-03-19http://red.uao.edu.co//handle/10614/12295Este documento presenta el desarrollo de un sistema de detección y seguimiento de múltiples objetos en tiempo real para vehículos autónomos. El primer paso, consistió en seleccionar un tipo de dataset que permitiera entrenar el sistema de una manera consistente a la realidad de la conducción humana; el tipo seleccionado fue el Dashcam, que consiste en videos tomados desde una cámara localizada en el parabrisas del auto, grabando continuamente la vista frontal de la carretera. El segundo paso, consistió en seleccionar dos técnicas, una para detección de vehículos y la otra para seguimiento de estos. Dado los grandes avances que se han obtenido en la última década en sistemas basados en inteligencia artificial, se hizo uso de esta para crear el sistema de detección basado en el uso de una red convolucional You Only Look Once (YOLO) de la interfaz Darknet. Este sistema funciona de manera supervisada en su fase de entrenamiento y ha demostrado ser capaz de detectar una gran cantidad de diferentes clases de objetos. Para nuestro caso particular, se realizó un reentrenamiento con el fin de que la detección se limitará solo a vehículos. En este orden de ideas, para realizar la detección, cada imagen procesada es dividida en SxS celdas, sobre las cuales se predicen N posibles cajas delimitadoras de objetos, a las cuales les es asignado una probabilidad basados en el grado de certidumbre relativo al objeto que se desea aprender a detectar. Después de obtener estas predicciones se procede a eliminar las cajas que estén por debajo de un umbral previamente definido. A las cajas restantes se les eliminan posibles objetos que fueron detectados por duplicado y se mantiene únicamente el más exacto de ellos. Con el fin de garantizar una conducción segura, cada vehículo detectado debe ser posteriormente seguido mientras este se encuentre dentro del rango de actuación del vehículo autónomo. Dado que en un ambiente real se pueden tener varias detecciones de diferentes vehículos al mismo tiempo, el seguimiento de cada uno de ellos de manera precisa y eficiente fue llevado a cabo utilizando un estimador conocido como Filtro de Kalman, el cual fue replicado para crear un banco de estimadores, de manera tal que cada estimador dentro del banco sea asignado a un vehículo en particular detectado dentro de la escena. La detección y el posterior seguimiento de cada vehículo dentro de la escena, por sí solas, no permiten al vehículo autónomo tomar decisiones acerca de frenado y reducción o aumento de velocidad. Para esto, se hace imprescindible calcular las 14 distancias relativas entre cada vehículo detectado y el vehículo autónomo, lo cual se logró utilizando una transformación de perspectiva. Después de la selección de los algoritmos de detección y seguimiento, se prosiguió con la validación de estos mismos. Cabe resaltar que, para obtener buenos resultados, se analizaron previamente diferentes dataset los cuales debían contener, para nuestro caso específico, muestras de imágenes de diferentes clases de carros. Teniendo en cuenta lo mencionado, se utilizó una tarjeta JETSON NVIDIA TK1 que permitió compilar los algoritmos eficientemente gracias a la GPU integrada en la tarjeta embebida. Finalmente, esta tarjeta fue montada sobre un vehículo para realizar pruebas de detección, seguimiento y posterior toma de decisiones en cuanto a manejo reactivo en tiempo realProyecto de grado (Ingeniero Mecatronico)-- Universidad Autónoma de Occidente, 2020PregradoIngeniero(a) Mecatrónico(a)application/pdf108 páginasspaUniversidad Autónoma de OccidenteIngeniería MecatrónicaDepartamento de Automática y ElectrónicaFacultad de IngenieríaDerechos Reservados - Universidad Autónoma de Occidentehttps://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessAtribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)http://purl.org/coar/access_right/c_abf2instname:Universidad Autónoma de Occidentereponame:Repositorio Institucional UAOIngeniería MecatrónicaSeguimiento de múltiples objetosCarros autónomosFiltro de kalmanEvaluacion IOUYOLOVehículos autónomosDetectores de vehículosAutonomous vehiclesVehicle detectorsDetección y seguimiento de múltiples objetos en tiempo real para vehículos autónomosTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1fTextinfo:eu-repo/semantics/bachelorThesishttps://purl.org/redcol/resource_type/TPinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/version/c_970fb48d4fbd8a85Smith, Matthew. "The number of cars worldwide is set to double by 2040". [En línea]. [Consultado: 20 de enero de 2020]. Disponible en: https://www.weforum.org/agenda/2016/04/the-number-of-cars-worldwide-is-setto- double-by-2040 B. I. I. Intelligence BI, “10 million self-driving cars will be on the road by 2020”, Business Insider. [En línea]. [Consultado: 19 de septiembre de 2018]. Disponible en: https://www.businessinsider.com/report-10-million-self-driving-cars-will-beon- the-road-by-2020-2015-5-6. Reyes Fajardo, Juan Manuel. “Vehículos autónomos, ¿a la vuelta de la esquina?”. [En línea]. [Consultado: 19 de septiembre de 2018]. Disponible en: https://www.publimetro.co/co/tacometro/2018/01/18/vehiculos-autonomos-lavuelta- la-esquina.html. A. Agarwal y S. Suryavanshi, «Real-Time* Multiple Object Tracking (MOT) for Autonomous Navigation», p. 5. Girshick, Ross. (2015). Fast r-cnn. 10.1109/ICCV.2015.169. Held, David & Thrun, Sebastian & Savarese, Silvio. (2016). Learning to Track at 100 FPS with Deep Regression Networks. LNCS. 9905. 749-765. 10.1007/978- 3-319-46448-0_45. D.-A. Beaupré, G.-A. Bilodeau, y N. Saunier, «Improving Multiple Object Tracking with Optical Flow and Edge Preprocessing», arXiv:1801.09646 [cs], ene. 2018. Yang, Yuebin & Bilodeau, Guillaume-Alexandre. (2017). Multiple Object Tracking with Kernelized Correlation Filters in Urban Mixed Traffic. 209-216. 10.1109/CRV.2017.18. J. Jodoin, G. Bilodeau and N. Saunier, «Urban Tracker: Multiple object tracking in urban mixed traffic», IEEE Winter Conference on Applications of Computer Vision, Steamboat Springs, CO, 2014, pp. 885-892.L. Ding y A. Goshtasby, «On the Canny edge detector», Pattern Recognition, vol. 34, No. 3, pp. 721-725, mar. 2001. A. K. Chauhan y P. Krishan, «Moving Object Tracking using Gaussian Mixture Model and Optical Flow», International Journal of Advanced Research in Computer Science and Software Engineering, p. 4, 2013. R. S. Rakibe y B. D. Patil, «Background Subtraction Algorithm Based Human Motion Detection», vol. 3, No. 5, p. 4, 2013. Li, Chenge Lexi & Dobler, Gregory & Feng, Xin & Wang, Yao. (2019). TrackNet: Simultaneous Object Detection and Tracking and Its Application in Traffic Video Analysis. Hou, Rui & Chen, Chen & Shah, Mubarak. (2017). An End-to-end 3D Convolutional Neural Network for Action Detection and Segmentation in Videos. 14. Simonyan, Karen & Zisserman, Andrew. (2014). Very Deep Convolutional Networks for Large-Scale Image Recognition. arXiv 1409.1556. Jaderberg, Max & Simonyan, Karen & Zisserman, Andrew & Kavukcuoglu, Koray. (2015). Spatial Transformer Networks. Advances in Neural Information Processing Systems 28 (NIPS 2015). R. Hou, C. Chen, y M. Shah, «Tube Convolutional Neural Network (TCNN) for Action Detection in Videos», en 2017 IEEE International Conference on Computer Vision (ICCV), Venice, 2017, pp. 5823-5832. Dong, Z.; Wu, Y.; Pei, M.; Jia, Y. Vehicle type classification using a semisupervised convolutional neural network. IEEE Trans. Intel. Transp. Syst. 2015, 16, 2247–2256. Sang, Jun & Wu, Zhongyuan & Guo, Pei & Hu, Haibo & Xiang, Hong & Zhang, Qian & Cai, Bin. An improved YOLOv2 for vehicle detection. Sensors. [Consultado: 16 de enero de 2020]. vol. 18, doi: 10.3390/s18124272.M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth, and B. Schiele, “The Cityscapes Dataset for Semantic Urban Scene Understanding,” in Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016. [21] Arróspide, Jon & Salgado, Luis & Nieto, Marcos. Vehicle Image Database. [Consultado: 16 de enero de 2020]. Disponible en: https://www.gti.ssr.upm.es/data/Vehicle_database.html Geiger, Andreas & Lenz, Philip & Urtasun, Raquel. Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite. 2012. [Consultado: 16 de enero de 2020]. Disponible en: http://www.cvlibs.net/datasets/kitti/eval_object.php Sudarshan & Adhikari, Anup & Koirala, Binish & Bhattarai, Sparsha. Vehicles - Nepal. 2017. [Consultado: 16 de enero de 2020]. Disponible en: https://www.kaggle.com/sdevkota007/vehicles-nepal/metadata. Krause, Jonathan & Stark, Michael & Deng, Jia & Fei-Fei, Li. Cars Dataset. [Consultado: 16 de enero de 2020]. Disponible en: https://ai.stanford.edu/~jkrause/cars/car_dataset.html Lin, Tsung-Yi & Maire, Michael & Belongie, Serge & Bourdev, Lubomir & Girshick, Ross & Hays, James & Perona, Pietro & Ramanan, Deva & Zitnick, Lawrence & Dollár, Piotr. Microsoft COCO: Common Objects in Context. 2015. [Consultado: 16 de enero de 2020]. Disponible en: https://arxiv.org/abs/1405.0312. [26] Saha, Sumit. “A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way”. [En línea]. [Consultado: 6 de noviembre de 2019]. Disponible en: https://towardsdatascience.com/a-comprehensive-guide-to-convolutionalneural- networks-the-eli5-way-3bd2b1164a53 Howard, Andrew & Zhu, Menglong & Chen, Bo & Kalenichenko, Dmitry & Wang, Weijun & Weyand, Tobias & Andreetto, Marco & Adam, Hartwig. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications.Mansouri, Ilias. Computer Vision Part 4: An overview of Image Classification architectures. 2019. [Consultado: 16 de enero de 2020]. Disponible en: https://medium.com/overture-ai/part-4-image-classification-9a8bc9310891. Sandler, Mark & Howard, Andrew & Zhu, Menglong & Zhmoginov, Andrey & Chen, Liang-Chieh. (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks. 4510-4520. 10.1109/CVPR.2018.00474. Ren, Shaoqing & He, Kaiming & Girshick, Ross & Sun, Jian. (2016). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. 1-10. Szegedy, Christian & Liu, Wei & Jia, Yangqing & Sermanet, Pierre & Reed, Scott & Anguelov, Dragomir & Erhan, Dumitru & Vanhoucke, Vincent & Rabinovich, Andrew. (2015). Going deeper with convolutions. The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 1-9. 10.1109/CVPR.2015.7298594. Szegedy, Christian & Vanhoucke, Vincent & Ioffe, Sergey & Shlens, Jon & Wojna, ZB. (2016). Rethinking the Inception Architecture for Computer Vision. 10.1109/CVPR.2016.308. He, Kaiming & Zhang, Xiangyu & Ren, Shaoqing & Sun, Jian. (2016). Deep Residual Learning for Image Recognition. 770-778. 10.1109/CVPR.2016.90. Dwivedi, Priya. Understanding and Coding a ResNet in Keras. 2019. [Consultado: 16 de enero de 2020]. Disponible en: https://towardsdatascience.com/understanding-and-coding-a-resnet-in-keras- 446d7ff84d33. Redmon, Joseph & Divvala, Santosh & Girshick, Ross & Farhadi, Ali. (2016). You Only Look Once: Unified, Real-Time Object Detection. 779-788. 10.1109/CVPR.2016.91. G. Welch and G. Bishop, “An Introduction to the Kalman Filter,” p. 16, 2006.Zumino, Wesley. "Intuition behind the Hungarian Algorithm". [En línea]. [Consultado: 20 de enero de 2020]. Disponible en: https://brilliant.org/discussions/thread/intuition-behind-the-hungarian-algorithm/. Rosebrock, Adrian. "Intersection over Union (IoU) for object detection". [En línea]. [Consultado: 20 de enero de 2020]. Disponible en: https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-forobject- detection/ Sarkar, Dipanjan. A Comprehensive Hands-on Guide to Transfer Learning with Real-World Applications in Deep Learning. 2018. [Consultado: 16 de enero de 2020]. Disponible en: https://towardsdatascience.com/a-comprehensivehands- on-guide-to-transfer-learning-with-real-world-applications-in-deeplearning- 212bf3b2f27a. Pavel Khleovich. (2010). Ip Webcam (1.14.31.737) [Aplicación Móvil]. Disponible en: https://play.google.com/store/apps/details?id=com.pas.webcam&hl=es_419 David Dao. 2016, Tensorflow models, [GitHub repository]. [Consultado: 10 de mayo de 2019]. Disponible en: https://github.com/tensorflow/models Redmon, Joseph & Farhadi, Ali. (2018). YOLOv3: An Incremental Improvement. Farhadi, Ali. “YOLO: Rea-Time Object Detection”. [En línea]. [Consultado: 10 de mayo de 2019]. Disponible en: https://pjreddie.com/darknet/yolo/ Toro, Walter & Perafan, Juan & Mondragon, Oscar & Obando-Ceron, Johan. (2019). Divide and Conquer: an Accurate Machine Learning Algorithm to Process Split Videos on a Parallel Processing Infrastructure. Cohen, Jeremy. Computer Vision for tracking. 2019. [Consultado: 16 de enero de 2020]. Disponible en: https://towardsdatascience.com/computer-visionfor- tracking-8220759eee85.Videmo. 2016, pymot, [GitHub repository]. [Consultado: 18 de marzo de 2020]. Disponible en: https://github.com/Videmo/pymot Bernardin, Keni & Elbs, Alexander & Stiefelhagen, Rainer. (2006). Multiple object tracking performance metrics and evaluation in a smart Room environment. Proceedings of IEEE International Workshop on Visual Surveillance. Udacity. project_video [video]. Udacity. 0:55 minutos. [Consultado: 15 de mayo de 2019]. Disponible en: https://raw.githubusercontent.com/udacity/CarND-Advanced-Lane- Lines/master/project_video.mp4 dtmoodie. 2016, darknet, [GitHub repository]. [Consultado: 3 de septiembre de 2019]. Disponible en: https://github.com/dtmoodie/darknet/tree/tk1 BML electronics. BML Safe CCTV 8CH - sample view on the street [video]. YouTube. 3:00 minutos. [Consultado: 15 de febrero de 2020]. Disponible en: https://www.youtube.com/watch?v=FQnhIjvKIZE Bradski, Gary. (2000). The OpenCV library. Dr. Dobb's Journal of Software Tools. 25. Rosebrock, Adrian. “Find distance from camera to object/marker using Python and OpenCV”. [En línea]. [Consultado: 10 de octubre de 2019]. Disponible en: https://www.pyimagesearch.com/2015/01/19/find-distancecamera- objectmarker-using-python-opencv/ Zuccolo, Ricardo. “Self-driving Cars — Advanced computer vision with OpenCV, finding lane lines”. [En línea]. [Consultado: 10 de agosto de 2019]. Disponible en: https://chatbotslife.com/self-driving-cars-advanced-computervision- with-opencv-finding-lane-lines-488a411b2c3d Rosebrock, Adrian. “4 Point OpenCV getPerspective Transform Example". [En línea]. [Consultado: 10 de octubre de 2019]. Disponible en: https://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspectivetransform- example/AlexeyAB. 2016, darknet, [GitHub repository]. [Consultado: 6 de mayo de 2019]. Disponible en: https://github.com/AlexeyAB Ssaru. 2018. convert2Yolo, [GitHub repository]. [Consultado: 10 de mayo de 2019]. Disponible en: https://github.com/ssaru/convert2Yolo Geiger, Andreas & Lenz, P & Stiller, Christoph & Urtasun, Raquel. (2013). Vision meets robotics: the KITTI dataset. The International Journal of Robotics Research. 32. 1231-1237. 10.1177/0278364913491297. Nowak, Will. “How to Train Your Model (Dramatically Faster)”. [En línea]. [Consultado: 10 de mayo de 2019]. Disponible en: https://towardsdatascience.com/how-to-train-your-model-dramatically-faster- 9ad063f0f718 Abadi, Martín & Agarwal, Ashish & Barham, Paul & Brevdo, Eugene & Chen, Zhifeng & Citro, Craig & Corrado, G.s & Davis, Andy & Dean, Jeffrey & Devin, Matthieu & Ghemawat, Sanjay & Goodfellow, Ian & Harp, Andrew & Irving, Geoffrey & Isard, Michael & Jia, Yangqing & Jozefowicz, Rafal & Kaiser, Lukasz & Kudlur, Manjunath & Zheng, Xiaoqiang. (2016). TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems.Publicationhttps://scholar.google.com/citations?user=MW2zbLAAAAAJ&hl=envirtual::4117-10000-0002-7275-9839virtual::4117-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000637769virtual::4117-1286553f4-3942-4404-9123-b85ee6e69330virtual::4117-1286553f4-3942-4404-9123-b85ee6e69330virtual::4117-1TEXTT09147.pdf.txtT09147.pdf.txtExtracted texttext/plain106456https://red.uao.edu.co/bitstreams/d8ef0f14-a378-4519-aeb6-ac0aa728cd13/downloadd0e54b439f4125fe3e0c1eaec32e0be3MD57TA9147.pdf.txtTA9147.pdf.txtExtracted texttext/plain4https://red.uao.edu.co/bitstreams/038487b4-aa04-4a64-9c05-07358457a76e/downloadce17bbb4d4f1cbe9a2413e4ea88bb0b2MD59THUMBNAILT09147.pdf.jpgT09147.pdf.jpgGenerated Thumbnailimage/jpeg6117https://red.uao.edu.co/bitstreams/81fbec80-6347-4bd8-a49b-905f1a694bbe/download668d6b9da49ba5c5401143983d9be91fMD58TA9147.pdf.jpgTA9147.pdf.jpgGenerated Thumbnailimage/jpeg10591https://red.uao.edu.co/bitstreams/db3fc0ef-a1ec-4d3f-8724-0185e6a166b7/download353115adadbf1d4002426115d02f0a73MD510CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://red.uao.edu.co/bitstreams/c257a379-f76f-4207-863e-e2cf601a1469/download4460e5956bc1d1639be9ae6146a50347MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81665https://red.uao.edu.co/bitstreams/e80bbc52-e2bc-420c-8331-632cb56ae1bd/download20b5ba22b1117f71589c7318baa2c560MD54ORIGINALT09147.pdfT09147.pdfapplication/pdf6670739https://red.uao.edu.co/bitstreams/f32694a8-1ffb-4144-914e-2775d5fa5576/download65ee2ccce29bf089620c402fc6b7b8dcMD55TA9147.pdfTA9147.pdfapplication/pdf960521https://red.uao.edu.co/bitstreams/e5a67b2f-9edf-48b1-9b27-8fabd6502e47/download2444e23d6e8e2073ccdb3d8b3a3fd7e1MD5610614/12295oai:red.uao.edu.co:10614/122952024-03-13 11:40:38.082https://creativecommons.org/licenses/by-nc-nd/4.0/Derechos Reservados - Universidad Autónoma de Occidenteopen.accesshttps://red.uao.edu.coRepositorio Digital Universidad Autonoma de Occidenterepositorio@uao.edu.coRUwgQVVUT1IgYXV0b3JpemEgYSBsYSBVbml2ZXJzaWRhZCBBdXTDs25vbWEgZGUgT2NjaWRlbnRlLCBkZSBmb3JtYSBpbmRlZmluaWRhLCBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIGxhIERlY2lzacOzbiBhbmRpbmEgMzUxIGRlIDE5OTMsIGVsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbGV5ZXMgeSBqdXJpc3BydWRlbmNpYSB2aWdlbnRlIGFsIHJlc3BlY3RvLCBoYWdhIHB1YmxpY2FjacOzbiBkZSBlc3RlIGNvbiBmaW5lcyBlZHVjYXRpdm9zLiBQQVJBR1JBRk86IEVzdGEgYXV0b3JpemFjacOzbiBhZGVtw6FzIGRlIHNlciB2w6FsaWRhIHBhcmEgbGFzIGZhY3VsdGFkZXMgeSBkZXJlY2hvcyBkZSB1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIG8gc29wb3J0ZSBtYXRlcmlhbCwgdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbCwgcGFyYSB1c29zIGVuIHJlZCwgSW50ZXJuZXQsIGV4dHJhbmV0LCBpbnRyYW5ldCwgYmlibGlvdGVjYSBkaWdpdGFsIHkgZGVtw6FzIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gRUwgQVVUT1IsIGV4cHJlc2EgcXVlIGVsIGRvY3VtZW50byAodHJhYmFqbyBkZSBncmFkbywgcGFzYW50w61hLCBjYXNvcyBvIHRlc2lzKSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIGVsYWJvcsOzIHNpbiBxdWVicmFudGFyIG5pIHN1cGxhbnRhciBsb3MgZGVyZWNob3MgZGUgYXV0b3IgZGUgdGVyY2Vyb3MsIHkgZGUgdGFsIGZvcm1hLCBlbCBkb2N1bWVudG8gKHRyYWJham8gZGUgZ3JhZG8sIHBhc2FudMOtYSwgY2Fzb3MgbyB0ZXNpcykgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgw6lzdGUuIFBBUkFHUkFGTzogZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBhbGd1bmEgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybywgcmVmZXJlbnRlIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIHNvYnJlIGVsIGRvY3VtZW50byAoVHJhYmFqbyBkZSBncmFkbywgUGFzYW50w61hLCBjYXNvcyBvIHRlc2lzKSBlbiBjdWVzdGnDs24sIEVMIEFVVE9SLCBhc3VtaXLDoSBsYSByZXNwb25zYWJpbGlkYWQgdG90YWwsIHkgc2FsZHLDoSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvczsgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgbGEgVW5pdmVyc2lkYWQgIEF1dMOzbm9tYSBkZSBPY2NpZGVudGUgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4gVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSB5YSBzZWEgZW4gbGEgYmlibGlvdGVjYSBvIGVuIG1lZGlvIGVsZWN0csOzbmljbyBwb2Ryw6EgY29waWFyIGFwYXJ0ZXMgZGVsIHRleHRvIGNpdGFuZG8gc2llbXByZSBsYSBmdWVudGUsIGVzIGRlY2lyIGVsIHTDrXR1bG8gZGVsIHRyYWJham8geSBlbCBhdXRvci4gRXN0YSBhdXRvcml6YWNpw7NuIG5vIGltcGxpY2EgcmVudW5jaWEgYSBsYSBmYWN1bHRhZCBxdWUgdGllbmUgRUwgQVVUT1IgZGUgcHVibGljYXIgdG90YWwgbyBwYXJjaWFsbWVudGUgbGEgb2JyYS4K