The process of developing AI products is no simple task. It takes a village (may we add: a knowledgeable, experienced, and creative one). So, how do we go about new challenges in computer vision technology? Here are five key questions we use to guide all new projects.
1. What exact product do we want to build & do we even need AI?
The first and most basic question we ask ourselves is what solution we want to build and if users actually need it. When we have a clear answer to that question, we figure out if and in what way we should approach it with AI.
In general, AI is the right way to go under these conditions:
- The problem we set out to solve is very hard or impossible to take on with a classic or traditional development approach.
- We should be able to model the problem using a particular AI method/approach.
- There’s a sufficiently good dataset that we can use for research.
This step is an integral part of our product management and involves everyone in our organization.
2. How to model the AI problem?
Once we’ve identified the part of the product that we will use AI for, the next step is to determine how to model it. Sometimes that’s quite a simple task, but at other times, it’s not clear which approach would yield the best results. For example, in this part of the development process, we need to assess if some computer vision problem would be better solved with a semantic segmentation model or an object detection model. Our Research team carries the most important role in answering this question.
3. How do we find a good dataset?
After we have an idea of how to solve a certain problem with AI, we have to find a good-enough dataset we can work with. Very often, this is a make-or-break point, because if we cannot find a good-enough dataset for the Research team to experiment with, then we cannot provide the best solution for the problem we initially set out to solve.
There are several ways to get to data. In the process, it’s very important to understand the differences in the content and quality of datasets.
Our Sales team has a very close collaboration with partners and clients. They help us improve our technology, and we develop new features to be applied in their solutions for highly specific problems.
Sometimes, the other approach is to start by developing our own datasets internally, which is the task for our Data team.
4. How do we prepare the data for the learning process?
Raw collected data isn’t good enough for training AI models. That’s why we’ve established specific data annotation processes.
For that specific purpose, our Web team has developed a system which we internally call MLS (Machine Learning System). The MLS is used by our Data team, which is in charge of data annotation. MLS is an essential part of our product development. It enables us to have maximum control over the quality of annotated data, as well as to continuously improve and speed up the annotation process.
The process is demanding and longlasting, but we’re proud to say that in less than three years, our Data team has annotated tens of millions of images for various training purposes. The team closely cooperates with the Research team to ensure that ML engineers produce models that actually deliver on the initially set problem.
5. How to integrate the model into the final product?
The produced ML model is only one part of the puzzle. For the final product to be useful, it takes a great amount of technical and UX knowledge to bring all its parts together.
Our Tools & Infrastructure team is responsible for building specialized components for implementation and running of neural networks. Those components enable a much simpler and faster integration on mobile devices than any open-source alternatives.
The final model integration is done by our Product Development, Mobile, and Web teams. They are responsible that the final product really solves the problem for users, that the software is fast and robust, and that the user experience is tailored to each platform (iOS, Android, or web).
Why we do it this way
This process takes knowledge and creativity in software engineering, machine learning, UX, and quite a lot of persistence. But hey – no pain, no gain.
This approach enables us to always keep the bigger picture in mind, and ultimately deliver the greatest product value that we can. That’s the way we believe all AI products should be made – with the goal of supreme quality.
This is part II of our short series on building AI products for business. Read part I: What’s AI Development Really Like?