PHP 7, Laravel 5.4, Eloquent ORM, Backpack for Laravel - Admin panel, CRUD, Permission Manager, React.JS, Intel® Compute Stick
The “Selfie machine” project is based on the idea of creating an attractive photo collage and share it on social media using Web-based technology and hardware components. Users take pictures in front of a green screen and the “Selfie machine” provides them with a wide set of themes and picture galleries, from which they can choose a background or scenography to replace the green field of the original image. It is also equipped with additional frames, polaroid plaques and decorations to put the finishing touches of your selfie. When the user is satisfied with the result the machine processes the photo in real time, stores it and shares it on social media (Facebook, Google +).
Details about the project:
The hardware part of the selfie machine consists of:
- Intel ComputeStick – a small single-board computer with wireless LAN and Bluetooth connectivity
- Logitech Web Camera - a 16-megapixel web camera
The main functionality is achieved with the help of The Green Screen Core. This component is responsible for previewing an image, capturing and processing it using the 'Chroma Keying' method. It is divided into two parts – for the client and for the server. The clients part provides the user with a "real-time preview" of the final image during the capture. The main function of the server part is to take high-quality images, make the necessary processing and return it back to the user.
Chroma Кeying is a visual technique for layering two images (or videos) together based on color hues (chroma range). The process allows the removal of a background from the subject of a photo based on the color range in the foreground footage. Then another image can be inserted into the scene. Usually a green or blue screen is used for the purpose of taking the initial image. It is important to have enough distance between the subject and the screen, otherwise the green/blue can reflect on the photographed object and can disrupt the cropping. The following steps can be defined:
1. Calibrating the excluding color – green or blue
2. Creating dynamic filter
3. Calculating the edges of the filter with the help of Anti-Аliasing
4. Creating of a cropping mask
5. Applying the cropping mask to the image
6. Overlay and rendering of the final image layers
We developed a small software package that will be installed (completely separate from the system) on each machine. This software will monitor at any time whether the machine is running and if it is connected to the Internet. This allows us to have real-time information about any machine, whether it is online (with power supply and internet connection).
We take all the necessary measures to provide communication security between the machine and the server. The high degree of confidentiality and protection from spying and forging is guaranteed by SSL certificate.