Sunday, December 17, 2017

What is a Data Structure?

A Data structure is a way to store and organize data in order to facilitate access and modifications. Each, among all the existed, has it's strengths and limitations, which are to be understood before using any - No single data structure works well for all purposes.

Sunday, November 12, 2017

What is an Algorithm?

An Algorithm is a sequence of computational steps (to reorder set of numbers, say for an instance) that transform the input ({6, 2, 5, 1, 4, 3}) into the output ({1, 2, 3, 4, 5, 6}).

Saturday, October 28, 2017

OpenGL client-server Model

OpenGL is also designed to work with X Window System, wherein, multiple computers are connected to one another via network and the computer that displays the graphics you create might not be the computer that runs your graphics program. In which case, the computer on which your program runs and issues OpenGL drawing commands is called the client and the computer that receives those commands and performs the drawing is called the server. OpenGL programs can work across a network even if the client and server are different kinds of computers as the protocol for transmitting OpenGL commands is always the same. 

If an OpenGL program is not running across a network, then there must only be one computer and is both the client and server.

Wednesday, September 20, 2017

GLU

OpenGL Utility Library is more sophisticated, built on top of OpenGL (which otherwise allows you to build your desired model up from a small set of geometric primitives - points, lines and polygons) that provides high-level interface for describing relatively more complicated models of 3D objects - automobiles, parts of the body, airplanes, or molecules besides setting up matrices for specific viewing orientations and projections, performing polygon tessellation and rendering surfaces. 

Friday, August 4, 2017

AI vs Machine Learning vs Deep Learning

Artificial Intelligence - Human Intelligence exhibited by Machines.
Machine Learning - An Approach to Achieve Artificial Intelligence.
Deep Learning - A Technique for Implementing Machine Learning.

Artificial Intelligence is a generalized form of Machine and Deep Learning and check this incredible post for detailed information.

Succinctly, Deep Learning is-a Machine Learning is-a(n) Artificial Intelligence.

Tuesday, August 1, 2017

Deep Learning

Deep Learning extends (IS-A a type of) Machine Learning by adding cascade of layers to efficiently exercise data patterns before predicting the outcome to the closest possible, which lead to some scenarios better than humans.

Today's driver-less cars do use this mechanism underneath.

Saturday, July 15, 2017

Qt

Qt (pronounced cute) is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying code base.

~ Wiki

Sunday, June 4, 2017

Machine Learning

Machine Learning extends (IS-A type of) Artificial Intelligence (AI) by incorporating algorithms - are often categorized as supervised and unsupervised - into computers with an ability to learn without being explicitly programmed when exposed to the new data. 

Tuesday, May 9, 2017

Saturday, April 22, 2017

OpenCV

Open Source Computer Vision is a library of functions, designed for computational efficiency with a strong focus on real-time computer vision applications. Having written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, so it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform.

It has C, C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS.

Deployed uses span the range from stitching street view images together, detecting intrusions in surveillance video, monitoring mine equipment, helping robots navigate and pick up objects, detection of swimming pool drowning accidents, checking runways for debris and inspecting labels on products in factories on to rapid face detection.
~ Wiki

Saturday, March 18, 2017

Intel IPP

Intel® Integrated Performance Primitives is a multi-core, multi-OS and multi-platform ready, computationally intensive and highly optimized software library that meets all your Imaging, Vision, Signal, Storage and Security needs.
~ Wiki

Tuesday, February 7, 2017

OpenCL

Open Computing Language is the open standard for cross-platform, parallel programming diverse processors found in personal computers, servers, mobile devices and embedded platforms. It greatly improves the speed and responsiveness of a wide spectrum of applications including gaming, scientific, medical software, professional creative tools and vision processing etc...

To put it in a nutshell, the open standard for parallel programming of heterogeneous systems.
~ Wiki

Sunday, January 1, 2017

CUDA vs OpenGL

CUDA is a parallel computing platform API, which extended the usage of GPU (which was otherwise used only for graphics processing) for general purpose processing. But the scope is limited to CUDA-enabled GPUs manufactured by NVIDIA only and does not work on different GPUs by other manufacturers. CUDA platform is designed to work with C, C++ and Fortran programming languages hence easier to code straight to GPU. Compatible with most standard operating systems.
e.g. Identify hidden plaque in arteries, Analyze air traffic flow and Visualize molecules etc...

OpenGL is a graphics library, which provides set of API that makes use of GPU (hardware-accelerated) to render graphics faster - focus is specific to rendering on GPUs. Supported on essentially every GPU. Required advanced skills in graphics programming. It is language and platform independent.
e.g. CAD, Virtual reality, Flight simulation and Video games etc...