National Institute of Technology, Tokyo College, Advanced Course
April 2017 - March 2019
Student exchange with Metropolia University of Applied Sciences
August 2017 - December 2017
All courses were taken in English. In a joint project with local students, I implemented an algorithm that evaluates the reliability of user posts for Huoletti, a healthcare-related posting app.
It is intended to run on Autoware Kernel, the real-time OS kernel developed at Tier IV, and was written from scratch based on the device specification.
A package that implements several Visual Odometry algorithms. It offers both an odometry estimation algorithm for RGB-D cameras and a feature-based odometry estimation system for monocular cameras.
It estimates odometry from RGB-D camera input by directly minimizing pixel intensity errors. I implemented it to learn the theoretical background of this method, which laid the foundation of dense Visual Odometry.
I implemented two base networks, VGG16 [9] and ResNet-101 [2], and compared their accuracy and runtime. VGG16 reached mAP 0.561 while ResNet-101 reached mAP 0.379, but on CPU, ResNet-101 ran more than twice as fast as VGG16.
A Python implementation of Sparse Bundle Adjustment (SBA) [5], an efficient 3D reconstruction algorithm.
The original implementation does not make the derivation of the Jacobian explicit in code, which makes the algorithm hard to follow. I wrote a reimplementation that maps the overall architecture and the Jacobian computation to functions in the code as clearly as possible.
An implementation of bilinear interpolation using SIMD. A plain C implementation of the same method and benchmark scripts for speed comparison are included.
PCANet [1] is a neural network for image classification that trains its weights with PCA, which makes batch training fast. Its pooling layer requires histogram calculation, and that was the bottleneck of the execution speed.
To resolve this, I implemented the histogram calculation for GPU in CuPy, which sped it up substantially. With the help of the CuPy developers, it was later merged into CuPy itself.
#298
PCANet consists only of linear operations, so its representation ability is limited. I treated PCANet as a weak learner and applied ensemble learning (Bagging) to improve classification performance. On MNIST, it reached 94.47% accuracy against 92.02% for the original PCANet.
写真測量とリモートセンシング 2023年11月号「市街地における自動運転へのSLAMの活用」 (Journal of the Japan Society of Photogrammetry and Remote Sensing, November 2023, "Utilization of SLAM for Autonomous Driving in Urban Areas", in Japanese)