OpenCV (Open Source Computer Vision Library) is free for both academic and commercial use. It has C++, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android.
Machine Learning is an idea to learn from examples and experience, without being explicitly programmed. You feed data to the algorithm, and it builds logic based on the data given.
Natural language processing
NLP is an area concerned with the interaction between computers and humans in natural language. The goal of NLP is to enable computers to understand language as well as we do.
Tensorflow is one of the widely used libraries for implementing Machine learning and other algorithms involving large number of mathematical operations.
Keras is a high-level neural networks API, capable of running on top of Tensorflow, Theano, and CNTK. It enables experimentation through a high level, user-friendly, modular and extensible API.
Scikit Learn is a library which features various classification, regression and clustering algorithms including SVM, random forests, gradient boosting, k-means etc.