Below are the tools we used to build our system. Tools such as programming languages, IDE's, and libraries.
C++ is an object-oriented language and an extension of C. It is an intermediate language that contains features from low and high level languages. C++ will be used to preprocess the image and create a more manageable data set to use in a Neural Network algorithm. C++ will also handle the post processing of the image and convert the initial processed data back into a Hi-res image with the new data
OpenCV is an open source machine learning software library. The library contains more than 2500 optimized algorithms that can be used to detect faces, identify objects, track camera movements, stitch images together, and many others. It contains interfaces for C++, C, Python, Java, and MATLAB and is supported on Windows, Mac OS, and Linux. OpenCV will ease the interaction between C++ and Python and allow us to incorporate machine learning algorithms into our program. Specifically from the Machine Learning library in OpenCV we will be focusing on using Neural Network classes.
Boost.Python is a C++ library that enables ease of interaction between C++ and Python. The library includes support for C++ to Python exception translation, manipulating Python objects in C++, and exporting C++ iterators as Python iterators. It allows developers to easily expose C++ class functions and objects to Python as well as the other way around. This library will help us incorporate both languages into the same project
Python is a powerful and fast language that can be incorporated well with other languages and systems. Python syntax is easy to learn and read, which in turn can reduce the cost of program maintenance. The IDE our team will be using for Python during the development of this project will be Pycharm. Unlike other text editors that only do syntax highlighting, the Pycharm IDE is aware of all of Python’s language rules and code structure. Pycharm also comes with many useful features that include code navigation, autocomplete, integrated debugging, integrated unit tests, clickable stack traces, and many more. The Neural Network algorithm that will handle the Image Pattern Recognition will be implemented in Python.
Github is an online Git repository service offering all of the distributed version control and source code management. Github also provides access control and collaboration features which include bug tracking, feature requests, and task management. The source code for our project shall be available through Github initially maintained by Team strata. Once the Image Pattern Recognition program is completed, the Github repository will be transferred over to the sponsor Dr. Ryan Anderson.
Lasagne is a lightweight library used to build and train neural networks using Theano. Theano is a python library allowing developers to define, optimize, and evaluate mathematical expressions. More information about Theano and Lasagne can be found through the links below.