Tuesday, April 14, 2015

Computer Vision: Current Trends and Future Possibilities



Extracting some useful information from images is considered as Computer Vision. These images can be of any form from Visual to Infrared to X-rays in the whole electromagnetic spectrum. The basic idea is to duplicate human visual perception in images to extract the same information.

Some major applications of Computer vision consists tasks including Object detection, Object tracking, segmentation, Image inpainting and 3d modelling from images.

A lot of research work is carried out all over the globe in all of the above mentioned fields. So in this article we are going to discuss some of the very interesting yet strange fields for new comers.

Image Inpainting:

Image inpainting is a process to recover some useful information from deteriorated images or give some artistic look to images by removing unwanted objects still maintaining smooth background. Such a task is a daily part of human life as imagine a person at some distinct place or removing a particular object from a scene but in computers, this is trivial. 

Method:

First a binary map is created on the basis of which part of the image is to be removed. Now that part of the image is filled in a manner to minimize energy. This is often done using a very simple operator called Laplacian operator. This is essentially second order derivative of image. Second order derivatives are used because its direction is similar to the direction of edges rather than perpendicular to it as in the case of first order derivative. Thus we find to minimize this function as this would perfectly reflect the second order derivative.

Image Segmentation:

Segmentation is a process of image processing to segment out one or more objects from an image. The goal is to find out a boundary of pixels that can perfectly differentiate between two objects based on colour or shape or both. Applications for image segmentation includes Object detection, Face detection and in medical imaging. Tumour detection, Surgery planning and diagnosis of anatomical structures are some of the major applications of segmentation in medical imaging.

Motion Analysis:

Motion analysis is in the simplest case to find out a moving object from a sequence of images. This work can be extended to find the direction of movement, velocity and displacement calculation and object tracking. The basic idea is find out a static region (background) and a moving region with substantial displacement. One very popular method for this is finding the Optical flow. Motion analysis is extremely important in Surveillance and video object tracking. Tracking with a moving camera increases the complexity a lot due to the relative motion between camera and the object. Tracking with multiple cameras with overlapping or non-overlapping regions are current research issues in Object tracking.

Thursday, April 9, 2015

CNN Behavior Analysis: Visualizing the activations and first-layer weights


Layer Activations 

 

The most straight-forward visualization technique is to show the activations of the network during the forward pass. For ReLU networks, the activations usually start out looking relatively blobby and dense, but as the training progresses the activations usually become more sparse and localized. One dangerous pitfall that can be easily noticed with this visualization is that some activation maps may be all zero for many different inputs, which can indicate dead filters, and can be a symptom of high learning rates.

Convolutional/FC Filters

 

The second common strategy is to visualize the weights. These are usually most interpretable on the first CONV layer which is looking directly at the raw pixel data, but it is possible to also show the filter weights deeper in the network. The weights are useful to visualize because well-trained networks usually display nice and smooth filters without any noisy patterns. Noisy patterns can be an indicator of a network that hasn't been trained for long enough, or possibly a very low regularization strength that may have led to over fitting.

Back propagation 

 

Primary reason we are interested in this problem is that in the specific case of Neural Networks, f will correspond to the loss function ( L ) and the inputs x will consist of the training data and the neural network weights. Training data is given and fixed so it is a constant factor in the equation. So here we are left with two variables which are weights and biases of each layer. In back propagation Convolutional Neural Network compute the gradient at every layer according to the loss function at output and these calculated new weights are then updated to converse the network for the final solution.

Friday, April 3, 2015

An Introduction to CNN: Carrying the Machine learning on its shoulders



Traditional neural network layers use a matrix multiplication to describe the interaction between each input unit and each output unit. This means every output unit interacts with every input unit. Convolutional networks, however, typically have sparse interactions. This is accomplished by making the kernel smaller than the input and using it for the whole image.

Parameter sharing concept is used in CNN. It refers to using the same parameter for more than one function (input values) in a model. In a convolutional neural net, each member of the kernel is used at every position of the input. The parameter sharing used by the convolution operation means that rather than learning a separate set of parameters for every location, we learn only one set. This is also called as sparse connectivity.


convolutional neural network


If the function that a layer needs to learn is indeed a local, translation invariant function, then the layer will be dramatically more efficient if it uses convolution rather than matrix multiplication. If the necessary function does not have these properties, then using a convolutional layer will cause the model to have high training error.

Pooling

First stage, the layer performs several convolutions in parallel to produce a set of presynaptic activations. In the second stage, each presynaptic activation is run through a nonlinear activation function, such as the rectified linear activation function. This stage is sometimes called the detector stage. In the third stage, we use a pooling function. A pooling function replaces the output of the net at a certain location with a summary statistic of the nearby outputs. For example, the max pooling operation reports the maximum output within a rectangular neighborhood. Pooling helps to make the representation becomes invariant to small translations of the input.

Zero-padding

Zero-padding setting is when just enough zero-padding is added to keep the size of the output equal to the size of the input. It calls same convolution, full convolution, in which enough zeroes are added for every pixel to be visited k times in each direction.

The CNN behavior analysis will be explained in the further articles from the R&D team at SiliconMentor working in Computer Vision, Biomedical Signal Analysis, VLSI and their associated domains.

Sunday, March 29, 2015

Hardware Implementation of Image Processing Algorithms

Digital image processing is done to improve the quality of images. The images are processed and enhanced in order to obtain the required information from it. It is an ever expanding field with a number of applications in medicine, space, art, meteorology, etc. Hardware implementation of digital image processing techniques is very commonly done using Verilog-HDL or VHDL gives a logical explanation of any circuit which can be further developed and tested. The main advantage of using HDLs is that any logical input can be simulated on FPGA (Hardware implementation).Application specific hardware implementation offers much greater speed than a software implementation.

Advancements in VLSI technology have made this hardware implementation an attractive, feasible and less time consuming task to undergo.  FPGA is one of the best technologies available for hardware design  because their structure is able to exploit spatial and temporal parallelism .FPGAs are ideal in many embedded systems applications because of their small size, low power consumption ,a number of input-output  ports and logic blocks. Also FPGAs are reprogrammable chips, hence are very versatile to be used.

Algorithms can be implemented in Verilog HDL using Xilinx ISE, MATLAB and MODEL SIM. Hardware implementation of Verilog codes provides us with the ability to verify the logical codes simulated using software. Hardware implementation helps in the co-simulation of the already simulated logic. It helps the designer to reformulate the algorithm.

It provides us an overlook of the way the respective logical circuit will work when brought to real life applications. Also, an idea of the market need of the circuit and how it will actually work, is provided by hardware implementation. The use of reconfigurable hardware to implement algorithms for image processing minimizes the time-to-market cost, provides prototyping and debugging.

Therefore, the reconfigurable devices like FPGA seem to be the ideal choice for implementation of image processing algorithms. SiliconMentor is a team with expertise in the fields both software implementation and hardware prototyping. The team focuses to provide a shared platform for the researchers and innovators by providing guidance in the specified areas.

Friday, March 27, 2015

Importance of Research Paper Publication in Your PhD Research



On internet you can find a million of research papers on different topics of the world. The topics can be related to different research areas such as Engineering, Science, arts or any other topic which can contribute in the advancement of the world in respective areas. Whenever a student enters in Second year or third year of their bachelor education, their mentors start to suggest them to publish their work. In the same scenario Master and PhD level students also publish research papers. Therefore the question arise why should we publish our research? This article is focused on importance of research paper publication in PhD and concludes pint wise the importance of research paper publication in PhD. PhD students usually begin their course to earn title ‘Dr’ in front of their name but after some time they realize that to earn a PhD degree they all need to publish more and more high quality research papers at national as well as international level.

This Research publication during PhD helps them in following ways:


  •          Research paper publication is important if somebody wants to remain in academia after completion of the PhD.

  •          Every university has their unique procedure to award PhD to their students. The usual process is to submit thesis but in some of the universities PhD students can submit few good quality published research papers instead of PhD thesis.

  •          The high quality research papers during PhD helps recruiters to select the best PhD scholars for future academic or researcher position.

  •          A high quality research paper helps PhD scholars to stand out from the group of ordinary researchers.

The importance of research paper publication can also be understood using an example. Let us suppose an academic or industrial organization want to test or measure the researcher reputation in national as well as international level for hiring or funding purpose. 

In that case the organization may pursue the following procedure.

  •          The number of research papers and the quality.
  •          The impact of research in terms of number of citations.
  •          National and international level research papers.
  •          National and international level research funding received.
There are many more factors for which a PhD scholar should publish a research paper anybody can explore it at Silicon Mentor.