Visão computacional

A visão computacional é um campo interdisciplinar que lida com o modo como os computadores podem ser feitos para obter um entendimento de alto nível a partir de imagens ou vídeos digitais. Do ponto de vista da engenharia, procura automatizar tarefas que o sistema visual humano pode fazer.

As tarefas de visão computacional incluem métodos para aquisição, processamento, análise e compreensão de imagens digitais e extração de dados de alta dimensão do mundo real para produzir informações numéricas ou simbólicas, por exemplo, nas formas de decisões. A compreensão neste contexto significa a transformação de imagens visuais (a entrada da retina) em descrições do mundo que podem interagir com outros processos de pensamento e provocar ação apropriada. Esse entendimento da imagem pode ser visto como o desemaranhamento de informações simbólicas a partir de dados de imagens usando modelos construídos com o auxílio da geometria, física, estatística e teoria da aprendizagem.

Como disciplina científica, a visão computacional está preocupada com a teoria por trás dos sistemas artificiais que extraem informações das imagens. Os dados da imagem podem ter várias formas, como sequências de vídeo, visualizações de várias câmeras ou dados multidimensionais de um scanner médico. Como disciplina tecnológica, a visão computacional procura aplicar suas teorias e modelos para a construção de sistemas de visão computacional.

Os subdomínios da visão computacional incluem reconstrução de cena, detecção de eventos, rastreamento de vídeo, reconhecimento de objetos, estimativa de pose em 3D, aprendizado, indexação, estimativa de movimento e restauração de imagens.

Definição
A visão computacional é um campo interdisciplinar que lida com o modo como os computadores podem ser feitos para obter um entendimento de alto nível a partir de imagens ou vídeos digitais. Do ponto de vista da engenharia, procura automatizar tarefas que o sistema visual humano pode fazer. “A visão computacional está preocupada com a extração, análise e compreensão automáticas de informações úteis a partir de uma única imagem ou uma sequência de imagens. Ela envolve o desenvolvimento de uma base teórica e algorítmica para alcançar uma compreensão visual automática.” Como disciplina científica, a visão computacional está preocupada com a teoria por trás dos sistemas artificiais que extraem informações das imagens. Os dados da imagem podem ter várias formas, como sequências de vídeo, visualizações de várias câmeras ou dados multidimensionais de um scanner médico. Como disciplina tecnológica, a visão computacional procura aplicar suas teorias e modelos para a construção de sistemas de visão computacional.

História
No final dos anos 1960, a visão computacional começou em universidades que eram pioneiras em inteligência artificial. Foi concebido para imitar o sistema visual humano, como um trampolim para dotar robôs com comportamento inteligente. Em 1966, acreditava-se que isso poderia ser conseguido através de um projeto de verão, anexando uma câmera a um computador e fazendo com que ele “descrevesse o que via”.

O que distinguia a visão computacional do campo predominante do processamento digital de imagens na época era o desejo de extrair a estrutura tridimensional das imagens com o objetivo de alcançar uma compreensão plena da cena. Estudos na década de 1970 formaram as primeiras bases para muitos dos algoritmos de visão computacional que existem hoje, incluindo extração de bordas de imagens, rotulação de linhas, modelagem não-poliédrica e poliédrica, representação de objetos como interconexões de estruturas menores, fluxo óptico e estimativa de movimento.

A próxima década viu estudos baseados em análises matemáticas mais rigorosas e aspectos quantitativos da visão computacional. Isso inclui o conceito de escala de espaço, a inferência da forma a partir de várias sugestões, como sombreamento, textura e foco, e modelos de contorno conhecidos como cobras. Os pesquisadores também perceberam que muitos desses conceitos matemáticos poderiam ser tratados dentro da mesma estrutura de otimização dos campos aleatórios de regularização e Markov. Na década de 1990, alguns dos tópicos de pesquisa anteriores tornaram-se mais ativos do que os outros. Pesquisas em reconstruções 3-D projetivas levaram a um melhor entendimento da calibração da câmera. Com o advento dos métodos de otimização para calibração de câmeras, percebeu-se que muitas das ideias já foram exploradas na teoria de ajuste de pacotes do campo da fotogrametria. Isso levou a métodos para reconstruções esparsas em 3-D de cenas de várias imagens. Progresso foi feito no problema de correspondência estéreo denso e outras técnicas de estéreo multi-visão. Ao mesmo tempo, variações do corte de grafos foram usadas para resolver a segmentação de imagens. Esta década também marcou a primeira vez que técnicas de aprendizado estatístico foram usadas na prática para reconhecer rostos em imagens (ver Eigenface). No final dos anos 90, uma mudança significativa ocorreu com o aumento da interação entre os campos de computação gráfica e visão computacional. Isso incluiu renderização baseada em imagem, morphing de imagem, interpolação de visualização, costura de imagem panorâmica e renderização antecipada de campo de luz.

Um trabalho recente viu o ressurgimento de métodos baseados em recursos, usados ​​em conjunto com técnicas de aprendizado de máquina e estruturas complexas de otimização.

Campos relacionados

Inteligência artificial
Áreas de inteligência artificial lidam com planejamento autônomo ou deliberação de sistemas robóticos para navegar em um ambiente. É necessária uma compreensão detalhada desses ambientes para navegar por eles. Informações sobre o ambiente podem ser fornecidas por um sistema de visão computacional, atuando como um sensor de visão e fornecendo informações de alto nível sobre o ambiente e o robô.

A inteligência artificial e a visão computacional compartilham outros tópicos, como reconhecimento de padrões e técnicas de aprendizado. Consequentemente, a visão computacional é vista às vezes como parte do campo da inteligência artificial ou do campo da ciência da computação em geral.

Engenharia da Informação
A visão computacional é frequentemente considerada parte da engenharia da informação.

Física do estado sólido
A física do estado sólido é outro campo que está intimamente relacionado à visão computacional. A maioria dos sistemas de visão computacional se baseia em sensores de imagem, que detectam a radiação eletromagnética, que é tipicamente na forma de luz visível ou infravermelha. Os sensores são projetados usando física quântica. O processo pelo qual a luz interage com as superfícies é explicado usando a física. Física explica o comportamento da óptica, que é uma parte essencial da maioria dos sistemas de imagem. Sensores de imagem sofisticados exigem até mesmo a mecânica quântica para fornecer uma compreensão completa do processo de formação de imagem. Além disso, vários problemas de medição na física podem ser abordados usando a visão computacional, por exemplo, movimento em fluidos.

Neurobiologia
Um terceiro campo que desempenha um papel importante é a neurobiologia, especificamente o estudo do sistema de visão biológica. Durante o último século, houve um extenso estudo de olhos, neurônios e estruturas cerebrais dedicadas ao processamento de estímulos visuais em humanos e em vários animais. Isso levou a uma descrição grosseira, porém complicada, de como os sistemas de visão “reais” operam para resolver certas tarefas relacionadas à visão. Esses resultados levaram a um subcampo dentro da visão computacional, onde os sistemas artificiais são projetados para imitar o processamento e o comportamento de sistemas biológicos, em diferentes níveis de complexidade. Além disso, alguns dos métodos baseados em aprendizado desenvolvidos dentro da visão computacional (por exemplo, análise de redes e análise de características e características baseadas em redes neurais e aprendizagem profunda) têm seu histórico em biologia.

Algumas linhas de pesquisa de visão computacional estão intimamente relacionadas ao estudo da visão biológica – de fato, assim como muitas linhas de pesquisa de IA estão intimamente ligadas à pesquisa da consciência humana e ao uso de conhecimento armazenado para interpretar, integrar e utilizar informações visuais. O campo da visão biológica estuda e modela os processos fisiológicos por trás da percepção visual em humanos e outros animais. A visão computacional, por outro lado, estuda e descreve os processos implementados em software e hardware por trás de sistemas de visão artificial. O intercâmbio interdisciplinar entre a visão biológica e a visão computacional provou-se proveitoso para ambos os campos.

Processamento de Sinais
Outro campo relacionado à visão computacional é o processamento de sinais. Muitos métodos para processamento de sinais de uma variável, tipicamente sinais temporais, podem ser estendidos de uma maneira natural ao processamento de sinais de duas variáveis ​​ou sinais de múltiplas variáveis ​​em visão computacional. No entanto, devido à natureza específica das imagens, existem muitos métodos desenvolvidos dentro da visão computacional que não têm contrapartida no processamento de sinais de uma variável. Juntamente com a multidimensionalidade do sinal, isso define um subcampo no processamento de sinal como parte da visão computacional.

Outros campos
Além das visões acima mencionadas sobre visão computacional, muitos dos tópicos de pesquisa relacionados também podem ser estudados de um ponto de vista puramente matemático. Por exemplo, muitos métodos na visão computacional são baseados em estatísticas, otimização ou geometria. Finalmente, uma parte significativa do campo é dedicada ao aspecto de implementação da visão computacional; como os métodos existentes podem ser realizados em várias combinações de software e hardware, ou como esses métodos podem ser modificados para ganhar velocidade de processamento sem perder muito desempenho.

Distinções
Os campos mais próximos da visão computacional são o processamento de imagens, análise de imagens e visão de máquina. Há uma sobreposição significativa na variedade de técnicas e aplicações que elas cobrem. Isso implica que as técnicas básicas usadas e desenvolvidas nesses campos são semelhantes, algo que pode ser interpretado como se houvesse apenas um campo com nomes diferentes. Por outro lado, parece ser necessário que grupos de pesquisa, revistas científicas, conferências e empresas se apresentem ou comercializem como pertencentes especificamente a um desses campos e, portanto, várias caracterizações que distinguem cada um dos campos dos outros foram apresentado.

Computação gráfica produz dados de imagem a partir de modelos 3D, a visão computacional geralmente produz modelos 3D a partir de dados de imagem. Há também uma tendência para uma combinação das duas disciplinas, por exemplo, como explorada na realidade aumentada.

As seguintes caracterizações parecem relevantes, mas não devem ser tomadas como universalmente aceitas:

Processamento de imagem e análise de imagem tendem a se concentrar em imagens 2D, como transformar uma imagem em outra, por exemplo, operações em pixels, como aprimoramento de contraste, operações locais como extração de borda ou remoção de ruído ou transformações geométricas como girar a imagem . Essa caracterização implica que o processamento / análise de imagens não exige suposições nem produz interpretações sobre o conteúdo da imagem.
A visão computacional inclui a análise 3D a partir de imagens 2D. Isso analisa a cena 3D projetada em uma ou várias imagens, por exemplo, como reconstruir a estrutura ou outras informações sobre a cena 3D a partir de uma ou várias imagens. A visão computacional muitas vezes depende de suposições mais ou menos complexas sobre a cena representada em uma imagem.
Visão de máquina é o processo de aplicar uma variedade de tecnologias e métodos para fornecer inspeção automática baseada em imagem, controle de processo e orientação de robô em aplicações industriais. A visão de máquina tende a se concentrar em aplicações, principalmente em manufatura, por exemplo, robôs e sistemas baseados em visão para inspeção, medição ou separação baseada em visão (como coleta de caixa). Isso implica que as tecnologias de sensor de imagem e a teoria de controle geralmente são integradas ao processamento de dados de imagem para controlar um robô e que o processamento em tempo real é enfatizado por meio de implementações eficientes em hardware e software. Implica também que as condições externas, como a iluminação, podem ser e geralmente são mais controladas na visão de máquina do que na visão geral por computador, o que pode permitir o uso de diferentes algoritmos.
Há também um campo chamado imagem que se concentra principalmente no processo de produção de imagens, mas às vezes também lida com processamento e análise de imagens. Por exemplo, a imagiologia médica inclui um trabalho substancial na análise de dados de imagem em aplicações médicas.
Finalmente, o reconhecimento de padrões é um campo que utiliza vários métodos para extrair informações de sinais em geral, principalmente com base em abordagens estatísticas e redes neurais artificiais. Uma parte significativa desse campo é dedicada à aplicação desses métodos aos dados de imagem.

Aplicações
As aplicações variam de tarefas como sistemas industriais de visão de máquina que, digamos, inspecionam garrafas em alta velocidade em uma linha de produção, para pesquisar inteligência artificial e computadores ou robôs que podem compreender o mundo ao seu redor. Os campos de visão computacional e visão de máquina têm sobreposição significativa. A visão computacional cobre a tecnologia central da análise automatizada de imagens, usada em muitos campos. Visão de máquina geralmente se refere a um processo de combinar análise de imagens automatizada com outros métodos e tecnologias para fornecer inspeção automatizada e orientação de robôs em aplicações industriais. Em muitos aplicativos de visão computacional, os computadores são pré-programados para resolver uma tarefa específica, mas os métodos baseados em aprendizado estão se tornando cada vez mais comuns. Exemplos de aplicações de visão computacional incluem sistemas para:

Inspeção automática, por exemplo, em aplicações de manufatura;
Assistência aos seres humanos em tarefas de identificação, por exemplo, um sistema de identificação de espécies;
Processos de controle, por exemplo, um robô industrial;
Detectar eventos, por exemplo, para vigilância visual ou contagem de pessoas;
Interação, por exemplo, como entrada para um dispositivo para interação entre computadores e humanos;
Modelagem de objetos ou ambientes, por exemplo, análise de imagens médicas ou modelagem topográfica;
Navegação, por exemplo, por um veículo autônomo ou robô móvel; e
Organizar informações, por exemplo, para indexar bancos de dados de imagens e seqüências de imagens.

Um dos campos de aplicação mais proeminentes é a visão computacional médica, ou processamento de imagens médicas, caracterizado pela extração de informações de dados de imagem para diagnosticar um paciente. Um exemplo disso é a detecção de tumores, arteriosclerose ou outras alterações malignas; medições das dimensões dos órgãos, fluxo sanguíneo, etc. são outro exemplo. Também apóia a pesquisa médica fornecendo novas informações: por exemplo, sobre a estrutura do cérebro ou sobre a qualidade dos tratamentos médicos. As aplicações da visão computacional na área médica também incluem o aprimoramento de imagens interpretadas por seres humanos – imagens ultrassônicas ou imagens de raios-X, por exemplo – para reduzir a influência do ruído.

Uma segunda área de aplicação em visão computacional está na indústria, às vezes chamada de visão de máquina, onde a informação é extraída com a finalidade de suportar um processo de fabricação. Um exemplo é o controle de qualidade, onde detalhes ou produtos finais estão sendo inspecionados automaticamente, a fim de encontrar defeitos. Outro exemplo é a medição da posição e orientação dos detalhes a serem apanhados por um braço robótico. A visão mecânica também é muito usada no processo agrícola para remover material indesejável de alimentos a granel, um processo chamado triagem ótica.

Aplicações militares são provavelmente uma das maiores áreas de visão computacional. Os exemplos óbvios são a detecção de soldados ou veículos inimigos e orientação de mísseis. Sistemas mais avançados de orientação de mísseis enviam o míssil para uma área em vez de um alvo específico, e a seleção de alvos é feita quando o míssil atinge a área com base em dados de imagem adquiridos localmente. Conceitos militares modernos, tais como “consciência de campo de batalha”, implicam que vários sensores, incluindo sensores de imagem, fornecem um rico conjunto de informações sobre uma cena de combate que pode ser usada para apoiar decisões estratégicas. Nesse caso, o processamento automático dos dados é usado para reduzir a complexidade e para fundir informações de vários sensores para aumentar a confiabilidade.

Uma das áreas de aplicação mais recentes são os veículos autônomos, que incluem submersíveis, veículos terrestres (pequenos robôs com rodas, carros ou caminhões), veículos aéreos e veículos aéreos não tripulados (UAV). O nível de autonomia varia de veículos totalmente autônomos (não-tripulados) a veículos nos quais sistemas baseados em visão por computador suportam um motorista ou um piloto em várias situações. Veículos totalmente autônomos normalmente usam a visão computacional para navegação, isto é, para saber onde ela está, ou para produzir um mapa de seu ambiente (SLAM) e para detectar obstáculos. Ele também pode ser usado para detectar determinados eventos específicos da tarefa, por exemplo, um UAV procurando por incêndios florestais. Exemplos de sistemas de apoio são sistemas de aviso de obstáculos em carros e sistemas para pouso autônomo de aeronaves. Vários fabricantes de automóveis demonstraram sistemas de condução autónoma de automóveis, mas esta tecnologia ainda não atingiu um nível onde possa ser colocada no mercado. Há amplos exemplos de veículos militares autônomos que vão desde mísseis avançados até UAV para missões de reconhecimento ou orientação de mísseis. A exploração espacial já está sendo feita com veículos autônomos usando a visão computacional, por exemplo, o Mars Exploration Rover da NASA e o ExoMars Rover da ESA.

Outras áreas de aplicação incluem:

Suporte de criação de efeitos visuais para cinema e broadcast, por exemplo, rastreamento de câmera (matchmoving).
Vigilância.
Rastreamento e contagem de organismos nas ciências biológicas

Tarefas Típicas
Cada uma das áreas de aplicação descritas acima emprega uma série de tarefas de visão computacional; problemas de medição mais ou menos bem definidos ou problemas de processamento, que podem ser resolvidos usando uma variedade de métodos. Alguns exemplos de tarefas típicas de visão computacional são apresentados abaixo.

As tarefas de visão computacional incluem métodos para aquisição, processamento, análise e compreensão de imagens digitais e extração de dados de alta dimensão do mundo real para produzir informações numéricas ou simbólicas, por exemplo, nas formas de decisões. A compreensão neste contexto significa a transformação de imagens visuais (a entrada da retina) em descrições do mundo que podem interagir com outros processos de pensamento e provocar ação apropriada. Esse entendimento da imagem pode ser visto como o desemaranhamento de informações simbólicas a partir de dados de imagens usando modelos construídos com o auxílio da geometria, física, estatística e teoria da aprendizagem.

Reconhecimento
O problema clássico da visão computacional, do processamento de imagens e da visão de máquina é determinar se os dados da imagem contêm ou não algum objeto, recurso ou atividade específicos. Variedades diferentes do problema de reconhecimento são descritas na literatura:

Reconhecimento de objetos (também chamado de classificação de objetos) – um ou vários objetos pré-especificados ou aprendidos ou classes de objetos podem ser reconhecidos, geralmente junto com suas posições 2D na imagem ou poses 3D na cena. O Blippar, o Google Goggles e o LikeThat fornecem programas independentes que ilustram essa funcionalidade.
Identificação – uma instância individual de um objeto é reconhecida. Os exemplos incluem a identificação do rosto ou da impressão digital de uma pessoa específica, a identificação de dígitos manuscritos ou a identificação de um veículo específico.
Detecção – os dados da imagem são verificados para uma condição específica. Exemplos incluem a detecção de possíveis células ou tecidos anormais em imagens médicas ou a detecção de um veículo em um sistema de pedágio automático. Detecção baseada em cálculos relativamente simples e rápidos é usada às vezes para encontrar regiões menores de dados de imagens interessantes que podem ser analisados ​​por técnicas mais exigentes em termos computacionais para produzir uma interpretação correta.

Atualmente, os melhores algoritmos para tais tarefas são baseados em redes neurais convolucionais. Uma ilustração de suas capacidades é dada pelo Desafio de Reconhecimento Visual de Grande Escala do ImageNet; este é um benchmark na classificação e detecção de objetos, com milhões de imagens e centenas de classes de objetos. O desempenho das redes neurais convolucionais, nos testes do ImageNet, está agora próximo do dos humanos. Os melhores algoritmos ainda lutam com objetos que são pequenos ou finos, como uma pequena formiga no caule de uma flor ou uma pessoa segurando uma pena na mão. Eles também têm problemas com imagens que foram distorcidas com filtros (um fenômeno cada vez mais comum com câmeras digitais modernas). Por outro lado, esses tipos de imagens raramente incomodam os seres humanos. Os humanos, no entanto, tendem a ter problemas com outros problemas. Por exemplo, eles não são bons em classificar objetos em classes refinadas, como a raça específica de cão ou espécie de ave, enquanto as redes neurais convolucionais lidam com isso com facilidade.

Existem várias tarefas especializadas baseadas no reconhecimento, como:

Recuperação de imagem baseada em conteúdo – encontrar todas as imagens em um conjunto maior de imagens que tenham um conteúdo específico. O conteúdo pode ser especificado de diferentes maneiras, por exemplo, em termos de similaridade relativa a uma imagem de destino (me dê todas as imagens semelhantes à imagem X), ou em termos de critérios de pesquisa de alto nível dados como entrada de texto (me dê todas as imagens que contém muitas casas, são tomadas durante o inverno, e não têm carros neles).
Pose estimation – estima a posição ou orientação de um objeto específico em relação à câmera. Um exemplo de aplicação para essa técnica seria auxiliar um braço robótico na recuperação de objetos de uma esteira transportadora em uma situação de linha de montagem ou na seleção de peças de uma caixa.
Reconhecimento óptico de caracteres (OCR) – identificação de caracteres em imagens de texto impresso ou manuscrito, geralmente com o objetivo de codificar o texto em um formato mais acessível à edição ou indexação (por exemplo, ASCII).
Leitura de código 2D Leitura de códigos 2D, como matriz de dados e códigos QR.
Reconhecimento facial
Tecnologia de Reconhecimento de Forma (SRT) em sistemas de contagem de pessoas que diferenciam seres humanos (padrões de cabeça e ombros) de objetos

Análise de movimento
Diversas tarefas estão relacionadas à estimativa de movimento em que uma seqüência de imagens é processada para produzir uma estimativa da velocidade em cada ponto da imagem ou na cena 3D, ou até mesmo da câmera que produz as imagens. Exemplos de tais tarefas são:

Egomotion – determina o movimento 3D rígido (rotação e translação) da câmera a partir de uma sequência de imagens produzida pela câmera.
Rastreamento – seguindo os movimentos de um conjunto (geralmente) menor de pontos de interesse ou objetos (por exemplo, veículos, seres humanos ou outros organismos) na seqüência de imagens.
Fluxo ótico – para determinar, para cada ponto na imagem, como esse ponto está se movendo em relação ao plano da imagem, ou seja, seu movimento aparente. Este movimento é um resultado de como o ponto 3D correspondente está se movendo na cena e como a câmera está se movendo em relação à cena.

Reconstrução de cena
Dada uma ou (normalmente) mais imagens de uma cena, ou um vídeo, a reconstrução de cena tem como objetivo computar um modelo 3D da cena. No caso mais simples, o modelo pode ser um conjunto de pontos 3D. Métodos mais sofisticados produzem um modelo de superfície 3D completo. O advento de imagens 3D que não exigem movimento ou escaneamento e algoritmos de processamento relacionados está possibilitando avanços rápidos nesse campo. A detecção 3D baseada em grade pode ser usada para adquirir imagens 3D de vários ângulos. Algoritmos estão agora disponíveis para unir várias imagens 3D em nuvens de pontos e modelos 3D.

Restauração de imagem
O objetivo da restauração da imagem é a remoção de ruído (ruído do sensor, desfoque de movimento, etc.) das imagens. A abordagem mais simples possível para a remoção de ruídos são vários tipos de filtros, como filtros low-pass ou filtros medianos. Métodos mais sofisticados assumem um modelo de como as estruturas de imagem locais se parecem, um modelo que as distingue do ruído. Analisando primeiro os dados da imagem em termos de estruturas de imagem local, como linhas ou bordas, e controlando a filtragem com base nas informações locais da etapa de análise, geralmente é obtido um melhor nível de remoção de ruído em comparação com as abordagens mais simples.

Um exemplo neste campo é a pintura.

Métodos do sistema
A organização de um sistema de visão computacional é altamente dependente de aplicativos. Alguns sistemas são aplicativos independentes que resolvem um problema específico de medição ou detecção, enquanto outros constituem um subsistema de um projeto maior que, por exemplo, também contém subsistemas para controle de atuadores mecânicos, planejamento, bancos de dados de informações, gerenciamento interfaces de máquina, etc. A implementação específica de um sistema de visão computacional também depende se sua funcionalidade é pré-especificada ou se alguma parte dele pode ser aprendida ou modificada durante a operação. Muitas funções são exclusivas para o aplicativo. Existem, no entanto, funções típicas encontradas em muitos sistemas de visão computacional.

Aquisição de imagens – Uma imagem digital é produzida por um ou vários sensores de imagem, que, além de vários tipos de câmeras sensíveis à luz, incluem sensores de alcance, tomografias, radares, câmeras ultra-sônicas, etc. Dependendo do tipo de sensor, os dados resultantes da imagem são uma imagem 2D comum, um volume 3D ou uma seqüência de imagens. Os valores de pixel correspondem tipicamente à intensidade da luz em uma ou várias bandas espectrais (imagens cinzas ou imagens coloridas), mas também podem estar relacionadas a várias medidas físicas, como profundidade, absorção ou refletância de ondas sonoras ou eletromagnéticas ou ressonância magnética nuclear.

Pré-processamento – Antes que um método de visão computacional possa ser aplicado a dados de imagem, a fim de extrair alguma informação específica, geralmente é necessário processar os dados para assegurar que eles satisfaçam certas suposições implícitas pelo método. Exemplos são
Re-amostragem para garantir que o sistema de coordenadas da imagem esteja correto.
Redução de ruído para garantir que o ruído do sensor não introduza informações falsas.
Aprimoramento de contraste para garantir que informações relevantes possam ser detectadas.
Representação de espaço de escala para melhorar estruturas de imagem em escalas localmente apropriadas.

Extração de recursos – Recursos de imagem em vários níveis de complexidade são extraídos dos dados da imagem. Exemplos típicos de tais recursos são
Linhas, arestas e cordilheiras.
Pontos de interesse localizados, como cantos, blobs ou pontos.
Recursos mais complexos podem estar relacionados à textura, forma ou movimento.

Detecção / segmentação – Em algum ponto do processamento, é tomada uma decisão sobre quais pontos de imagem ou regiões da imagem são relevantes para o processamento posterior. Exemplos são
Seleção de um conjunto específico de pontos de interesse
Segmentação de uma ou várias regiões de imagem que contêm um objeto específico de interesse.
Segmentação de imagem em arquitetura de cena aninhada composta de primeiro plano, grupos de objetos, objetos únicos ou partes de objetos salientes (também conhecida como hierarquia de cena espaço-táxon), enquanto a saliência visual é frequentemente implementada como atenção espacial e temporal.
Segmentação ou co-segmentação de um ou vários vídeos em uma série de máscaras de primeiro plano por quadro, mantendo sua continuidade semântica temporal.

Processamento de alto nível – Nesta etapa, a entrada é tipicamente um pequeno conjunto de dados, por exemplo, um conjunto de pontos ou uma região de imagem que supostamente contém um objeto específico. O processamento restante lida com, por exemplo:
Verificação de que os dados satisfazem premissas específicas baseadas em modelos e aplicativos.
Estimativa de parâmetros específicos da aplicação, como pose do objeto ou tamanho do objeto.
Reconhecimento de imagem – classificando um objeto detectado em diferentes categorias.
Registro de imagem – comparando e combinando duas visões diferentes do mesmo objeto.

Tomada de decisão Tomar a decisão final necessária para o aplicativo, por exemplo:
Aprovação / reprovação em aplicações de inspeção automática
Correspondência / não correspondência em aplicativos de reconhecimento
Sinalização para posterior revisão humana em aplicações médicas, militares, de segurança e reconhecimento

Sistemas de compreensão de imagem
Os sistemas de entendimento de imagem (IUS) incluem três níveis de abstração, como segue: O nível baixo inclui primitivos de imagem, como bordas, elementos de textura ou regiões; o nível intermediário inclui limites, superfícies e volumes; e alto nível inclui objetos, cenas ou eventos. Muitos desses requisitos são realmente tópicos para pesquisas futuras.

Os requisitos representacionais no projeto de IUS para esses níveis são: representação de conceitos prototípicos, organização do conceito, conhecimento espacial, conhecimento temporal, escala e descrição por comparação e diferenciação.

Embora a inferência se refira ao processo de derivar fatos novos, não explicitamente representados, de fatos atualmente conhecidos, o controle refere-se ao processo que seleciona qual das muitas técnicas de inferência, busca e correspondência deve ser aplicada em um estágio particular de processamento. Os requisitos de inferência e controle para IUS são: busca e ativação de hipóteses, correspondência e teste de hipóteses, geração e uso de expectativas, mudança e foco de atenção, certeza e força de crença, inferência e satisfação de objetivos.

Hardware
Existem muitos tipos de sistemas de visão computacional, no entanto todos eles contêm estes elementos básicos: uma fonte de energia, pelo menos um dispositivo de aquisição de imagem (ie câmera, ccd, etc.), um processador bem como cabos de controle e comunicação ou algum tipo de mecanismo de interconexão sem fio. Além disso, um sistema de visão prático contém software, bem como um monitor para monitorar o sistema. Sistemas de visão para espaços internos, como os mais industriais, contêm um sistema de iluminação e podem ser colocados em um ambiente controlado. Além disso, um sistema completo inclui muitos acessórios, como suportes de câmera, cabos e conectores.

A maioria dos sistemas de visão computacional usa câmeras de luz visível que visualizam passivamente uma cena com taxas de quadros de no máximo 60 quadros por segundo (geralmente muito mais lentas).

Alguns sistemas de visão por computador usam hardware de aquisição de imagem com iluminação ativa ou algo diferente de luz visível ou ambos. Por exemplo, um scanner 3D de luz estruturada, uma câmera termográfica, um imageador hiperespectral, imagens de radar, um scanner de banda, uma ressonância magnética, um sonar de varredura lateral, um sonar de abertura sintética ou etc. Esse hardware captura “imagens” que são então processados ​​freqüentemente usando os mesmos algoritmos de visão computacional usados ​​para processar imagens de luz visível.

Enquanto os sistemas tradicionais de transmissão e vídeo ao consumidor operam a uma taxa de 30 quadros por segundo, os avanços no processamento digital de sinais e no hardware gráfico de consumo tornaram possível a aquisição, processamento e exibição de imagens em alta velocidade para sistemas em tempo real de centenas a milhares de quadros por segundo. Para aplicações em robótica, sistemas de vídeo rápidos e em tempo real são extremamente importantes e geralmente podem simplificar o processamento necessário para certos algoritmos. Quando combinada com um projetor de alta velocidade, a aquisição rápida de imagens permite que a medição 3D e o rastreamento de recursos sejam realizados.

Sistemas de visão egocêntrica são compostos de uma câmera vestível que automaticamente tira fotos de uma perspectiva em primeira pessoa.

A partir de 2016, as unidades de processamento de visão estão emergindo como uma nova classe de processador, para complementar CPUs e unidades de processamento gráfico (GPUs) nessa função.