DEV Community

Cover image for How machines learn to see, interpret, and understand images
Jonathan kip
Jonathan kip

Posted on

How machines learn to see, interpret, and understand images

Understanding Convolutional Neural Networks and Computer Vision

Computer Vision is a field of Artificial Intelligence (AI) that enables computers to process and interpret visual information from images and videos.

It powers applications such as facial recognition, medical imaging, autonomous vehicles, security systems, OCR, and image search.

One of the most important technologies behind modern Computer Vision is the Convolutional Neural Network (CNN).

What Is Computer Vision?

Computers do not see images the way humans do. An image is represented as numerical values called pixels.

A grayscale image typically has one channel, while an RGB image has three:

  • Red
  • Green
  • Blue

An RGB image can therefore be represented as:

H × W × C

Where:

  • H = height
  • W = width
  • C = number of channels

For example:

224 × 224 × 3
Enter fullscreen mode Exit fullscreen mode

represents an image that is 224 pixels high, 224 pixels wide, and has three color channels.

Computer Vision algorithms process these values to identify patterns and produce meaningful results.

Common Computer Vision Tasks

Some common tasks include:

  • Image classification — assigning a label to an image.
  • Object detection — identifying objects and their locations.
  • Image segmentation — classifying individual pixels.
  • Face recognition — identifying or verifying faces.
  • Optical Character Recognition (OCR) — extracting text from images.
  • Pose estimation — detecting body positions.
  • Video analysis — understanding movement across frames.

For example, classification might tell us that an image contains a dog, while object detection can identify several dogs and locate each one.

What Is a CNN?

A Convolutional Neural Network is a deep-learning architecture designed to process grid-like data, especially images.

A traditional fully connected neural network can become computationally expensive when processing images because every pixel may be connected to many neurons.

CNNs solve this problem by processing local regions of an image using learnable filters, also called kernels.

A typical CNN contains:

Input Image
     ↓
Convolution
     ↓
Activation Function
     ↓
Pooling / Downsampling
     ↓
More Convolution Layers
     ↓
Prediction Layer
     ↓
Output
Enter fullscreen mode Exit fullscreen mode

The key advantage is that CNNs learn useful visual features automatically rather than requiring us to manually define them.

How Convolution Works

A convolutional filter is a small matrix that moves across an image.

At each position, the filter performs element-wise multiplication with the image region and sums the results. This produces a feature map.

A simplified convolution can be represented as:

Y(i, j) = Σₘ Σₙ X(i + m, j + n)K(m, n)

Where:

  • X = input image or feature map
  • K = convolutional kernel
  • Y(i, j) = output value at position (i, j)

During training, the CNN learns the values of these filters.

Some filters may learn to detect:

  • Edges
  • Corners
  • Curves
  • Textures
  • Shapes
  • Object parts

This leads to one of the most important concepts in CNNs: hierarchical feature learning.

The CNN Feature Hierarchy

CNNs generally learn increasingly complex features as information moves through the network.

Layer Typical Features
Early Edges, colors, textures
Middle Curves, shapes, patterns
Deep Eyes, wheels, windows, object parts
Final Complete objects or categories

For example, in a cat-classification model:

Pixels
  ↓
Edges
  ↓
Textures and shapes
  ↓
Eyes, ears, fur
  ↓
Cat
Enter fullscreen mode Exit fullscreen mode

The network learns this hierarchy automatically from training data.

Activation Functions

After convolution, CNNs typically apply an activation function to introduce nonlinearity.

One of the most common is the Rectified Linear Unit (ReLU):

ReLU(x) = max(0, x)

For example:

ReLU(-5) = 0
ReLU( 7) = 7
Enter fullscreen mode Exit fullscreen mode

ReLU allows neural networks to learn complex relationships that cannot be represented using only linear operations.

Padding and Stride

Two important convolution parameters are padding and stride.

Padding adds pixels around the border of an image. It can help preserve spatial dimensions and ensure that border information is processed.

Stride determines how far the filter moves during convolution.

The output size can be calculated using:

Output size = floor((N − F + 2P) / S) + 1

Where:

  • N = input size
  • F = filter size
  • P = padding
  • S = stride

For example, with a 32 × 32 input, a 3 × 3 filter, padding of 1, and stride of 1:

Output = floor((32 − 3 + 2) / 1) + 1
       = 32
Enter fullscreen mode Exit fullscreen mode

The spatial dimensions therefore remain 32 × 32.

Pooling

Pooling reduces the spatial size of feature maps.

The two common types are max pooling and average pooling.

Max Pooling

Max pooling selects the largest value:

[1  3]
[2  4] → 4
Enter fullscreen mode Exit fullscreen mode

Average Pooling

Average pooling calculates the average:

[1  3]
[2  4] → 2.5
Enter fullscreen mode Exit fullscreen mode

Pooling reduces computational requirements and can make models less sensitive to small changes in object position.

However, excessive downsampling can remove useful spatial information, which is why some modern architectures use other downsampling techniques.

How CNNs Learn

CNN training involves repeatedly making predictions and correcting errors.

The process is roughly:

  1. Pass an image through the network.
  2. Generate a prediction.
  3. Calculate the loss.
  4. Use backpropagation to calculate gradients.
  5. Update the model's parameters.
  6. Repeat over many batches and epochs.

For multiclass classification, a common loss function is cross-entropy:

L = −Σᵢ yᵢ log(ŷᵢ)

A simplified gradient-descent update is:

θₜ₊₁ = θₜ − η∇θL

Where:

  • θ = model parameters
  • η = learning rate
  • ∇θL = gradient of the loss

Over many training iterations, the network learns filters that produce better predictions.

Softmax and Classification

For a classification problem, the final layer can produce a score for each class.

A softmax function converts these scores into probabilities:

P(y = i | x) = eᶻⁱ / Σⱼ eᶻʲ

For example:

Cat:    0.82
Dog:    0.12
Rabbit: 0.06
Enter fullscreen mode Exit fullscreen mode

The model predicts Cat because it has the highest probability.

Training, Overfitting, and Generalization

CNNs require representative training data.

For a vehicle-recognition model, the dataset should ideally contain vehicles under different:

  • Lighting conditions
  • Viewing angles
  • Backgrounds
  • Weather conditions
  • Resolutions
  • Levels of obstruction

If a model performs extremely well on training data but poorly on unseen data, it may be overfitting.

A model that performs well on unseen data is said to generalize effectively.

Data Augmentation

Data augmentation can improve generalization by creating variations of existing images.

Common techniques include:

  • Flipping
  • Cropping
  • Rotation
  • Scaling
  • Translation
  • Brightness adjustment
  • Contrast adjustment

For example, a dog image can be flipped, slightly rotated, or cropped to create additional training examples.

The transformations should remain realistic. An inappropriate transformation can change the meaning of an image and confuse the model.

Transfer Learning

Training a CNN from scratch can require substantial data and computational resources.

Transfer learning provides a practical alternative.

A pretrained model has already learned general visual features such as:

Edges → Textures → Shapes → Object parts
Enter fullscreen mode Exit fullscreen mode

These learned features can be reused for a new task.

Transfer learning is particularly useful when:

  • The dataset is small.
  • Computing resources are limited.
  • Training time needs to be reduced.
  • The new task is related to the original training task.

CNN Applications

CNNs are used across many areas of Computer Vision.

Image Classification

Examples include:

  • Animal classification
  • Traffic-sign recognition
  • Handwritten-digit recognition
  • Medical image classification

Object Detection

Object detection identifies objects and their locations.

A system might produce:

Person: 0.96
Bounding box: (x1, y1, x2, y2)

Bicycle: 0.91
Bounding box: (x1, y1, x2, y2)
Enter fullscreen mode Exit fullscreen mode

This is useful in robotics, autonomous systems, surveillance, and retail analytics.

Image Segmentation

Segmentation assigns labels to individual pixels.

Applications include:

  • Medical imaging
  • Autonomous driving
  • Satellite imagery
  • Industrial inspection

Facial Analysis

CNNs can be used for face detection, verification, and recognition.

However, these systems require careful consideration of privacy, consent, security, and fairness.

Evaluating CNN Models

Different Computer Vision tasks require different evaluation metrics.

For classification, common metrics include:

  • Accuracy
  • Precision
  • Recall
  • F1 score
  • Top-k accuracy

For object detection, Intersection over Union (IoU) measures the overlap between a predicted bounding box and the ground-truth box:

IoU = Area of Intersection / Area of Union

IoU ranges from:

0 → No overlap
1 → Perfect overlap
Enter fullscreen mode Exit fullscreen mode

For segmentation, commonly used metrics include:

  • Pixel accuracy
  • IoU
  • Dice coefficient
  • Mean IoU

Accuracy should not always be used alone. For example, in a medical-diagnosis application, false negatives may be particularly important.

Limitations of CNNs

CNNs are powerful, but they have limitations.

Data Dependence

A model can struggle when it encounters conditions that are significantly different from its training data.

Dataset Bias

Unbalanced or incomplete datasets can cause differences in model performance across groups or environments.

Adversarial Inputs

Small changes to an image can sometimes cause a model to produce an incorrect prediction.

Interpretability

CNNs can be difficult to interpret because their learned representations are distributed across many layers and parameters.

Techniques such as Grad-CAM can help visualize which image regions influenced a prediction.

Computational Requirements

Large CNNs can require significant memory and processing power.

Techniques such as quantization, pruning, model compression, and efficient architectures can help make models more suitable for edge devices.

CNNs and Modern Vision Models

CNNs remain important, but modern Computer Vision is expanding beyond convolutional architectures.

Other approaches include:

  • Vision Transformers (ViTs)
  • Attention mechanisms
  • Generative models
  • Multimodal models
  • CNN-transformer hybrid architectures

CNNs are particularly good at learning local visual patterns, while transformer-based models can capture relationships between distant regions of an image.

Many modern systems combine ideas from both approaches.

Conclusion

Computer Vision enables machines to process and interpret visual information, while Convolutional Neural Networks provide a powerful way to learn visual features directly from image data.

CNNs progressively transform raw pixels into increasingly meaningful representations:

Pixels
  ↓
Edges
  ↓
Textures
  ↓
Shapes
  ↓
Object Parts
  ↓
Objects
  ↓
Prediction
Enter fullscreen mode Exit fullscreen mode

Understanding convolution, activation functions, pooling, backpropagation, training data, and evaluation provides a strong foundation for working with Computer Vision.

CNNs are not the end of Computer Vision, but they remain an important foundation for understanding how modern visual AI systems work.


If you found this article useful, consider following for more articles about machine learning, deep learning, and computer vision.

Top comments (0)