Pros and Cons of Gaussian Smoothing

First, before we get into the pros and cons of Gaussian smoothing, let us take a quick look at what Gaussian smoothing is and why we use it.

What is Gaussian Smoothing?

Have you ever had a photo or portrait of either yourself or someone else and wanted to smooth out the facial imperfections, pimples, pores, or wrinkles? Gaussian smoothing (also known as Gaussian blur) is one way to do this. Gaussian smoothing uses a mathematical equation called the Gaussian function to blur an image, reducing image detail and noise.

Below is an example of an image with a small and large Gaussian blur. 

240px-Cappadocia_Gaussian_Blur.svg_

Image Source: Wikimedia

Pros of Gaussian Smoothing

Reduces noise in an image

Noise reduction is one of the main use cases of Gaussian smoothing. 

Easy to implement

No complicated algorithms with multiple nested for loops needed. As you can see in this MATLAB implementation, Gaussian smoothing can be done with just a single line of code.

Automatic censoring

Some use cases might require you to conceal the identity of someone or to censor images that might contain material that might be inappropriate to certain audiences. Gaussian smoothing works well in these cases.

Symmetric

Gaussian smoothing produces an image that is rotationally symmetric. It is applied the same no matter what direction you go in.

Cons of Gaussian Smoothing

Lose fine image detail and contrast

If you have a use case that requires you to examine fine detail, Gaussian smoothing might make that a lot harder. An example where you might want to examine fine detail would be in a medical image or a robot trying to grasp a specific point on an object.

Does not handle “salt and pepper noise” well

Sometimes an image might have what is known as “salt-and-pepper noise.” Salt-and-pepper noise is defined as sparsely occurring white and black pixels. Below is an image showing salt-and-pepper noise.

Noise_salt_and_pepper

Image Source: Wikimedia

Median filters typically do a better job than Gaussian smoothing at handling salt-and-pepper noise.

Definition of a Robot

If you ask a random roboticist to give you the definition of a robot, everyone will give you a different answer. If you do an online search, here is what you might get for the top result:

A robot is “a machine—especially one programmable by a computer— capable of carrying out a complex series of actions automatically (Wikipedia).” However, this definition falls short of what a robot really is. Just based on that definition, one could consider a dishwasher a robot. But a dishwasher is not a robot.

So back to the original topic of this post. What is a robot? The best definition of a robot I have seen is in Maja Matarić’s book, The Robotics Primer. Maja Matarić is the Director of the Robotics and Autonomous Systems Center at the University of Southern California. She received her PhD in Computer Science and Artificial Intelligence from MIT in 1994, where she studied under Rodney Brooks a founder and former Chief Technical Officer of iRobot, one of the largest consumer robotics companies in the world.

Here is Professor Matarić’s definition:

“A robot is an autonomous system which exists in the physical world, can sense its environment, and can act on it to achieve some goals.”

I love this definition.

  • A robot must be autonomous, which means it acts based on its own decisions.
  • A robot must exist in the physical world, which means it has to deal with gravity and the laws of physics just like we all do.
  • A robot must have sensors (look, hear, smell, and/or touch) to gather information about the world around it.
  • A robot must perform some computation based on what it has sensed and then act on the external world in some way. This is called the sense-think-act model, which has been the dominant paradigm for robotics for over 40 years.

Going back to the dishwasher example I mentioned earlier…a dishwasher is not a robot because it does not act on the external world. However, an autonomous robotic vacuum cleaner like the Roomba is a robot. The Roomba sucks up dirt on the floor.

So the next time you are wondering if something is a robot or just a robot wannabe, come back to this definition for clarification.

Definition of Computer Vision

I get asked all the time, “What is computer vision?”. Computer vision has been around since the late 1960s. Although the field has evolved significantly since then, the basic idea of computer vision remains the same.

Computer vision deals with how computers extract meaningful pieces of information from digital image or video pixels (i.e. “picture elements”), and then match these pieces of information to known, labeled ones in order to achieve understanding.