A

Stefano CappelliniSC

AI • Deep Learning • Machine Learning • Software Engineering

Projects

Machine Learning projects

Facial Landmark Detection: a modern approach (Sept. 2017)

The aim of this paper is to evaluate the impact of some of the research advances in Deep Learning on the everyday development and their usefulness to practitioners. A novel Convolutional Neural Network model is presented to solve a particular instance of the Facial Landmark Detection Problem, the one obtained by considering only five landmarks (Left and Right Eye center, Nose tip, Mouth Left and Right corner). The proposed solution is a single Convolutional Neural Network, with a conceptually simple architecture, employing some of the most recent techniques: inception modules, residual connections, batch normalization, dropout and ELU units. This solution has been compared with the work by Sun et al. and the obtained results clearly show the positive impact of those techniques: it is possible for a practitioner, without a previous domain knowledge and with an average machine, to quickly build a simple model, with competitive computational performance, and able to obtain predictive performance comparable with the ones obtained by more complex, state-of-the-art models presented in the last few years. In addition, the proposed solution has proven to be relatively cheap to train. This reveals the usefulness of the research advances to practitioners.

Web projects

Flex playground

React Web App that allows to easily experiment with CSS Flexbox layout. The user can adjust the number of items, customize the flex container (setting the width, height, flex-direction, flex-wrap, justify-content, align-content, align-items, column-gap and row-gap properties), define an overall style for all the items (setting the align-self, flex-grow, flex-shrink, flex-basis, min-width, min-height and margin properties) and override it, customizing each item individually. All the changes made are immediately reflected on the UI. All the changes are immediately reflected on the UI, allowing fast prototyping.

Sasho (2016)

An URL shortening service that puts the security first. Whenever a user clicks on a shortened link, a page is opened, showing where that particular link is pointing to and asking the user if it is ok to go there. In addition, it uses the MyWOT API, warning the user if a destination looks suspicious or dangerous.

RResize (2015)

Small JQuery utility that makes the handling of the resize event easier. In particular, (1) it is possible to register a callback which will be executed only during true resizing events (when the size of the window changes). The throttling limits the number of times that callback will be called during the resizing. (2) It is also possible to register a callback that will be executed when the resizing event is over. This is probably the greatest contribute of this utility.

Learning projects

MagieSort (2014)

Java utility that allows to explore, step by step, how various sorting algorithms (Bubble sort, Selection sort, Shaker sort, Insertion sort, Gnome sort, Merge sort, Quick Sort and Heap sort) work. During the execution, it shows how the various data structures are built, the various indexes used, the indexed cells, the swaps performed, the order of the recursive calls and all the additional memory needed by the various algorithms.