Overestimation of our capability is a big hindering point to this project. Our brief encounter with computing in semester one was inadequate to prepare us for product and software design. As I am an engineering student, I was only exposed to C programming language and struggles to understand python syntax. Debugging, which is the bulk of software programming, was a disaster as I cannot recognise my problems due to unfamiliarity.
Even though my teammates have some experience with python, none of us were up for the task we initially planned for. Machine learning is way too complex for the first thing to touch on python. Despite my experience in programming logic from robotics, our team were unable to run even the template codes from online. Moreover, we realised using machine learning is an overkill for detecting distinct shapes like traffic lights. Thus, the team decided to change our approach to template matching and colour tracking.
Both template matching and colour tracking are more understandable for me and I was able to learn syntax along with the code. I began to craft the main code which ties different parts of the programme together. The flow is template matching for the traffic light, crop image, colour tracking. After colour tracking, vibrations will be the output that corresponds to the traffic light colour. With the above, template matching is used again for identifying the dotted pedestrian crossing lines. A line will be drawn and the gradients of the line will summed to estimate the angle our user is travelling relative to the crossing. This numerical value will be compared to threshold (the gradient of a 20m crossing). To accomodate for multiple templates between night and day and different camera readings from colour tracking in day and in night, time is also extracted to direct the programme to different template library and colour tracking thresholds. All the above mentioned logic is ‘if’ branched multiple times to ensure the shortest route to finish each iteration, an estimated 0.6 sec per iteration.
However, optimal run time is not ideal when this code is edited across the team during debugging. Thus, longer and isolated loops are created on a personal preference basis.
Overall, MnT has been a horrible experience due to lack of proper guidance, time consumption and it being in special term. This project is good but year 1 student should be advised against such complexed commercial product design. I wish all the update session mentors and professors could have told that to us earlier.