Bring your ideas to life

Deep analysis of your task | Provided data processing | Exploratory Analysis | Identifying appropriate technology stack and approaches | Commercial proposal with milestones

For larger solutions, extra support, documentation and features added to create a corporate level product

Focused on startups and small business we provide a better pricing result oriented with minimal number of steps

broutonlab devline data
Use descriptive and diagnostic analytics to understand and characterize the data
broutonlab devline data
Deploying the world’s most accurate pre-trained models to your task
broutonlab devline data
Training & testing cycle for the models, until our highest evelopment standards are met
broutonlab devline data
Packing everything up in a working product for the needed environment. Specialized in C++ and Python
From your history
Imagine a food start-up. Given a food item, you would like to identify possible tags for the image. For instance, given an image of a cake, you would like to provide tags such as carbs and dessert. Such a model is extremely useful for Content-Based Retrieval for businesses based on the food industry. For instance, you can create an automated dietary planar app based on the requirements of the user and retrieve relevant images and recipes for the appropriate food items
  • Baseline
  • Model Training
  • Deployment
Professional analysis of your idea
The task of predicting what an image represents is called image classification. An image classification model is trained to recognize various classes of images. In multi-class classification, one data sample can belong to only one class. Where in multi-label classification, one data sample can belong to multiple classes (labels)
Exploratory data analysis
Class distribution of the provided data is good, there is a small imbalance hidden there. Not a big problem researcher could think. But looking on data at another angle provides huge imbalance in labels distribution
Tackle the data imbalance
First genuine thought pushes data-scientists for this purpose to Batch generator from imblearn.keras library Not everybody knows that it’s not compatible with the task, because Imbalanced-learn currently supports only binary, multiclass and binarized encoded multiclass targets. Multilabel and multioutput targets are not supported
Undersampling challenge
In this data, labels carbs and fats are very frequent. But we can not simply drop the data samples with majority labels, because these data samples could be associated with other labels as well. Dropping these samples will result in the loss of other labels too
Oversampling challenge
If we produce similar examples with minority classes, there would be multiple labels with similar pattern. This would increase the chance of overfitting.
Size-Similarity Matrix
This matrix classifies your computer vision problem considering the size of your dataset and its similarity to the dataset in which your pre-trained model was trained. As a rule of thumb, consider that your dataset is small if it has less than 1000 images per class. Regarding dataset similarity, let common sense prevail.
Convolutional neural network
A typical CNN has two parts: Convolutional base, which is composed of a stack of convolutional and pooling layers. The main goal of the convolutional base is to generate features from the image; and the Classifier, which is usually composed of fully connected layers. The main goal of the classifier is to classify the image based on the detected features. A fully connected layer is a layer whose neurons have full connections to all activation in the previous layer.
Repurposing a pre-trained model
Starts with removing the original classifier, then adding a new classifier that fits your purposes, and finally fine-tune model according to one of three strategies
Correct activation & loss functions
The final score for each class should be independent of each other. Thus we can not apply softmax activation, because softmax converts the score into probabilities taking other scores into consideration. We use the sigmoid activation function which converts each score of the final node between 0 to 1 independent of what the other scores are
Standing on the shoulder of giants
A pre-trained model is a model that was trained on a large benchmark dataset to solve a problem similar to the one that we want to solve. Accordingly, due to the computational cost of training such models, it is common practice to import and use models from published literature
Transfer Learning
Transfer learning is a popular method in computer vision that allows building accurate models in a timesaving way. Instead of starting the learning process from zero, you get patterns that have been learned solving a different problem. In computer vision, transfer learning is usually expressed through the use of pre-trained models
We were experimenting with all kinds of resnets, mobilenets, and even nasnets, but our final pick for further development was a lightweight mobilenetv2 and NASNetMobile with accurate Xception and InceptionResNetV2 models
Instant prototyping
This is the ability to implement deep learning concepts with higher levels of abstraction with a ‘keep it simple’ approach. Being able to go from idea to result with the least possible delay is key to doing good research
State-of-the-art models deployment
Keras deep learning library applications module provides model definitions and pre-trained weights for a number of popular architectures, such as VGG16, ResNet50, Xception, MobileNet, and more. These models can be used for prediction, feature extraction, and fine-tuning
As result of appliying these steps we created a model which is available to use from cloud to local and standalone solutions. This model sucessfully classifies food images in order to produce human undertandable and useful data.
Why us?
Hiring freelancers has its pros and cons, even with the good competitive prices, the final quality of the product is not always ensured. On the other side there is the corporate sector where everything is made big scale, payment too. What if I want to find an outsourcing provider with reasonable prices and who's priority is the solution quality and this is guaranteed by the provider's experience? Then you are in the right place
broutonlab why us professionals
We are professionals
All of our team members have master or phd degree, with 30+ years of experience we produce maintainable and scalable code
broutonlab why us professionals
This is what we do
BroutonLab is a Data Science company specialized on Computer Vision, Machine Learning and Natural Language Processing
broutonlab why us professionals
We know how to do outsourcing
100+ projects completed
50%  with clients from USA
+10 000 hours of work delivered
98% of success rate
Q: i need to create an alphagozero, which plan i need to choose?
A: We do free project complexity evaluation and offer you the optimal tariff. AlphaGoZero task, as other complex tasks, requires a lot of non-trivial exploration and experimetation, this kind of problem are solved within the Premium tariff.
Q: when do you start working on the project?
A: We begin the process with a free project complexity evaluation and we offer you the optimal tariff and your project's complexity grade. Then we sign a contract and after that we start working.
Q: why do you request this amount of money?
A: Every single step counts and it cannot be removed, otherwise it will compromise the final product. We provide the minimum amount of steps required and therefore the minimum amount of money necessary for us to make it happen.

We provide a high-end service based on our experience, our team members are highly specialized in specific stages of the solution, minimizing the development time with every interaction. We make the most out of the price you agree to pay in order to produce solutions with the best quality based on your requirements

Result and short time focused. Ideal for startups, developers and small business who need to start implementing AI logic into their work model.
  • Development of mid-sized scale projects
  • Team up to 5 developers
  • Flexible hours, starting from 10 hours per week
  • Pay-per-Task; micro-task management
  • Communication with developers by email/Skype/Zoom
  • Support period of 1 month after providing the solution
Complex problems resolution, extra features and support for those whose requirements are more complex than the average, providing quality within deadlines as priority
  • Development of large scale projects
  • Dedicated team up to 10 developers
  • Dedicated bilingual team manager
  • Support period of 1 year after providing the solution
If your project requirements are not met by our current plans or you want to build a specific solution, we can arrange a meeting to understand your ideas. We are open to new challenges
Contact us