Visão computacional

Da Wikipédia, a enciclopédia livre
Ir para navegação Pular para pesquisar

A visão computacional é um campo científico interdisciplinar que trata de como os computadores podem obter compreensão de alto nível a partir de imagens ou vídeos digitais . Do ponto de vista da engenharia , busca entender e automatizar tarefas que o sistema visual humano pode realizar. [1] [2] [3]

As tarefas de visão computacional incluem métodos de 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, na forma de decisões. [4] [5] [6] [7] A compreensão, neste contexto, significa a transformação de imagens visuais (a entrada da retina) em descrições do mundo que fazem sentido para os processos de pensamento e podem provocar a ação apropriada. Essa compreensão de imagens pode ser vista como o desemaranhamento de informações simbólicas de dados de imagens por meio de modelos construídos com o auxílio da geometria, física, estatística e teoria do aprendizado. [8]

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

Os subdomínios da visão computacional incluem reconstrução de cena , detecção de objeto , detecção de evento, rastreamento de vídeo , reconhecimento de objeto , estimativa de pose 3D , aprendizagem, indexação, estimativa de movimento , servo visual , modelagem de cena 3D e restauração de imagem . [6]

Definição

A visão computacional é um campo interdisciplinar que trata de como os computadores e podem ser usados ​​para obter um entendimento de alto nível a partir de imagens ou vídeos digitais . Do ponto de vista da engenharia , busca automatizar tarefas que o sistema visual humano pode realizar. [1] [2] [3] "A visão computacional preocupa-se com a extração, análise e compreensão automáticas de informações úteis de uma única imagem ou sequência de imagens. Envolve o desenvolvimento de uma base teórica e algorítmica para alcançar a compreensão visual automática . " [9] Como uma disciplina científica, a visão computacional está preocupada com a teoria por trás dos sistemas artificiais que extraem informações de imagens. Os dados da imagem podem assumir várias formas, como sequências de vídeo, visualizações de várias câmeras ou dados multidimensionais de um scanner médico . [10] Como disciplina tecnológica, a visão computacional busca 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 nas universidades que foram pioneiras na inteligência artificial . O objetivo era imitar o sistema visual humano , como um trampolim para dotar os robôs de comportamento inteligente. [11] Em 1966, acreditava-se que isso poderia ser alcançado por meio de um projeto de verão, anexando uma câmera a um computador e fazendo-a "descrever o que viu". [12] [13]

O que distinguia a visão computacional do campo predominante de processamento de imagem digital naquela época era o desejo de extrair a estrutura tridimensional das imagens com o objetivo de alcançar a compreensão total 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, marcaçã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 . [11]

A próxima década viu estudos baseados em análises matemáticas mais rigorosas e em aspectos quantitativos da visão computacional. Isso inclui o conceito de escala-espaço , a inferência da forma a partir de várias pistas, 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 que a regularização e os campos aleatórios de Markov . [14] Na década de 1990, alguns dos tópicos de pesquisa anteriores tornaram-se mais ativos do que outros. A pesquisa em reconstruções projetivas em 3-D levou a uma melhor compreensão da calibração da câmera. Com o advento de métodos de otimização para calibração de câmeras, percebeu-se que muitas das ideias já eram exploradas na teoria de ajuste de bundle no 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 densa e outras técnicas estéreo multi-view. Ao mesmo tempo, variações de corte de gráfico foram usadas para resolver a segmentação de imagens . Esta década também marcou a primeira vez que técnicas de aprendizagem estatística foram usadas na prática para reconhecer rostos em imagens (ver Eigenface) No final da década de 1990, uma mudança significativa ocorreu com o aumento da interação entre os campos da computação gráfica e da visão computacional. Isso incluía renderização baseada em imagem , transformação de imagem , interpolação de visualização, montagem panorâmica de imagem e renderização inicial de campo de luz . [11]

Trabalhos recentes viram o ressurgimento de métodos baseados em recursos , usados ​​em conjunto com técnicas de aprendizado de máquina e estruturas de otimização complexas. [15] [16] O avanço das técnicas de Deep Learning trouxe ainda mais vida ao campo da visão computacional. A precisão dos algoritmos de aprendizagem profunda em vários conjuntos de dados de visão computacional de referência para tarefas que variam de classificação, segmentação e fluxo óptico superou os métodos anteriores. [ citação necessária ]

Áreas afins

Detecção de objetos em uma fotografia

Física de estado sólido

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

Neurobiologia

Neurobiologia , especificamente o estudo do sistema de visão biológica. No último século, houve um extenso estudo de olhos, neurônios e estruturas cerebrais dedicados ao processamento de estímulos visuais em humanos e vários animais. Isso levou a uma descrição grosseira, embora 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 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 na aprendizagem desenvolvidos dentro da visão computacional ( por exemplo, rede neural e aprendizagem profunda imagem baseada e análise e classificação de características) têm formação em biologia.

Algumas vertentes da pesquisa da visão computacional estão intimamente relacionadas ao estudo da visão biológica - na verdade, da mesma forma que muitas vertentes da pesquisa da 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 dos sistemas de visão artificial. O intercâmbio interdisciplinar entre visão biológica e computacional tem se mostrado frutífero para ambos os campos. [17]

Processamento de sinal

Ainda outro campo relacionado à visão computacional é o processamento de sinais . Muitos métodos para processamento de sinais de uma variável, normalmente sinais temporais, podem ser estendidos de uma maneira natural para o processamento de sinais de duas variáveis ​​ou sinais de multivariá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. Junto com a multidimensionalidade do sinal, isso define um subcampo no processamento de sinal como parte da visão computacional.

Navegação robótica

A navegação de robôs às vezes lida com planejamento de caminho autônomo ou deliberação de sistemas robóticos para navegar em um ambiente . [18] Uma compreensão detalhada desses ambientes é necessária para navegar por eles. As informações sobre o ambiente podem ser fornecidas por um sistema de visão por computador, atuando como um sensor de visão e fornecendo informações de alto nível sobre o ambiente e o robô.

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 de 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. A visão computacional também é usada no comércio eletrônico de moda, gerenciamento de estoque, pesquisa de patentes, móveis e indústria de beleza. [ citação necessária ]

Distinções

Os campos mais intimamente relacionados à visão computacional são processamento de imagens , análise de imagens e visão de máquina. Há uma sobreposição significativa na gama de técnicas e aplicações que cobrem. Isso implica que as técnicas básicas utilizadas e desenvolvidas nesses campos são semelhantes, o que pode ser interpretado porque existe apenas um campo com nomes diferentes. Por outro lado, parece ser necessário que grupos de pesquisa, periódicos científicos, conferências e empresas se apresentem ou se promovam como pertencentes especificamente a um desses campos e, portanto, várias caracterizações que distinguem cada um dos campos dos demais têm sido apresentado. No processamento de imagem, a entrada é uma imagem e a saída também é uma imagem, enquanto na visão computacional, uma imagem ou um vídeo é tomado como uma entrada e a saída pode ser uma imagem aprimorada,uma compreensão do conteúdo de uma imagem ou mesmo um comportamento de um sistema de computador com base em tal compreensão.

A 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. [19] Há também uma tendência para uma combinação das duas disciplinas, por exemplo , como exploradas em realidade aumentada .

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

  • O processamento e a análise de imagens tendem a se concentrar em imagens 2D, como transformar uma imagem em outra, por exemplo , por operações em pixels, como aumento de contraste, operações locais, como extração de bordas ou remoção de ruído, ou transformações geométricas, como girar a imagem . Esta caracterização implica que o processamento / análise da imagem não requer suposições nem produz interpretações sobre o conteúdo da imagem.
  • A visão computacional inclui análise 3D 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 freqüentemente se baseia em suposições mais ou menos complexas sobre a cena representada em uma imagem.
  • Visão de máquina é o processo de aplicação de uma gama de tecnologias e métodos para fornecer inspeção automática baseada em imagem, controle de processo e orientação de robô [20] em aplicações industriais. [17] A visão da máquina tende a se concentrar em aplicações, principalmente na fabricação, por exemplo , robôs baseados em visão e sistemas para inspeção, medição ou coleta baseada em visão (como coleta de lixo [21]) Isso implica que as tecnologias de sensor de imagem e a teoria de controle frequentemente estã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. Também implica 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.
  • Existe também um campo chamado de 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 imagem médica inclui um trabalho substancial na análise de dados de imagem em aplicações médicas.
  • Por fim, 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 . [22] Uma parte significativa deste campo é dedicada à aplicação desses métodos a dados de imagem.

A fotogrametria também se sobrepõe à visão computacional, por exemplo, estereofotogrametria vs. visão estéreo computacional .

Aplicações

As aplicações variam de tarefas como visão de máquina industrialsistemas 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 uma sobreposição significativa. A visão computacional cobre a tecnologia central de análise automatizada de imagens, usada em muitos campos. A visão da máquina geralmente se refere a um processo de combinação de análise de imagem automatizada com outros métodos e tecnologias para fornecer inspeção automatizada e orientação de robô em aplicações industriais. Em muitas aplicações de visão computacional, os computadores são pré-programados para resolver uma tarefa específica, mas os métodos baseados no aprendizado estão se tornando cada vez mais comuns. Exemplos de aplicações de visão computacional incluem sistemas para:

Aprender formas 3D tem sido uma tarefa desafiadora na visão computacional. Avanços recentes no aprendizado profundo permitiram aos pesquisadores construir modelos que são capazes de gerar e reconstruir formas 3D a partir de mapas de profundidade de visualização única ou múltipla ou silhuetas de forma integrada e eficiente [19]

Medicina

Vídeo do conceito de Raciocínio de Mídia Visual da DARPA

Um dos campos de aplicação mais proeminentes é a visão computacional médica, ou processamento de imagens médicas, caracterizada 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 de dimensões de ó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 humanos - imagens ultrassônicas ou de raios-X, por exemplo - para reduzir a influência do ruído.

Visão de máquina

Uma segunda área de aplicação em visão computacional é a indústria, às vezes chamada de visão de máquina , onde a informação é extraída com o propósito de apoiar um processo de produção. Um exemplo é o controle de qualidade, onde detalhes ou produtos finais são inspecionados automaticamente para encontrar defeitos. Outro exemplo é a medição da posição e orientação dos detalhes a serem captados por um braço do robô. A visão mecânica também é muito usada em processos agrícolas para remover alimentos indesejáveis ​​do material a granel, um processo denominado classificação ótica . [24]

Militar

As aplicações militares são provavelmente uma das maiores áreas da visão computacional. Os exemplos óbvios são a detecção de soldados ou veículos inimigos e a orientação de mísseis . Sistemas mais avançados de orientação de mísseis enviam o míssil para uma área ao invés de um alvo específico, e a seleção do alvo é feita quando o míssil atinge a área com base em dados de imagem adquiridos localmente. Os conceitos militares modernos, como "consciência do 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 usado para apoiar decisões estratégicas. Nesse caso, o processamento automático dos dados é usado para reduzir a complexidade e fundir informações de vários sensores para aumentar a confiabilidade.

Veículos autônomos

O conceito artístico de Curiosidade , um exemplo de um veículo terrestre sem parafusos. Observe a câmera estéreo montada na parte superior do rover.

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 onde sistemas baseados em visão computacional auxiliam um motorista ou piloto em várias situações. Veículos totalmente autônomos normalmente usam visão computacional para navegação, por exemplo , para saber onde está, ou para produzir um mapa de seu ambiente ( SLAM ) e para detectar obstáculos. Ele também pode ser usado para detectar certos eventos específicos de tarefas, por exemplo, um UAV em busca de incêndios florestais. Exemplos de sistemas de apoio são sistemas de alerta 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 em que possa ser colocada no mercado. Existem muitos exemplos de veículos militares autônomos, desde mísseis avançados a UAVs para missões de reconhecimento ou orientação de mísseis. A exploração do espaço já está sendo feito com veículos autônomos usando visão computacional, por exemplo , NASA 's Curiosidade e CNSA s' Yutu-2 rover.

Tátil feedback

Camada de pele artificial de borracha com estrutura flexível para estimativa de forma de superfícies de micro-ondulação
Acima está um molde de silicone com uma câmera dentro contendo muitos marcadores de pontos diferentes. Quando este sensor é pressionado contra a superfície, o silício deforma e a posição dos marcadores de ponto muda. Um computador pode então pegar esses dados e determinar como exatamente o molde é pressionado contra a superfície. Isso pode ser usado para calibrar as mãos robóticas, a fim de garantir que possam agarrar objetos com eficácia.

Materiais como borracha e silício estão sendo usados ​​para criar sensores que permitem aplicações como detecção de micro ondulações e calibração de mãos robóticas. A borracha pode ser usada para criar um molde que pode ser colocado sobre um dedo, dentro deste molde haveria vários medidores de tensão. O molde de dedo e os sensores podem então ser colocados no topo de uma pequena folha de borracha contendo uma série de pinos de borracha. Um usuário pode então usar o molde de dedo e traçar uma superfície. Um computador pode então ler os dados dos medidores de tensão e medir se um ou mais dos pinos está sendo empurrado para cima. Se um pino está sendo empurrado para cima, o computador pode reconhecer isso como uma imperfeição na superfície. Esse tipo de tecnologia é útil para receber dados precisos das imperfeições em uma superfície muito grande. [25]Outra variação desse sensor de molde de dedo são os sensores que contêm uma câmera suspensa em silício. O silício forma uma cúpula ao redor da parte externa da câmera e embutidos no silício são marcadores de pontos que são igualmente espaçados. Essas câmeras podem ser colocadas em dispositivos como mãos robóticas para permitir que o computador receba dados táteis de alta precisão. [26]

Outras áreas de aplicação incluem:

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 ou problemas de processamento mais ou menos bem definidos, que podem ser resolvidos usando uma variedade de métodos. Alguns exemplos de tarefas típicas de visão por computador são apresentados a seguir.

As tarefas de visão computacional incluem métodos de 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 , na forma de decisões. [4] [5] [6] [7]Compreender, 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ções apropriadas. Essa compreensão de imagens pode ser vista como o desemaranhamento de informações simbólicas de dados de imagens por meio de modelos construídos com o auxílio da geometria, física, estatística e teoria do aprendizado. [8]

Reconhecimento

O problema clássico em visão computacional, processamento de imagem e visão de máquina é determinar se os dados da imagem contêm algum objeto, característica ou atividade específica. Diferentes variedades do problema de reconhecimento são descritas na literatura. [28]

  • Reconhecimento de objeto (também chamado de classificação de objeto ) - 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. Blippar, Google Goggles e 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 impressão digital de uma pessoa específica, identificação de dígitos manuscritos ou identificação de um veículo específico.
  • Detecção  - os dados da imagem são digitalizados para uma condição específica. Os 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 automático de pedágio. A detecção baseada em cálculos relativamente simples e rápidos é às vezes usada para encontrar regiões menores de dados de imagem interessantes que podem ser posteriormente analisados ​​por técnicas mais exigentes computacionalmente 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 é fornecida pelo Desafio de Reconhecimento Visual em Grande Escala da ImageNet ; trata-se de uma referência em classificação e detecção de objetos, com milhões de imagens e 1000 classes de objetos utilizadas na competição. [29] O desempenho das redes neurais convolucionais nos testes ImageNet está agora próximo ao dos humanos. [29]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 distorcidas com filtros (um fenômeno cada vez mais comum nas câmeras digitais modernas). Em contraste, esse tipo de imagem raramente incomoda os humanos. Os humanos, entretanto, tendem a ter problemas com outros problemas. Por exemplo, eles não são bons em classificar objetos em classes refinadas, como uma raça particular de cachorro ou espécie de pássaro, enquanto as redes neurais convolucionais lidam com isso com facilidade. [ citação necessária ]

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

  • Recuperação de imagem baseada em conteúdo  - localizar todas as imagens em um conjunto maior de imagens com um conteúdo específico. O conteúdo pode ser especificado de diferentes maneiras, por exemplo, em termos de semelhança em relação a uma imagem alvo (dê-me todas as imagens semelhantes à imagem X), utilizandotécnicas de pesquisa reversa de imagens ou em termos de critérios de pesquisa de alto nível fornecidos como entrada de texto ( dê-me todas as imagens que contêm muitas casas, são tiradas durante o inverno e não têm carros nelas).
Visão computacional para fins de contador de pessoas em locais públicos, shoppings, shopping centers

Análise de movimento

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

  • Egomotion  - determina o movimento rígido 3D (rotação e translação) da câmera a partir de uma sequência de imagens produzida pela câmera.
  • Rastreamento  - segue os movimentos de um conjunto (geralmente) menor de pontos de interesse ou objetos ( por exemplo , veículos, objetos, humanos ou outros organismos [27] ) na sequência de imagens. Isso tem uma vasta aplicação na indústria, visto que a maioria das máquinas de alta rotação podem ser monitoradas dessa forma.
  • Fluxo óptico  - para determinar, para cada ponto da imagem, como aquele ponto se move em relação ao plano da imagem, ou seja , seu movimento aparente. Esse movimento é o resultado de como o ponto 3D correspondente está se movendo na cena e como a câmera está se movendo em relação à cena.

Cena reconstrução

Dada uma ou (normalmente) mais imagens de uma cena, ou um vídeo, a reconstrução da cena visa 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 da imagem 3D que não requer movimento ou varredura e algoritmos de processamento relacionados está permitindo avanços rápidos neste campo. A detecção 3D baseada em grade pode ser usada para adquirir imagens 3D de vários ângulos. Algoritmos agora estão disponíveis para juntar várias imagens 3D em nuvens de pontos e modelos 3D. [19]

Restauração de imagens

O objetivo da restauração da imagem é a remoção do ruído (ruído do sensor, desfoque de movimento, etc.) das imagens. A abordagem mais simples possível para a remoção de ruído consiste em vários tipos de filtros, como filtros de passagem baixa ou filtros de mediana. Métodos mais sofisticados assumem um modelo de como as estruturas da imagem local se parecem, para distingui-las do ruído. Ao analisar primeiro os dados da imagem em termos das estruturas da imagem local, como linhas ou bordas, e então controlar a filtragem com base nas informações locais da etapa de análise, um melhor nível de remoção de ruído é geralmente obtido em comparação com as abordagens mais simples.

Um exemplo neste campo é a pintura interna .

Métodos de sistema

A organização de um sistema de visão por computador é altamente dependente do aplicativo. Alguns sistemas são aplicativos autônomos 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, man- interfaces de máquina, etc. A implementação específica de um sistema de visão por computador também depende se sua funcionalidade é pré-especificada ou se alguma parte dela pode ser aprendida ou modificada durante a operação. Muitas funções são exclusivas do aplicativo. Existem, no entanto, funções típicas que são encontradas em muitos sistemas de visão por computador.

  • Aquisição de imagem - Uma imagem digital é produzida por um ou vários sensores de imagem , que, além de vários tipos de câmeras fotossensíveis, incluem sensores de alcance , dispositivos de tomografia, radar, câmeras ultra-sônicas, etc. Dependendo do tipo de sensor, o os dados de imagem resultantes são uma imagem 2D comum, um volume 3D ou uma sequência de imagens. Os valores de pixel normalmente correspondem à intensidade da luz em uma ou várias bandas espectrais (imagens cinza ou coloridas), mas também podem estar relacionados a várias medidas físicas, como profundidade, absorção ou refletância de ondas sônicas ou eletromagnéticas ou ressonância magnética nuclear . [24]
  • Pré-processamento - Antes que um método de visão computacional possa ser aplicado aos dados de imagem para extrair alguma informação específica, geralmente é necessário processar os dados para garantir que eles satisfaçam certas suposições implícitas no método. Exemplos são:
    • Reamostragem para garantir que o sistema de coordenadas da imagem está 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 as informações relevantes possam ser detectadas.
    • Representação do espaço de escala para melhorar as estruturas da 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. [24] Exemplos típicos de tais recursos são:
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 ou regiões da imagem são relevantes para processamento posterior. [24] Os exemplos são:
    • Seleção de um conjunto específico de pontos de interesse.
    • Segmentação de uma ou várias regiões da imagem que contêm um objeto específico de interesse.
    • Segmentação de imagem em arquitetura cena aninhada compreendendo primeiro plano, grupos de objetos, objetos individuais ou saliente objeto [30] partes (também referida como hierarquia cena espacial-taxon), [31] enquanto a saliência visual é frequentemente implementada como espacial e atenção temporais .
    • 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, enquanto mantém sua continuidade semântica temporal. [32] [33]
  • Processamento de alto nível - nesta etapa, a entrada é normalmente um pequeno conjunto de dados, por exemplo, um conjunto de pontos ou uma região de imagem que se supõe conter um objeto específico. [24] O restante processamento trata, por exemplo:
    • Verificação de que os dados atendem às suposições baseadas em modelo e específicas do aplicativo.
    • Estimativa de parâmetros específicos do aplicativo, como pose ou tamanho do objeto.
    • Reconhecimento de imagem - classifica um objeto detectado em diferentes categorias.
    • Registro de imagem - comparar e combinar duas visualizações diferentes do mesmo objeto.
  • Tomada de decisão Tomar a decisão final necessária para a aplicação, [24] por exemplo:
    • Aprovado / reprovado em aplicativos de inspeção automática.
    • Corresponder / não corresponder em aplicativos de reconhecimento.
    • Sinalizar para posterior revisão humana em aplicações médicas, militares, de segurança e de reconhecimento.

Sistemas de compreender imagem

Os sistemas de compreensão de imagem (IUS) incluem três níveis de abstração da seguinte forma: o nível baixo inclui primitivas 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 inteiramente tópicos para pesquisas futuras.

Os requisitos de representação na concepção de IUS para estes níveis são: representação de conceitos prototípicos, organização de conceitos, conhecimento espacial, conhecimento temporal, escala e descrição por comparação e diferenciação.

Enquanto a inferência se refere ao processo de derivar fatos novos, não explicitamente representados, a partir de fatos atualmente conhecidos, o controle se refere ao processo que seleciona quais das muitas técnicas de inferência, pesquisa e correspondência devem ser aplicadas em um determinado estágio 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 objetivo. [34]

Hardware

Novo iPad inclui sensor LiDAR

Existem muitos tipos de sistemas de visão por computador; entretanto, todos eles contêm estes elementos básicos: uma fonte de alimentação, pelo menos um dispositivo de aquisição de imagem (câmera, ccd, etc.), um processador e cabos de controle e comunicação ou algum tipo de mecanismo de interconexão sem fio. Além disso, um prático sistema de visão contém software, bem como um display para monitorar o sistema. Os sistemas de visão para espaços internos, como a maioria dos 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 por computador usa câmeras de luz visível, visualizando passivamente uma cena em 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, como scanners 3D de luz estruturada , câmeras termográficas , imageadores hiperespectrais , imagens de radar , scanners lidar , imagens de ressonância magnética , sonar de varredura lateral , sonar de abertura sintética , etc. Tal hardware captura "imagens" que são então processadas frequentemente usando os mesmos algoritmos de visão computacional usados ​​para processar imagens de luz visível.

Enquanto a transmissão tradicional e os sistemas de vídeo de consumidor operam a uma taxa de 30 quadros por segundo, os avanços no processamento de sinal digital e hardware gráfico de consumidor possibilitaram a aquisição, processamento e exibição de imagens em alta velocidade para sistemas em tempo real da ordem 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 muitas vezes podem simplificar o processamento necessário para certos algoritmos. Quando combinado com um projetor de alta velocidade, a aquisição rápida de imagens permite a realização de medições 3D e rastreamento de recursos. [35]

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

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

Veja também

Listas

Referências

  1. ^ a b Dana H. Ballard; Christopher M. Brown (1982). Visão computacional . Prentice Hall. ISBN 978-0-13-165316-0.
  2. ^ a b Huang, T. (1996-11-19). Vandoni, Carlo, E (ed.). Visão computacional: evolução e promessa (PDF) . 19ª Escola de Computação do CERN . Genebra: CERN. pp. 21-25. doi : 10.5170 / CERN-1996-008.21 . ISBN  978-9290830955.
  3. ^ a b Milan Sonka; Vaclav Hlavac; Roger Boyle (2008). Processamento de imagens, análise e visão de máquina . Thomson. ISBN 978-0-495-08252-1.
  4. ^ a b Reinhard Klette (2014). Visão computadorizada concisa . Springer. ISBN  978-1-4471-6320-6.
  5. ^ a b Linda G. Shapiro ; George C. Stockman (2001). Visão computacional . Prentice Hall. ISBN  978-0-13-030796-5.
  6. ^ a b c Tim Morris (2004). Visão computacional e processamento de imagens . Palgrave Macmillan. ISBN 978-0-333-99451-1.
  7. ^ a b Bernd Jähne; Horst Haußecker (2000). Visão computacional e aplicações, um guia para estudantes e profissionais . Academic Press. ISBN 978-0-13-085198-7.
  8. ^ a b David A. Forsyth; Jean Ponce (2003). Visão computacional, uma abordagem moderna . Prentice Hall. ISBN 978-0-13-085198-7.
  9. ^ http://www.bmva.org/visionoverview Arquivado em 2016/02/16 na Wayback Machine The British Machine Vision Association and Society for Pattern Recognition Recuperado em 20 de fevereiro de 2017
  10. ^ Murphy, Mike. O scanner médico "tricorder" de "Star Trek está mais perto de se tornar uma realidade" .
  11. ^ a b c d Richard Szeliski (30 de setembro de 2010). Visão Computacional: Algoritmos e Aplicações . Springer Science & Business Media. pp. 10–16. ISBN 978-1-84882-935-0.
  12. ^ Papert, Seymour (01/07/1966). "O Projeto Visão de Verão". MIT AI Memos (1959 - 2004) . hdl : 1721,1 / 6125 .
  13. ^ Margaret Ann Boden (2006). Mind as Machine: A History of Cognitive Science . Clarendon Press. p. 781. ISBN 978-0-19-954316-8.
  14. ^ Takeo Kanade (6 de dezembro de 2012). Visão Tridimensional da Máquina . Springer Science & Business Media. ISBN 978-1-4613-1981-8.
  15. ^ Nicu Sebe; Ira Cohen; Ashutosh Garg; Thomas S. Huang (3 de junho de 2005). Aprendizado de máquina em visão computacional . Springer Science & Business Media. ISBN 978-1-4020-3274-5.
  16. ^ William Freeman; Pietro Perona; Bernhard Scholkopf (2008). "Editorial Convidado: Aprendizado de Máquina para Visão Computacional" . International Journal of Computer Vision . 77 (1): 1. doi : 10.1007 / s11263-008-0127-7 . ISSN 1573-1405 . 
  17. ^ a b Steger, Carsten; Markus Ulrich; Christian Wiedemann (2018). Algoritmos e aplicações de visão de máquina (2ª ed.). Weinheim: Wiley-VCH . p. 1. ISBN 978-3-527-41365-2. Recuperado em 30/01/2018 .
  18. ^ Murray, Don e Cullen Jennings. " Mapeamento e navegação com base em visão estéreo para robôs móveis ." Anais da Conferência Internacional sobre Robótica e Automação. Vol. 2. IEEE, 1997.
  19. ^ a b c Soltani, AA; Huang, H .; Wu, J .; Kulkarni, TD; Tenenbaum, JB (2017). "Sintetizando formas 3D por meio da modelagem de mapas e silhuetas de profundidade de múltiplas visualizações com redes gerativas profundas". Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition : 1511–1519. doi : 10.1109 / CVPR.2017.269 . hdl : 1721,1 / 126644 . ISBN 978-1-5386-0457-1. S2CID  31373273 .
  20. ^ Turek, Fred (junho de 2011). "Machine Vision Fundamentals, How to Make Robots See". Revista NASA Tech Briefs . 35 (6). páginas 60–62
  21. ^ "O Futuro da Seleção Automática de Caixas Aleatórias" .
  22. ^ Chervyakov, NI; Lyakhov, PA; Deryabin, MA; Nagornov, NN; Valueva, MV; Valuev, GV (2020). "Solução baseada em sistema de número de resíduos para reduzir o custo de hardware de uma rede neural convolucional". Neurocomputação . 407 : 439–453. doi : 10.1016 / j.neucom.2020.04.018 . S2CID 219470398 . Redes neurais convolucionais (CNNs) representam arquiteturas de aprendizagem profunda que são usadas atualmente em uma ampla gama de aplicações, incluindo visão computacional, reconhecimento de voz, identificação de sequências albuminosas em bioinformática, controle de produção, análise de série temporal em finanças e muitos outros. 
  23. ^ Wäldchen, Jana; Mäder, Patrick (07/01/2017). "Identificação de espécies de plantas usando técnicas de visão computacional: uma revisão sistemática da literatura" . Arquivos de Métodos Computacionais em Engenharia . 25 (2): 507–543. doi : 10.1007 / s11831-016-9206-z . ISSN 1134-3060 . PMC 6003396 . PMID 29962832 .   
  24. ^ a b c d e f E. Roy Davies (2005). Visão de Máquina: Teoria, Algoritmos, Practicalidades . Morgan Kaufmann. ISBN 978-0-12-206093-9.
  25. ^ Ando, ​​Mitsuhito; Takei, Toshinobu; Mochiyama, Hiromi (2020-03-03). "Camada de pele artificial de borracha com estrutura flexível para estimativa da forma de superfícies de micro-ondulação" . ROBOMECH Journal . 7 (1): 11. doi : 10.1186 / s40648-020-00159-0 . ISSN 2197-4225 . 
  26. ^ Choi, Seung-hyun; Tahara, Kenji (2020-03-12). "Manipulação de objetos hábil por uma mão robótica com vários dedos com sensores visuais-táteis na ponta dos dedos" . ROBOMECH Journal . 7 (1): 14. doi : 10.1186 / s40648-020-00162-5 . ISSN 2197-4225 . 
  27. ^ a b Bruijning, Marjolein; Visser, Marco D .; Hallmann, Caspar A .; Jongejans, Eelke; Golding, Nick (2018). "trackdem: rastreamento de partículas automatizado para obter contagens de população e distribuições de tamanho de vídeos em r" . Métodos em Ecologia e Evolução . 9 (4): 965–973. doi : 10.1111 / 2041-210X.12975 . ISSN 2041-210X . 
  28. ^ Forsyth, David; Ponce, Jean (2012). Visão computacional: uma abordagem moderna . Pearson.
  29. ^ a b Russakovsky, Olga; Deng, Jia; Su, Hao; Krause, Jonathan; Satheesh, Sanjeev; Ma, Sean; Huang, Zhiheng; Karpathy, Andrej; Khosla, Aditya; Bernstein, Michael; Berg, Alexander C. (dezembro de 2015). "Desafio de reconhecimento visual em grande escala ImageNet" . International Journal of Computer Vision . 115 (3): 211–252. doi : 10.1007 / s11263-015-0816-y . hdl : 1721,1 / 104944 . ISSN 0920-5691 . S2CID 2930547 .  
  30. ^ A. Maity (2015). "Detecção e manipulação de objetos salientes improvisados". arXiv : 1511.02999 [ cs.CV ].
  31. ^ Barghout, Lauren. " Abordagem taxométrica visual para segmentação de imagens usando corte de táxon espacial difuso produz regiões contextualmente relevantes ." Processamento de informações e gerenciamento de incertezas em sistemas baseados em conhecimento. Springer International Publishing, 2014.
  32. ^ Liu, Ziyi; Forjar; Hua, Gang; Zhang, Qilin; Niu, Zhenxing; Wu, Ying; Zheng, Nanning (2018). "Joint Video Object Discovery and Segmentation by Coupled Dynamic Markov Networks" (PDF) . Transações IEEE no processamento de imagens . 27 (12): 5840–5853. Bibcode : 2018ITIP ... 27.5840L . doi : 10.1109 / tip.2018.2859622 . ISSN 1057-7149 . PMID 30059300 . S2CID 51867241 . Arquivado do original (PDF) em 07/09/2018 . Página visitada em 14/09/2018 .    
  33. ^ Wang, Le; Duan, Xuhuan; Zhang, Qilin; Niu, Zhenxing; Hua, Gang; Zheng, Nanning (22/05/2018). "Tubo de segmento: localização de ação espaço-temporal em vídeos não aparados com segmentação por quadro" (PDF) . Sensores . 18 (5): 1657. bibcode : 2018Senso..18.1657W . doi : 10.3390 / s18051657 . ISSN 1424-8220 . PMC 5982167 . PMID 29789447 .    
  34. ^ Shapiro, Stuart C. (1992). Enciclopédia de Inteligência Artificial, Volume 1 . Nova York: John Wiley & Sons, Inc. pp. 643–646. ISBN 978-0-471-50306-4.
  35. ^ Kagami, Shingo (2010). "Sistemas de visão de alta velocidade e projetores para percepção do mundo em tempo real". 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition - Workshops . IEEE Computer Society Conference on Computer Vision and Pattern Recognition - Workshops . 2010 . pp. 100–107. doi : 10.1109 / CVPRW.2010.5543776 . ISBN 978-1-4244-7029-7. S2CID  14111100 .
  36. ^ Seth Colaner (3 de janeiro de 2016). "Um terceiro tipo de processador para VR / AR: Movidius 'Myriad 2 VPU" . www.tomshardware.com .

Leitura adicional

Ligações externas