YEO RUI SHENG RAYSON

Introduction

IHPC stands for the Institute of High Performance Computing. It was established in August 1998, as a research institute under the Agency for Science, Technology, and Research (A*STAR). It promotes and spearheads scientific advancements, as well as technological innovations through computational modelling, simulation, and visualisation methodologies and tools. The institute's vision is to provide leadership in high performance computing as a strategic resource for scientific inquiry and industrial development.


Project details - Video Labeling

The project aims to label videos captured by a mounted CCTV with actions done by the people in the CCTV. The value of such a project is to improve the AI working to identify the actions taken by the people captured by CCTV. By correctly identifying the actions done by the people in the CCTV, such as walking, sitting, standing, etc, the AI can more accurately identify future actions done with the data it receives now. The resources put into the project now is myself, in which I have to manually label the videos provided by the company, A*Star as well as to provide tips for improvement to the tool for optimization. At the point I joined the project, the project was not even worked on yet. The tool used to identify the actions was still in the process of debugging. The task I received, as I said before, was to label the videos using the tool that identifies the action. Although it was tedious, the process was actually fairly easy. All I needed to do was to pinpoint when the action takes place, start the labeling tool and end the tool when the action is completed. However, as the total amount of videos was around 1000, the job was truthfully quite boring and tedious.

As explained before, the steps to complete the project were fairly simple. All I needed to do was to pinpoint when the action takes place, start the labeling tool provided by the company and end the tool when the action is completed. Sometimes the videos have multiple people in it, which I have to then simultaneously label both people. I was not given a rationale on such a project, but I believe that the rationale of such a project is to provide data for the AI to recognize such actions, which was why I was given such a large amount of videos to label - the AI needed a lot of data to learn. Through my labeling, the AI would be able to advance in sophistication. As progress of such a project is largely confidential as it involves viewing CCTV footage, only a limited amount of photos of such nature could be shown.


The picture below shows CCTV footage which have people in it which I was supposed to label.


Side Project details - Web application

On another note, the amount of videos I received was at a later date of the WOW!, so the first 1.5 weeks of the WOW! I was handed another side/mini project to do - web application. I was given a tutorial to follow in creating a web page, which involved a lot of coding in Python3 and HTML. I reached a point where I have completed registering and login in users to the web forum, as well as debugging the various problems encountered. I was still in the process of making the ability to follow other users. Unfortunately, I was forced to stop the web application project in favor of our main task - the video label. However, I've learnt that making the web application takes a lot of analytical power, as coding as a newcomer will encounter a lot of debugging problems and the skill to solve these problems requires trying out every single solution.

One such example was to create a login registration form using Python. The code can be seen below in the picture.



Content skills learnt

Making a Flask Web application

Through the flask mega tutorial I've been provided and had gone through, I've learnt how to create a virtual environment hosted by flask in which I am able to make a web application locally - through localhost. This web application would have the function of registering and login in, as well as changing profile pictures through Gravatar and having a profile description and profile posts.


Debugging the many problems of code.

While this skill may not seem important to many, having a workable block of code is essential to a working program, and without an expert in code helping you or being an expert yourself, coding can be really hard. Thus this skill is good to have. Googling for solutions and learning what to input and what not to input can save your program and prevent many more problems from occurring in future. One could search up the type of error pertaining to the code given and reference to the solutions online. Many useful pages such as GitHub, Stack Overflow, etc will have similar problems such as these and from those examples you will be able to compare and learn the solutions to resolve your code.


Label videos according to actions via Video Labeling Tool

From my project, I've learnt how to label the actions that people are performing in the CCTV footage in the video with the tool I'm given. These would allow me to provide huge amounts of data to the AI which will be learning how to identify these actions from the examples I've given. From my contributions, I will be improving the vision of the AI.

Interesting aspects of learning

You have a surprising amount of freedom while working.

Asides from the deadline, you could be really flexible when working. As long as you finish your workload at the end of the deadline, you could really do anything from in between the time period, for example, staying at home to do work instead, leaving work unfinished at the start and rushing at the end or vice versa, having your lunch at anytime you want. This amount of freedom is surprising compared to our regime at school, where we have to follow strict inflexible timetables.


Coding is hard, period.

If you don't have prior experience in coding and are trying to code a somewhat intermediate code, you will struggle a lot. There is a lot of troubleshooting to be performed and imagination needed by yourself in order to make code. While following a tutorial by the book can get you somewhere, not understanding the code will make any troubleshooting or deviation from the code useless, which ultimately makes the practice redundant as you're basically copying.



A Major Takeaway for Life

Patience is key.

Having patience to do anything will prove fruitful in succeeding in tasks. In a month of learning under A*STAR, the tasks I've been given requires a huge amount of patience and endurance to do, from doing 1000 videos, to sitting in a cramped office for about 6 hours a day, to trying to find solutions to troubleshoot code. With patience, all of this is doable and it prevents oneself from getting tired of working. Thus with this trait, I believe having patience will prove to be a quintessential component in helping me succeed in life.