DevFest is coming this year with its typical main activity...The Hackathon, and what's better than building ingenious AI solutions to our daily life problems (more details will be given about the hackathon sub-themes).
- In the hackathon you'll be asked to prototype + demo your solution that you and your team developed during the three-day hackathon.
- Notice that theoretical knowledge in AI isn't required here, as this is not a datathon where you'll be given data that you'll be making predictions on.
Before jumping on the different ML, DL APIs and libraries, think about the problem you're solving and what task in the solution process you'll need AI for, also you need to make sure not to force the use of ML in tasks that could be easier to achieve through typical programming automation. Once you have a quiet good understanding of the problem and have designed a solution based on ML, it's crucial to know what ML task you are building, this could range from :
- Computer Vision problem (Object Detection, Face Detection...)
- Conversational AI (Speech-to-text, text-to-speech, virtual agents, natural language...)
- Tabular data processing
- and more, actually this could go for a long range of tasks.
knowing what task you'll build an AI solution for will let you select the API or library that's more suitable for your task and for the platform you're building on (Mobile, Web, Edge..)
Computer Vision API's and Libraries :
1. OpenCV – Real-Time Computer Vision Library
OpenCV is an open-source machine learning and computer vision software library. Created with a view of providing a common infrastructure for computer vision applications, OpenCV allows access to 2,500+ classic and state-of-the-art algorithms.
These algorithms are useful for several tasks, including face detection and recognition, red-eye removal, object identification, extraction of 3D object models, tracking moving objects, and stitching multiple frames together into a high-resolution image.
OpenCV has multiple interfaces like C++, Python, Java, and MATLAB, and it supports most operating systems, including Windows, Android, Linux, and Mac.
Pros:
- Usage is free, and it is open-source
- Large community support
- Offers access to more than 2,500 algorithms
- Allows you to tweak the code to serve specific purposes
2. DeepFace – Free Deep Learning Library for Face Recognition
DeepFace is currently the most popular open-source computer vision library for facial recognition with deep learning. The library offers an easy way to perform face recognition-based computer vision with Python.
If you are looking for image processing tools to perform face recognition, face verification, or real-time facial attribute analysis, DeepFace is a great way to use the best performing deep learning recognition models (Google FaceNet, VGG-Face, OpenFace, Facebook DeepFace, and more).
3. GCP Vision AI
Cloud Vision allows developers to easily integrate vision detection features within applications, including image labeling, face and landmark detection, optical character recognition (OCR), and tagging of explicit content.
There are more tools to find and that let you build SOTA (state-of-the-art) AI models, this is a selected list based on the simplicity and abstraction of the tool.
Natural language API's and Libraries :
1. Google Cloud NLP
There's not much to say about Google's capabilities and prowess in technological innovation. The tech giant leads the way in technological innovation, leading in almost every disruptive technology, and NLP is no exception. Google's NLP Cloud comes with powerful and advanced pre-trained NLP APIs that can be easily integrated into existing business systems. Google Cloud NLP provides some of the most comprehensive, useful and accurate NLP tools, including
- Content classification
- Entity sentiment analysis
- Sentiment analysis
- Syntactic analysis
- Content classification.
The Google NLP API can be easily integrated with Google's technology suite, including Google Apps and Cloud Storage, making it the best choice for companies that already make extensive use of the Google ecosystem. In addition, Google's AutoML makes it easy for business people with little or no coding experience to customize the tools to suit their business needs.
2. IBM Watson
IBM Watson’s NLP API is meant to offer businesses a convenient and streamlined solution to create highly precise custom NLP models including custom labels, and classifiers using small data sets. Also, the intuitive interface of IBM Watson makes it easy for users with little machine learning experience to develop and train NLP models.
IBM Watson app is available in up to six languages, while it is able to analyze text in up to 13 human languages. The tools offered by NLP assist users to build, manage, and evaluate custom NLP models with high accuracy and confidence.
3. Dialogflow – Give users new ways to interact with your product
Dialogflow is a Natural Language Understanding (NLU) platform that makes it easy for developers to design and integrate conversational user interfaces into mobile apps, web applications, devices, and bots. You can integrate it on Alexa, Cortana, Facebook Messenger, and other platforms your users are on.
General application
Auto ML
AutoML makes the power of machine learning available to you even if you have limited knowledge of machine learning. You can use AutoML to build on Google's machine learning capabilities to create your own custom machine learning models that are tailored to your business needs, and then integrate those models into your applications and web sites.
For mobile developers
1. ML Kit by Google
ML Kit is a mobile SDK that brings Google's machine learning expertise to Android and iOS apps in a powerful yet easy-to-use package. On the other hand, if you are an experienced ML developer, ML Kit provides convenient APIs that help you use your custom TensorFlow Lite models in your mobile apps.
2. Core ML
CoreML is a new machine learning framework introduced by Apple. You can use this framework to build more intelligent Siri, Camera, and QuickType features. ... CoreML is a great framework to get you introduced to machine learning. It provides ready-to-use models that you can integrate into your iOS apps.
Machine learning on edge devices
The analysis of large amounts of data on the basis of complex machine learning algorithms requires large computing capacities. As a result, much of the data processing is done in onsite data centers or in a cloud infrastructure. However, with the advent of powerful, low-power Internet of Things (IoT) devices, computations can now be performed on peripheral devices such as the robots themselves. This has ushered in the era of deploying advanced machine learning methods, such as convolutional neural networks (CNNs), at the edge of the network for "edge" machine learning.
Popular ML frameworks for IoT edge devices
The table below describes some of the most popular ML frameworks that run on devices. Most of these frameworks provide pre-trained models for speech recognition, object detection, natural language processing (NLP), image recognition and classification, among others. They also offer the scientist the option of taking advantage of transfer learning or starting from scratch to develop a custom ML model.
Popular edge devices and their hardware specs
How to prepare for DevFest Hackathon
If you have never had experience in building an AI solution, choose the technology you are most familiar with and try out some of the best APIs. If you have experience in building and designing ML models, you may know that using a pre-trained model can be a key factor in getting good results with few tweaks.
If a team member is confident in their mastery of a tool, you can trust them, but remember that you should choose what is best for the team and not for you personally.
Final layer
In this year's edition of the DevFest, we made sure to give everyone the chance to compete. Whatever technology that you master, you can design a wining solution, remember the idea is the critical part in the solution designing process. Don't forget that we're here to help, if you have any question you can head to the GDG community server where me and other folks will try to answer all of your questions.