Home Artificial Intelligence An Intern’s Journal with HTX Sense-making & Surveillance Centre of Expertise (S&S CoE)

An Intern’s Journal with HTX Sense-making & Surveillance Centre of Expertise (S&S CoE)

1
An Intern’s Journal with HTX Sense-making & Surveillance Centre of Expertise (S&S CoE)

HTX S&S COE

Hello! I’m Tiong Kai and a final yr undergraduate at Nanyang Technological University, studying Mechanical Engineering.

I selected mechanical engineering as my degree as I even have enjoyed Math and Physics since Secondary School. The rigour of engineering has been exciting, but interestingly, my favourite subjects were Python programming, data science and artificial intelligence (AI). These were a part of the inspiration modules in my course, and that got me hooked as I used to be amazed by the flexibility and power of programming.

I made a decision to pursue my newfound passion and took up several courses on Coursera by myself, from data science in Python, to introductory courses for front-end software development, and eventually an AI module during my summer exchange in South Korea. After exploring different facets of programming, I discovered that I used to be most fascinated about the areas of machine learning and AI, and was keen to learn more within the areas of neural networks and deep learning.

To offer myself a head start in the sphere of AI, I actively sought out internship opportunities in that area and through my final semester in NTU, I got here across a chance to intern with Sense-making and Surveillance (S&S) Centre of Expertise (CoE) in HTX. I used to be hoping to get some hands-on experience in developing AI models in addition to exposure to other related technologies similar to cloud computing. So, I took a leap of religion and applied for a part-time internship with S&S CoE. It was on a 2.5 workday per week schedule for 4 months, as I needed to allocate a while to finish my final yr project and remaining undergraduate modules. As an Intern, I used to be given the chance to work on actual projects involving computer vision, video analytics and image enhancement. As someone who enjoys challenges, this internship has been extremely fulfilling and it gave me the hands-on opportunities that I had hoped for.

  1. People Detector and Counter

The primary project assigned to me was on ​​Computer vision. Some of the common applications of Computer vision, is people counting for the aim of crowd management. Traditionally, people counting involved stationing individuals with a clicker at various locations to manually count the number of individuals moving out and in. Today, with AI, this task of individuals counting will be fully automated.

My task for the project is to construct an AI-enabled people counting solution that will be deployed for ad-hoc purposes. There are currently many commercially available and open-source computer vision models for people counting. These are reliable, when it comes to their performance, including the open-source pre-trained models. With this in mind, I used to be tasked by my supervisor to experiment with a few of these open-source projects. The primary is the YOLO (You Only Look Once) v8 model for people detection followed by the ByteTrack object tracking algorithm. These are State-of-the-art (SOTA) models and algorithms which are able to real-time detection and tracking.

To higher understand how they worked, I began by reading articles on their architecture and their framework. Then, I checked out examples of how they were implemented using Python, to raised understand the APIs and extra Python packages that were used alongside these models and algorithms. After this, I referenced some open-source materials to learn how one can implement these models. Normally, these reference materials won’t fit exactly to the use case and I might want to dig deeper into the code and learn how one can modify them.

After researching, experimenting and asking around, I used to be soon in a position to modify the code to detect and count the occurrences of individuals inside a video file. This is completed each time the centroid of individuals detected crossed a line boundary that was set. With this, I used to be in a position to calculate the entire number of individuals entering an area by getting the difference within the counts of “in” direction and “out” direction. By the point my internship was over, I even have implemented and tested a full working version of this people counting solution.

​​Counting the number of individuals crossing a boundary where moving up is “out” and moving down is “in”​​​

2. Low-light Image Enhancement

One in every of my senior AI engineering colleagues at S&S CoE wrote an article to elucidate the potential of low-light image enhancement. Within the realm of security or emergency situations, having the ability to enhance a low-light image to a more visible state is a vital capability to have. Nevertheless, light glares in these low-light images do adversely affect the image enhancement ability. On this project, I used to be given the duty to take a look at reducing the results of glare in images taken in low light environments.

Images taken in low light conditions will be affected by artificial light sources similar to street lamps, headlights from cars etc, leading to a glare that may distort the photographs. Layer decomposition will be used for glare reduction. It’s a method for separating the glare component from the underlying image structure. Glare will be regarded as an additive layer that overlays the unique image, causing unwanted brightness or haze. By decomposing the image into different layers, similar to the glare layer and structure layer, it becomes possible to selectively reduce or remove the glare while preserving the underlying details and structure.

To remove the glare component of the image, the layers of the image will be assumed to follow such an image-layer model:

whererepresents the input image, represents the layer with the sunshine effect, and represents the element-wise matrix multiplication between the reflection and shading layers respectively. This model assumes that the information from the layersand usually are not removed when layer is removed. This method is mathematical, specializing in matrix manipulation using techniques similar to the Fast Fourier Transformation (FFT) and filtering.

​​Image before enhancement (left) vs image after enhancement (right) where glare was reduced​​​

I referenced a set of MATLAB codes to acquire the structure of the algorithm. Code in MATLAB shouldn’t be easily deployable and doesn’t integrate with common deployment stack. Converting it to Python code would allow it to be more deployable and accessible. For the reason that method is mathematical, the MATLAB functions will be replicated in Python using established and performative packages similar to NumPy and SciPy.

To make the conversion, I needed to first understand the MATLAB functions and their Python equivalents. Then, I needed to test the Python functions to make sure they’re working as intended. Finally, I needed to validate the script by running the Python code and cross-referencing its output with the output data from MATLAB. Give myself a pat on the back! I used to be in a position to successfully recreate the image enhancement algorithm in Python from a MATLAB script. The Python code is then passed on to my AI Engineering colleague to be integrated into the product generally known as InXeption.

The primary hurdle I faced was getting began in the sphere of computer vision and AI. As a Mechanical engineering student, I lacked the technical foundation background in comparison with my Computer Science or Computer Engineering peers. Despite having experience in Python from my school projects, earlier internship, and knowledge of machine learning and AI, I used to be concerned that there are still many things that I’m not conversant in. There are various facets of programming that I want to work on, similar to good programming practices, and various facets of software development. So, I anticipated a steep learning curve and the necessity to acquaint myself with tools like GitHub and Anaconda.

On my first day on the office, I felt completely lost and unsure of where to start. I used to be unfamiliar with my first tasks of making environments in Anaconda and cloning projects from GitHub. Fortunately, my colleagues were very helpful and patient. They took the time to guide me through the initial process, showing me where & how I could find more information to start.

My next challenge was to achieve a technical understanding of how things worked throughout the realm of AI and computer vision. Initially, I used to be overwhelmed with the myriad of data and had difficulty finding and distilling the relevant information needed for my projects. Due to my supervisor who was patient and supportive, I used to be given clear directions on areas where I should focus. He even took the time to create customized example codes that I could reference and learn from.

In the sphere of engineering and technology, there’ll all the time be complex problems to unravel and challenges to beat. Whilst it seems intimidating and daunting, the culture and mentorship provided by my colleagues played a big role in my development and helped me overcome these challenges.

If I were to summarize the success criteria for an awesome team during my short stint in S&S CoE, it will be:

Everyone within the department is super easy to approach! Besides the examples I discussed earlier, there have been repeatedly that somebody was all the time there each time I needed help. ​​Although my work is perhaps considered “less technically complicated” than theirs, my colleagues took the time to genuinely understand my problem and gave me advice on how one can tackle it. The Director and Deputy Directors often checked in on me to ensure I used to be given guidance when faced with any difficulties. It’s awesome how they’ve created such a friendly and supportive atmosphere throughout the team!

My colleagues are incredibly inclusive and all the time jio-ed (colloquial Singlish — intending to ask or invite) me to affix of their social activities like karaoke sessions and after-work runs. There have been also other activities where I used to be invited to attend. These include the promotees’ lunch where they bought lunch for everybody and a Strengths Finder workshop. They made sure that I used to be a part of the team and never just an Intern. On the Strengths Finder workshop, I not only discovered more about my very own strengths and personality, but additionally my colleagues’. It was eye-opening to see how everyone approached problems in another way and had unique perspectives on various issues. It helped me to understand the variety throughout the team and broaden my very own outlook.​ ​

Group photo after the Strengths Finder workshop

I felt like I used to be valued, which motivated me to do my best and contribute back.

I also admired the management variety of the department leaders. They’ve ambitious visions for the department and may provide clear direction and guidance to the team, enabling smooth and efficient work. As an intern, I discovered the environment to be forgiving. On my first day, once I expressed my intent to learn quickly and contribute, the Director’s response was reassuring — “No pressure, just give attention to learning as much as you’ll be able to.” This allowed me to prioritize understanding concepts and learning, reasonably than be overwhelmed by meeting specific targets. There was a powerful sense of trust amongst everyone within the department. I didn’t feel pressured or micro-managed.

S&S CoE Department lunch

During my internship, I had the chance to learn programming practices and gain helpful insights into AI and computer vision. My biggest takeaway is learning concerning the architecture of YOLO v8, which proved to be highly efficient in comparison with other object detection models. Understanding its underlying principles provided me with insight on how advanced algorithms will be used for effective object detection. With this newfound knowledge, I learnt how one can construct AI-enabled video analytics solutions with these computer vision techniques. I also gained hands-on experience in training and implementing custom YOLO models for object detection. It has been a useful experience for me to work on these projects with real world use cases. None of which I might have been in a position to, inside my NTU Mechanical Engineering course.

My internship also significantly bolstered my confidence in Python programming. Working extensively with Python throughout my projects honed my coding skills and exposed me to numerous libraries and frameworks commonly utilized in AI and computer vision applications. This experience has solidified my understanding of Python’s versatility and its significance in the sphere of programming.

Aside from technical knowledge, I also picked up key problem-solving skills. I learnt the importance of breaking down complex problems into smaller, manageable tasks. This approach helped me stay organized and focused throughout the projects. By tackling each task step-by-step, I used to be in a position to make regular progress and overcome obstacles more effectively.

More importantly, I’ve realized that perseverance and a growth mindset are key ingredients for achievement. Programming and AI projects will be difficult, and it’s essential to take care of a positive attitude when facing difficulties. Embracing a growth mindset allowed me to view setbacks as opportunities for learning and improvement, ultimately helping me overcome obstacles and achieve my goals.

My experience at S&S CoE has been truly enjoyable and rewarding. During my time there, I had the chance to cultivate and enhance my skills in areas that resonate with my interests. I used to be continually challenged with complex problems that pushed me to think critically and creatively. What made it much more fulfilling was the prospect to work on meaningful projects that had real-world applications. I might also wish to share how one can pivot and transition into tech!

Transitioning from mechanical engineering to the sphere of technology shouldn’t be easy. I needed to formulate a technique to make myself viable to opportunities in Tech. With an undergraduate curriculum that shouldn’t be fully aligned with my interest, I needed to squeeze out time to upgrade my knowledge in these areas and to explore if that is something that I enjoy. After I was certain that that is what I need, I made concrete plans to extend my possibilities of success in transitioning. In my case, I made a decision to deepen my knowledge of Python, and continued to construct my foundation in Python from internships. I also increased my understanding of Tech and AI by taking on additional modules and online courses. I feel that if I persevere and give attention to developing my skills, I shall be ready when the chance arises.

Being exposed to the rigour of mechanical engineering has helped me stay resilient within the face of challenges. The hunger to learn latest things propelled me to continually explore and learn. In my view, these traits are essential to make sure that the journey of development and growth shouldn’t be seen as a chore, but reasonably something enjoyable and exciting!

I’m extremely grateful for the chance to intern at S&S CoE and highly recommend this department to other undergraduates fascinated about gaining hands on exposure to computer vision, AI and even software engineering! After this internship experience, I even have decided to pursue my interest in computer vision & AI. Since I enjoyed my internship with S&S CoE, I applied to the HTX’s Associate Programme. I’m glad to share that I even have gotten through all of the interviews and have successfully re-joined HTX as a full-time worker under the Associate Program. I’m much more excited once I learnt that I shall be posted back to S&S COE. I now sit up for continuing my journey with S&S COE and contribute to the security and security of Singapore!

I hope my article will give all aspiring interns or fresh graduates perspective of working in HTX. When you are considering an internship or to use to HTX, please be happy to attach with me and chat with me here if you’ve got any queries! I shall be comfortable to attach and share more of my experience with you.

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here