As business’s demand for complex automation grows, so does the gap between what organizations need from ML solutions and what off-the-shelf, blackbox products can provide. At dida, we specialize in developing custom AI solutions for medium to large enterprises. With academic backgrounds in mathematics and physics, our highly specialized team is adept at taking an abstract approach to complex problems to build sophisticated, real-world AI solutions for our customers. And because our solutions are modular by design, they are explainable, giving companies a clear view of what is happening at every step along the way.
The energy of the future versus bottlenecks of the past
We applied our unique combination of mathematics and machine learning skills to good effect when we used Google Cloud to build a custom AI solution to automate part of Enpal’s solar panels sales process. With rising demand for environmental sustainability solutions in Germany, Enpal was enjoying a period of rapid growth on its way to becoming the country’s first greentech unicorn. To sustain this growth, Enpal needed a more efficient way of generating quotes for prospective solar panel customers. This process involved a salesperson entering a satellite image of the customer’s rooftop into a desktop application, estimating the angle of the roof, and manually counting the number of roof tiles to determine its size. Using this estimate, the salesperson would then calculate the number of solar panels the customer would need, before creating a mock-up to show the solar panels on the roof.
Altogether, this process took one salesperson 120 minutes to complete, making it difficult to scale as the business grew. The manual counting of the roof tiles and the inaccuracy of estimating the roof’s angle meant it was error-prone too, leading to inaccurate projections of costs and energy production. Enpal wanted to develop a custom AI solution to automate the process, reducing its inefficiency and increasing its accuracy. Recognizing the need for a combination of AI expertise and mathematical problem solving, Enpal came to us.
Training robust ML models the efficient way
At dida, we are platform-agnostic to accommodate individual customers’ preferences, but whenever we have the choice, we build our solutions on Google Cloud. A holistic platform with an extensive set of tools for AI developers, Google Cloud is easy to use and, because we only use what we pay for, it is cost efficient. As we developed Enpal’s solution, we broke the process down into a series of smaller steps, allowing us to build a modular, explainable solution. We used Google Cloud solutions at almost every step of the way.
The first step was to gather enough data, or rooftop images, to build a robust machine learning model. We used the Google Maps Platform API to gather images of rooftops of all shapes and sizes to train the model. These images were all stored in Cloud Storage, where automatic storage class transitions helped us manage costs.
With these images, we built an initial baseline model to prove that the concept worked. This involved teaching the model to distinguish between rooftops and other features, and to understand where obstacles such as chimneys and skylights would prevent a solar panel being placed. As we developed the model, we used a CI/CD pipeline in Cloud Build to run experiments, adjusting parameters to build a functional working model. Using Cloud Build allowed us to maintain a continuous development cycle, increasing the efficiency of the process, and enabling us to build our baseline model in just four weeks.
Taking an abstract approach to real-world problems
We then needed to spend some time finding the right formula to accurately calculate the angle of the roof’s south-facing side. For this, our team leaned on its mathematical problem-solving skills, applying projective geometry to build a model capable of calculating the correct angle based on roof photos supplied by prospective customers. Combining this mathematical method with the ML model gave us an automated process to calculate the roof area, to which we added two further steps — one to calculate the number of solar panels required, and the other to visualize their placement on the roof.
We used Compute Engine throughout the ML model-training process, adding GPUs to our virtual machines to accelerate our workloads and give us high availability. With Compute Engine we had the flexibility to quickly scale our usage up and down as necessary, ensuring we only paid for the compute power we needed. As we fine-tuned our model, we used TensorBoard to monitor our individual training process, helping us to assess the performance of the model.
Automating the way to a faster, more accurate sales process
The entire development process took six months, at the end of which Enpal had a custom, automated solution to quickly and easily assess the size of a roof and the number of panels required. And because the solution was modular, Enpal had good visibility of how it was working and was able to manually adjust details along the way, such as the precise dimensions of a roof, to ensure the outcome was as accurate as could be. The performance metric we used to measure the accuracy of rooftop detection was called Intersection over Union (IoU). After model training, optimization, and post processing, we reached an IoU of 93%.