GPU Accelerated Pedestrian Orientation Estimation
One of the main tasks for future fully autonomous and partially autonomous cars equipped with Advanced Driver Assistant Systems (ADAS) is to assure safety for the pedestrian. A critical aspect within this task is to determine if the pedestrian is crossing the road in the path of the ego-vehicle, in order to issue the required alerts for the driver or trigger safety breaking action. In this research we are proposing a vision-based system to minimize the vehicle braking reaction time required by the driver when detecting a pedestrian in a dangerous situation. The system aims to automate the process of perceiving the risk on pedestrian by using a vision-based system using Convolutional Neural Network (CNN). The system investigates the use of the CNN model to predict certain human body keypoints then transforms these points into a 3D space using the stereo vision system to estimate the body orientations. The CNN module is trained to estimate the shoulders, the neck and the nose positions, detecting of three points is required to confirm human detection and provided enough data to translate the points into 3D space. The extracted information will be used to determine the risk level on the pedestrian and therefore the required action. To gain real-time performance the GPU acceleration is applied where applicable.
GPU-Based Autonomous Car Robot
With self-driving cars being the future of the automobile industry, the formulation of more efficient algorithms has been the forefront of the advancement of self-driving technologies. Driving scenarios are becoming increasingly complex – pedestrians, bicycles, road work, etc. – so it is crucial that the models used for self-driving cars are able to respond to these scenarios as quickly as possible to ensure roads are as safe as possible. This research project aimed to build an AI models using deep neural networks for autonomous driving, while using a GPU to increase the speed of the training and inference process. The NVIDIA Jetson TX2 ‘Jet’ robot was used as the vehicle for autonomous driving, utilizing a camera mounted on the front to collect images in order to build the neural network. The output from the neural network was then sent from the TX2 to the Arduino in order to communicate to the robot which direction it needed to go to avoid any obstacles in its path.
GPU Accelerated Gabor Transform for SAR Image Compression
This research project seeks to identify if a decrease in computational time exists for the Gabor transform. Specifically, Python’s PyCUDA library, which incorporates CUDA’s GPU accelerated libraries into Python, is being utilized and benchmarked. By observing the difference in the runtimes between two very similar programs, one of which will make use of CUDA, any computational increase in performance will have been due to CUDA’s GPU accelerated libraries. The Gabor transform is a discrete wavelet transform that is utilized in many algorithms and programs that have a desire to filter an image. For example, SAR image compression can be handled through said filtering which would be able to remove the high frequency noise to result in a image that loses some detail in the noise but retains important aspects such as edges and well defined shapes. A very practical aspect of the Gabor transform is that by adjusting values that affect how the filtering is computed a different result in what is filtered and the ratio of compression can be achieved.
The two figures shown above illustrate what steps go into preprocessing an image before a Gabor filter is applied. The FFT Real Centered Image is simply a Fast Fourier transformed copy of the input image centered at the zero frequency. Following this, the image’s frequency content can be manipulated with Gabor filters
Development of Sea Ice Applications using GPGPU (July, 2015 - July, 2017)
C-CORE is engaged in understanding the iceberg design loads and sea ice forecasting needs of the energy sector. As the energy industry ventures into oceans with greater ice cover and more icebergs, there is a significant need for engineering tools to plan and manage operations in exploration, production, and safety. In response to industry demand over the years, C-CORE has developed several algorithms for simulating iceberg and sea ice loads. Industry often requires multiple scenarios for their risk assessments, and existing simulations are computationally and time intensive. The project will support investigation of the utility of a General Purpose Computing on Graphics Processing Units (GPGPU) approach with a Compute Unified Device Architecture (CUDA) programming toolkit to develop efficient sea ice applications such as iceberg design load and sea ice forecasting. The project goal is to significantly reduce the time required for each simulation. With the required reduced simulation time, offshore companies will be able to run more simulations and further reduce the risk in offshore structure design and operations in ice covered water. This project also aims to increase R&D capacity in energy research at C-CORE through collaboration with local researchers, publications, and the training of highly qualified personnel (HQP).
Together with Dr. Dennis K. Peters and Dr. Claude Daley, we have investigated the possibility of using General Purpose Computing on Graphics Processing Units (GPGPU) approach with a Compute Unified Device Architecture (CUDA) programming toolkit to develop fast algorithms which can simulate the ice-interactions in a very short time. It can be also used to develop tools give the users the ability to analyze ice interactions for the purpose of developing ice-structure models. This research was done as a part of STePS2(Sustainable Technology for Polar Ships & Structures) Project.
Together with Dr. Dennis K. Peters, we have worked on Test Driven Development(TDD). In TDD, the test code is a formal documentation of the required behaviour of the component or system being developed, but
this documentation is necessarily incomplete and often over-specific. An alternative approach to TDD is to write a complete specification of the required
behaviour in a formal notation and to generate test cases and oracles from that specification.
In our research we have developed tools in support of this approach that allow formal specifications to be written in a readable manner that is tightly integrated with the code through an integrated development environment, and test oracles and test cases to be generated automatically. The generated test code integrates smoothly with test frameworks (e.g., JUnit) and so can be directly used in TDD. This approach has the advantage that the specifications can be complete and appropriately abstract but still support TDD.