📜 ⬆️ ⬇️

Technopark, Technosphere, Technotrek: Alumni Projects


Every six months, our office hosts the protection of the projects of graduates of the Mail.Ru Group educational programs. The guys from Technopark (our joint project with MSTU named after N.E. Bauman), Technosphere (project at Moscow State University) and Technotrack (at MIPT) present their applications, games, services and messengers. We have prepared for you the top 5 summer semester graduation projects with comments from their creators.


"Bright memory" - an application for the colorization of black and white photographs of the war



What is the essence
The application was launched by May 9 in conjunction with the social network Odnoklassniki. The students were responsible for the neural network architecture (implemented by PyTorch, a set of 2.5 million images was prepared and used to train the neural network - from photos with faces of people from different angles and with different lighting to sets of orders and medals, as well as frames from military films ) and for the development of the backend (the Artisto service was taken as the basis). The Odnoklassniki team was responsible for the frontend.



The application attracted the attention of 253,312 users and reached the top-5 of the year, receiving media coverage (“Rain”, RIA Novosti and others).


The project in detail
There were three of us in the team, and we identified three main areas of work:



The first task was assumed by Seva Vikulin, since at that time he had the greatest experience among us in the development of neural networks. The main tool was the PyTorch framework. I (Denis Kuzmin) took over the data preparation - this task required constant synchronization with the design of the neural network, and at that time Seva and I were already working in the same department, so it was convenient for us to share the results. I had to work a lot with the OpenCV library for recognizing faces in images, generating artificial examples and preprocessing datasets. The task of studying the architecture of Artisto and preparing for the introduction was more independent from the rest, it was taken by Boria Kopin. He had to deal with the Torch framework on Lua, to write a neural network model converter into it from PyTorch.


Deadlines became the main difficulty for us, since we were determined for a long time with the theme of the project in its final form. I had to get together in the office several times and sit until late at night - discuss the architecture of the neural network, deal with libraries, “hackaton” certain parts of the project.


From the very beginning, we agreed with our technical mentor Lesha Voropaev that the project would necessarily be connected with neural networks. We have been studying the latest developments for a long time, inventing in which area it would be interesting and useful to apply our knowledge. At some point we came across an article that described the use of neural networks for the automatic colorization of black and white images. While we were working out how to improve this approach, our grocery mentor Olya Schubert told the Odnoklassniki project team about this technology. We met with them and in the course of the discussion came to the final goal - an application with a colorization function of memorable military images. Odnoklassniki had several projects planned for Victory Day, and we also joined the general information issue.


Visearch - search by video fragments



What is the essence
For a small (up to 5 minutes) video fragment of any quality and resolution, the user can find a link to its full version on IMDb. Even if excerpts from several films are compiled in the fragment itself (as often happens in video reviews), the service will find them all.


The project in detail



Our idea appeared by chance - just thought that it would be a cool service. At the very beginning, we clearly divided the roles between the four team members: CEO, CTO, frontend and backend developer. We mainly communicated in the messenger, but sometimes we met in person at the Mail.Ru Group office, where one of the team members already worked.


Honestly, at first we didn’t believe that we could write a service. Of course, there were difficulties, because the development of a diploma was going on in parallel with studies and work, which is why we periodically broke deadlines. It was also difficult due to the lack of investment for the purchase of productive "wheelbarrows".


Applied technologies:



Separately, I want to note two important points. Firstly, the client fragment download service for algorithmic processing does not save the video to disk, but streams it via a UNIX socket. Secondly, the processed films are stored in the DBMS and in the RAM due to their low weight.


Development is conducted in closed repositories due to the potential commercial value of the project. Application demonstration by reference .


OKHear - a social project: the self-instruction manual of the dactyl alphabet (the language of the deaf-and-dumb)



What is the essence
The project is intended for people who want to learn the dactyl alphabet. The user selects the gesture in the application menu that he wants to master, and tries to repeat it on the phone’s front camera. If his gesture is similar, the application counts it.


The project in detail
The idea of ​​the application appeared spontaneously. At the presentation, our team presented about a dozen ideas to the mentors - but everyone rejected them. And then one of us came up with an idea with gesture recognition that was approved by mentors.


Initially it was assumed that the principle of the application will be this: the user points the camera of the smartphone at the person who speaks sign language and sees the translation on the screen. But this option had a high algorithmic complexity, and we did not have enough time to implement it, so we settled on a simplified version — a self-guide.


The main tasks of the application are the preparation and sending of personnel to the Haar cascade and from there to the server, as well as the processing of responses from the server. The decision whether to count a character or not is made on the basis of information from the server and a set of conditions individually selected for each character. For brevity of the code, the AndroidAnnotations library was used, for working with the Haar cascade - OpenCV. To detect hands in a video stream, a cascade classifier was used, using the signs of Haar.



Every 400 ms, the client sends a request to the TCP balancer - a compressed image in the form of a set of bytes. The balancer uses the Round Robin algorithm to distribute requests between the Docker containers that host the server itself and the trained neural network model.


The team collected all datasets independently: for each character, a five-minute video was shot from different angles and with different lighting, then the video was divided into frames and the already marked data was fed to the input of the neural network.


The project consists of client and server parts. The client part is a mobile application for Android in Java, the server part is a TCP server in Python. The neural network is trained using the Keras library. The mobile application also uses C ++ language tools for hand detection.


FindBird - aggregator of lost and found items



What is the essence
The application parses sites and groups with announcements of losses and finds and informs the user if the desired item is found. The answer can come instantly if the ad was found immediately, or postponed - if the announcement of the discovery was published later.


The project in detail
The application analyzes the text of ads, identifying keywords.



The idea appeared spontaneously: I wanted to help people losing things. After all, it is unpleasant and there is no acceptable solution. Together with the mentors developed the specifics of the implementation. Originally planned to develop applications for iOS and Android. Considering the fact that we had an iOS and Android developer in the team, we were divided, and I (Igor Belkov) were doing back-ups. Of course, we had problems with meetings, because everyone already had a job, which led to problems with synchronization of back and front. But in general, it was convenient: everyone did their part, described the methods of interaction and worked on that basis. They connected everything after the final controls in other subjects.


ShoZaSong - search service for a musical composition of a piece of text



What is the essence
The service analyzes a text fragment (typed in English, transliteration or using voice dialing) and plays the proposed compositions containing the same text from the place where this fragment occurs.


The project in detail


The slide shows the architecture of the project, indicating the technologies used.


The first and, perhaps, the most serious problem that we have encountered is the search for an interesting idea. We arrived at the final selection only a month after the start of the graduation semester. As for the distribution of roles and workflow - here we have worked very harmoniously. Each team member was able to replace the other, even though he had his own specialization. I (Valeria) was engaged in backend and machine learning, Sasha sawed the frontend, and Nikita was involved in infrastructure. Often we gathered outside of school, somewhere in Starbucks and kodili the whole weekend, it really brought pleasure and brought us closer to the result. We were not afraid to use new, not familiar to us technology. So, Nikita decided to use React Active, although he had not studied it so much before. For the Telegram bot we decided to use the Go language for this, we additionally completed summer intensive courses from Technopark. I used Python in back-end, Docker for infrastructure. In general, we tried to make the most convenient and powerful product.


Now there is a problem with the content component of our project - after all, all rights to music need to be acquired from copyright holders, and this is both material and legally difficult.
You can view the project on GitHub .




In addition to the listed projects, this semester was successfully defended:



What projects from the submitted you would rate the maximum score?


')

Source: https://habr.com/ru/post/342542/


All Articles