"Hard work beats talent, when talent does not work hard "
This project was a result of collaboration between engineer undergraduates in University of Moratuwa (UoM) and medical students in University of Colombo.(UoC) I tied hands with Dr.Prashan Thurul and Dr.Prabuddhi Fernandopulle to solve a core medical issue in Sri Lanka.
The problem is, when one diagnosed with nephrotic syndrome he needs to be monitored daily for a long term. The requirement for 24hr protein in urine estimation is not practical for daily monitoring , in the 1st world countries the 'Dipstick test' is mainly used for this - which is quite expensive. In countries like Sri Lanka, the 'heat coagulation' test is widely used which has its own issues, hence this project was born in order to address the current issues in the heat coagulation method.
Our solution was an IoT based mobile app which calculate the visibility level and which in return help to monitor the coagulation levels and its progress for a long time.
The idea was pitched in 'Brainstorm 2018', organized by the EMBS chapter of IEEE it is the premier biomedical competition in SL, and won 1st place
Currently I am working on a chatbot based on RNN and gated recurrent unit (GRU). Than the much used LSTM, GRU is said to yield better results in RNNs.
Pytorch was used for this task. Initially the data was cleaning and all rare words together with sentences longer than 10 words were removed .
Why GRUs instead of LSTM ? GRUs perform better than LSTMs in RNN
A bidirectional implementation in my model was done. Accounting for the past data input as well as the future input.
The implementation also consits of a single layered attention mechasnism
After 4000 iterations the following losses were incurred
The trained chatbots responses for inputs were as below
Conclusion :- There is room for development in making the bot understand the statements between a question and a statement Better and more datasets would be a way forward with , higher number of iterations. Complex attention mechanisms would be a way forward for better response. And complex encoder and decoder structures
This is an implementation of the candid mesh. We extracted 113 face feature points. This project is quite similar to face swap function used in snapchat.
This code needs a bit of time to run; which means, real time attachment of a webcam is not quite possible as it takes 0.2 minutes for an image to do the computations in a 4GB - 2.2 GHZ PC.
The Jacobian transformation for the dlib feature points creates the 113 face points.
The Gaussian-Newton approximation is done to match the face colors after the face swap.
The ability to match the face swap with taking the facial emotions is an added advantage of this implementation. i.e , if the mouth is open , the face swap has the ability to match and swap accordingly.
The Image before face swap, the mesh created and the image after face swap and color rendering is presented below.
The objective is simple. It is to create a 3D sphere. Slice it in a any multiple angles, get the images which will be produced similar to a ultra sonic imager. And later with the collected images reconstruct the 3D sphere.
This task was given as a 24hr challenge, for my internship selection at Piurimaging, Germany. The task was to be completed in 24 hrs.
Contours were observed to create the resultant image and classes (voxels) of the sphere were given values mapped to replicate the process of a scan to image as well as a image to scan. Bi-linear interpolation was tried with in the allocated time to smooth the effects caused by lack of images to reconstruct the entire sphere.
Samples of the resultant images and the scanning process are given below
The images below shows the contours created, two scan angles and how it would interact with the sphere.
and the actual sphere as well as the sphere resulting from the reconstruction and bi-linear interpolation
Background :- A micro-controller PCB was built based on Atmega328pd, to function as a IoT device. The device was working fine for 18 days and afterwards crashed into a non-responsive state.
After some initial analysis it was visible that the stack was crashing as the memory was low hence began this project to optimize the MQTT library to run on micro-controller with less storage. The initial round of analysis showed that the micro-controller's memory used was around 86% . After the optimization the memory used was reduced to 52%.
The following matlab model was created to visualize and test out the scenario in Simulink.
The model basically gives the ability to visualize the given task by controlling the following parameters.
Additionally it is notable that the packet generated interval or the switching probabilities were not changed as it was kept constant to achieve the optimum performance parameters. The entity generated was also kept at a constant with a new entity generated every second. The mean of the time distribution was kept the same as the entity generated rate.