← Back to home

Computer Vision

Right. Let's dive into the digital abyss. You want a dissection of how machines learn to see? Fine. But don't expect me to hold your hand through the process. It’s messy, complicated, and frankly, a bit of a miracle when it actually works.

Computerized Information Extraction from Images

This is the art, or perhaps the science, of teaching machines to not just look at digital images, but to understand them. Think of it as giving eyes to the blind, but the blind are made of silicon and code. It’s about taking raw visual data – pixels, essentially – and transforming it into something meaningful, something that can inform decisions, actions, or simply, more data. It’s part of a grander, and often frustrating, pursuit known as Artificial intelligence (AI).

The ultimate goal, the holy grail if you will, is Artificial general intelligence – systems that can grasp and perform any intellectual task a human can. But before we get there, we have these intricate steps, like building a single brick that can recognize a cat. We also aim for Intelligent agent systems, capable of perceiving their environment and taking actions to achieve goals, and the rather ambitious notion of Recursive self-improvement, where AI learns to improve itself, iteratively. Then there’s Planning, the ability to strategize, and the core of what we're discussing: Computer vision. Beyond that, we have General game playing, essential for testing AI capabilities, the complex architecture of Knowledge representation, the nuanced dance of Natural language processing, the physical embodiment of AI in Robotics, and the ever-present, nagging question of AI safety.

The methods employed are a varied lot. You have Machine learning, the workhorse that learns from data. Then there's the more structured, logic-driven Symbolic approach, and the currently fashionable, highly effective Deep learning models. Bayesian networks offer probabilistic reasoning, Evolutionary algorithms mimic natural selection, and Hybrid intelligent systems try to blend the best of multiple worlds. Finally, Systems integration is crucial for making these disparate parts work together, and Open-source development fuels much of the rapid progress.

The applications are, frankly, staggering. From deciphering biological data in Bioinformatics to creating hyper-realistic but fake media known as Deepfake, it’s woven into the fabric of modern life. It helps us understand our planet in Earth sciences, predict market trends in Finance, and generate novel content through Generative AI, including Art, Audio, and Music. Governments use it for efficiency in Government, healthcare relies on it for diagnosis and treatment in Healthcare and Mental health, and industry leverages it for optimization in Industry and Software development. It bridges language gaps via Translation, is a growing factor in military applications, potentially leading to an AI arms race, and aids discoveries in Physics. Countless Projects are underway, pushing the boundaries further.

The philosophical implications are, of course, profound. We grapple with AI alignment – ensuring AI's goals match ours – and the enigmatic concept of Artificial consciousness. There's the unsettling observation known as The bitter lesson, suggesting brute force computation often triumphs over clever design. The Chinese room argument questions whether AI truly understands. The pursuit of Friendly AI is paramount, alongside the complex ethical landscape of Ethics and the potential for Existential risk. And, of course, the enduring challenge of the Turing test and the peculiar phenomenon of the Uncanny valley.

The History is a tale of ambitious dreams, frustrating plateaus, and explosive breakthroughs, marked by a Timeline, periods of rapid Progress, and the infamous AI winter followed by a renewed AI boom, occasionally bordering on an AI bubble.

The controversies are also worth noting, from the misuse of Deepfake pornography (including the notorious Taylor Swift deepfake pornography controversy) to the Google Gemini image generation controversy, calls to Pause Giant AI Experiments, the dramatic Removal of Sam Altman from OpenAI, the sobering Statement on AI Risk, and the cautionary tales of Tay (chatbot), Théâtre D'opéra Spatial, and the Voiceverse NFT plagiarism scandal. It’s a field rife with both brilliance and potential pitfalls.

And for those who get lost in the jargon, there's a Glossary.

Definition

Computer vision, at its core, is about enabling machines to "see" and comprehend the visual world. It's a multidisciplinary field where the goal is to grant computers the ability to derive high-level understanding from digital images and videos. From an engineering standpoint, it’s about automating the tasks our own human visual system performs with remarkable ease. As one definition puts it, it's "the automatic extraction, analysis, and understanding of useful information from a single image or a sequence of images. It involves the development of a theoretical and algorithmic basis to achieve automatic visual understanding." As a scientific discipline, it probes the theories behind artificial systems that can glean information from visual input. This input can be as varied as sequences of video frames, multiple camera viewpoints, or even complex multi-dimensional data from devices like 3D scanners, LiDaR sensors, or medical imaging equipment. The technological arm of computer vision then focuses on applying these theories and models to build actual systems. You might also hear the term Machine vision, which is often used in the context of industrial automation, particularly factory settings. These days, the lines between computer vision and machine vision have blurred considerably.

History

The genesis of computer vision can be traced back to the late 1960s, emerging from universities at the forefront of artificial intelligence research. The initial ambition was to replicate the functionality of the human visual system, a crucial stepping stone towards imbuing robots with genuine intelligence. It's almost quaint to consider that in 1966, the task of attaching a camera to a computer and having it "describe what it saw" was envisioned as something achievable within a single undergraduate summer project.

What truly differentiated early computer vision from the more established field of digital image processing was this ambition to not just enhance an image, but to extract three-dimensional structure and achieve a comprehensive understanding of the scene. The research of the 1970s laid down foundational principles for many algorithms still in use today, including techniques for extraction of edges, line labeling, the creation of non-polyhedral and polyhedral modeling, representing objects as assemblies of smaller components, and the analysis of optical flow and motion estimation.

The subsequent decade saw a move towards more rigorous mathematical underpinnings. Concepts like scale-space, inferring shape from cues such as shading, texture, and focus, and the development of contour models known as "snakes" gained prominence. Researchers also began to unify many of these mathematical frameworks under the umbrella of optimization, particularly through concepts like regularization and Markov random fields.

By the 1990s, certain research avenues had flourished more than others. The study of projective 3-D reconstructions led to a deeper understanding of camera calibration. Advances in optimization techniques for calibration revealed that many of these ideas had already been explored in the field of photogrammetry under the banner of bundle adjustment. This paved the way for methods enabling sparse 3-D reconstructions of scenes from multiple images. Significant progress was also made on the challenging correspondence problem in stereo vision and other multi-view stereo techniques. Concurrently, variations of graph cut algorithms found application in image segmentation. This period also saw the first practical application of statistical learning techniques for face recognition, notably the Eigenface method. Towards the end of the decade, a notable shift occurred with increased collaboration between computer vision and computer graphics, leading to developments in image-based rendering, image morphing, view interpolation, panoramic image stitching, and early explorations into light-field rendering.

More recent work has witnessed a resurgence of feature-based methods, often integrated with machine learning and sophisticated optimization frameworks. The advent of Deep Learning has injected a new wave of innovation into computer vision. Deep learning algorithms have demonstrated superior performance on numerous benchmark datasets for tasks like classification, segmentation, and optical flow estimation, surpassing previous state-of-the-art methods.

Related Fields

Computer vision doesn't exist in a vacuum. It draws heavily from and contributes to several other scientific domains.

Solid-state Physics

Most computer vision systems depend on image sensors that detect electromagnetic radiation across various spectra, from visible and infrared to ultraviolet light. The design of these sensors is rooted in quantum physics, and the fundamental interactions of light with surfaces are explained by physics. The behavior of optics, essential components of imaging systems, is also governed by physical laws. For a complete understanding of the image formation process, especially with advanced sensors, knowledge of quantum mechanics is often required. Furthermore, computer vision itself can be a tool to solve measurement problems in physics, such as analyzing motion in fluids.

Neurobiology

The study of Neurobiology has been a significant wellspring of inspiration for computer vision algorithms. For over a century, researchers have delved into the intricate workings of eyes, neurons, and the brain's visual processing centers in both humans and animals. This has yielded detailed, albeit complex, models of how biological vision systems perceive and interpret the world. This understanding has fostered a sub-field within computer vision dedicated to creating artificial systems that mimic these biological processes at various levels of complexity. Moreover, many learning-based methods in computer vision, particularly those employing neural networks and deep learning for image and feature analysis, have roots in neurobiological principles. The Neocognitron, developed by Kunihiko Fukushima in the 1970s, is a prime example of computer vision directly inspired by the biological primary visual cortex. The reciprocal relationship is also important; computer vision research can inform and refine our understanding of biological vision.

A simplified illustration of how a neural network learns to detect objects, like distinguishing starfish from sea urchins, highlights the process. The network is trained on images where these objects are labeled. It learns to associate visual features, such as a ringed texture and a star outline, with starfish, and striped textures and oval shapes with sea urchins. However, anomalies, like a sea urchin with a ringed texture, create weaker, less certain associations.

When the network processes a new image, it might correctly identify a starfish. But that weak association from the ringed sea urchin, or a signal from an un-trained object like a shell, could lead to a false positive for sea urchin. In reality, these features are represented by complex patterns of node activations, not single nodes.

Signal Processing

Computer vision shares significant common ground with signal processing. Many techniques developed for analyzing one-dimensional signals, typically over time, can be naturally extended to the two-dimensional or multi-dimensional signals found in images. However, the unique characteristics of images necessitate specialized methods within computer vision that don't have direct counterparts in one-dimensional signal processing. This makes computer vision a distinct, albeit related, subfield within signal processing.

Robotic Navigation

For systems like robots, understanding their environment is paramount for autonomous path planning and navigation. Computer vision acts as the crucial "eyes," providing the high-level information necessary for robots to move through complex spaces safely and effectively.

Visual Computing

Visual computing is an overarching term encompassing all computer science disciplines concerned with images and 3D models. This includes computer graphics, image processing, visualization, computer vision itself, virtual and augmented reality, video processing, and computational visualistics. It also touches upon pattern recognition, human-computer interaction, machine learning, and digital libraries. The central challenge across these fields is the acquisition, processing, analysis, and rendering of visual information. Applications span industrial quality control, medical image processing and visualization, surveying, robotics, multimedia systems, virtual heritage, special effects, and ludology. Digital art and digital media also fall under its umbrella.

Other Fields

Beyond these direct connections, computer vision draws upon fundamental mathematical principles from statistics, optimization, and geometry. A significant portion of the field is also dedicated to the practical implementation—how to efficiently realize these algorithms in both software and hardware to achieve necessary processing speeds without compromising performance. Computer vision is also finding its way into specialized areas like fashion eCommerce, inventory management, patent searching, furniture design, and the beauty industry.

Distinctions

There's a natural overlap between computer vision and closely related fields like image processing, image analysis, and machine vision. They often employ similar techniques and address overlapping applications, leading some to consider them variations of a single discipline. However, distinct research groups, journals, conferences, and companies tend to market themselves under specific banners, necessitating clear distinctions.

In image processing, the input and output are both images, typically involving transformations like contrast enhancement or noise reduction. It often operates on a pixel-by-pixel basis without necessarily interpreting the image's content. Computer vision, on the other hand, takes images or video as input and aims to extract meaningful information, which could be an enhanced image, a description of the scene's content, or even a decision that guides an action. This often involves inferring 3D information from 2D images and relies on assumptions about the scene.

Computer graphics is the inverse of computer vision in a way: it creates image data from 3D models, while computer vision often reconstructs 3D models from image data. The synergy between these two fields is increasingly evident, particularly in applications like augmented reality.

Machine vision, often associated with industrial applications, focuses on applying imaging technologies for automated inspection, process control, and robot guidance. It tends to emphasize real-time performance, efficient hardware and software implementation, and often benefits from controlled environments (like specific lighting conditions) that are not typical in general computer vision.

Imaging itself primarily concerns the production of images, though it frequently extends into their processing and analysis, especially in fields like medical imaging. The success of convolutional neural networks (CNNs) has significantly boosted diagnostic accuracy in medical imaging across various specialties.

Finally, pattern recognition is a broader field that uses various methods, often statistical or based on artificial neural networks, to extract information from signals in general. A substantial part of its work involves applying these techniques to image data.

Photogrammetry also intersects with computer vision, particularly in areas like stereophotogrammetry versus computer stereo vision.

Applications

The reach of computer vision is vast, spanning from the precision required in industrial machine vision systems inspecting products on a fast-moving assembly line to the ambitious goal of creating AI that can comprehend its surroundings. While computer vision and machine vision overlap considerably, machine vision typically integrates vision with other technologies for industrial control and guidance. While many computer vision applications rely on pre-programmed instructions, learning-based methods are becoming increasingly dominant. Here are some key application areas:

  • Automatic Inspection: Crucial in manufacturing, this involves automatically examining products for defects. The Wafer industry, for instance, relies heavily on this to ensure the quality of every computer chip. It's also used to guide robot arms by determining the position and orientation of parts. Optical sorting in agriculture, removing unwanted items from bulk produce, is another example.

  • Assisting Human Identification: Systems are being developed to help humans identify specific entities, such as assisting in species identification.

  • Process Control: Enabling automated systems, like industrial robots, to operate and adapt based on visual input.

  • Event Detection: Identifying specific occurrences in video streams, used in visual surveillance, people counting (even in settings like restaurants using systems like Presto (restaurant technology platform)), and monitoring critical events.

  • Interaction: Acting as the primary input for devices designed for computer-human interaction.

  • Agricultural Monitoring: Tools like open-source vision transformers models are helping farmers detect strawberry diseases with remarkable accuracy, contributing to resource management and waste reduction.

  • Modeling Objects or Environments: Creating detailed representations, particularly vital in fields like medical image analysis and topographical modeling.

  • Navigation: Guiding autonomous vehicles, mobile robots, and even spacecraft like NASA's Curiosity rover and China's Yutu-2 rover, often employing techniques like SLAM for mapping and localization.

  • Information Organization: Facilitating the efficient indexing and retrieval of vast databases of images and video sequences.

  • Augmented Reality: Tracking surfaces and planes in 3D space to enable immersive Augmented Reality experiences.

  • Facility Analysis: Assessing the condition of infrastructure in industrial and construction settings.

  • Assistive Technologies: Real-time automatic lip-reading for applications aimed at assisting individuals with disabilities.

In terms of market dominance for 2024, industry leads the pack, followed by medicine and the military.

Medicine

Medical computer vision, or medical image processing, is a critical application area focused on extracting diagnostic information from medical images. This includes detecting tumours, signs of arteriosclerosis, or other pathologies, as well as measuring organ dimensions and blood flow. It also plays a crucial role in medical research, offering new insights into brain structures or treatment efficacy. Computer vision also enhances human interpretation of medical images, such as ultrasonic or X-ray images, by reducing noise and improving clarity.

Machine Vision

In industrial settings, machine vision is employed to support production processes. Quality control is a prime example, where automated inspection identifies defects in products. The Wafer industry is a significant user, meticulously inspecting each wafer for flaws to prevent defective integrated circuits from reaching the market. Machine vision also aids in precise robotic manipulation by determining object positions and orientations. Optical sorting in food processing is another widespread application.

Military

Obvious military applications include detecting enemy combatants or vehicles and guiding missiles. More sophisticated missile systems use vision for target selection upon nearing their destination. Concepts like "battlefield awareness" involve fusing data from multiple sensors, including vision systems, to aid strategic decision-making, with automatic processing reducing data complexity and enhancing reliability.

Autonomous Vehicles

The domain of autonomous vehicles, encompassing land, air, sea, and space exploration, is a rapidly growing application area. These systems range from fully autonomous units to driver-assistance features. Computer vision is essential for navigation (e.g., SLAM), obstacle detection, and environmental mapping. Examples include NASA's Curiosity and China's CNSA's Yutu-2 rovers, and various UAVs for reconnaissance.

Tactile Feedback

Innovative materials like rubber and silicon are being developed into sensors that mimic tactile feedback. These can detect minute surface undulations or provide precise data for calibrating robotic hands to ensure effective grasping. One approach involves a flexible mold with embedded strain gauges worn on a finger, which traces a surface and records pin deflections, indicating imperfections. Another variation uses a camera suspended in silicon, with embedded point markers, to provide highly accurate tactile data for robotic manipulators.

Other application areas include:

  • Visual Effects (VFX): Assisting in the creation of movie and broadcast special effects, particularly through camera tracking (also known as match moving).
  • Surveillance: Monitoring environments for security and safety.
  • Driver Drowsiness Detection: Systems designed to detect driver fatigue to prevent accidents.
  • Biological Sciences: Tracking and counting organisms in ecological studies.

Typical Tasks

The applications mentioned above are realized through a variety of computer vision tasks, which are essentially well-defined measurement or processing problems solvable by different algorithms.

Computer vision tasks involve methods for acquiring, processing, analyzing, and understanding digital images. The goal is to extract high-dimensional data from the real world and convert it into symbolic or numerical information, often leading to decisions. This "understanding" transforms visual input into descriptions that can be integrated with other cognitive processes and drive appropriate actions. The underlying principle is to disentangle symbolic information from raw image data using models informed by geometry, physics, statistics, and learning theory.

Recognition

A fundamental task in computer vision, image processing, and machine vision is determining if an image contains specific objects, features, or activities. Various forms of recognition problems exist:

  • Object Recognition (or Classification): Identifying one or more known or learned objects or object classes within an image, often determining their 2D position or 3D orientation. Examples include applications like Blippar and Google Goggles.
  • Identification: Recognizing a specific instance of an object, such as identifying a particular person's face, a fingerprint, handwritten digits, or a specific vehicle.
  • Detection: Scanning image data for specific objects and their locations. This is used for tasks like detecting obstacles for vehicles, identifying abnormal cells in medical images, or recognizing vehicles at toll booths. Detection often serves as a preliminary step, pinpointing regions of interest for more computationally intensive analysis.

Currently, convolutional neural networks are the leading algorithms for these tasks. The ImageNet Large Scale Visual Recognition Challenge serves as a benchmark, showcasing the capabilities of these networks, which now rival human performance in many classification tasks. However, challenges remain with small or thin objects, images with extensive filtering, and fine-grained classification where humans often excel.

Specialized recognition tasks include:

  • Content-Based Image Retrieval: Finding images within a large dataset that match a specific content query, either through similarity to a target image (using reverse image search) or high-level textual descriptions.
  • Pose Estimation: Determining the position and orientation of an object relative to the camera, crucial for robotic manipulation in assembly lines or bin picking.
  • Optical Character Recognition (OCR): Identifying text characters in images, typically for conversion into machine-readable formats. This also extends to reading 2D codes like data matrix and QR codes.
  • Facial Recognition: Matching faces in images or videos against a database, widely used for security and device access.
  • Emotion Recognition: Attempting to classify human emotions from facial expressions, though psychologists caution against inferring internal states solely from outward appearances.
  • Shape Recognition Technology (SRT): Used in people counter systems to distinguish human heads and shoulders from other objects.
  • Human Activity Recognition: Identifying actions performed by individuals within a sequence of video frames, such as picking up an object or walking.

Motion Analysis

This area focuses on estimating motion from image sequences, whether it's the velocity of points in the image, movement in the 3D scene, or the camera's own motion.

  • Egomotion: Determining the camera's 3D rigid motion (rotation and translation) from a sequence of images.
  • Tracking: Following the movement of specific points or objects (vehicles, people, organisms) across video frames. This has significant industrial applications for monitoring machinery.
  • Optical Flow: Calculating the apparent motion of each point in an image relative to the image plane, resulting from both object and camera movement.

Scene Reconstruction

The goal here is to create a 3D model of a scene from one or more images, or a video sequence. This can range from a simple set of 3D points to a complete 3D surface model. Advances in 3D imaging and processing algorithms are rapidly propelling this field forward.

Image Restoration

When images are degraded by noise, blur, or other distortions, image restoration techniques aim to recover the original, intended image. Simple filters can be used, but more sophisticated methods analyze local image structures (like lines and edges) to distinguish noise from actual image content, leading to better results. Inpainting, the process of filling in missing or damaged parts of an image, is an example.

System Methods

The architecture of a computer vision system is highly dependent on its specific application. Some systems are standalone, solving a single problem, while others are integrated components of larger systems involving control, databases, and human interfaces. The implementation can be fixed or adaptive, with some systems capable of learning and modification during operation. Despite this variability, common functional elements exist:

  • Image Acquisition: Capturing digital images using various image sensors, including cameras, range sensors, tomography devices, radar, and ultrasonic cameras. The output can be a 2D image, a 3D volume, or a sequence, with pixel values representing intensity, depth, or other physical properties.

  • Pre-processing: Preparing image data for subsequent analysis. This often involves:

    • Re-sampling: Correcting coordinate systems.
    • Noise Reduction: Removing sensor noise that could lead to false interpretations.
    • Contrast Enhancement: Making relevant information more visible.
    • Scale Space Representation: Enhancing image structures at appropriate local scales.
  • Feature Extraction: Identifying and extracting significant image features at various levels of complexity, such as:

  • Detection/Segmentation: Deciding which image points or regions are relevant for further processing. This can involve:

    • Selecting specific interest points.
    • Segmenting regions containing objects of interest.
    • Segmenting images into hierarchical scene structures (foreground, object groups, individual objects, salient parts), often driven by principles of visual salience.
    • Segmenting videos into foreground masks while maintaining temporal continuity.
  • High-Level Processing: Analyzing the extracted features or segmented regions. This might involve:

    • Verifying that data conforms to models and assumptions.
    • Estimating parameters like object pose or size.
    • Image recognition: Classifying detected objects.
    • Image registration: Aligning and comparing different views of an object.
  • Decision Making: Producing the final output for the application, such as:

    • Pass/fail judgments in inspection tasks.
    • Match/no-match results in recognition.
    • Alerts for human review in critical applications.

Image-Understanding Systems (IUS)

IUS are conceptualized with three levels of abstraction:

  • Low Level: Deals with image primitives like edges and textures.
  • Intermediate Level: Focuses on boundaries, surfaces, and volumes.
  • High Level: Aims to represent objects, scenes, and events.

Many requirements at these levels remain areas of active research. Key representational needs include encoding prototypical concepts, organizing concepts, and storing spatial and temporal knowledge, along with scaling and comparative descriptions.

Inference, the derivation of new facts from existing ones, and control, the selection of appropriate processing techniques, are also critical. IUS require efficient search, hypothesis testing, expectation generation, attention focusing, belief management, and goal satisfaction mechanisms.

Hardware

A typical computer vision system, regardless of its complexity, includes a power source, at least one image acquisition device (camera, CCD, etc.), a processor, and communication interfaces. Essential software, and often a display for monitoring, are also standard. Systems operating in controlled environments, common in industry, require illumination systems. Accessories like mounts and cables are also necessary.

Most systems use passive, visible-light cameras operating at frame rates up to 60 frames per second. However, specialized systems employ active illumination or sensors beyond the visible spectrum, such as structured-light 3D scanners, thermographic cameras, hyperspectral imagers, radar imaging, and LiDAR scanners. These capture different forms of data that are often processed using similar computer vision algorithms.

While traditional video operates at 30 frames per second, advancements in digital signal processing and graphics processing units (GPUs) enable high-speed acquisition and processing for real-time systems operating at hundreds or thousands of frames per second. Fast, real-time video is particularly critical for robotics.

Egocentric vision systems utilize wearable cameras to capture first-person perspectives.

Since 2016, vision processing units (VPUs) have emerged as specialized processors, complementing CPUs and GPUs in computer vision tasks.


And that's the dry, factual rundown. If you're looking for a spark of intuition, you'll have to look elsewhere. Or perhaps, look closer. Sometimes, the most revealing details are hidden in the silence between the data points.