The dog ate on neural networks

    You see, you’ve got a dog on the street. You always see dogs on the street. Someone doesn’t notice them at all and has no trouble, there aren’t these mental torments, and in general we can assume that they have norms on the street. But you! And he noticed, and your eyes are in a wet place, you think so: “doggie. yeah, so cute, I would take it but I can’t. But it’s direct, but in no way. ” And he went so far. But he took a picture, stroked it.


    Here are such kind little ones that we need to throw into the system the geo-position of the animal at the moment and a couple of photos.

    There are those who really want to find their escaped mate or something else a little doggie. I just really want to find a pet with this. They themselves place ads, go through the gates, basements and various sites.

    2019 is conducive to more technological solutions. And our project with the working title PetSI (PetSearchInstrument) is just that.

    Concept


    In the framework of the Machine Learning for Social Good direction of the Open Data Science community, we, together with 9851754 and our team, are creating a service for searching for missing animals, in which the owner can specify a photo of the animal, address of loss and other characteristics, and in return receive the most relevant from the point of view of our algorithm for reporting found or seen animals.

    A brief algorithm of our service: we aggregate data (photos, location, breed, etc.) from several sites, convert images by a neural network into a vector, train knn and show the nearest neighbors of the entered photo. You find the lost animal, the animal returns home. Everyone is happy)



    In addition to searching for missing pets, we are developing a recommendation system to accelerate the addition of shelter animals to new owners. While we do not have statistics on user behavior on the site, we therefore use content-based recommendations based on visual similarity.



    What is already there


    • An excellent team of beginners and experienced professionals;
    • http://petsiai.ru - a working prototype with a web interface for entering a photo of an animal and displaying similar ones (the prototype will be available within a few days after publication);
    • Automated pipeline for the collection and processing of information;
    • Updated animal database (about 11,000 dogs and 6,000 cats.).

    Under the hood


    Development is underway in python. We use the following technology stack:

    • Docker, Gitlab CI / CD for application deployment;
    • Google Kubernetes Engine for hosting our services and applications;
    • Scrapy, RabbitMQ for data collection;
    • Sklearn, keras for ML;
    • Django, Flask, Bootstrap for the site;
    • Elasticsearch for text search.

    To synchronize all stages of our workflow, we use Airflow:

    Multi-stage data collection. First, spiders collect information and in raw form send it to the queue. On the other side of the queue, special processors convert the data to the desired form (for example, convert text to address) and add it to the DBMS.



    The collected data is validated and sent to training models. A special service has been written for the site that downloads new data and models, and also initiates a recount of search results for each user. The whole cycle takes about 8 hours.

    How we use machine learning and data analysis:

    • Sex determination by text;
    • Definition of the breed by text;
    • Allocation of addresses from messages;
    • Image segmentation;
    • Translation of the image into a vector and ANN.

    Immediate plans


    • Confirm the operation of the project and connect the first pair of "master-lost pet";
    • Develop cooperation with shelters and simplify the match-up of the host-pet pair;
    • Collaborate with other resources and make the service as user-friendly as possible.

    Come to us!




    For further development, we need:

    • Fighters of the front and backend armies;
    • ML-specialists;
    • Data engineers and sysadmins to support pipeline operability;
    • DevOps to deploy applications on k8s and help in its administration;
    • Spider Craftsmen (scrapy);
    • Journalists to popularize the project;
    • Programmers in python.

    Why might you need this:

    • Social responsibility if it interests you. Suddenly, do you like to benefit?
    • A real project where you can implement your cool skills or pump them;
    • You are strange and go everywhere you invite. This is also a good option;
    • You yourself were looking for a pet, you know how it feels;
    • Or are you the one who can’t just pass by the events on the street, but don’t know what to do with it.

    There is a plan. Need people on the team.

    Write in a personal or fill out the form and join!

    Instead of a conclusion


    Finally, we prepared a selection of meme dogs and similar dogs from shelters that we found using our algorithms

    Also popular now: