Nothing Special   »   [go: up one dir, main page]

BR112018005430B1 - SYSTEMS AND METHODS FOR DETECTING AREAS WITHOUT OBSTACLES - Google Patents

SYSTEMS AND METHODS FOR DETECTING AREAS WITHOUT OBSTACLES Download PDF

Info

Publication number
BR112018005430B1
BR112018005430B1 BR112018005430-5A BR112018005430A BR112018005430B1 BR 112018005430 B1 BR112018005430 B1 BR 112018005430B1 BR 112018005430 A BR112018005430 A BR 112018005430A BR 112018005430 B1 BR112018005430 B1 BR 112018005430B1
Authority
BR
Brazil
Prior art keywords
map
depth
estimate
obstacle
processing
Prior art date
Application number
BR112018005430-5A
Other languages
Portuguese (pt)
Inventor
Gokce Dane
Vasudev Bhaskaran
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112018005430B1 publication Critical patent/BR112018005430B1/en

Links

Abstract

SISTEMAS E MÉTODOS PARA DETECÇÃO DE ÁREA DE AUSÊNCIA DE OBSTÁCULO. Um método executado por um dispositivo eletrônico é descrito. O método inclui executar processamento vertical de um mapa de profundidade para determinar uma estimativa vertical de ausência de obstáculo. O método também inclui executar processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência obstáculo horizontal. O método ainda inclui combinar a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal. O método inclui adicionalmente a geração de um mapa de ausência de obstáculo com base na combinação das estimativas de ausência de obstáculo vertical e horizontal.SYSTEMS AND METHODS FOR DETECTING AREAS WITHOUT OBSTACLES. A method performed by an electronic device is described. The method includes performing vertical processing of a depth map to determine a vertical estimate of obstacle absence. The method also includes performing horizontal processing of the depth map to determine a horizontal obstacle absence estimate. The method further includes combining the vertical obstacle absence estimate and the horizontal obstacle absence estimate. The method further includes generating an obstacle absence map based on the combination of vertical and horizontal obstacle absence estimates.

Description

CAMPO DE REVELAÇÃOFIELD OF REVELATION

[0001] A presente invenção refere-se geralmente a dispositivos eletrônicos. Mais especificamente, a presente invenção refere-se a sistemas e métodos para detecção de área de ausência de obstáculo.[0001] The present invention generally relates to electronic devices. More specifically, the present invention relates to systems and methods for detecting an obstacle-free area.

ANTECEDENTESBACKGROUND

[0002] Nas últimas décadas, o uso de dispositivos eletrônicos tornou-se comum. Em particular, avanços na tecnologia eletrônica reduziram o custo de dispositivos eletrônicos mais complexos e úteis. A redução de custos e a demanda de consumidor proliferaram o uso de dispositivos eletrônicos de modo que eles sejam praticamente ubíquos na sociedade moderna. Conforme o uso de dispositivos eletrônicos se expandiu, assim tem a demanda de novas e melhoradas características de dispositivos eletrônicos. Mais especificamente, dispositivos eletrônicos que realizam novas funções e/ou que realizam funções mais rápidas, mais eficientemente ou com maior qualidade são frequentemente procuradas após.[0002] In recent decades, the use of electronic devices has become common. In particular, advances in electronic technology have reduced the cost of more complex and useful electronic devices. Cost reductions and consumer demand have proliferated the use of electronic devices so that they are practically ubiquitous in modern society. As the use of electronic devices has expanded, so has the demand for new and improved features of electronic devices. More specifically, electronic devices that perform new functions and/or that perform functions faster, more efficiently or with higher quality are often sought after.

[0003] Alguns dispositivos eletrônicos (por exemplo, câmeras, camcorders de vídeo, câmeras digitais, telefones celulares, telefones inteligentes, computadores, televisões, etc.) captura e/ou utilização de imagens. Por exemplo, um telefone inteligente pode capturar e/ou processar imagens de vídeo e/ou de vídeo. Em aplicações de veículos automotivos e autónomos, a detecção de obstáculos pode ser realizada pelo processamento de uma imagem. As imagens de processamento podem exigir uma quantidade relativamente grande de tempo, memória e recursos de energia. Os recursos requeridos podem variar de acordo com a complexidade do processamento.[0003] Some electronic devices (e.g., cameras, video camcorders, digital cameras, cell phones, smart phones, computers, televisions, etc.) capture and/or use images. For example, a smart phone may capture and/or process video and/or video images. In automotive and autonomous vehicle applications, obstacle detection can be performed by processing an image. Processing images can require a relatively large amount of time, memory and power resources. The resources required may vary according to the complexity of the processing.

[0004] Pode ser difícil implementar algumas tarefas complexas de processamento. Por exemplo, algumas plataformas podem ter recursos de processamento, memória e/ou energia limitados. Além disso, algumas aplicações podem ser sensíveis ao tempo. Como pode ser observado a partir desta discussão, sistemas e métodos que aperfeiçoam o processamento de imagem podem ser benéficos.[0004] It may be difficult to implement some complex processing tasks. For example, some platforms may have limited processing, memory and/or power resources. Additionally, some applications may be time sensitive. As can be seen from this discussion, systems and methods that improve image processing can be beneficial.

SUMÁRIOSUMMARY

[0005] Um método executado por um dispositivo eletrônico é descrito. O método inclui executar processamento vertical de um mapa de profundidade para determinar uma estimativa de ausência de obstáculo vertical. O método também inclui executar processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência de obstáculo horizontal. O método ainda inclui combinar a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal. O método inclui adicionalmente a geração de um mapa de ausência de obstáculo com base na combinação das estimativas de ausência de obstáculo vertical e horizontal.[0005] A method performed by an electronic device is described. The method includes performing vertical processing of a depth map to determine a vertical obstacle absence estimate. The method also includes performing horizontal processing of the depth map to determine a horizontal obstacle absence estimate. The method further includes combining the vertical obstacle absence estimate and the horizontal obstacle absence estimate. The method further includes generating an obstacle absence map based on the combination of vertical and horizontal obstacle absence estimates.

[0006] A realização do processamento vertical pode incluir a divisão do mapa de profundidade em segmentos. Pelo menos um segmento pode incluir um número de pixels em uma coluna. Os parâmetros de modelo Linear podem ser estimados para pelo menos um segmento para determinar a estimativa de ausência de obstáculo vertical. Um mapa de confiabilidade vertical que inclui um valor de confiabilidade para a estimativa vertical de ausência de obstáculo pode ser gerado.[0006] Performing vertical processing may include dividing the depth map into segments. At least one segment can include a number of pixels in a column. Linear model parameters can be estimated for at least one segment to determine the vertical obstacle absence estimate. A vertical reliability map that includes a reliability value for the vertical obstacle absence estimate can be generated.

[0007] Determinar o mapa de confiabilidade vertical pode incluir determinar um erro de ajuste de segmento para um dado segmento com base em uma diferença entre os parâmetros de modelo linear estimados e parâmetros de modelo linear predeterminados. Um valor de confiabilidade para o dado segmento pode ser determinado pela comparação do erro de ajuste de segmento a um limite de estimativa vertical. O valor de confiabilidade para o dado segmento pode ser aplicado a pelo menos um pixel no dado segmento.[0007] Determining the vertical reliability map may include determining a segment fit error for a given segment based on a difference between estimated linear model parameters and predetermined linear model parameters. A reliability value for the given segment can be determined by comparing the segment fit error to a vertical estimate limit. The reliability value for the given segment can be applied to at least one pixel in the given segment.

[0008] Os parâmetros de modelo linear predeterminados podem ser selecionados dentre uma pluralidade de modelos de condição rodoviária. A pluralidade de modelos de condição de estrada pode ter um conjunto correspondente de parâmetros de modelo linear.[0008] Predetermined linear model parameters can be selected from a plurality of road condition models. The plurality of road condition models may have a corresponding set of linear model parameters.

[0009] A realização do processamento horizontal pode incluir a obtenção de um histograma de profundidade para pelo menos uma fileira de pixels do mapa de profundidade. Uma linha de terreno pode ser determinada A partir do histograma de profundidade. Uma estimativa de ausência de obstáculo horizontal pode ser determinada com base em uma distância de um valor de profundidade de pelo menos um pixel a partir da linha de terreno. Um mapa de confiabilidade horizontal pode ser gerado que inclui um valor de confiabilidade para a estimativa de ausência de obstáculo horizontal.[0009] Performing horizontal processing may include obtaining a depth histogram for at least one row of pixels of the depth map. A terrain line can be determined from the depth histogram. An estimate of horizontal obstacle absence can be determined based on a distance of a depth value of at least one pixel from the terrain line. A horizontal reliability map can be generated that includes a reliability value for the horizontal obstacle absence estimate.

[0010] A geração do mapa de confiabilidade horizontal pode incluir determinar se o valor de profundidade de um dado pixel está dentro de uma faixa de um modo do histograma de profundidade. O dado pixel pode ter um alto valor de confiabilidade quando o valor de profundidade do dado pixel está dentro da faixa do modo do histograma de profundidade.[0010] Generation of the horizontal reliability map may include determining whether the depth value of a given pixel is within a range of a mode of the depth histogram. The given pixel can have a high reliability value when the depth value of the given pixel is within the range of the depth histogram mode.

[0011] A combinação da estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal pode incluir a realização do processamento vertical e do processamento horizontal em paralelo. A estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal podem ser fundidas com base em um mapa de confiabilidade vertical e um mapa de confiabilidade horizontal.[0011] The combination of vertical obstacle absence estimation and horizontal obstacle absence estimation may include performing vertical processing and horizontal processing in parallel. The vertical obstacle absence estimate and the horizontal obstacle absence estimate can be fused based on a vertical reliability map and a horizontal reliability map.

[0012] Um dado pixel pode ser identificado como uma área de ausência de obstáculo no mapa de ausência de obstáculo onde tanto o mapa de confiabilidade vertical como o mapa de confiabilidade horizontal são caracterizados por um valor de alta confiabilidade para o dado pixel. Um dado pixel pode ser identificado como uma área de obstáculo no mapa de ausência de obstáculo onde pelo menos um dentre o mapa de confiabilidade vertical ou o mapa de confiabilidade horizontal é caracterizado por um valor de baixa confiabilidade para o dado pixel. Um dado pixel pode ser identificado como uma área de ausência de obstáculo ou área com obstáculo no mapa de ausência de obstáculo com base em uma coordenada do dado pixel onde o mapa de confiabilidade vertical e o mapa de confiabilidade horizontal são caracterizados por diferentes valores de confiabilidade para o dado pixel.[0012] A given pixel can be identified as an obstacle-free area in the obstacle-free map where both the vertical reliability map and the horizontal reliability map are characterized by a high reliability value for the given pixel. A given pixel can be identified as an obstacle area in the obstacle-free map where at least one of the vertical reliability map or the horizontal reliability map is characterized by a low reliability value for the given pixel. A given pixel can be identified as an obstacle-free area or an obstacle-free area on the obstacle-free map based on a coordinate of the given pixel where the vertical reliability map and the horizontal reliability map are characterized by different reliability values for the given pixel.

[0013] A combinação da estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal pode incluir a realização do processamento vertical do mapa de profundidade. Um mapa de confiabilidade vertical pode ser obtido com base em uma confiança de ajuste de modelo. As regiões confiáveis do mapa de confiabilidade vertical podem ser identificadas como áreas de ausência de obstáculos. O processamento Horizontal pode ser realizado em regiões não confiáveis do mapa de confiabilidade vertical para determinar se as regiões não confiáveis são áreas de ausência de obstáculos.[0013] The combination of the vertical obstacle absence estimate and the horizontal obstacle absence estimate may include performing vertical processing of the depth map. A vertical reliability map can be obtained based on a model fit confidence. The reliable regions of the vertical reliability map can be identified as areas of absence of obstacles. Horizontal processing can be performed on unreliable regions of the vertical reliability map to determine whether the unreliable regions are areas of absence of obstacles.

[0014] A combinação da estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal pode incluir a realização do processamento horizontal do mapa de profundidade. Um mapa de confiabilidade horizontal pode ser obtido com base em uma distância de histograma de profundidade. As regiões confiáveis do mapa de confiabilidade horizontal podem ser identificadas como áreas de ausência de obstáculos. O processamento Vertical em regiões não confiáveis do mapa de confiabilidade horizontal pode ser realizado para determinar se as regiões não confiáveis são áreas de ausência de obstáculos.[0014] The combination of the vertical obstacle absence estimate and the horizontal obstacle absence estimate may include performing horizontal processing of the depth map. A horizontal reliability map can be obtained based on a depth histogram distance. The reliable regions of the horizontal reliability map can be identified as areas of absence of obstacles. Vertical processing on unreliable regions of the horizontal reliability map can be performed to determine whether the unreliable regions are areas of absence of obstacles.

[0015] Mapa de ausência de obstáculo pode ser usado na identificação de uma região de interesse usada por pelo menos um de um algoritmo de detecção de objeto ou um algoritmo de detecção de pista.[0015] Obstacle absence map can be used in identifying a region of interest used by at least one of an object detection algorithm or a lane detection algorithm.

[0016] Um dispositivo eletrônico é também descrito. O dispositivo eletrônico é configurado para executar processamento vertical de um mapa de profundidade para determinar uma estimativa de ausência de obstáculo vertical. O dispositivo eletrônico é também configurado para executar processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência de obstáculo horizontal. O dispositivo eletrônico é adicionalmente configurado para combinar a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal. O dispositivo eletrônico é adicionalmente configurado para gerar um mapa de ausência de obstáculo com base na combinação das estimativas de ausência de obstáculo vertical e horizontal.[0016] An electronic device is also described. The electronic device is configured to perform vertical processing of a depth map to determine an estimate of vertical obstacle absence. The electronic device is also configured to perform horizontal processing of the depth map to determine an estimate of horizontal obstacle absence. The electronic device is further configured to combine the vertical obstacle absence estimate and the horizontal obstacle absence estimate. The electronic device is further configured to generate an obstacle absence map based on the combination of vertical and horizontal obstacle absence estimates.

[0017] Um aparelho também é descrito. O aparelho inclui meios para executar processamento vertical de um mapa de profundidade para determinar uma estimativa de ausência de obstáculo vertical. O aparelho também inclui meios para executar processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência de obstáculo horizontal. O aparelho inclui ainda meios para combinar a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal. O aparelho inclui adicionalmente meios para a geração de um mapa de ausência de obstáculo com base na combinação das estimativas de ausência de obstáculo vertical e horizontal.[0017] An apparatus is also described. The apparatus includes means for performing vertical processing of a depth map to determine an estimate of vertical obstacle absence. The apparatus also includes means for performing horizontal processing of the depth map to determine an estimate of horizontal obstacle absence. The apparatus further includes means for combining the vertical obstacle absence estimate and the horizontal obstacle absence estimate. The apparatus further includes means for generating an obstacle absence map based on the combination of vertical and horizontal obstacle absence estimates.

[0018] Um produto de programa de computador também é descrito. O produto de programa de computador inclui um meio legível por computador tangível não transitório que tem instruções no mesmo. As instruções incluem código para fazer com que um dispositivo eletrônico execute processamento vertical de um mapa de profundidade para determinar uma estimativa de ausência de obstáculo vertical. As instruções também incluem código para fazer com que o dispositivo eletrônico execute processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência de obstáculo horizontal. As instruções incluem ainda código para fazer com que o dispositivo eletrônico combine a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal. As instruções adicionalmente incluem código para fazer com que o dispositivo eletrônico gere um mapa de ausência de obstáculo com base na combinação das estimativas de ausência de obstáculo vertical e horizontal.[0018] A computer program product is also described. The computer program product includes a tangible, non-transitory computer-readable medium that has instructions thereon. The instructions include code to cause an electronic device to perform vertical processing of a depth map to determine an estimate of vertical obstacle absence. The instructions also include code to cause the electronic device to perform horizontal processing of the depth map to determine an estimate of the absence of a horizontal obstacle. The instructions further include code to cause the electronic device to combine the vertical obstacle absence estimate and the horizontal obstacle absence estimate. The instructions further include code for causing the electronic device to generate an obstacle absence map based on the combination of vertical and horizontal obstacle absence estimates.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0019] A figura 1 é um diagrama de blocos que ilustra um dispositivo eletrônico configurado para executar detecção de área sem obstáculo;[0019] Figure 1 is a block diagram illustrating an electronic device configured to perform obstacle-free area detection;

[0020] A figura 2 é um diagrama de blocos que ilustra um módulo de determinação de ausência de obstáculo;[0020] Figure 2 is a block diagram illustrating an obstacle absence determination module;

[0021] A figura 3 é um fluxograma que ilustra um método para a realização de detecção de área sem obstáculo;[0021] Figure 3 is a flowchart illustrating a method for performing obstacle-free area detection;

[0022] As figuras 4A -4D ilustram um exemplo de um processamento vertical de um mapa de profundidade;[0022] Figures 4A -4D illustrate an example of vertical processing of a depth map;

[0023] A figura 5 é um fluxograma que ilustra um método para a realização de detecção de área sem obstáculo utilizando processamento vertical;[0023] Figure 5 is a flowchart illustrating a method for performing obstacle-free area detection using vertical processing;

[0024] Figuras 6A -6D ilustram um exemplo de um processamento horizontal de um mapa de profundidade;[0024] Figures 6A -6D illustrate an example of a horizontal processing of a depth map;

[0025] A figura 7 é um fluxograma que ilustra um método para a realização de detecção de área sem obstáculo utilizando processamento horizontal;[0025] Figure 7 is a flowchart illustrating a method for performing obstacle-free area detection using horizontal processing;

[0026] A figura 8 é um fluxograma que ilustra um método para combinar uma estimativa de ausência de obstáculo vertical e uma estimativa de ausência de obstáculo horizontal para determinar um mapa de ausência de obstáculo;[0026] Figure 8 is a flow chart illustrating a method for combining a vertical obstacle absence estimate and a horizontal obstacle absence estimate to determine an obstacle absence map;

[0027] A figura 9 é um fluxograma que ilustra um outro método para combinar uma estimativa de ausência de obstáculo vertical e uma estimativa de ausência de obstáculo horizontal para determinar um mapa de ausência de obstáculo;[0027] Figure 9 is a flowchart illustrating another method for combining a vertical obstacle absence estimate and a horizontal obstacle absence estimate to determine an obstacle absence map;

[0028] A figura 10 é um fluxograma que ilustra ainda um outro método para combinar uma estimativa de ausência de obstáculo vertical e uma estimativa de ausência de obstáculo horizontal para determinar um mapa de ausência de obstáculo;[0028] Figure 10 is a flow chart illustrating yet another method for combining a vertical obstacle absence estimate and a horizontal obstacle absence estimate to determine an obstacle absence map;

[0029] As figuras 11A - 11B ilustram um exemplo de determinação de áreas de ausência de obstáculos em uma imagem;[0029] Figures 11A - 11B illustrate an example of determining areas of absence of obstacles in an image;

[0030] As figuras 12A - 12B ilustram um outro exemplo de determinação de áreas de ausência de obstáculos em uma imagem;[0030] Figures 12A - 12B illustrate another example of determining areas of absence of obstacles in an image;

[0031] As figuras 13A - 13B ilustram um exemplo de determinação de distância a partir de uma área sem obstáculo;[0031] Figures 13A - 13B illustrate an example of determining distance from an obstacle-free area;

[0032] A figura 14 ilustra um exemplo de utilização do mapa de ausência de obstáculo para identificar uma região de interesse (ROI) usado por um algoritmo de detecção de objeto;[0032] Figure 14 illustrates an example of using the obstacle absence map to identify a region of interest (ROI) used by an object detection algorithm;

[0033] A figura 15 ilustra um exemplo de utilização do mapa de ausência de obstáculo para identificar uma ROI usada por um algoritmo de detecção de pista;[0033] Figure 15 illustrates an example of using the obstacle absence map to identify an ROI used by a lane detection algorithm;

[0034] A figura 16 é um fluxograma que ilustra um método para classificar uma estrada com base em parâmetros estimados de modelo linear estimados; e[0034] Figure 16 is a flowchart illustrating a method for classifying a road based on estimated linear model parameters; It is

[0035] A figura 17 ilustra certos componentes que podem ser incluídos dentro de um dispositivo eletrônico.[0035] Figure 17 illustrates certain components that can be included within an electronic device.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0036] Em muitas aplicações, é vantajoso identificar áreas não-objetos dentro de uma região ou ambiente para evitação de obstáculos. Por exemplo, com sistemas de assistência de motorista avançados (ADAS), é importante identificar a área acionável em frente do carro para evitação de obstáculos. Um outro cenário no qual a evitação de obstáculos é importante é a automação veicular em que um veículo autónomo (por exemplo, um veículo aéreo não tripulado (UAV) ou automóvel autónomo) detecta seu ambiente e navega sem entrada humana.[0036] In many applications, it is advantageous to identify non-object areas within a region or environment for obstacle avoidance. For example, with advanced driver assistance systems (ADAS), it is important to identify the actionable area in front of the car for obstacle avoidance. Another scenario in which obstacle avoidance is important is vehicular automation in which an autonomous vehicle (e.g., an unmanned aerial vehicle (UAV) or autonomous automobile) senses its environment and navigates without human input.

[0037] Tipicamente, o problema de evitação de obstáculos é conferido a partir da outra direção, onde objetos de interesse (por exemplo, pedestres, carros, bicicletas) são detectados e podem ser identificados através de algoritmos de detecção/reconhecimento de objeto e alertas são providos ao motorista para tomar precaução. Por exemplo, a detecção de obstáculos pode ser utilizada para detectar e identificar sinais de tráfego (por exemplo, sinais de limite de velocidade, sinais de parada, sinais de rua, etc.), entretanto, esta abordagem pode ser lenta e imprecisa. Além disso, todas as classes de objeto têm que ser treinadas antecipadamente, o que torna difícil o anúncio de novas classes de objeto.[0037] Typically, the obstacle avoidance problem is viewed from the other direction, where objects of interest (e.g., pedestrians, cars, bicycles) are detected and can be identified through object detection/recognition algorithms and alerts. are provided to the driver to take precaution. For example, obstacle detection can be used to detect and identify traffic signs (e.g. speed limit signs, stop signs, street signs, etc.), however, this approach can be slow and inaccurate. Furthermore, all object classes have to be trained in advance, which makes announcing new object classes difficult.

[0038] Nos sistemas e métodos aqui descritos, em vez de identificar objetos, regiões são identificadas que são isentas de obstáculos ou objetos. Estas regiões podem ser referidas como áreas móveis. Em outras palavras, estas regiões tridimensionais são áreas de ausência de obstáculos nas quais o movimento é possível. Por exemplo, uma área de ausência de obstáculo pode ser identificada em uma estrada. Na identificação de áreas de ausência de obstáculos, várias outras aplicações tais como perfilagem rodoviária, controle de velocidade, um objeto mais rápido e mais confiável, e a detecção de pista pode ser realizada utilizando a área de ausência de obstáculo.[0038] In the systems and methods described here, instead of identifying objects, regions are identified that are free from obstacles or objects. These regions can be referred to as mobile areas. In other words, these three-dimensional regions are areas of absence of obstacles in which movement is possible. For example, an obstacle-free area can be identified on a road. In identifying obstacle-free areas, various other applications such as road profiling, speed control, a faster and more reliable object, and lane detection can be performed using the obstacle-free area.

[0039] Os sistemas e métodos aqui descritos podem ser usados para identificar uma área sem obstáculo pela análise de um mapa de profundidade. Em uma implementação, o mapa de profundidade pode ser gerado a partir de um par de imagens estéreo. Em um cenário rodoviário, o espaço aberto na frente pode ser mapeado para um modelo linear que descreve a estrada no domínio de profundidade. Pelo uso da profundidade de segmentos de estrada, os parâmetros de modelo linear podem ser estimados. Os parâmetros de modelo linear estimados podem ser comparados com os anteriores (por exemplo, parâmetros de modelo predeterminados). Se ajuste é alcançado, então os segmentos são declarados como sendo parte da área aberta. Se um par de imagens estéreo não estiver disponível, métodos tais como estrutura de movimento podem ser usados para obter um mapa de profundidade usando uma sequência de entrada de mono câmera.[0039] The systems and methods described here can be used to identify an obstacle-free area by analyzing a depth map. In one implementation, the depth map can be generated from a pair of stereo images. In a road scenario, the open space in front can be mapped to a linear model that describes the road in the depth domain. By using the depth of road segments, linear model parameters can be estimated. The estimated linear model parameters can be compared with previous ones (e.g. predetermined model parameters). If adjustment is achieved, then the segments are declared to be part of the open area. If a stereo image pair is not available, methods such as structure from motion can be used to obtain a depth map using a mono camera input sequence.

[0040] Os sistemas e métodos aqui descritos proporcionam a determinação de um mapa de ausência de obstáculo baseado em uma combinação inteligente de processamento vertical e processamento horizontal de uma ou mais imagens. Sistemas e métodos de realizar a identificação de uma área de ausência de obstáculo são explicados em maiores detalhes abaixo.[0040] The systems and methods described here provide the determination of an obstacle absence map based on an intelligent combination of vertical processing and horizontal processing of one or more images. Systems and methods of identifying an obstacle-free area are explained in greater detail below.

[0041] A figura 1 é um diagrama de blocos que ilustra um dispositivo eletrônico 102 configurado para executar detecção de área sem obstáculo. O dispositivo eletrônico 102 também pode ser referido como um dispositivo de comunicação sem fio, um dispositivo móvel, estação móvel, estação de assinante, cliente, estação de cliente, equipamento de usuário (UE), estação remota, terminal de acesso, terminal móvel, terminal, terminal de usuário, unidade de assinante, etc. Exemplos de dispositivos eletrônicos incluem computadores portáteis ou de mesa, telefones celulares, telefones inteligentes, modems sem fio, e-leitores, dispositivos de mesa, sistemas de jogo, robôs, aviões, veículos aéreos não tripulados (UAVs), automóveis, etc. Alguns destes dispositivos podem operar de acordo com um ou mais padrões industriais.[0041] Figure 1 is a block diagram illustrating an electronic device 102 configured to perform obstacle-free area detection. The electronic device 102 may also be referred to as a wireless communication device, a mobile device, mobile station, subscriber station, client, client station, user equipment (UE), remote station, access terminal, mobile terminal, terminal, user terminal, subscriber unit, etc. Examples of electronic devices include portable or desktop computers, cell phones, smart phones, wireless modems, e-readers, desktop devices, gaming systems, robots, airplanes, unmanned aerial vehicles (UAVs), automobiles, etc. Some of these devices may operate in accordance with one or more industry standards.

[0042] Em muitos cenários, o dispositivo eletrônico 102 pode usar um mapa de ausência de obstáculo 126 de uma cena. Em um exemplo, um telefone inteligente pode gerar um mapa de ausência de obstáculo 126 de uma cena para identificar espaço desocupado. Em outro exemplo, um automóvel pode incluir um sistema avançado de assistência de motorista (ADAS) que pode usar um mapa de ausência de obstáculo 126 para regular a velocidade, direção, estacionamento, etc., do automóvel com base em sinais de tráfego detectados, sinais e/ou outros objetos. Em outro exemplo, um veículo aéreo não tripulado (UAV) pode gerar um mapa de ausência de obstáculo 126 de vídeo gravado enquanto em voo, pode navegar com base em objetos detectados (por exemplo, edifícios, sinais, pessoas, embalagens, etc.), pode captar e/ou distribuir um pacote detectado, etc. Muitos outros exemplos podem ser implementados de acordo com os sistemas e métodos aqui descritos. Por exemplo, os sistemas e método aqui revelados poderiam ser implementados em um robô que executa uma ou mais ações (por exemplo, Busca de algo, montagem de algo, busca por um artigo, etc. 0) com base em um ou mais objetos detectados usando o mapa de ausência de obstáculo 126.[0042] In many scenarios, the electronic device 102 may use an obstacle-free map 126 of a scene. In one example, a smart phone may generate an obstacle absence map 126 of a scene to identify unoccupied space. In another example, an automobile may include an advanced driver assistance system (ADAS) that may use an obstacle absence map 126 to regulate the automobile's speed, steering, parking, etc. based on detected traffic signals. signs and/or other objects. In another example, an unmanned aerial vehicle (UAV) may generate an obstacle-free map 126 from video recorded while in flight, may navigate based on detected objects (e.g., buildings, signs, people, packaging, etc.) , can capture and/or distribute a detected packet, etc. Many other examples can be implemented according to the systems and methods described here. For example, the systems and method disclosed herein could be implemented in a robot that performs one or more actions (e.g., Search for something, assemble something, search for an article, etc. 0) based on one or more detected objects using the obstacle absence map 126.

[0043] Um dispositivo eletrônico 102 pode incluir uma ou mais câmeras. Uma câmera pode incluir um sensor de imagem 104 e um sistema óptico 108 (por exemplo, lentes) que focaliza imagens de objetos que estão localizadas dentro do campo de visão do sistema óptico 108 no sensor de imagem 104. Um dispositivo eletrônico 102 também pode incluir uma aplicação de software de câmera e uma tela de exibição. Quando a aplicação de câmara está funcionando, as imagens 114 de objetos que estão localizados dentro do campo de visão do sistema óptico 108 e pode ser registrado pelo sensor de imagem 104. Estas imagens 114 podem ser armazenadas em um buffer de memória 112. Em Algumas implementações, a câmera pode ser separada do dispositivo eletrônico 102 e o dispositivo eletrônico 102 pode receber dados de imagem de uma ou mais câmeras externas ao dispositivo eletrônico 102.[0043] An electronic device 102 may include one or more cameras. A camera may include an image sensor 104 and an optical system 108 (e.g., lenses) that focuses images of objects that are located within the field of view of the optical system 108 onto the image sensor 104. An electronic device 102 may also include a camera software application and a display screen. When the camera application is operating, images 114 of objects that are located within the field of view of the optical system 108 can be recorded by the image sensor 104. These images 114 can be stored in a memory buffer 112. In some implementations, the camera may be separate from the electronic device 102 and the electronic device 102 may receive image data from one or more cameras external to the electronic device 102.

[0044] Embora os presentes sistemas e métodos sejam descritos em termos de imagens capturadas 114, as técnicas discutidas aqui podem ser usadas em qualquer imagem digital. Portanto, os termos quadro de vídeo e imagem digital podem ser usados de forma intercambiável aqui.[0044] Although the present systems and methods are described in terms of captured images 114, the techniques discussed here can be used on any digital image. Therefore, the terms video frame and digital image can be used interchangeably here.

[0045] Em muitas aplicações, é benéfico para um dispositivo eletrônico 102 identificar áreas que são isentas de obstáculos. Por exemplo, no caso de ADAS, é importante identificar a área acionável em frente do carro para evitação de obstáculos. Em algumas abordagens, este problema é verificado a partir da outra direção. Nessas abordagens, objetos de interesse (por exemplo motores, bicicletas, bicicletas) são identificados por meio de detecção de objeto e algoritmos de reconhecimento e alertas são providos ao motorista para tomar precaução.[0045] In many applications, it is beneficial for an electronic device 102 to identify areas that are free from obstacles. For example, in the case of ADAS, it is important to identify the actionable area in front of the car for obstacle avoidance. In some approaches, this problem is checked from the other direction. In these approaches, objects of interest (e.g. motors, bicycles, bicycles) are identified through object detection and recognition algorithms and alerts are provided to the driver to take precaution.

[0046] Outras abordagens podem determinar áreas de ausência de obstáculos pela realização de um ou de processamento vertical ou processamento horizontal de uma imagem 114. Cada um dos processos verticais e de processamento o processamento horizontal pode estimar áreas de ausência de obstáculo em uma imagem 114. Entretanto, cada abordagem tem limitações quando executadas independentemente.[0046] Other approaches can determine areas of absence of obstacles by performing either vertical processing or horizontal processing of an image 114. Each of the vertical processing and horizontal processing processes can estimate areas of absence of obstacle in an image 114 However, each approach has limitations when performed independently.

[0047] O processamento Horizontal pode dar uma estimativa incorreta de ausência de obstáculos quando uma estrada é inclinada. O processamento Vertical pode realizar segmentação na imagem 114. Se os segmentos forem grandes, então o ajuste é mais confiável. Entretanto, partes de objetos poderiam ser incluídas como áreas de ausência de obstáculos (isto é, sem obstáculos) também. Por exemplo, o uso de processamento vertical, o fundo e o topo de carros ou pedestres podem ser identificados incorretamente como uma área de ausência de obstáculo. Também, pistas laterais poderiam ser identificadas incorretamente como uma área sem obstáculo com a abordagem de processamento vertical. Entretanto, se os segmentos forem pequenos, uma detecção imprecisa de área sem obstáculo pode ocorrer.[0047] Horizontal processing may give an incorrect estimate of the absence of obstacles when a road is inclined. Vertical processing can perform segmentation on image 114. If the segments are large, then the adjustment is more reliable. However, parts of objects could be included as obstacle-free (i.e., obstacle-free) areas as well. For example, using vertical processing, the bottom and top of cars or pedestrians may be incorrectly identified as an obstacle-free area. Also, side lanes could be incorrectly identified as a non-obstacle area with the vertical processing approach. However, if the segments are small, inaccurate detection of the non-obstacle area may occur.

[0048] Os sistemas e métodos aqui descritos proporcionam a determinação de um mapa de ausência de obstáculos 126 com base em uma combinação inteligente de processamento vertical e processamento horizontal de uma ou mais imagens 114nos Sistemas e métodos descritos, em vez de identificar objetos, um mapa de ausência de obstáculo 126 pode ser determinado pela combinação de processamento vertical e processamento horizontal de um mapa de profundidade. Em uma implementação, o mapa de profundidade pode ser obtido a partir de uma ou mais imagens. Em outra implementação, o mapa de profundidade pode ser obtido a partir de um processo de aquisição de dados de profundidade (por exemplo, LIDAR)[0048] The systems and methods described herein provide for the determination of an obstacle-free map 126 based on an intelligent combination of vertical processing and horizontal processing of one or more images 114in the described Systems and methods, instead of identifying objects, a Obstacle absence map 126 can be determined by combining vertical processing and horizontal processing of a depth map. In one implementation, the depth map can be obtained from one or more images. In another implementation, the depth map may be obtained from a depth data acquisition process (e.g., LIDAR)

[0049] Em uma implementação, o dispositivo eletrônico 102 pode incluir um módulo de determinação de ausência de obstáculos 116 para determinar um mapa de ausência de obstáculo 126. O módulo de determinação de ausência de obstáculo 116 pode incluir um gerador de mapa de profundidade 118 para obter um mapa de profundidade. O módulo de determinação de ausência de obstáculo 116 também pode incluir um módulo de estimativa vertical 120 para executar processamento vertical do mapa de profundidade para determinar uma estimativa de ausência de obstáculo vertical. O módulo de determinação de ausência de obstáculo 116 pode ainda incluir um módulo de estimativa horizontal 122 para executar processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência de obstáculo horizontal.[0049] In one implementation, the electronic device 102 may include an obstacle absence determination module 116 for determining an obstacle absence map 126. The obstacle absence determination module 116 may include a depth map generator 118 to get a depth map. The obstacle absence determination module 116 may also include a vertical estimation module 120 for performing vertical processing of the depth map to determine a vertical obstacle absence estimate. The obstacle absence determination module 116 may further include a horizontal estimation module 122 for performing horizontal processing of the depth map to determine a horizontal obstacle absence estimate.

[0050] O combinador de estimativa 124 pode combinar a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal para determinar um mapa de ausência de obstáculo 126. Em uma implementação, o combinador de estimativa 124 pode combinar inteligentemente a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal com base nos valores de confiabilidade associados com as estimativas. O mapa de ausência de obstáculo 126 pode indicar quais áreas de uma ou mais imagens 114 são áreas de ausência de obstáculos e cujas áreas são áreas de obstáculos. Mais detalhes sobre a geração do mapa de ausência de obstáculo 126 é dado em conexão com a Figura 2.[0050] The estimate combiner 124 may combine the vertical obstacle absence estimate and the horizontal obstacle absence estimate to determine an obstacle absence map 126. In one implementation, the estimate combiner 124 may intelligently combine the estimate of absence of a vertical obstacle and the estimate of the absence of a horizontal obstacle based on the reliability values associated with the estimates. Obstacle-free map 126 may indicate which areas of one or more images 114 are obstacle-free areas and which areas are obstacle-free areas. More details on the generation of the obstacle absence map 126 are given in connection with Figure 2.

[0051] Em um exemplo, o mapa de ausência de obstáculo 126 pode incluir áreas de ausência de obstáculos que são livres de obstáculos (por exemplo, objetos) nas estradas. Pela combinação do processamento vertical e processamento horizontal de uma imagem 114, detecções falsas podem ser eliminadas. Além disso, uma abordagem combinada pode fornecer uma estimativa de ausência de obstáculo mais confiável.[0051] In one example, the obstacle-free map 126 may include obstacle-free areas that are free of obstacles (e.g., objects) on the roads. By combining vertical processing and horizontal processing of an image 114, false detections can be eliminated. Furthermore, a combined approach can provide a more reliable obstacle absence estimate.

[0052] Os sistemas e métodos descritos podem ser usados para acelerar várias outras aplicações. Por exemplo, o dispositivo eletrônico 102 pode usar o mapa de ausência de obstáculo 126 para outras aplicações tais como detecção de objeto, entendimento de cenário, perfil rodoviário, e detecção de pista. Os sistemas e métodos descritos podem também resolver o problema da detecção de faixa de estrada de estrada que os algoritmos de detecção de pista atuais não podem lidar. Os sistemas e métodos descritos podem também ajudar no acionamento autónomo, onde a velocidade é ajustada com base no terreno da estrada.[0052] The described systems and methods can be used to accelerate various other applications. For example, the electronic device 102 may use the obstacle absence map 126 for other applications such as object detection, scene understanding, road profile, and lane detection. The described systems and methods can also solve the problem of highway lane detection that current lane detection algorithms cannot handle. The systems and methods described can also help with autonomous drive, where speed is adjusted based on road terrain.

[0053] A figura 2 é um diagrama de blocos que ilustra um módulo de determinação de ausência de obstáculo 216. O módulo de determinação de ausência de obstáculos 216 pode ser implementado dentro de um dispositivo eletrônico ou sem fio. O módulo de determinação de ausência de obstáculo 216 pode incluir um gerador de mapa de profundidade 218, um módulo de estimativa vertical 220, um módulo de estimativa horizontal 222 e um combinador de estimativa 224. Módulo de determinação de ausência de obstáculo 216, gerador de mapa de profundidade 218, módulo de estimativa vertical 220, um módulo de estimativa horizontal 222 e um combinador de estimativa 224 podem ser configurações do módulo de determinação de ausência de obstáculo 116, o gerador de mapa de profundidade 118, um módulo de estimativa vertical 120, um módulo de estimativa horizontal 122 e um combinador de estimativa 124 descrito acima em conexão com a Figura 1.[0053] Figure 2 is a block diagram illustrating an obstacle absence determination module 216. The obstacle absence determination module 216 may be implemented within an electronic or wireless device. Obstacle absence determination module 216 may include a depth map generator 218, a vertical estimation module 220, a horizontal estimation module 222, and an estimation combiner 224. Obstacle absence determination module 216, obstacle generator depth map 218, vertical estimation module 220, a horizontal estimation module 222, and an estimation combiner 224 may be configurations of the obstacle absence determination module 116, the depth map generator 118, a vertical estimation module 120 , a horizontal estimation module 122 and an estimation combiner 124 described above in connection with Figure 1.

[0054] O gerador de mapa de profundidade 218 pode receber uma ou mais imagens 214. Em uma configuração, a uma ou mais imagens 214 podem ser obtidas por meio de uma câmera (por exemplo, um sensor de imagem 104 e um sistema óptico 108), conforme descrito em conexão com a Figura 1. Em uma implementação, o gerador de mapa de profundidade 218 pode receber um par de imagens estéreo. Em outra implementação, uma ou mais imagens 214 podem vir de uma imagem mono de vídeo. A imagem 214 pode ser uma imagem digital constituída de pixels.[0054] The depth map generator 218 may receive one or more images 214. In one configuration, the one or more images 214 may be obtained via a camera (e.g., an image sensor 104 and an optical system 108 ), as described in connection with Figure 1. In one implementation, the depth map generator 218 may receive a pair of stereo images. In another implementation, one or more images 214 may come from a mono video image. Image 214 may be a digital image consisting of pixels.

[0055] O gerador de mapa de profundidade 218 pode obter um mapa de profundidade 230 a partir de uma ou mais imagens 214. O mapa de profundidade 230 pode incluir pixels 232 correspondentes aos pixels da uma ou mais imagens cada pixel 232 no mapa de profundidade 230 tem um valor de profundidade 234. O valor de profundidade 234 indica uma distância do pixel 232 em relação à câmera. Por exemplo, um pixel 232 com um valor de profundidade maior 234 pode indicar uma proximidade mais próxima da câmera do que um pixel 232 com um valor de profundidade inferior 234. Um exemplo de um mapa de profundidade 230 é discutido com relação às Figuras 4A -4 D.[0055] The depth map generator 218 may obtain a depth map 230 from one or more images 214. The depth map 230 may include pixels 232 corresponding to the pixels of the one or more images, each pixel 232 in the depth map 230 has a depth value of 234. The depth value of 234 indicates a distance of the pixel 232 relative to the camera. For example, a pixel 232 with a greater depth value 234 may indicate closer proximity to the camera than a pixel 232 with a lower depth value 234. An example of a depth map 230 is discussed with respect to Figures 4A - 4 D.

[0056] Deve ser notado que o algoritmo descrito aqui não requer um valor de profundidade 234 para cada pixel 232. Por exemplo, o mapa de profundidade 230 pode ter furos. O valor de profundidade 234 desses furos pode ser preenchido antes do processamento de partida.[0056] It should be noted that the algorithm described here does not require a depth value 234 for each pixel 232. For example, the depth map 230 may have holes. The depth value 234 of these holes can be filled before starting processing.

[0057] No caso de um par de imagens estéreo, o gerador de mapa de profundidade 218 pode encontrar a correspondência entre os pixels 232 para estimar uma disparidade. Da disparidade, o gerador de mapa de profundidade 218 pode determinar o valor de profundidade 234 para cada pixel 232. Alternativamente, com uma imagem mono de vídeo, o gerador de mapa de profundidade 218 pode determinar o valor de profundidade 234 para cada pixel 232 com base no movimento do vídeo.[0057] In the case of a stereo image pair, the depth map generator 218 may find the correspondence between the pixels 232 to estimate a disparity. From the disparity, the depth map generator 218 can determine the depth value 234 for each pixel 232. Alternatively, with a mono video image, the depth map generator 218 can determine the depth value 234 for each pixel 232 with based on the movement of the video.

[0058] O mapa de profundidade 230 pode ser provido ao módulo de estimativa vertical 220 e ao módulo de estimativa horizontal 222. O módulo de estimativa vertical 220 pode realizar o processamento vertical do mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo vertical 242. O módulo de estimativa horizontal 222 pode executar processamento horizontal do mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo horizontal 258.[0058] The depth map 230 may be provided to the vertical estimation module 220 and the horizontal estimation module 222. The vertical estimation module 220 may perform vertical processing of the depth map 230 to determine a vertical obstacle absence estimate 242. The horizontal estimation module 222 may perform horizontal processing of the depth map 230 to determine a horizontal obstacle absence estimate 258.

[0059] O módulo de estimativa vertical 220 pode dividir o mapa de profundidade 230 em segmentos 236. Cada segmento 236 pode incluir um número de pixels 232 em uma coluna do mapa de profundidade 230. Em outras palavras, o módulo de estimativa vertical 220 pode processar segmentos verticais 236 do mapa de profundidade 230. Um segmento 236 pode ser uma porção de uma coluna de pixels 232 no mapa de profundidade 230. Por exemplo, o segmento 236 pode ser um vetor de 10-15 pixels 232. Os segmentos 236 podem ou não se sobrepor.[0059] The vertical estimation module 220 may divide the depth map 230 into segments 236. Each segment 236 may include a number of pixels 232 in a column of the depth map 230. In other words, the vertical estimation module 220 may process vertical segments 236 of depth map 230. A segment 236 may be a portion of a column of pixels 232 in depth map 230. For example, segment 236 may be a vector of 10-15 pixels 232. Segments 236 may or not overlap.

[0060] O módulo de estimativa vertical 220 pode estimar parâmetros de modelo linear para cada segmento 236 para determinar a estimativa de ausência de obstáculo vertical 242. Cada segmento 236 na direção vertical pode ser estimado através de um modelo linear. O modelo linear pode ser expresso como onde y é o valor de profundidade 234 de um pixel 232, x é a coordenada do pixel 232, e p1 e p2 são os parâmetros de modelo linear estimados 238. Se o erro de estimativa for menor do que um limite de estimativa vertical 246 e o ajuste linear tem uma certa inclinação, ela pode ser rotulada como espaço livre válido (uma área sem obstáculo 266). Em uma implementação, uma inclinação maior do que 0 indica ausência de obstáculo, enquanto que uma inclinação que é menor do que ou igual obstáculo. Um exemplo desta conexão com as Figuras 4A a 4D.[0060] The vertical estimation module 220 can estimate linear model parameters for each segment 236 to determine the estimated absence of vertical obstacle 242. Each segment 236 in the vertical direction can be estimated through a linear model. The linear model can be expressed as where y is the depth value 234 of a pixel 232, x is the coordinate of the pixel 232, and p1 and p2 are the estimated linear model parameters 238. If the estimation error is less than a vertical estimation threshold 246 and linear fit has a certain slope, it can be labeled as valid free space (an area without obstacle 266). In one implementation, a slope greater than 0 indicates no obstacle, while a slope that is less than or equal to the obstacle. An example of this connection is shown in Figures 4A to 4D.

[0061] Na forma de matriz, o modelo linear da Equação (1) é Dado pela equação (2). [0061] In matrix form, the linear model of Equation (1) is Given by equation (2).

[0062] Na Equação (2), y é um vetor n-por-l de valores de profundidade 234, x é a matriz de projeto n-por -2 (isto é, uma matriz de n filas, coordenadas de modelo na dimensão vertical, e p1 e p2 são os parâmetros de modelo linear estimados 238. O valor de n corresponde ao número de pixels 232 no segmento de mapa de profundidade 236.[0062] In Equation (2), y is an n-by-l vector of depth values 234, x is the n-by-2 design matrix (i.e., a matrix of n rows, model coordinates in the dimension vertical, and p1 and p2 are the estimated linear model parameters 238. The value of n corresponds to the number of pixels 232 in the depth map segment 236.

[0063] Em uma abordagem, p1, e p2 podem ser resolvidos usando uma solução de mínimos quadrados. Nesta abordagem, p é um vetor dos coeficientes desconhecidos p1 e p2. As equações normais são dadas por Onde X é a transposição da matriz de projeto X Resolvendo para p na equação (4) resulta nos parâmetros de modelo linear estimados 238 (isto é, p1 e p2) [0063] In one approach, p1, and p2 can be solved using a least squares solution. In this approach, p is a vector of the unknown coefficients p1 and p2. The normal equations are given by Where X is the transpose of the design matrix

[0064] Deve ser observado que em uma implementação otimizada, o termo de inversão de matriz é fixo com base na localização (isto é, coordenada a) e poderia ser pré-calculado com base em localização e armazenada. Também, um modelo linear em partes poderia estimar imersões e saliências em uma superfície, com variação em p1, p2 e comprimento de segmento. Além disso, a complexidade primária dessa abordagem é devido à multiplicação de matriz de dois vetores de tamanho n na Equação acima (2). Em um exemplo, n pode ser 10 ou o comprimento em partes escolhido em vez de 10.[0064] It should be noted that in an optimized implementation, the matrix inversion term is fixed based on location (i.e. coordinate a) and could be pre-calculated based on location and stored. Also, a piecewise linear model could estimate immersions and protrusions on a surface, with variation in p1, p2 and segment length. Furthermore, the primary complexity of this approach is due to the matrix multiplication of two vectors of size n in the above Equation (2). In an example, n may be 10 or the piecewise length chosen instead of 10.

[0065] O módulo de estimativa vertical 220 pode determinar um mapa de confiabilidade vertical 248 um valor de confiabilidade 250 para a estimativa de ausência de obstáculo vertical 242. Em uma implementação, o módulo de estimativa vertical 220 pode determinar um erro de ajuste de segmento 244 para cada segmento 236 com base na diferença entre os parâmetros de modelo linear estimados 238 e parâmetros de modelo linear predeterminados 240. Os parâmetros de modelo predeterminados podem ser referidos como [pM1, pM2] O módulo de estimativa vertical 220 pode verificar quão próximo os parâmetros de modelo predeterminados são para os parâmetros estimados [p1, p2] comparando-se a um limite {THY), por exemplo, [0065] The vertical estimation module 220 may determine a vertical reliability map 248 a reliability value 250 for the vertical obstacle absence estimate 242. In one implementation, the vertical estimation module 220 may determine a segment fit error 244 for each segment 236 based on the difference between the estimated linear model parameters 238 and predetermined linear model parameters 240. The predetermined model parameters may be referred to as [pM1, pM2]. The vertical estimation module 220 can check how close the predetermined model parameters are for the estimated parameters [p1, p2] comparing to a threshold {THY), e.g.

[0066] O limite de estimativa vertical 246 pode determinar se os parâmetros de modelo linear estimados 238 ajustam-se nos parâmetros de modelo treinado. Os parâmetros de modelo linear predeterminados 240 podem ser selecionados dentre uma pluralidade de modelos de condição de estrada. Cada um da pluralidade de modelos de condição de estrada pode ter um conjunto correspondente de parâmetros de modelo linear 240. Exemplos de modelos de condição de estrada incluem um plano liso, pico, vale, etc. Os parâmetros de modelo linear predeterminados 240 podem ser determinados pelo treinamento[0066] The vertical estimation threshold 246 can determine whether the estimated linear model parameters 238 fit the trained model parameters. Predetermined linear model parameters 240 may be selected from a plurality of road condition models. Each of the plurality of road condition models may have a corresponding set of linear model parameters 240. Examples of road condition models include a smooth plane, peak, valley, etc. Predetermined linear model parameters 240 can be determined by training

[0067] O módulo de estimativa vertical 220 pode determinar um valor de profundidade estimado utilizando os parâmetros de modelo linear estimados 238 de acordo com a Equação (5), onde é o valor de profundidade estimado na i-ésima localização. [0067] The vertical estimation module 220 can determine an estimated depth value using the estimated linear model parameters 238 according to Equation (5), where is the estimated depth value at the ith location.

[0068] Erro de estimativa de profundidade (ei) com os parâmetros de modelo linear estimados 238 pode ser determinado de acordo com a Equação (6), onde yi é o valor de profundidade 234 na i-ésima localização. [0068] Depth estimation error (ei) with the estimated linear model parameters 238 can be determined according to Equation (6), where yi is the depth value 234 at the ith location.

[0069] O erro de ajuste de segmento 244 (s) pode ser determinado de acordo com a equação (7), onde n é o comprimento do segmento 236. [0069] The segment fitting error 244 (s) can be determined according to equation (7), where n is the length of the segment 236.

[0070] O erro de ajuste de segmento 244 pode ser usado como uma métrica de confiabilidade para processamento vertical. O módulo de estimativa vertical 220 pode determinar o valor de confiabilidade vertical 250 para cada segmento 236 comparando o erro de ajuste de segmento 244 de cada segmento 236 a um limite de estimativa vertical 246.[0070] Segment fit error 244 can be used as a reliability metric for vertical processing. The vertical estimation module 220 may determine the vertical reliability value 250 for each segment 236 by comparing the segment fit error 244 of each segment 236 to a vertical estimation threshold 246.

[0071] O limite de estimativa vertical 246 pode ser baseado nos parâmetros de modelo linear predeterminados 240. O limite de estimativa vertical 246 pode variar dependendo do qual os parâmetros de modelo linear predeterminados 240 são usados. Por exemplo, o limite de estimativa vertical 246 pode ter um valor se os parâmetros de modelo linear predeterminados 240 para uma estrada plana forem usados. O limite de estimativa vertical 246 pode ter um valor diferente se os parâmetros de modelo linear predeterminados 240 para uma colina forem usados.[0071] The vertical estimation limit 246 may be based on predetermined linear model parameters 240. The vertical estimation limit 246 may vary depending on which predetermined linear model parameters 240 are used. For example, vertical estimation limit 246 may have a value if predetermined linear model parameters 240 for a flat road are used. The vertical estimation limit 246 may have a different value if the predetermined linear model parameters 240 for a hill are used.

[0072] O módulo de estimativa vertical 220 pode verificar o valor absoluto da diferença entre o erro de ajuste de segmento 244 e o limite de estimativa vertical 246. Um dado segmento 236 e pode ter um valor de confiabilidade vertical alto 250 quando o erro de ajuste de segmento 244 para o dado segmento 236 é menor do que o limite de estimativa vertical 246. Inversamente, o dado segmento 236 pode ter um valor de confiabilidade vertical baixo 250 quando o erro de ajuste de segmento 244 para o dado segmento 236 é maior do que ou igual ao limite de estimativa vertical 246. Portanto, se a diferença entre o erro de ajuste de segmento 244 e o limite de estimativa vertical 246 for pequena, então o segmento 236 é considerado como parte de uma área sem obstáculo 266. Se a diferença for grande, então o segmento 236 não é considerado como parte de uma área sem obstáculo 266.[0072] The vertical estimation module 220 may check the absolute value of the difference between the segment adjustment error 244 and the vertical estimation limit 246. A given segment 236 may have a high vertical reliability value 250 when the vertical estimation error segment fit 244 for the given segment 236 is less than the vertical estimation limit 246. Conversely, the given segment 236 may have a low vertical reliability value 250 when the segment fit error 244 for the given segment 236 is greater than or equal to the vertical estimation limit 246. Therefore, if the difference between the segment adjustment error 244 and the vertical estimation limit 246 is small, then the segment 236 is considered to be part of an obstacle-free area 266. If the difference is large, then the segment 236 is not considered to be part of an obstacle-free area 266.

[0073] Determinação do valor de confiabilidade 250 para um dado segmento 236, o módulo de estimativa vertical 220 pode limitar o mapa de confiabilidade vertical 248 para obter um mapa binário. O valor de confiabilidade 250 para um dado segmento 236 pode ser comparado com um limite para determinar se o segmento 236 é uma área não- objeto (por exemplo, móvel) ou uma área de objeto (por exemplo, área não móvel) O mapa de confiabilidade vertical 248 pode incluir os valores de confiabilidade 250 dos pixels 232 no mapa de profundidade 230. Portanto, o mapa de confiabilidade vertical 248 é um mapa que tem uma confiança de ajuste por pixel de profundidade 232 bem como por segmento 236.[0073] Determining the reliability value 250 for a given segment 236, the vertical estimation module 220 may limit the vertical reliability map 248 to obtain a binary map. The reliability value 250 for a given segment 236 may be compared with a threshold to determine whether the segment 236 is a non-object area (e.g., moving) or an object area (e.g., non-moving area). vertical reliability 248 may include the reliability values 250 of the pixels 232 in the depth map 230. Therefore, the vertical reliability map 248 is a map that has a fit confidence per depth pixel 232 as well as per segment 236.

[0074] O módulo de estimativa horizontal 222 pode executar processamento horizontal do mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo horizontal 258. O processamento horizontal pode incluir a obtenção de um histograma de profundidade 252 para cada fileira de pixels 232 do mapa de profundidade 230. Um exemplo do histograma de profundidade 252 é descrito em relação às Figuras 6A -6 D o histograma de profundidade 252 também pode ser referido como um histograma de disparidade.[0074] The horizontal estimation module 222 may perform horizontal processing of the depth map 230 to determine a horizontal obstacle absence estimate 258. The horizontal processing may include obtaining a depth histogram 252 for each row of pixels 232 of the map of depth 230. An example of the depth histogram 252 is described in relation to Figures 6A-6D. The depth histogram 252 may also be referred to as a disparity histogram.

[0075] Em uma implementação, o histograma de profundidade 252 pode ser obtido por obtenção de um histograma para cada fileira no mapa de profundidade 230. Por exemplo, para uma fileira de pixels 232 a partir do mapa de profundidade 230, um histograma pode ser gerado para os valores de profundidade 234 correspondentes aos pixels 232 na fileira.[0075] In one implementation, the depth histogram 252 may be obtained by obtaining a histogram for each row in the depth map 230. For example, for a row of pixels 232 from the depth map 230, a histogram may be generated for the 234 depth values corresponding to the 232 pixels in the row.

[0076] O módulo de estimativa horizontal 222 pode determinar uma linha de terreno 254 a partir do histograma de profundidade 252. A coordenada y dos pontos finais da linha de terreno 254 determinam a distância de espaço livre mais próxima e mais distante.[0076] The horizontal estimation module 222 may determine a terrain line 254 from the depth histogram 252. The y-coordinate of the endpoints of the terrain line 254 determine the nearest and furthest free space distance.

[0077] A linha de terreno 254 pode ser determinada utilizando uma abordagem de extração de linha. Uma transformada de Hough pode ser aplicada no histograma de profundidade 252. A Transformada de Hough pode extrair múltiplos segmentos de linha do histograma de profundidade 252. Por Exemplo, a transformada de Hough pode gerar 10-20 linhas pequenas. Os segmentos de linha podem ser unidos para formar a linha de terreno 254. Em uma implementação, o ângulo da linha de terreno 254 pode ser limitado (por exemplo , Entre -20 graus e -40 graus) com base em características de inclinação de espaço de ausência de obstáculo.[0077] Terrain line 254 can be determined using a line extraction approach. A Hough transform can be applied to the depth histogram 252. The Hough Transform can extract multiple line segments from the depth histogram 252. For example, the Hough transform can generate 10-20 small lines. Line segments may be joined to form terrain line 254. In one implementation, the angle of terrain line 254 may be limited (e.g., between -20 degrees and -40 degrees) based on space slope characteristics. absence of obstacles.

[0078] O módulo de estimativa horizontal 222 pode determinar a estimativa de ausência de obstáculo horizontal 258 para cada pixel 232 com base na distância do valor de profundidade 234 de cada pixel 232 a partir da linha de terreno 254. E um pixel 232 que tem um valor de profundidade 234 que se situa dentro de um limite de estimativa horizontal 260 da linha de terreno 254 pode ser identificado como uma área sem obstáculo 266. Por exemplo, se o valor de profundidade 234 de um pixel 232 situa-se dentro de uma certa faixa de disparidade da linha de terreno 254, então o pixel 232 pode ser rotulado como uma área de ausência de obstáculo 266. Se o valor de profundidade 234 de um pixel 232 ficar fora da certa faixa de disparidade da linha de terreno 254, então, o pixel 232 pode ser rotulado como uma área de obstáculo 268.[0078] The horizontal estimation module 222 may determine the horizontal obstacle absence estimate 258 for each pixel 232 based on the distance of the depth value 234 of each pixel 232 from the terrain line 254. And a pixel 232 that has a depth value 234 that lies within a horizontal estimation limit 260 of terrain line 254 can be identified as an unobstructed area 266. For example, if the depth value 234 of a pixel 232 lies within a certain disparity range of the terrain line 254, then the pixel 232 can be labeled as an obstacle-free area 266. If the depth value 234 of a pixel 232 falls outside the certain disparity range of the terrain line 254, then , pixel 232 can be labeled as an obstacle area 268.

[0079] O módulo de estimativa horizontal 222 pode também determinar um mapa de confiabilidade horizontal 262 com base em uma distância de histograma de profundidade 252. O mapa de confiabilidade horizontal 262 pode incluir um valor de confiabilidade 264 para a estimativa de ausência de obstáculo horizontal 258 de cada pixel 232.[0079] The horizontal estimation module 222 may also determine a horizontal reliability map 262 based on a depth histogram distance 252. The horizontal reliability map 262 may include a reliability value 264 for the horizontal obstacle absence estimate. 258 of each 232 pixel.

[0080] A distância para o modo 256 do histograma de profundidade 252 pode ser usada como uma métrica de confiabilidade para o processamento horizontal. O módulo de estimativa horizontal 222 pode determinar se o valor de profundidade 234 de cada pixel 232 está dentro de um limite de confiabilidade 261 do modo 256 do histograma de profundidade 252. Um dado pixel 232 pode ter um valor de alta confiabilidade 264 quando o valor de profundidade 234 do dado pixel 232 está dentro do limite de confiabilidade 261 do modo 256 do histograma de profundidade 252.[0080] The distance to mode 256 of the depth histogram 252 can be used as a reliability metric for horizontal processing. The horizontal estimation module 222 may determine whether the depth value 234 of each pixel 232 is within a reliability limit 261 of the mode 256 of the depth histogram 252. A given pixel 232 may have a high confidence value 264 when the value of depth 234 of the given pixel 232 is within the reliability limit 261 of the mode 256 of the depth histogram 252.

[0081] O combinador de estimativa 224 pode combinar a estimativa de ausência de obstáculo vertical 242 e a estimativa de ausência de obstáculo horizontal 258 para determinar o mapa de ausência de obstáculo 226. Esta combinação pode ser baseada nos valores de confiabilidade vertical 250 e nos valores de confiabilidade horizontal 264. Em uma abordagem, o processamento vertical e o processamento horizontal podem ser realizados em paralelo e as estimativas de ausência de obstáculo resultantes 242, 258 fundidas. Em outra abordagem, o processamento vertical e o processamento horizontal podem ser executados sequencialmente e as estimativas não de obstáculos resultantes fundidas.[0081] The estimate combiner 224 may combine the vertical obstacle absence estimate 242 and the horizontal obstacle absence estimate 258 to determine the obstacle absence map 226. This combination may be based on the vertical reliability values 250 and the horizontal reliability values 264. In one approach, vertical processing and horizontal processing can be performed in parallel and the resulting obstacle absence estimates 242, 258 fused. In another approach, vertical processing and horizontal processing can be performed sequentially and the resulting non-obstacle estimates fused.

[0082] Para a abordagem de processamento paralela, tanto o processamento vertical como o processamento horizontal podem ser realizados em paralelo. Por exemplo, o módulo de estimativa vertical 220 pode executar processamento vertical e o módulo de estimativa horizontal 222 pode executar simultaneamente processamento horizontal como descrito acima. O combinador de estimativa 224 pode gerar o mapa de ausência de obstáculo 226 pela identificação de cada pixel 232 como uma área sem obstáculo 266 ou área com obstáculo 268. Esta identificação pode ser baseada nos valores de confiabilidade vertical 250 do mapa de confiabilidade vertical 248 e os valores de confiabilidade horizontal 264 do mapa de confiabilidade horizontal 262.[0082] For the parallel processing approach, both vertical processing and horizontal processing can be performed in parallel. For example, the vertical estimation module 220 may perform vertical processing and the horizontal estimation module 222 may simultaneously perform horizontal processing as described above. The estimation combiner 224 may generate the obstacle-free map 226 by identifying each pixel 232 as a non-obstacle area 266 or an obstacle area 268. This identification may be based on the vertical reliability values 250 of the vertical reliability map 248 and the horizontal reliability values 264 from the horizontal reliability map 262.

[0083] Se ambos o mapa de confiabilidade vertical 248 e o mapa de confiabilidade horizontal 262 indicarem que um pixel 232 tem uma alta confiabilidade, então o pixel 232 pode ser identificado como uma área sem obstáculo 266 no mapa de ausência de obstáculo 226. Em outras palavras, um dado pixel 232 pode ser identificado como uma área de ausência de obstáculo 266 no mapa de ausência de obstáculo 226 onde ambos o mapa de confiabilidade vertical 248 e o mapa de confiabilidade horizontal 262 são caracterizados por um valor de alta confiabilidade para o dado pixel 232.[0083] If both the vertical reliability map 248 and the horizontal reliability map 262 indicate that a pixel 232 has a high reliability, then the pixel 232 can be identified as an obstacle-free area 266 on the obstacle-free map 226. In In other words, a given pixel 232 can be identified as an obstacle-free area 266 in the obstacle-free map 226 where both the vertical reliability map 248 and the horizontal reliability map 262 are characterized by a high reliability value for the given pixel 232.

[0084] Em uma implementação, isto pode ser obtido pela limitação do mapa de confiabilidade vertical 248 e do mapa de confiabilidade horizontal 262 com um respectivo limite. Por exemplo, se um valor de confiabilidade vertical 250 e um valor de confiabilidade horizontal 264 de um dado pixel 232 forem maiores do que um limite, então, o pixel 232 pode ser identificado como uma área sem obstáculo 266. No caso tanto do mapa de confiabilidade vertical 248 como do mapa de confiabilidade horizontal 262 que indica baixa confiabilidade, o pixel 232 pode ser rotulado como uma área de obstáculo 268.[0084] In one implementation, this can be achieved by limiting the vertical reliability map 248 and the horizontal reliability map 262 with a respective limit. For example, if a vertical reliability value 250 and a horizontal reliability value 264 of a given pixel 232 are greater than a threshold, then the pixel 232 can be identified as an obstacle-free area 266. In the case of both the vertical reliability 248 as from the horizontal reliability map 262 which indicates low reliability, the pixel 232 can be labeled as an obstacle area 268.

[0085] Para o caso em que o mapa de confiabilidade vertical 248 ou o mapa de confiabilidade horizontal 262 indica uma alta confiabilidade e o outro indica uma baixa confiabilidade, uma ou mais abordagens de fusão diferentes podem ser realizadas. Em uma abordagem, se pelo menos um do mapa de confiabilidade vertical 248 ou o mapa de confiabilidade horizontal 262 indica que o dado pixel 232 tem uma baixa confiabilidade, então o dado pixel 232 é identificado como uma área de obstáculo 268 no mapa de ausência de obstáculo 226. Em outras palavras, um dado pixel 232 pode ser identificado como uma área de obstáculo 268 no mapa de ausência de obstáculo 226 onde pelo menos um dos indicadores do mapa de confiabilidade vertical 248 ou o mapa de confiabilidade horizontal 262 são caracterizados por um valor de baixa confiabilidade para o dado pixel 232. Nesta abordagem, se um dos mapas de confiabilidade 248, 262 estiver indicando baixa confiabilidade, o pixel 232 pode ser rotulado com base apenas naquele mapa de confiabilidade 248, 262.[0085] For the case where the vertical reliability map 248 or the horizontal reliability map 262 indicates high reliability and the other indicates low reliability, one or more different fusion approaches can be performed. In one approach, if at least one of the vertical reliability map 248 or the horizontal reliability map 262 indicates that the given pixel 232 has a low reliability, then the given pixel 232 is identified as an obstacle area 268 in the absence map. obstacle 226. In other words, a given pixel 232 can be identified as an obstacle area 268 in the obstacle absence map 226 where at least one of the indicators of the vertical reliability map 248 or the horizontal reliability map 262 is characterized by a low reliability value for the given pixel 232. In this approach, if one of the reliability maps 248, 262 is indicating low reliability, the pixel 232 can be labeled based only on that reliability map 248, 262.

[0086] Em outra abordagem, o mapa de confiabilidade vertical 248 e o mapa de confiabilidade horizontal 262 são caracterizados por diferentes valores de confiabilidade 250, 264 para um dado pixel 232. Neste caso, o dado pixel 232 pode ser identificado como uma área sem obstáculo 266 ou área com obstáculo 268 baseada na coordenada do dado pixel 232. Nesta abordagem, se ambos os mapas de confiabilidade 248, 262 estiverem próximos um do outro em termos de confiabilidade (por exemplo, um sendo mais alto do que outro), a decisão pode ser adicionalmente melhorada considerando-se as coordenadas de pixel 232.[0086] In another approach, the vertical reliability map 248 and the horizontal reliability map 262 are characterized by different reliability values 250, 264 for a given pixel 232. In this case, the given pixel 232 can be identified as an area without obstacle 266 or obstacle area 268 based on the coordinate of the given pixel 232. In this approach, if both reliability maps 248, 262 are close to each other in terms of reliability (e.g., one being higher than the other), the decision can be further improved by considering 232 pixel coordinates.

[0087] Em um Exemplo, RHij é o valor de confiabilidade horizontal 264 para i-ésimo e j-ésimo pixel 232 a partir do processamento horizontal, e RVij é o valor de confiabilidade vertical 250 do processamento vertical (onde ambos os valores de confiabilidade 250, 264 são normalizadas se obtidos por diferentes métodos). Se |RHij- RVij|<TH, então isto irá indicar proximidade de mapas de confiança 248, 246. Adicionalmente, RHij pode ser comparado a RVi+n, j+n, onde n é < N (por ex. N=5 para resolução 720p).[0087] In an Example, RHij is the horizontal reliability value 264 for the i-th and j-th pixel 232 from horizontal processing, and RVij is the vertical reliability value 250 from vertical processing (where both reliability values 250, 264 are normalized if obtained by different methods). If |RHij- RVij|<TH, then this will indicate proximity to confidence maps 248, 246. Additionally, RHij can be compared to RVi+n, j+n, where n is < N (e.g. N=5 for 720p resolution).

[0088] Para a abordagem de processamento sequencial, tanto processamento vertical como processamento horizontal podem ser realizados primeiro. Após o primeiro processamento ser realizado, o mapa de confiabilidade (por exemplo, o mapa de confiabilidade vertical 248 ou o mapa de confiabilidade horizontal262) para pixels 232 onde a confiabilidade não é satisfeita, um segundo processamento é chamado. Os resultados do primeiro e segundo processamento podem ser unidos para obter o mapa de ausência de obstáculo 226. Um exemplo de processamento sequencial começando com processamento vertical é descrito em conexão com a Figura 9. Um exemplo de processamento sequencial começando com processamento horizontal é descrito em conexão com a Figura 10.[0088] For the sequential processing approach, both vertical processing and horizontal processing can be performed first. After the first processing is performed, the reliability map (e.g., the vertical reliability map 248 or the horizontal reliability map 262) for pixels 232 where reliability is not satisfied, a second processing is called. The results of the first and second processing can be joined to obtain the obstacle absence map 226. An example of sequential processing starting with vertical processing is described in connection with Figure 9. An example of sequential processing starting with horizontal processing is described in connection with Figure 10.

[0089] O módulo de determinação de ausência de obstáculo 216 pode executar processamento adicional do mapa de ausência de obstáculo 226. Em uma implementação, o módulo de determinação de ausência de obstáculo 216 pode realizar a remoção de outlier. Por exemplo, um pequeno número de pixels 232 pode ser incorretamente marcado com a área com obstáculo 268 dentro de uma área sem obstáculo 266. O módulo de determinação de ausência de obstáculo 216 pode identificar estes estranhos e mudar seu estado para ausência de obstáculo ou obstáculo. O módulo de determinação de ausência de obstáculo 216 pode realizar filtragem adicional do mapa de ausência de obstáculo 226 para preparar o mesmo para operações subsequentes.[0089] The obstacle absence determination module 216 may perform further processing of the obstacle absence map 226. In one implementation, the obstacle absence determination module 216 may perform outlier removal. For example, a small number of pixels 232 may be incorrectly marked with the obstacle area 268 within a non-obstacle area 266. The obstacle-free determination module 216 may identify these strangers and change their state to obstacle-free or obstacle-free. . The obstacle absence determination module 216 may perform additional filtering of the obstacle absence map 226 to prepare it for subsequent operations.

[0090] O mapa de ausência de obstáculo 226 pode ser usado para diferentes operações. Em uma implementação, o mapa de ausência de obstáculo 226 pode ser usado para identificar uma região de interesse usada por um algoritmo de detecção de objeto. Isto pode ser realizado conforme descrito em conexão com a Figura 14. Em outra implementação, o mapa de ausência de obstáculo 226 pode ser usado para identificar uma região de interesse usada por um algoritmo de detecção de pista. Isto pode ser realizado conforme descrito em conexão com a Figura 15[0090] Obstacle absence map 226 can be used for different operations. In one implementation, the obstacle absence map 226 may be used to identify a region of interest used by an object detection algorithm. This may be accomplished as described in connection with Figure 14. In another implementation, the obstacle absence map 226 may be used to identify a region of interest used by a lane detection algorithm. This can be carried out as described in connection with Figure 15

[0091] Como ilustrado na Figura 2, um ou mais dos componentes ilustrados pode ser opcionalmente implementado por um processador 228. Por exemplo, o módulo de determinação de ausência de obstáculo 216 pode ser implementado por um processador 228. Em algumas configurações, diferentes processadores podem ser usados para implementar diferentes componentes (por exemplo, um processador pode implementar o gerador de mapa de profundidade 218, um outro processador pode ser usado para implementar o módulo de estimativa vertical 220, um outro processador pode ser usado para implementar o módulo de estimativa horizontal 222 e ainda um outro processador pode ser usado para implementar o combinador de estimativa 224).[0091] As illustrated in Figure 2, one or more of the illustrated components may optionally be implemented by a processor 228. For example, the obstacle absence determination module 216 may be implemented by a processor 228. In some configurations, different processors may be used to implement different components (e.g., one processor may implement the depth map generator 218, another processor may be used to implement the vertical estimation module 220, another processor may be used to implement the estimation module horizontal 222 and yet another processor may be used to implement the estimation combiner 224).

[0092] Deve ser notado que é possível girar a imagem 214 e executar processamento diagonal. Se uma imagem 214 for girada, o processamento vertical e horizontal pode tornar-se um processamento diagonal. Portanto, embora os termos processamento vertical e horizontal sejam usados aqui, pode ser reconhecido que o processamento poderia ser aplicado através de uma seção diferente através da imagem girada com o mapeamento de coordenadas correspondente.[0092] It should be noted that it is possible to rotate image 214 and perform diagonal processing. If an image 214 is rotated, vertical and horizontal processing may become diagonal processing. Therefore, although the terms vertical and horizontal processing are used here, it can be recognized that the processing could be applied across a different section through the rotated image with the corresponding coordinate mapping.

[0093] A figura 3 é um fluxograma que ilustra um método 300 para a realização de detecção de área sem obstáculo. O método 300 pode ser implementado, com referência à Figura 1, um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116. O dispositivo eletrônico 102 pode obter 302 um mapa de profundidade 230 a partir de uma ou mais imagens 214. Em uma implementação, o dispositivo eletrônico 102 pode gerar o mapa de profundidade 230 a partir de um par de imagens estéreo. Em outra implementação, o dispositivo eletrônico 102 pode gerar o mapa de profundidade 230 a partir de uma imagem mono de vídeo. Cada pixel 232 no mapa de profundidade 230 pode ter um valor de profundidade 234.[0093] Figure 3 is a flowchart illustrating a method 300 for performing obstacle-free area detection. Method 300 may be implemented, with reference to Figure 1, an electronic device 102, e.g., an obstacle absence determination module 116. The electronic device 102 may obtain 302 a depth map 230 from one or more images 214. In one implementation, the electronic device 102 may generate the depth map 230 from a pair of stereo images. In another implementation, electronic device 102 may generate depth map 230 from a mono video image. Each pixel 232 in the depth map 230 can have a depth value 234.

[0094] O dispositivo eletrônico 102 pode executar o processamento vertical 304 do mapa de profundidade 230 para determinar uma estimativa vertical sem obstáculo 242. O processamento vertical pode incluir dividir o mapa de profundidade 230 em segmentos 236. Cada segmento 236 pode incluir um número de pixels 232 em uma coluna. O dispositivo eletrônico 102 pode estimar os parâmetros de modelo linear 238 para cada segmento 236 para determinar a estimativa de ausência de obstáculo vertical 242. O dispositivo eletrônico 102 pode determinar um mapa de confiabilidade vertical 248 que inclui um valor de confiabilidade 250 para a estimativa de ausência de obstáculo vertical 242.[0094] Electronic device 102 may perform vertical processing 304 of depth map 230 to determine an unobstructed vertical estimate 242. Vertical processing may include dividing depth map 230 into segments 236. Each segment 236 may include a number of 232 pixels in a column. The electronic device 102 may estimate linear model parameters 238 for each segment 236 to determine the vertical obstacle absence estimate 242. The electronic device 102 may determine a vertical reliability map 248 that includes a reliability value 250 for the estimate of absence of vertical obstacle 242.

[0095] O dispositivo eletrônico 102 pode executar 306 processamento horizontal do mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo horizontal 258. O processamento horizontal pode incluir a obtenção de um histograma de profundidade 252 para cada fileira de pixels 232 do mapa de profundidade 230. O dispositivo eletrônico 102 pode determinar uma linha de terreno 254 a partir do histograma de profundidade 252. O dispositivo eletrônico 102 pode determinar a estimativa de ausência de obstáculo horizontal 258 para cada pixel 232 com base na distância do valor de profundidade 234 de cada pixel 232 a partir do pixel linha de terreno 254. O dispositivo eletrônico 102 também pode determinar um mapa de confiabilidade horizontal 262 que inclui um valor de confiabilidade 264 para a estimativa de ausência de obstáculo horizontal 258 de cada pixel 232.[0095] The electronic device 102 may perform 306 horizontal processing of the depth map 230 to determine an estimate of the absence of a horizontal obstacle 258. The horizontal processing may include obtaining a depth histogram 252 for each row of pixels 232 of the depth map. depth 230. The electronic device 102 may determine a terrain line 254 from the depth histogram 252. The electronic device 102 may determine the horizontal obstacle absence estimate 258 for each pixel 232 based on the distance of the depth value 234 from each pixel 232 from the terrain line pixel 254. The electronic device 102 may also determine a horizontal reliability map 262 that includes a reliability value 264 for the horizontal obstacle absence estimate 258 of each pixel 232.

[0096] O dispositivo eletrônico 102 pode combinar 308 a estimativa de ausência de obstáculo vertical 242 e a estimativa de ausência de obstáculo horizontal 258 para determinar um mapa de ausência de obstáculo 226. Em uma implementação, o dispositivo eletrônico 102 pode executar processamento vertical paralelo e processamento horizontal. Nesta implementação, o dispositivo eletrônico 102 pode combinar a estimativa de ausência de obstáculo vertical 242 e a estimativa de ausência de obstáculo horizontal 258, conforme descrito em conexão com a Figura 10. Em outra implementação, o dispositivo eletrônico 102 pode executar processamento sequencial começando com processamento vertical, conforme descrito em conexão com As Figuras 11A -11 B em ainda outra implementação, o dispositivo eletrônico 102 pode executar processamento sequencial começando com processamento horizontal, conforme descrito em conexão com As Figuras 12A -12 B.[0096] The electronic device 102 may combine 308 the vertical obstacle absence estimate 242 and the horizontal obstacle absence estimate 258 to determine an obstacle absence map 226. In one implementation, the electronic device 102 may perform parallel vertical processing and horizontal processing. In this implementation, the electronic device 102 may combine the vertical obstacle absence estimate 242 and the horizontal obstacle absence estimate 258 as described in connection with Figure 10. In another implementation, the electronic device 102 may perform sequential processing starting with vertical processing, as described in connection with Figures 11A - 11 B in yet another implementation, the electronic device 102 can perform sequential processing starting with horizontal processing, as described in connection with Figures 12A - 12 B.

[0097] As figuras 4A -4 D ilustram um exemplo de um processamento vertical de um mapa de profundidade 430. O mapa de profundidade 430 pode ser gerado a partir de uma ou mais imagens 404. O mapa de profundidade 430 pode incluir localizações correspondentes aos pixels da imagem original (s) 404. Cada localização (por exemplo, coordenada) no mapa de profundidade 430 pode ter uma coordenada horizontal 472 e 40T uma coordenada vertical 474a correspondendo aos pixels da imagem original (s) 404.[0097] Figures 4A - 4 D illustrate an example of a vertical processing of a depth map 430. The depth map 430 can be generated from one or more images 404. The depth map 430 can include locations corresponding to the pixels of the original image(s) 404. Each location (e.g., coordinate) in the depth map 430 may have a horizontal coordinate 472 and 40T a vertical coordinate 474a corresponding to the pixels of the original image(s) 404.

[0098] O mapa de profundidade 430 pode combinar com o tamanho da imagem original 404 se a profundidade for calculada a partir da resolução original. Na visualização de um mapa de profundidade 430, o valor de profundidade 434 pode ser obtido a partir das coordenadas correspondentes da imagem original 404. Deve ser notado que uma visualização do mapa de profundidade 430 pode ou não ser gerada ao gerar um mapa de ausência de obstáculo 226.[0098] The depth map 430 may match the size of the original image 404 if the depth is calculated from the original resolution. In viewing a depth map 430, the depth value 434 may be obtained from the corresponding coordinates of the original image 404. It should be noted that a visualization of the depth map 430 may or may not be generated when generating a depth map. obstacle 226.

[0099] Cada pixel 232 do mapa de profundidade 430 pode ter um valor de profundidade 434. Neste exemplo, os valores de profundidade 434a podem variar de 0 a 120, onde 0 indica a distância mais distante e 120 indica a distância mais próxima. Deve ser notado que diferentes valores podem ser usados para os valores de profundidade 434.[0099] Each pixel 232 of depth map 430 may have a depth value 434. In this example, depth values 434a may range from 0 to 120, where 0 indicates the furthest distance and 120 indicates the closest distance. It should be noted that different values can be used for the 434 depth values.

[0100] Em uma implementação, a disparidade para o mapeamento de profundidade pode ser explicada pelas seguintes equações. Z = fBld, onde Z é a distância ao longo do eixo Z da câmera, f é o comprimento focal (em pixels), B é a linha de base (em metros), d é a disparidade (em pixels)). Quando a disparidade é pequena, a profundidade é grande. A profundidade pode ser encontrada em termos de metros.[0100] In one implementation, the disparity for depth mapping can be explained by the following equations. Z = fBld, where Z is the distance along the camera's Z axis, f is the focal length (in pixels), B is the baseline (in meters), d is the disparity (in pixels). When the disparity is small, the depth is great. Depth can be found in terms of meters.

[0101] Deve-se observar que os algoritmos de estimativa de profundidade a partir das imagens estéreo 404 podem não ser completamente confiáveis. Por exemplo, um algoritmo de estimativa de profundidade pode não ser capaz de atribuir valores de profundidade 434 em certas regiões. Um algoritmo de enchimento de profundidade pode ser usado para preencher os valores de profundidade faltantes 434. Por exemplo, o valor de profundidade vizinho 434 pode ser propagado para uma área adjacente. A propagação pode ser da esquerda ou da direita. Alternativamente, os valores de profundidade faltantes 434 podem ser preenchidos por interpolação entre a esquerda e a direita, bem como o topo e o fundo.[0101] It should be noted that depth estimation algorithms from stereo images 404 may not be completely reliable. For example, a depth estimation algorithm may not be able to assign depth 434 values in certain regions. A depth filling algorithm may be used to fill in missing depth values 434. For example, neighboring depth value 434 may be propagated to an adjacent area. The spread can be from the left or right. Alternatively, missing depth values 434 can be filled in by interpolation between left and right as well as top and bottom.

[0102] Este exemplo mostra uma primeira coluna 470a e uma segunda coluna 470b. Em um primeiro gráfico de coluna 475a, os valores de profundidade 434b são mostrados para os pixels 232 na primeira coluna 470a. Neste primeiro gráfico de coluna 475a, os valores de profundidade 434b são plotados em relação às coordenadas verticais 474b dos pixels 232 da primeira coluna 470a. Deve-se notar que neste exemplo, os valores zero de 0 a 40 e depois de 400 pixels são porque não há profundidade atribuída lá. Porque as imagens estéreas podem ser calibradas, elas podem não ter o campo de visão correspondente (FOV) após a calibração. A estimativa de profundidade só pode ser realizada apenas dentro do mesmo FOV.[0102] This example shows a first column 470a and a second column 470b. In a first column chart 475a, depth values 434b are shown for pixels 232 in the first column 470a. In this first column chart 475a, the depth values 434b are plotted relative to the vertical coordinates 474b of the pixels 232 of the first column 470a. It should be noted that in this example, the zero values from 0 to 40 and after 400 pixels are because there is no depth assigned there. Because stereo images can be calibrated, they may not have the corresponding field of view (FOV) after calibration. Depth estimation can only be performed within the same FOV.

[0103] Em um segundo gráfico de coluna 475b, os valores de profundidade 434c são mostrados para os pixels 232 na segunda coluna 470b. Neste segundo gráfico de coluna 475b, os valores de profundidade 434c são plotados em relação às coordenadas verticais 474c dos pixels 232 a partir da segunda coluna 470b. A linha tracejada de 0 a 150 é o mapeamento que mostra os mesmos resultados de algoritmo. O mapeamento pode apenas ser inclinado (isto é, inclinado) linhas (que especificam uma área de estrada não- objeto) para mapear os objetos (que são linhas planas), então o mesmo algoritmo pode ser usado, mas os parâmetros de mapeamento podem ser alterados.[0103] In a second column chart 475b, depth values 434c are shown for pixels 232 in second column 470b. In this second column chart 475b, the depth values 434c are plotted against the vertical coordinates 474c of the pixels 232 from the second column 470b. The dashed line from 0 to 150 is the mapping that shows the same algorithm results. The mapping can only be slanted (that is, slanted) lines (which specify a non-object road area) to mapping objects (which are flat lines), then the same algorithm can be used, but the mapping parameters can be changed.

[0104] A linha sólida nos gráficos 475a, b vem de valores de profundidade originais. A linha tracejada é gerada de acordo com os sistemas e métodos descritos. Deve ser notado que o mapeamento pode ser baseado na inclinação da linha tracejada. Nesses gráficos 475a, b, uma inclinação maior do que 0 indica uma área sem obstáculo 266. Uma inclinação menor do que ou igual a 0 indica uma área de obstáculo 268.[0104] The solid line in graphs 475a, b comes from original depth values. The dashed line is generated according to the systems and methods described. It should be noted that mapping can be based on the slope of the dashed line. In these graphs 475a, b, a slope greater than 0 indicates an obstacle-free area 266. A slope less than or equal to 0 indicates an obstacle area 268.

[0105] Durante o processamento vertical, o dispositivo eletrônico 102 pode dividir o mapa de profundidade 430 em segmentos 236. E cada HPT o segmento 236 pode incluir um número de pixels 232 em uma coluna 470. Por exemplo, o segmento 236 pode ser um vetor de 10-15 pixels 232. O dispositivo eletrônico 102 pode determinar uma estimativa de ausência de obstáculo vertical 242 e pode estimar os parâmetros de modelo linear 238 como descrito em relação à Figura 2. Se o erro de estimativa for menor do que um limite 246 e o ajuste linear tem uma certa inclinação, então o segmento 236 pode ser rotulado como uma área de ausência de obstáculo válida 266.[0105] During vertical processing, the electronic device 102 may divide the depth map 430 into segments 236. And each HPT segment 236 may include a number of pixels 232 in a column 470. For example, the segment 236 may be a 10-15 pixel vector 232. The electronic device 102 may determine an estimate of vertical obstacle absence 242 and may estimate linear model parameters 238 as described with respect to Figure 2. If the estimation error is less than a threshold 246 and the linear fit has a certain slope, then the segment 236 can be labeled as a valid obstacle-free area 266.

[0106] A figura 5 é um fluxograma que ilustra um método 500 para a realização de detecção de área sem obstáculo utilizando processamento vertical. O método 500 pode ser implementado por um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116. O dispositivo eletrônico 102 pode dividir 502 um mapa de profundidade 430 em segmentos 236. Cada segmento 236 pode incluir um número n de pixels 232 em uma coluna 470. Em uma implementação, n pode ser igual a 10 pixels 232.[0106] Figure 5 is a flowchart illustrating a method 500 for performing obstacle-free area detection using vertical processing. Method 500 may be implemented by an electronic device 102, for example, an obstacle absence determination module 116. The electronic device 102 may divide 502 a depth map 430 into segments 236. Each segment 236 may include a number n of 232 pixels in a 470 column. In one implementation, n may equal 10 232 pixels.

[0107] O dispositivo eletrônico 102 pode estimar 504 parâmetros de modelo linear 238 para cada segmento 236 para determinar a estimativa de ausência de obstáculo vertical 242. Isto pode ser realizado de acordo com as equações 1-4 descritas acima.[0107] The electronic device 102 can estimate 504 linear model parameters 238 for each segment 236 to determine the estimated absence of vertical obstacle 242. This can be performed according to equations 1-4 described above.

[0108] O dispositivo eletrônico 102 pode determinar 506 um mapa de confiabilidade vertical 248 que inclui um valor de confiabilidade 250 para a estimativa de ausência de obstáculo vertical 242. Por exemplo, o dispositivo eletrônico 102 pode determinar um erro de ajuste de segmento 244 para cada segmento 236 com base na diferença entre os parâmetros de modelo linear estimados 238 e parâmetros de modelo linear predeterminados 240. O erro de ajuste de segmento 244 pode ser determinado de acordo com as equações 5-7 acima. Os parâmetros de modelo linear predeterminados 240 podem ser selecionados dentre estes valores uma pluralidade de modelos de condição de estrada (por exemplo, plano, pico, vale) Cada um da pluralidade de modelos de condição de estrada pode ter um conjunto correspondente de parâmetros de modelo linear 240.[0108] The electronic device 102 may determine 506 a vertical reliability map 248 that includes a reliability value 250 for the vertical obstacle absence estimate 242. For example, the electronic device 102 may determine a segment adjustment error 244 for each segment 236 based on the difference between the estimated linear model parameters 238 and predetermined linear model parameters 240. The segment fitting error 244 can be determined according to equations 5-7 above. Predetermined linear model parameters 240 may be selected from among these values a plurality of road condition models (e.g., flat, peak, valley) Each of the plurality of road condition models may have a corresponding set of model parameters linear 240.

[0109] O dispositivo eletrônico 102 pode determinar o valor de confiabilidade 250 para cada segmento 236 através da comparação do erro de ajuste de segmento 244 de cada segmento 236 a um limite de estimativa vertical 246.' Um dado segmento 236 pode ter um valor de alta confiabilidade 250 quando o erro de ajuste de segmento 244 para o dado segmento 236 é menor do que o limite de estimativa vertical 246.[0109] The electronic device 102 may determine the reliability value 250 for each segment 236 by comparing the segment adjustment error 244 of each segment 236 to a vertical estimation limit 246.' A given segment 236 may have a high reliability value 250 when the segment fitting error 244 for the given segment 236 is less than the vertical estimation limit 246.

[0110] O dispositivo eletrônico 102 pode aplicar o valor de confiabilidade 250 para um dado segmento 236 a cada pixel 232 no dado segmento 236. Portanto, cada pixel 232 no mapa de confiabilidade vertical 248 pode ter um valor de confiabilidade 250 indicando confiança na estimativa de ausência de obstáculo vertical 242.[0110] The electronic device 102 may apply the reliability value 250 for a given segment 236 to each pixel 232 in the given segment 236. Therefore, each pixel 232 in the vertical reliability map 248 may have a reliability value 250 indicating confidence in the estimate absence of vertical obstacle 242.

[0111] Figuras 6A -6 D ilustram um exemplo de um processamento horizontal de um mapa de profundidade 630. O mapa de profundidade 630 pode ser gerado a partir de uma ou mais imagens 1141. O mapa de profundidade 630 ilustrado na Figura 6A é o mesmo mapa de profundidade 430 descrito em conexão com A figura 4B (comprimido para ajustar a página) O mapa de profundidade 630 pode incluir localizações correspondentes aos pixels da imagem original (s) 114. Cada localização no mapa de profundidade 630 pode ter uma coordenada horizontal 672 e 18T uma coordenada vertical 674 correspondendo aos pixels 232 da imagem original (s) 114.[0111] Figures 6A - 6D illustrate an example of a horizontal processing of a depth map 630. The depth map 630 can be generated from one or more images 1141. The depth map 630 illustrated in Figure 6A is the same depth map 430 described in connection with Figure 4B (compressed to fit page) Depth map 630 may include locations corresponding to pixels of the original image(s) 114. Each location in depth map 630 may have a horizontal coordinate 672 and 18T a vertical coordinate 674 corresponding to pixels 232 of the original image(s) 114.

[0112] O dispositivo eletrônico 102 pode gerar um histograma de profundidade 652. O histograma de profundidade 652 pode ser gerado pela obtenção de um histograma de profundidades para cada fileira no mapa de profundidade 630. Por exemplo, o histograma de profundidade 652 pode ser gerado pela projeção do mapa de profundidade 630 no eixo vertical.[0112] The electronic device 102 may generate a depth histogram 652. The depth histogram 652 may be generated by obtaining a histogram of depths for each row in the depth map 630. For example, the depth histogram 652 may be generated by projecting the depth map 630 onto the vertical axis.

[0113] Um histograma de profundidade 652 pode ser calculado para cada fileira em uma imagem 114. O número de compartimentos no histograma de profundidade 652 corresponde ao número de valores máximos de disparidade na imagem 114. Por exemplo, pode ser 150 para uma imagem 720p, ou pode ser maior para uma imagem de maior resolução e menor para uma imagem de menor resolução. O eixo x no lado direito da Figura 6B corresponde a valores de disparidade, e o valor de intensidade na imagem 114 corresponde à contagem de histograma para aquele valor de disparidade. Quanto mais escura a sombra é, quanto maior o valor de disparidade, quanto mais leve a tonalidade. É, quanto menor o valor de disparidade do histograma. Neste exemplo, um número máximo de depósitos de disparidade é 150. no histograma de profundidade 652, os valores de disparidade são plotados contra as coordenadas verticais 674.[0113] A depth histogram 652 can be calculated for each row in an image 114. The number of bins in the depth histogram 652 corresponds to the number of maximum disparity values in the image 114. For example, it may be 150 for a 720p image , or it may be larger for a higher resolution image and smaller for a lower resolution image. The x-axis on the right side of Figure 6B corresponds to disparity values, and the intensity value in image 114 corresponds to the histogram count for that disparity value. The darker the shadow is, the greater the disparity value, the lighter the hue. It is, the smaller the disparity value of the histogram. In this example, a maximum number of disparity bins is 150. In the 652 depth histogram, the disparity values are plotted against the 674 vertical coordinates.

[0114] O dispositivo eletrônico 102 pode aplicar uma transformada de Hough no histograma de profundidade 652 para extrair segmentos de linha 676. A Transformada de Hough pode extrair múltiplos segmentos de linha 676 a partir do histograma de profundidade 252. Por exemplo, a transformada de Hough pode gerar 10-20 segmentos de linha pequenos 676.[0114] The electronic device 102 may apply a Hough transform to the depth histogram 652 to extract line segments 676. The Hough Transform may extract multiple line segments 676 from the depth histogram 252. For example, the Hough can generate 10-20 small 676 line segments.

[0115] Os segmentos de linha 676 podem ser unidos para formar a linha de terreno 654. A coordenada x dos pontos de extremidade da linha de terreno 254 determinam a distância de espaço livre mais próxima e mais distante. Em uma implementação, o ângulo da linha de terreno 254 pode ser limitado (por exemplo, entre -20 graus e -40 graus) à medida que o espaço de ausência de obstáculo tem certas características de inclinação.[0115] Line segments 676 can be joined together to form terrain line 654. The x-coordinate of the endpoints of terrain line 254 determine the nearest and furthest free space distance. In one implementation, the angle of terrain line 254 may be limited (e.g., between -20 degrees and -40 degrees) as the obstacle-free space has certain slope characteristics.

[0116] Se o histograma de profundidade 652 dá uma linha com uma inclinação negativa, ela corresponde a um segmento rodoviário em frente do carro sem quaisquer obstáculos. Um obstáculo será representado por uma linha vertical reta a 90 graus. A linha de terreno 254 indica que os valores de profundidade na frente da câmera são lentamente decrescentes à medida que os valores de profundidade são analisados em fileiras de uma imagem 114. Se houver um objeto, então o objeto terá o mesmo valor de profundidade para um determinado número de fileiras. Neste caso, os valores de profundidade não serão decrescentes. A inclinação (isto é, o ângulo da linha de terreno254) pode ser escolhido de acordo com a inclinação máxima que uma estrada pode ter.[0116] If the depth histogram 652 gives a line with a negative slope, it corresponds to a road segment in front of the car without any obstacles. An obstacle will be represented by a straight vertical line at 90 degrees. The terrain line 254 indicates that the depth values in front of the camera are slowly decreasing as the depth values are analyzed in rows of an image 114. If there is an object, then the object will have the same depth value for a certain number of rows. In this case, the depth values will not decrease. The slope (i.e. the angle of the terrain line254) can be chosen according to the maximum slope a road can have.

[0117] O dispositivo eletrônico 102 pode rotular os pixels 232 com valores de profundidade 634 que se situam dentro de um limite de estimativa horizontal 260 da linha de terreno 654 como não-limitador áreas de obstáculo 266. Aqueles pixels 232 com valores de profundidade 634 que se situam fora do limite de estimativa horizontal 260 da linha de terreno 654 podem ser rotulados como áreas de obstáculo 268.[0117] Electronic device 102 may label pixels 232 with depth values 634 that lie within a horizontal estimation boundary 260 of terrain line 654 as non-boundary obstacle areas 266. Those pixels 232 with depth values 634 which lie outside the horizontal estimation boundary 260 of the terrain line 654 may be labeled as obstacle areas 268.

[0118] A figura 7 é um fluxograma que ilustra um método 700 para a realização de detecção de área sem obstáculo utilizando processamento horizontal. O método 700 pode ser implementado por um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116. O dispositivo eletrônico 102 pode obter 702 um histograma de profundidade 252 para cada fileira de pixels 232 do mapa de profundidade 230. Isto pode ser realizado conforme descrito em conexão com as figuras 6A - 6D.[0118] Figure 7 is a flowchart illustrating a method 700 for performing obstacle-free area detection using horizontal processing. The method 700 may be implemented by an electronic device 102, for example, an obstacle absence determination module 116. The electronic device 102 may obtain 702 a depth histogram 252 for each row of pixels 232 of the depth map 230. This can be carried out as described in connection with figures 6A - 6D.

[0119] O dispositivo eletrônico 102 pode determinar 704 uma linha de terreno 254 a partir do histograma de profundidade 252. Isto pode ser realizado conforme descrito em conexão com as figuras 6A -6D.[0119] The electronic device 102 may determine 704 a terrain line 254 from the depth histogram 252. This may be accomplished as described in connection with FIGS. 6A-6D.

[0120] O dispositivo eletrônico 102 pode determinar 706 uma estimativa de ausência de obstáculo horizontal 258 para cada pixel 232 com base na distância do valor de profundidade 234 de cada pixel 232 a partir do pixel linha de terreno 254. Aqueles pixels 232 com valores de profundidade 634 que se situam dentro de um limite de estimativa horizontal 260 da linha de terreno 654 podem ser rotulados como áreas de ausência de obstáculo 266. Aqueles pixels 232 com valores de profundidade 634 que se situam fora do limite de estimativa horizontal 260 da linha de terreno 654 podem ser rotulados como áreas de obstáculo 268.[0120] The electronic device 102 may determine 706 a horizontal obstacle absence estimate 258 for each pixel 232 based on the distance of the depth value 234 of each pixel 232 from the terrain line pixel 254. Those pixels 232 with values of depth 634 that fall within a horizontal estimation boundary 260 of the terrain line 654 may be labeled as obstacle-free areas 266. Those pixels 232 with depth values 634 that lie outside the horizontal estimation boundary 260 of the terrain line terrain 654 can be labeled as obstacle areas 268.

[0121] O dispositivo eletrônico 102 pode determinar 708 um mapa de confiabilidade horizontal 262 que inclui um valor de confiabilidade 264 para a estimativa de ausência de obstáculo horizontal 258 de cada pixel 232. Por exemplo, a distância para o modo 256 do histograma de profundidade 252 pode ser usada como uma métrica de confiabilidade para o processamento horizontal. O dispositivo eletrônico 102 pode determinar se o valor de profundidade 234 de cada pixel 232 está dentro de um limite de confiabilidade 261 do modo 256 do histograma de profundidade 252. Um dado pixel 232 pode ter um valor de alta confiabilidade 264 quando o valor de profundidade 234 do dado pixel 232 está dentro do limite de confiabilidade 261 do modo 256 do histograma de profundidade 252.[0121] Electronic device 102 may determine 708 a horizontal reliability map 262 that includes a reliability value 264 for the horizontal obstacle absence estimate 258 of each pixel 232. For example, the distance to mode 256 of the depth histogram 252 can be used as a reliability metric for horizontal processing. The electronic device 102 may determine whether the depth value 234 of each pixel 232 is within a reliability limit 261 of the mode 256 of the depth histogram 252. A given pixel 232 may have a high reliability value 264 when the depth value 234 of the given pixel 232 is within the reliability limit 261 of the mode 256 of the depth histogram 252.

[0122] A figura 8 é um fluxograma que ilustra um método 800 para combinar uma estimativa de ausência de obstáculo vertical 242 e uma estimativa de ausência de obstáculo horizontal 258 para determinar um mapa de ausência de obstáculo 226. O método 800 pode ser implementado por um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116. Neste método 800, o dispositivo eletrônico 102 pode executar processamento vertical e processamento horizontal em paralelo.[0122] Figure 8 is a flow chart illustrating a method 800 for combining a vertical obstacle absence estimate 242 and a horizontal obstacle absence estimate 258 to determine an obstacle absence map 226. The method 800 can be implemented by an electronic device 102, for example, an obstacle absence determination module 116. In this method 800, the electronic device 102 can perform vertical processing and horizontal processing in parallel.

[0123] O dispositivo eletrônico 102 pode executar o processamento vertical 802 de um mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo vertical 242. Isto pode ser realizado como descrito em conexão com A figura 5.[0123] The electronic device 102 may perform vertical processing 802 of a depth map 230 to determine an estimate of the absence of a vertical obstacle 242. This may be performed as described in connection with FIG. 5.

[0124] O dispositivo eletrônico 102 pode obter 804 um mapa de confiabilidade vertical 248 com base em uma confiança de ajuste de modelo. Isto pode ser realizado conforme descrito em conexão com a Figura 5.[0124] The electronic device 102 may obtain 804 a vertical reliability map 248 based on a model fit confidence. This can be accomplished as described in connection with Figure 5.

[0125] O dispositivo eletrônico 102 pode executar 806 processamento horizontal do mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo horizontal 258. Isto pode ser realizado como descrito em conexão com A figura 7.[0125] The electronic device 102 may perform 806 horizontal processing of the depth map 230 to determine an estimate of the absence of horizontal obstacle 258. This may be performed as described in connection with Figure 7.

[0126] O dispositivo eletrônico 102 pode obter 808 um mapa de confiabilidade horizontal 262 com base em uma distância de histograma de profundidade 252. Isto pode ser realizado conforme descrito em conexão com a Figura 7.[0126] Electronic device 102 may obtain 808 a horizontal reliability map 262 based on a depth histogram distance 252. This may be accomplished as described in connection with Figure 7.

[0127] Deve-se notar que as etapas 802,804,806, 808 podem ser realizadas em paralelo. Por exemplo, enquanto o dispositivo eletrônico 102 realiza as etapas de processamento vertical 802 e 804, o dispositivo eletrônico 102 pode executar simultaneamente as etapas de processamento horizontal 806 e 808.[0127] It should be noted that steps 802,804,806, 808 can be performed in parallel. For example, while the electronic device 102 performs the vertical processing steps 802 and 804, the electronic device 102 may simultaneously perform the horizontal processing steps 806 and 808.

[0128] O dispositivo eletrônico 102 pode fundir 810 a estimativa vertical sem obstáculo 242 e a estimativa de ausência de obstáculo horizontal 258 para obter o mapa de ausência de obstáculo 226. Esta fusão pode ser baseada no mapa de confiabilidade vertical 248 e no mapa de confiabilidade horizontal 262.[0128] The electronic device 102 may fuse 810 the vertical obstacle-free estimate 242 and the horizontal obstacle-free estimate 258 to obtain the obstacle-free map 226. This fusion may be based on the vertical reliability map 248 and the horizontal reliability 262.

[0129] Se ambos o mapa de confiabilidade vertical 248 e o mapa de confiabilidade horizontal 262 indicarem que um pixel 232 tem uma alta confiabilidade, então, o pixel 232 pode ser identificado como uma área sem obstáculo 266 no mapa de ausência de obstáculo 226. Por exemplo, se o mapa de confiabilidade vertical 248 indicar um valor de confiabilidade vertical alto 250 e o mapa de confiabilidade horizontal 262 indica um valor de confiabilidade horizontal alto 264, então o pixel 232 pode ser rotulado como uma área sem obstáculo 266 no mapa de ausência de obstáculo 226.[0129] If both the vertical reliability map 248 and the horizontal reliability map 262 indicate that a pixel 232 has a high reliability, then the pixel 232 can be identified as an obstacle-free area 266 in the obstacle-free map 226. For example, if the vertical reliability map 248 indicates a high vertical reliability value 250 and the horizontal reliability map 262 indicates a high horizontal reliability value 264, then the pixel 232 can be labeled as an obstacle-free area 266 on the absence of obstacle 226.

[0130] Para o caso em que o mapa de confiabilidade vertical 248 ou o mapa de confiabilidade horizontal 262 indica uma alta confiabilidade e o outro indica uma baixa confiabilidade, uma ou mais abordagens de fusão diferentes podem ser realizadas. Em uma abordagem, se pelo menos um do mapa de confiabilidade vertical 248 ou 20T o mapa de confiabilidade horizontal 262 indica que o dado pixel 232 tem um valor de baixa confiabilidade 250, 264, então o dado pixel 232 é identificado como uma área de obstáculo 268 no mapa de ausência de obstáculo 226. Em outra abordagem, o mapa de confiabilidade vertical 248 e o mapa de confiabilidade horizontal 262 podem indicar diferentes valores de confiabilidade 250, 264. Neste caso, o dado pixel 2332 pode ser identificado como uma área sem obstáculo 266 ou área com obstáculo 268 baseada na coordenada do dado pixel 232.[0130] For the case where the vertical reliability map 248 or the horizontal reliability map 262 indicates high reliability and the other indicates low reliability, one or more different fusion approaches can be performed. In one approach, if at least one of the vertical reliability map 248 or 20T and the horizontal reliability map 262 indicates that the given pixel 232 has a low reliability value 250, 264, then the given pixel 232 is identified as an obstacle area. 268 in the obstacle absence map 226. In another approach, the vertical reliability map 248 and the horizontal reliability map 262 may indicate different reliability values 250, 264. In this case, the given pixel 2332 may be identified as an area without obstacle 266 or obstacle area 268 based on the coordinate of the given pixel 232.

[0131] A figura 9 é um fluxograma que ilustra um outro método 900 para combinar uma estimativa de ausência de obstáculo vertical 242 e uma estimativa de ausência de obstáculo horizontal 258 para determinar um mapa de ausência de obstáculo 226. O método 900 pode ser implementado por um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116. Neste método 900, o dispositivo eletrônico 102 pode realizar uma aplicação sequencial de processamento vertical seguido por processamento horizontal.[0131] Figure 9 is a flowchart illustrating another method 900 for combining a vertical obstacle absence estimate 242 and a horizontal obstacle absence estimate 258 to determine an obstacle absence map 226. Method 900 can be implemented by an electronic device 102, for example, an obstacle absence determination module 116. In this method 900, the electronic device 102 may perform a sequential application of vertical processing followed by horizontal processing.

[0132] O dispositivo eletrônico 102 pode executar o processamento vertical de um mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo vertical 242. Isto pode ser realizado como descrito em conexão com a figura 5.[0132] The electronic device 102 may perform vertical processing of a depth map 230 to determine an estimate of the absence of a vertical obstacle 242. This may be performed as described in connection with FIG. 5.

[0133] O dispositivo eletrônico 102 pode obter 904 um mapa de confiabilidade vertical 248 com base em uma confiança de ajuste de modelo. Isto pode ser realizado conforme descrito em conexão com a Figura 5.[0133] The electronic device 102 may obtain 904 a vertical reliability map 248 based on a model fit confidence. This can be accomplished as described in connection with Figure 5.

[0134] O dispositivo eletrônico 102 pode identificar 906 regiões confiáveis como áreas de ausência de obstáculos 266 com base no mapa de confiabilidade vertical 248. Por exemplo, cada pixel 232 que tem um valor de confiabilidade vertical alto 250 no mapa de confiabilidade vertical 248 pode ser rotulado como uma área sem obstáculo 266 no mapa de ausência de obstáculo 226.[0134] The electronic device 102 can identify 906 reliable regions as obstacle-free areas 266 based on the vertical reliability map 248. For example, each pixel 232 that has a high vertical reliability value 250 in the vertical reliability map 248 can be labeled as an obstacle-free area 266 on the obstacle-free map 226.

[0135] O dispositivo eletrônico 102 pode executar processamento horizontal 908 em regiões não confiáveis do mapa de confiabilidade vertical 248 para determinar se as regiões não confiáveis são áreas de ausência de obstáculos 266. Por exemplo, o dispositivo eletrônico 102 pode executar processamento horizontal em pelo menos uma fileira de pixels 232 que tem um valor de baixa confiabilidade 250. Deve ser notado que o comprimento de uma fileira poderia ser tão largo quanto a imagem 114 ou poderia ser mais curto do que a largura de imagem. O processamento horizontal pode ser realizado conforme descrito em conexão com a Figura 7 para determinar uma estimativa de ausência de obstáculos horizontal 258. O mapa de ausência de obstáculo 226 pode ser atualizado com base nos resultados do mapa de confiabilidade horizontal 262 das regiões não confiáveis.[0135] The electronic device 102 may perform horizontal processing 908 on unreliable regions of the vertical reliability map 248 to determine whether the unreliable regions are areas of absence of obstacles 266. For example, the electronic device 102 may perform horizontal processing on at least least one row of pixels 232 which has a low reliability value of 250. It should be noted that the length of one row could be as wide as the image 114 or could be shorter than the image width. Horizontal processing may be performed as described in connection with Figure 7 to determine a horizontal obstacle absence estimate 258. The obstacle absence map 226 may be updated based on the results of the horizontal reliability map 262 of the unreliable regions.

[0136] A figura 10 é um fluxograma que ilustra ainda outro método 1000 para combinar uma estimativa vertical sem obstáculo 242 e uma estimativa de ausência de obstáculo horizontal 258 para determinar um mapa de ausência de obstáculo 226. O método 1000 pode ser implementado por um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116. Neste método 1000, o dispositivo eletrônico 102 pode realizar uma aplicação sequencial de processamento horizontal seguido por processamento vertical.[0136] Figure 10 is a flowchart illustrating yet another method 1000 for combining a vertical obstacle-free estimate 242 and a horizontal obstacle-free estimate 258 to determine an obstacle-free map 226. Method 1000 can be implemented by a electronic device 102, for example, an obstacle absence determination module 116. In this method 1000, the electronic device 102 may perform a sequential application of horizontal processing followed by vertical processing.

[0137] O dispositivo eletrônico 102 pode executar 1002 processamento horizontal de um mapa de profundidade 230 para determinar uma estimativa de ausência de obstáculo horizontal 258. Isto pode ser realizado como descrito em conexão com A figura 7.[0137] The electronic device 102 may perform 1002 horizontal processing of a depth map 230 to determine an estimate of the absence of a horizontal obstacle 258. This may be performed as described in connection with Figure 7.

[0138] O dispositivo eletrônico 102 pode obter 1004 um mapa de confiabilidade horizontal 262 com base em uma distância de histograma de profundidade 252. Isto pode ser realizado conforme descrito em conexão com a Figura 7.[0138] The electronic device 102 may obtain 1004 a horizontal reliability map 262 based on a depth histogram distance 252. This may be accomplished as described in connection with Figure 7.

[0139] O dispositivo eletrônico 102 pode identificar 1006 regiões confiáveis como áreas de ausência de obstáculos 266 com base no mapa de confiabilidade horizontal 262. Por exemplo, cada pixel 232 que tem um valor de confiabilidade horizontal alto 264 no mapa de confiabilidade horizontal 262 pode ser rotulado como uma área sem obstáculo 266 no mapa de ausência de obstáculo 226.[0139] The electronic device 102 can identify 1006 reliable regions as obstacle-free areas 266 based on the horizontal reliability map 262. For example, each pixel 232 that has a high horizontal reliability value 264 in the horizontal reliability map 262 can be labeled as an obstacle-free area 266 on the obstacle-free map 226.

[0140] O dispositivo eletrônico 102 pode executar 1008 processamento vertical em regiões não confiáveis do mapa de confiabilidade horizontal 262 para determinar se as regiões não confiáveis são áreas de ausência de obstáculos 266. Por exemplo, o dispositivo eletrônico 102 pode realizar processamento vertical em uma ou mais colunas (s) de pixels 232 que têm um valor de confiabilidade horizontal baixo 264. A uma ou mais colunas (s) de pixels 232 pode ser tão alta quanto a imagem 114 ou poderia ser menor do que a altura de imagem.[0140] The electronic device 102 may perform 1008 vertical processing on unreliable regions of the horizontal reliability map 262 to determine whether the unreliable regions are areas of absence of obstacles 266. For example, the electronic device 102 may perform vertical processing on a or more column(s) of pixels 232 that have a low horizontal reliability value 264. The one or more column(s) of pixels 232 may be as tall as the image 114 or could be smaller than the image height.

[0141] O processamento vertical pode ser realizado como descrito em conexão com a Figura 5 para determinar uma estimativa vertical sem obstáculo 242. O mapa de ausência de obstáculo 226 pode ser atualizado com base nos resultados do mapa de confiabilidade vertical 248 das regiões não confiáveis.[0141] Vertical processing may be performed as described in connection with Figure 5 to determine a vertical no-obstacle estimate 242. The no-obstacle map 226 may be updated based on the results of the vertical reliability map 248 of the unreliable regions .

[0142] As figuras 11A -11 B ilustram um exemplo de determinação de áreas de ausência de obstáculos 1166 em uma imagem 1114. Neste Exemplo, a imagem original 1114a é uma imagem de uma estrada de um sentido.[0142] Figures 11A - 11 B illustrate an example of determining areas of absence of obstacles 1166 in an image 1114. In this Example, the original image 1114a is an image of a one-way road.

[0143] A imagem processada 1114b mostra a área sem obstáculo 1166 que é determinada de acordo com os sistemas e métodos aqui descritos. A imagem processada 1114b mostra um exemplo de uma etapa intermediária do algoritmo, não o resultado final. Isto é mostrar que pode haver furos no mapa de ausência de obstáculo 126 que devem ser adicionalmente processados. Também isto ilustra o resultado do processamento vertical sozinho.[0143] The processed image 1114b shows the obstacle-free area 1166 that is determined in accordance with the systems and methods described herein. The processed image 1114b shows an example of an intermediate step of the algorithm, not the final result. This is to show that there may be holes in the obstacle absence map 126 that must be further processed. Also this illustrates the result of vertical processing alone.

[0144] A área sem obstáculo 1166 inclui a área aberta correspondente à rodovia. Certas áreas externas 1178 na área sem obstáculo 1166 não foram identificadas como parte da área sem obstáculo 1166. Como usado aqui, outlier significa que os valores de profundidade na imagem 1114b não se ajustam no modelo predeterminado. Isto pode ser devido a uma possível estimativa errada de valores de profundidade (por exemplo, valores de profundidade de entrada podem não ser perfeito), de modo que algumas áreas aparecem como orifícios (ou estranhos). Estas áreas de compensação 1178 podem ser removidas pela realização de processamento adicional da imagem 1114.[0144] Unobstructed area 1166 includes the open area corresponding to the highway. Certain external areas 1178 in the non-obstacle area 1166 have not been identified as part of the non-obstacle area 1166. As used herein, outlier means that the depth values in the image 1114b do not fit the predetermined model. This may be due to a possible misestimation of depth values (e.g. input depth values may not be perfect), so that some areas appear as holes (or strange). These areas of compensation 1178 may be removed by performing additional processing of the image 1114.

[0145] As figuras 12A -12 b ilustram um outro exemplo de determinação de áreas de ausência de obstáculos 1266 em uma imagem 1214. Neste exemplo, a imagem original 1214a é uma imagem de uma interseção. A imagem processada 1214b mostra a área sem obstáculo 1266 que é determinada de acordo com os sistemas e métodos descritos aqui.[0145] Figures 12A - 12 b illustrate another example of determining areas of absence of obstacles 1266 in an image 1214. In this example, the original image 1214a is an image of an intersection. The processed image 1214b shows the obstacle-free area 1266 which is determined in accordance with the systems and methods described herein.

[0146] As figuras 13A -13 B ilustram um exemplo de determinação da distância 1380 a partir de uma área sem obstáculo 1366. Este exemplo mostra a imagem processada 1314 da estrada descrita em conexão com As Figuras 11A -11 B A área sem obstáculo 1366 é determinada de acordo com os sistemas e métodos aqui descritos.[0146] Figures 13A - 13 B illustrate an example of determining distance 1380 from an obstacle-free area 1366. This example shows the processed image 1314 of the road described in connection with Figures 11A - 11 B. The obstacle-free area 1366 is determined in accordance with the systems and methods described herein.

[0147] No mapa de profundidade 1330 da Figura 13B, as coordenadas x e y são as posições coordenadas e o sombreamento é indicativo de profundidade. Neste exemplo, o mapa de profundidade 1330 inclui a informação de profundidade para a área sem obstáculo 1366. O mapa de profundidade 1330 indica quão distante haverá espaço livre na frente da câmera.[0147] In the depth map 1330 of Figure 13B, the x and y coordinates are the coordinate positions and the shading is indicative of depth. In this example, depth map 1330 includes depth information for the unobstructed area 1366. Depth map 1330 indicates how far free space will be in front of the camera.

[0148] Utilização dos valores de profundidade 234 a partir do mapa de profundidade 1330, o dispositivo eletrônico 102 pode determinar várias distâncias associadas à área sem obstáculo 1366b. Por exemplo, o dispositivo eletrônico 102 pode determinar que a distância mais distante na direção não-variável a área de obstáculo 1366b está entre 45-50 metros em afastamento do sensor de imagem 104. Similarmente, o dispositivo eletrônico 102 pode determinar que os vagões mais próximos estão aproximadamente 11 metros do sensor de imagem 104.[0148] Using the depth values 234 from the depth map 1330, the electronic device 102 can determine various distances associated with the unobstructed area 1366b. For example, the electronic device 102 may determine that the furthest distance in the non-variable direction from the obstacle area 1366b is between 45-50 meters away from the image sensor 104. Similarly, the electronic device 102 may determine which cars are furthest away from the obstacle area 1366b. nearby are approximately 11 meters from image sensor 104.

[0149] A figura 14 ilustra um exemplo de utilização do mapa de ausência de obstáculo 226 para identificar uma região de interesse (ROI) 1482 usado por um algoritmo de detecção de objeto. Este exemplo mostra a imagem processada 1414 da estrada descrita em conexão com As Figuras 11A -11 B a área sem obstáculo 1466 é determinada de acordo com os sistemas e métodos descritos aqui.[0149] Figure 14 illustrates an example of using the obstacle absence map 226 to identify a region of interest (ROI) 1482 used by an object detection algorithm. This example shows the processed image 1414 of the road described in connection with Figures 11A - 11B. The obstacle-free area 1466 is determined in accordance with the systems and methods described herein.

[0150] O dispositivo eletrônico 102 pode então identificar uma ou mais ROI 1482 para uma área com obstáculo 268 potencial. Por exemplo, o dispositivo eletrônico 102 pode identificar áreas de obstáculo 268 do mapa de ausência de obstáculo 226. Em uma implementação, os pixels 232 que não são marcados como uma área de ausência de obstáculo 1466 podem ser identificados como uma área de obstáculo 268. Estas Áreas de obstáculo 268 podem ser incluídas em um ou mais canais 1482. Neste exemplo, o dispositivo eletrônico 102 identifica quatro Portadoras 1482a-d como áreas de objeto potenciais.[0150] The electronic device 102 may then identify one or more ROI 1482 for a potential obstacle area 268 . For example, the electronic device 102 may identify obstacle areas 268 from the obstacle-free map 226. In one implementation, pixels 232 that are not marked as an obstacle-free area 1466 may be identified as an obstacle area 268. These Obstacle Areas 268 may be included in one or more channels 1482. In this example, the electronic device 102 identifies four Carriers 1482a-d as potential object areas.

[0151] O dispositivo eletrônico 102 pode executar um detector de objeto no Receptor identificado 1482. Por exemplo, o dispositivo eletrônico 102 pode detectar se uma ROI 1482 inclui um carro, sinal de tráfego, um pedestre, pistas, linhas, etc.[0151] The electronic device 102 may perform an object detector on the identified Receiver 1482. For example, the electronic device 102 may detect whether an ROI 1482 includes a car, traffic sign, a pedestrian, lanes, lines, etc.

[0152] Identificação da área sem obstáculo 1466 primeiro resulta em uma área de pesquisa reduzida para a detecção de objeto. Isto pode reduzir a quantidade de processamento que é realizada para detecção de objeto.[0152] Identification of the unobstructed area 1466 first results in a reduced search area for object detection. This can reduce the amount of processing that is performed for object detection.

[0153] A figura 15 ilustra um exemplo de utilização do mapa de ausência de obstáculo 226 para identificar uma região de interesse (ROI) 1582 usado por um algoritmo de detecção de pista. Este exemplo mostra a imagem processada 1514 de uma estrada. A área sem obstáculo 1566 é determinada de acordo com os sistemas e métodos descritos aqui.[0153] Figure 15 illustrates an example of using the obstacle absence map 226 to identify a region of interest (ROI) 1582 used by a lane detection algorithm. This example shows the processed image 1514 of a road. The obstacle-free area 1566 is determined in accordance with the systems and methods described herein.

[0154] O dispositivo eletrônico 102 pode então identificar uma ou mais ROI 1582 para lados de estradas e/ou meias. Por exemplo, o dispositivo eletrônico 102 pode identificar áreas de obstáculo 268 do mapa de ausência de obstáculo 226. Neste exemplo, o dispositivo eletrônico 102 identifica dois Rodos 1582a-b nos lados da área de ausência de obstáculo 1566 como lados e/ou ondulações de estrada potenciais.[0154] The electronic device 102 may then identify one or more ROI 1582 for road sides and/or medians. For example, the electronic device 102 may identify obstacle areas 268 from the obstacle-free map 226. In this example, the electronic device 102 identifies two Squeegees 1582a-b on the sides of the obstacle-free area 1566 as sides and/or undulations of potential road.

[0155] O dispositivo eletrônico 102 pode executar um detector de pista no Canal identificado 1582a-B que identifica a área sem obstáculo 1566 primeiro resulta em uma área de busca reduzida para a detecção de pista. Isto pode reduzir a quantidade de processamento que é realizada para detecção de pista.[0155] The electronic device 102 may perform a lane detector on the identified Channel 1582a-B that identifies the unobstructed area 1566 first results in a reduced search area for lane detection. This can reduce the amount of processing that is performed for lane detection.

[0156] A figura 16 é um fluxograma que ilustra um método 1600 para classificar uma estrada com base em parâmetros estimados de modelo linear 238. O método 1600 pode ser implementado por um dispositivo eletrônico 102, por exemplo, um módulo de determinação de ausência de obstáculo 116.[0156] Figure 16 is a flowchart illustrating a method 1600 for classifying a road based on estimated linear model parameters 238. The method 1600 may be implemented by an electronic device 102, e.g., an absence determination module. obstacle 116.

[0157] O dispositivo eletrônico 102 pode obter 1602 um mapa de profundidade 230 de uma imagem rodoviária 114. O mapa de profundidade 230 pode ser gerado conforme descrito em conexão com a Figura 2.[0157] The electronic device 102 may obtain 1602 a depth map 230 from a road image 114. The depth map 230 may be generated as described in connection with Figure 2.

[0158] O dispositivo eletrônico 102 pode executar um ajuste de segmento 1604 para estimar os parâmetros de modelo linear 238. Os parâmetros de modelo linear estimados 238 podem ser determinados como descrito em conexão com A figura 2.[0158] The electronic device 102 may perform a segment fit 1604 to estimate the linear model parameters 238. The estimated linear model parameters 238 may be determined as described in connection with Figure 2.

[0159] O dispositivo eletrônico 102 pode classificar 1606 a estrada com base nos parâmetros de modelo linear estimados 238. Por exemplo, o dispositivo eletrônico 102 pode comparar os parâmetros de modelo linear estimados 238 com uma pluralidade de parâmetros de modelo linear predeterminados 240. Conforme descrito acima, os parâmetros de modelo linear predeterminados 240 podem ser associados a uma pluralidade de modelos de condição de estrada. Cada um da pluralidade de modelos de condição rodoviária pode ter um conjunto correspondente de parâmetros de modelo linear 240. Exemplos de modelos de condição rodoviária incluem um plano liso, inclinação (por exemplo, pico), vale, estrada irregular, etc.[0159] The electronic device 102 may classify 1606 the road based on the estimated linear model parameters 238. For example, the electronic device 102 may compare the estimated linear model parameters 238 with a plurality of predetermined linear model parameters 240. According described above, the predetermined linear model parameters 240 may be associated with a plurality of road condition models. Each of the plurality of road condition models may have a corresponding set of linear model parameters 240. Examples of road condition models include a smooth plane, slope (e.g., peak), valley, rough road, etc.

[0160] Em uma implementação, os parâmetros de modelo linear predeterminados 240 podem ser obtidos através de treinamento. Os dados de teste pré-rotulados podem ser usados, onde pré-rotulada se refere a imagens rotuladas 114 e mapas de profundidade 230 de estradas planas, ou estradas irregulares, etc. com estes dados, os parâmetros de modelo linear predeterminados 240 podem ser gerados.[0160] In one implementation, predetermined linear model parameters 240 may be obtained through training. Pre-labeled test data can be used, where pre-labeled refers to labeled images 114 and depth maps 230 of flat roads, or uneven roads, etc. With this data, predetermined linear model parameters 240 can be generated.

[0161] O dispositivo eletrônico 102 pode determinar qual dos parâmetros de modelo linear predeterminados 240 melhor ajustam os parâmetros de modelo linear estimados 238. A estrada pode ser classificada 1606 de acordo com o modelo de condição rodoviária que melhor ajusta os parâmetros de modelo linear estimados 238. Portanto, pela classificação 1606 da estrada, o dispositivo eletrônico 102 pode determinar o tipo de espaço livre na imagem de estrada 114.[0161] The electronic device 102 may determine which of the predetermined linear model parameters 240 best fit the estimated linear model parameters 238. The road may be classified 1606 according to the road condition model that best fits the estimated linear model parameters 238. Therefore, by classifying the road 1606, the electronic device 102 can determine the type of free space in the road image 114.

[0162] A figura 17 ilustra certos componentes que podem ser incluídos dentro de um dispositivo eletrônico 1702. O dispositivo eletrônico 1702 pode ser ou pode ser incluído dentro de uma câmera, vídeo de vídeo, câmera digital, telefone celular, telefone inteligente, computador (por exemplo, computador de mesa, computador laptop, etc. Dispositivo de mesa, tocador de mídia, televisão, automóvel, câmera pessoal, câmera de ação, câmera de segurança, câmera montada, câmera conectada, o robô, a aeronave, o drone, o veículo aéreo não tripulado (UAV), o equipamento de cuidados com a saúde, o console de jogos, os assistentes digitais Pessoais (PDA), uma caixa de topo, etc. o dispositivo eletrônico 1702 inclui um processador 1728. O processador 1728 pode ser um microprocessador de chip único ou multi-chip de finalidade geral (por exemplo, um ARM), um microprocessador de finalidade especial (por exemplo um processador de sinal digital (DSP)), um microcontrolador, um arranjo de porta programável, etc. o processador 1728 pode ser referido como uma unidade de processamento central (CPU) Embora apenas um único processador 1728 seja mostrado no dispositivo eletrônico 1702, em uma configuração alternativa, uma combinação de processadores (por exemplo, um ARM e DSP) poderia ser usada.[0162] Figure 17 illustrates certain components that may be included within an electronic device 1702. The electronic device 1702 may be or may be included within a camera, video recorder, digital camera, cell phone, smart phone, computer ( for example, desktop computer, laptop computer, etc. Desktop device, media player, television, automobile, personal camera, action camera, security camera, mounted camera, connected camera, the robot, the aircraft, the drone, the unmanned aerial vehicle (UAV), the healthcare equipment, the game console, the Personal digital assistants (PDA), a top case, etc. the electronic device 1702 includes a processor 1728. The processor 1728 can. be a general-purpose single-chip or multi-chip microprocessor (e.g., an ARM), a special-purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor 1728 may be referred to as a central processing unit (CPU). Although only a single processor 1728 is shown in the electronic device 1702, in an alternative configuration, a combination of processors (e.g., an ARM and DSP) could be used.

[0163] O dispositivo eletrônico 1702 também inclui memória 1739. A memória 1739 pode ser qualquer componente eletrônico capaz de armazenar informação eletrônica. A memória 1739 pode ser concretizada como memória de acesso aleatório (RAM), memória somente de leitura (ROM), meios de armazenamento de disco magnético, meios de armazenamento óptico, dispositivos de memória flash em RAM, memória no painel incluída com o processador, memória EPROM, memória EEPROM, registradores e assim por diante, incluindo combinações dos mesmos.[0163] Electronic device 1702 also includes memory 1739. Memory 1739 can be any electronic component capable of storing electronic information. Memory 1739 may be embodied as random access memory (RAM), read-only memory (ROM), magnetic disk storage media, optical storage media, RAM flash memory devices, on-board memory included with the processor, EPROM memory, EEPROM memory, registers and so on, including combinations thereof.

[0164] Os dados 1721a e instruções 1741a podem ser armazenados na memória 1739. As instruções 1741a podem ser executáveis pelo processador 1728 para implementar um ou mais dos métodos aqui descritos. A execução das instruções 1741a pode envolver o uso dos dados que são armazenados na memória 1739. Quando o processador 1728 executa as instruções 1741, várias porções das instruções 1741b podem ser carregadas no processador 1728, e várias peças de dados 1721b podem ser carregadas no processador 1728.[0164] Data 1721a and instructions 1741a may be stored in memory 1739. Instructions 1741a may be executable by processor 1728 to implement one or more of the methods described herein. Executing instructions 1741a may involve using data that is stored in memory 1739. When processor 1728 executes instructions 1741, various portions of instructions 1741b may be loaded into processor 1728, and various pieces of data 1721b may be loaded into the processor. 1728.

[0165] O dispositivo eletrônico 1702 também pode incluir um transmissor 1725 e um receptor 1727 para permitir a transmissão e recepção de sinais para e do dispositivo eletrônico 1702. O transmissor 1725 e 17T o receptor 1727 pode ser referido coletivamente como um transceptor 1729. Uma ou múltiplas antenas 1737a-b podem ser eletricamente acopladas ao transceptor 1729. O dispositivo eletrônico 1702 também pode incluir (não mostrado) múltiplos transmissores, múltiplos receptores, múltiplos transceptores e/ou antenas adicionais.[0165] The electronic device 1702 may also include a transmitter 1725 and a receiver 1727 to enable the transmission and reception of signals to and from the electronic device 1702. The transmitter 1725 and the receiver 1727 may be collectively referred to as a transceiver 1729. A or multiple antennas 1737a-b may be electrically coupled to the transceiver 1729. The electronic device 1702 may also include (not shown) multiple transmitters, multiple receivers, multiple transceivers and/or additional antennas.

[0166] O dispositivo eletrônico 1702 pode incluir um processador de sinal digital (DSP) 1731. O dispositivo eletrônico 1702 também pode incluir uma interface de Comunicação 1733. A interface de comunicação 1733 pode permitir um ou mais tipos de entrada e/ou saída. Por exemplo, a interface de comunicações 1733 pode incluir uma ou mais portas 3T e/ou dispositivos de comunicação para ligar outros dispositivos ao dispositivo eletrônico 1702. Adicionalmente ou alternativamente, a interface de comunicações 1733 pode incluir uma ou mais outras interfaces (por exemplo, tela sensível ao toque, teclado, teclado, microfone, câmera, etc.) por exemplo, a interface de comunicação 1733 pode permitir que um usuário interaja com o dispositivo eletrônico 1702.[0166] Electronic device 1702 may include a digital signal processor (DSP) 1731. Electronic device 1702 may also include a Communication interface 1733. Communication interface 1733 may allow one or more types of input and/or output. For example, the communications interface 1733 may include one or more 3T ports and/or communications devices for connecting other devices to the electronic device 1702. Additionally or alternatively, the communications interface 1733 may include one or more other interfaces (e.g., touch screen, keyboard, keyboard, microphone, camera, etc.) for example, the communication interface 1733 may allow a user to interact with the electronic device 1702.

[0167] Os vários componentes do dispositivo eletrônico 1702 podem ser acoplados entre si por um ou mais barramentos, que pode incluir um barramento de energia, um barramento de sinal de controle, um barramento de sinal de estado, um barramento de dados, etc., para fins de clareza, os vários barramentos são ilustrados na Figura 17 como um sistema de barramento 1723.[0167] The various components of the electronic device 1702 may be coupled together by one or more buses, which may include a power bus, a control signal bus, a status signal bus, a data bus, etc. For clarity, the various buses are illustrated in Figure 17 as a bus system 1723.

[0168] De acordo com a presente descrição, um circuito, em um dispositivo eletrônico, pode ser adaptado para obter um mapa de profundidade a partir de uma ou mais imagens. Cada pixel no mapa de profundidade pode ter um valor de profundidade. O mesmo circuito, um circuito diferente, ou uma segunda seção do mesmo circuito ou circuito diferente pode ser utilizado adaptado para realizar processamento vertical do mapa de profundidade para determinar uma estimativa de ausência de obstáculo vertical. O mesmo circuito, um circuito diferente, ou uma terceira seção do mesmo circuito ou de circuito diferente pode ser adaptado para executar processamento horizontal do mapa de profundidade para determinar uma estimativa de ausência de obstáculo horizontal. O mesmo circuito, um circuito diferente, ou uma quarta seção do mesmo circuito ou circuito diferente pode ser adaptado para combinar a estimativa de ausência de obstáculo vertical e a estimativa de ausência de obstáculo horizontal para determinar um mapa de ausência de obstáculo. Além disso, o mesmo circuito, um circuito diferente, ou uma quinta seção do mesmo circuito ou circuito diferente pode ser adaptada para controlar a configuração do circuito (s) ou seção (s) do circuito (s) que fornecem a funcionalidade descrita acima.[0168] According to the present description, a circuit, in an electronic device, can be adapted to obtain a depth map from one or more images. Each pixel in the depth map can have a depth value. The same circuit, a different circuit, or a second section of the same or different circuit may be used adapted to perform vertical processing of the depth map to determine a vertical obstacle absence estimate. The same circuit, a different circuit, or a third section of the same or different circuit may be adapted to perform horizontal processing of the depth map to determine a horizontal obstacle absence estimate. The same circuit, a different circuit, or a fourth section of the same circuit or a different circuit can be adapted to combine the vertical obstacle absence estimate and the horizontal obstacle absence estimate to determine an obstacle absence map. Additionally, the same circuit, a different circuit, or a fifth section of the same circuit or a different circuit may be adapted to control the configuration of the circuit(s) or section(s) of the circuit(s) that provide the functionality described above.

[0169] O termo "determinação" abrange uma ampla variedade de ações e, portanto, "determinação" pode incluir cálculo, computação, processamento, derivação, investigação, procura (por exemplo, olhando em uma tabela, um banco de dados ou outra estrutura de dados), avaliação e similares. Também, "determinar" pode incluir receber (por exemplo, receber informação), acessar (por exemplo, acessar dados em uma memória) e similares. Também, "determinação" pode incluir resolução, seleção, escolha, estabelecimento e semelhantes.[0169] The term "determination" encompasses a wide variety of actions, and therefore "determination" may include calculation, computation, processing, derivation, investigation, searching (e.g., looking in a table, a database, or other structure data), evaluation and similar. Also, "determine" may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), and the like. Also, "determination" may include resolution, selection, choice, establishment, and the like.

[0170] A frase "com base em" não significa "com base apenas em", a menos que expressamente especificado de outra forma. Em outras palavras, a frase "com base em" descreve ambos "com base apenas em" e "com base pelo menos em."[0170] The phrase "based on" does not mean "based solely on" unless expressly specified otherwise. In other words, the phrase "based on" describes both "based only on" and "based at least on."

[0171] O termo "processador" deve ser interpretado amplamente para abranger um processador de uso geral, uma unidade central de processamento (CPU), um microprocessador, um processador de sinal digital (DSP), um controlador, um microcontrolador, uma máquina de estado, e assim por diante. Sob algumas circunstâncias, um "processador" pode se referir a um circuito integrado específico de aplicação (ASIC), um dispositivo lógico programável (PLD), um arranjo de porta programável em campo (FPGA), etc. O termo "processador" pode se referir a uma combinação de dispositivos de processamento, por exemplo, uma combinação de Um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra tal configuração.[0171] The term "processor" should be interpreted broadly to encompass a general-purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state, and so on. Under some circumstances, a "processor" may refer to an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a field-programmable gate array (FPGA), etc. The term "processor" may refer to a combination of processing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

[0172] O termo "memória" deve ser interpretado amplamente para abranger qualquer componente eletrônico capaz de armazenar informação eletrônica. O termo memória pode se referir a vários tipos de mídia legível por processador tal como memória de acesso aleatório (RAM), memória somente de leitura (ROM), memória de acesso aleatório não-volátil (NVRAM), memória somente de leitura programável (PROM), memória somente de leitura programável apagável (EPROM), PROM eletricamente apagável (EEPROM), memória instantânea, armazenamento de dados magnéticos ou ópticos, registradores, etc. A memória é dita estar em comunicação eletrônica com um processador se o processador puder ler informações de e/ou gravar informações na memória. Memória que é integral a um processador está em comunicação eletrônica com o processador.[0172] The term "memory" should be interpreted broadly to encompass any electronic component capable of storing electronic information. The term memory can refer to several types of processor-readable media such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM). ), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. Memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to memory. Memory that is integral to a processor is in electronic communication with the processor.

[0173] Os termos "instruções" e "código" devem ser interpretados amplamente para incluir qualquer tipo de declaração legível por computador (s). Por exemplo, os termos "instruções" e "código" podem se referir a um ou mais programas, rotinas, sub-rotinas, funções, procedimentos, etc. "instruções" e "código" podem ser de acordo com a presente invenção uma única declaração legível por computador ou muitas declarações passíveis de leitura por computador.[0173] The terms "instructions" and "code" should be interpreted broadly to include any type of computer-readable statement(s). For example, the terms "instructions" and "code" may refer to one or more programs, routines, subroutines, functions, procedures, etc. "Instructions" and "code" may be according to the present invention a single computer-readable statement or many computer-readable statements.

[0174] As funções descritas aqui podem ser implementadas em software ou firmware sendo executado por hardware. As funções podem ser armazenadas como uma ou mais instruções em um meio legível por computador. Os termos "meio legível por computador" ou "produto de programa de computador" se referem a qualquer meio de armazenamento tangível que pode ser acessado por um computador ou um processador. A título de exemplo, e não de limitação, um meio legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para carregar ou armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Disco e disc, conforme usado aqui, inclui disco compacto (CD), disco de laser, disco ótico, disco versátil digital (DVD), disco flexível e disco Blu-ray ® onde discos usualmente reproduzem dados magneticamente, enquanto discos reproduzem dados opticamente com lasers. Deve-se notar que um meio legível por computador pode ser tangível e não-transitório. O termo "produto de programa de computador" refere-se a um dispositivo de computação ou processador em combinação com código ou instruções (por exemplo, um "programa") que pode ser executado, processado ou computado pelo dispositivo de computação ou processador. Conforme usado aqui, o termo "código" pode se referir a software, instruções, código ou dados que é/são executáveis por um dispositivo de computação ou processador.[0174] The functions described here can be implemented in software or firmware being executed by hardware. Functions can be stored as one or more instructions in a computer-readable medium. The terms "computer-readable medium" or "computer program product" refer to any tangible storage medium that can be accessed by a computer or processor. By way of example, and not limitation, a computer-readable medium may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to load or store desired program code in the form of instructions or data structures and which can be accessed by a computer. Disc and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disc, and Blu-ray® disc where discs usually reproduce data magnetically, while discs reproduce data optically with lasers. It should be noted that a computer-readable medium can be tangible and non-transitory. The term "computer program product" refers to a computing device or processor in combination with code or instructions (e.g., a "program") that can be executed, processed, or computed by the computing device or processor. As used herein, the term "code" may refer to software, instructions, code or data that is/are executable by a computing device or processor.

[0175] Software ou instruções também podem ser transmitidos através de um meio de transmissão. Por exemplo, se o software For transmitido a partir de um website, servidor, ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par torcido, linha de assinante digital (DSL), ou tecnologias sem fio tais como infravermelho, rádio e microondas, então o cabo coaxial, cabo de fibra óptica, par torcido, DSL, ou tecnologias sem fio tais como infravermelho, rádio e microondas são incluídos na definição de meio de transmissão.[0175] Software or instructions may also be transmitted via a transmission medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of transmission medium.

[0176] Os métodos aqui descritos compreendem uma ou mais etapas ou ações para a obtenção do método descrito. As etapas e/ou ações do método podem ser intercambiadas umas com as outras sem se afastar do escopo das reivindicações. Em outras palavras, a menos que uma ordem específica de etapas ou ações seja necessária para a operação apropriada do método que está sendo descrito, a ordem e/ou o uso de etapas e/ou ações específicas podem ser modificados sem se afastar do escopo das reivindicações.[0176] The methods described here comprise one or more steps or actions to obtain the method described. The steps and/or actions of the method can be interchanged with each other without departing from the scope of the claims. In other words, unless a specific order of steps or actions is necessary for the proper operation of the method being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.

[0177] Além disso, deve ser apreciado que módulos e/ou outros meios apropriados para a realização dos métodos e técnicas aqui descritos, pode ser descarregada e/ou de outra forma obtida por um dispositivo. Por exemplo, um dispositivo pode ser acoplado a um servidor para facilitar a transferência de meios para realizar os métodos aqui descritos. Alternativamente, vários métodos descritos aqui podem ser providos por meio de um meio de armazenamento (por exemplo memória de acesso aleatório (RAM), memória somente de leitura (ROM), um meio físico de armazenamento tal como um disco compacto (CD) ou disco flexível, etc. 0), tal que um dispositivo pode obter os vários métodos mediante acoplamento ou fornecimento do meio de armazenamento ao dispositivo.[0177] Furthermore, it should be appreciated that modules and/or other means suitable for carrying out the methods and techniques described herein can be downloaded and/or otherwise obtained by a device. For example, a device may be coupled to a server to facilitate the transfer of means to perform the methods described herein. Alternatively, various methods described herein may be provided by means of a storage medium (e.g. random access memory (RAM), read-only memory (ROM), a physical storage medium such as a compact disk (CD) or flexible, etc. 0), such that a device can achieve the various methods by coupling or providing the storage medium to the device.

[0178] Deve ser entendido que as reivindicações não estão limitadas à configuração e componentes precisos ilustrados acima. Várias modificações, mudanças e variações podem ser feitas na disposição, operação e detalhes dos sistemas, métodos e aparelhos descritos aqui sem se afastar do escopo das reivindicações.[0178] It should be understood that the claims are not limited to the precise configuration and components illustrated above. Various modifications, changes and variations may be made in the arrangement, operation and details of the systems, methods and apparatus described herein without departing from the scope of the claims.

Claims (11)

1. Método executado por um dispositivo eletrônico que compreende: realizar um primeiro processamento de um mapa de profundidade (230) para determinar uma primeira estimativa de uma área sem obstáculos, em que realizar o primeiro processamento compreende: dividir o mapa de profundidade em uma pluralidade de segmentos (236), em que cada um da pluralidade de segmentos compreende uma porção de uma coluna de pixels (232) no mapa de profundidade (230); i) estimar parâmetros de modelo linear para cada um da pluralidade de segmentos para determinar se cada um da pluralidade de segmentos é parte da primeira estimativa da área sem obstáculos; e gerar um primeiro mapa ao: determinar um valor (250) para cada um da pluralidade de segmentos (236) ao comparar um erro de ajuste de segmento (244) associado com cada uma da pluralidade de segmentos (236) com um limite de primeira estimativa (246); e ii) aplicar o valor para cada um da pluralidade de segmentos a pelo menos um pixel em cada segmento do mapa de profundidade, em que o erro de ajuste de segmento (244) para cada segmento é determinado com base em uma diferença entre os parâmetros de modelo linear estimados para cada segmento e os parâmetros de modelo linear predeterminados para cada segmento; caracterizado pelo fato de compreende: realizar um segundo processamento do mapa de profundidade (230) para determinar uma segunda estimativa de uma área sem obstáculos, em que realizar o segundo processamento compreende: iii) obter um histograma de profundidade (252, 652) para pelo menos uma fila de pixels do mapa de profundidade, em que o histograma de profundidade compreende valores de profundidade associados com cada pixel na fila de pixels; e determinar uma linha de terreno a partir do histograma de profundidade (252, 652); determinar a segunda estimativa sem obstáculo com base em uma distância de cada valor de profundidade associada com cada pixel do mapa de profundidade a partir da linha de terreno; e gerar um segundo mapa ao: determinar um segundo valor (264) para cada pixel na fila de pixels ao comparar o valor de profundidade (234) associado com cada pixel (232) com um segundo limite (261); combinar o primeiro valor (250) do primeiro mapa e o segundo valor (264) do segundo mapa; e gerar um mapa sem obstáculos com base nos valores combinados.1. A method performed by an electronic device comprising: performing a first processing of a depth map (230) to determine a first estimate of an unobstructed area, wherein performing the first processing comprises: dividing the depth map into a plurality of segments (236), each of the plurality of segments comprising a portion of a column of pixels (232) in the depth map (230); i) estimating linear model parameters for each of the plurality of segments to determine whether each of the plurality of segments is part of the first estimate of the unobstructed area; and generating a first map by: determining a value (250) for each of the plurality of segments (236) by comparing a segment fit error (244) associated with each of the plurality of segments (236) with a first limit estimate (246); and ii) applying the value for each of the plurality of segments to at least one pixel in each segment of the depth map, wherein the segment fit error (244) for each segment is determined based on a difference between the parameters estimated linear model parameters for each segment and the predetermined linear model parameters for each segment; characterized by the fact that it comprises: performing a second processing of the depth map (230) to determine a second estimate of an unobstructed area, wherein performing the second processing comprises: iii) obtaining a depth histogram (252, 652) for at least at least one depth map pixel row, wherein the depth histogram comprises depth values associated with each pixel in the pixel row; and determining a terrain line from the depth histogram (252, 652); determining the second unobstructed estimate based on a distance of each depth value associated with each pixel of the depth map from the terrain line; and generating a second map by: determining a second value (264) for each pixel in the pixel row by comparing the depth value (234) associated with each pixel (232) with a second threshold (261); combine the first value (250) from the first map and the second value (264) from the second map; and generate an obstacle-free map based on the combined values. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os parâmetros de modelo linear predeterminados são selecionados dentre uma pluralidade de modelos de condição rodoviária, em que a pluralidade de modelos de condição rodoviária tem um conjunto correspondente de parâmetros de modelo linear.2. The method of claim 1, wherein the predetermined linear model parameters are selected from a plurality of road condition models, wherein the plurality of road condition models has a corresponding set of model parameters linear. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que realizar o segundo processamento compreende ainda: determinar se o valor de profundidade de um dado pixel está dentro de uma faixa de um modo do histograma de profundidade, em que o dado pixel tem um alto valor de confiabilidade quando o valor de profundidade do dado pixel está dentro da faixa do modo do histograma de profundidade.3. Method according to claim 1, characterized by the fact that performing the second processing further comprises: determining whether the depth value of a given pixel is within a range of a mode of the depth histogram, in which the data pixel has a high reliability value when the depth value of the given pixel is within the range of the depth histogram mode. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que combinar a primeira estimativa e a segunda estimativa compreende: realizar tanto o primeiro processamento como o segundo processamento em paralelo; e combinar a primeira estimativa e a segunda estimativa com base no primeiro mapa e no segundo mapa.4. Method according to claim 1, characterized by the fact that combining the first estimate and the second estimate comprises: performing both the first processing and the second processing in parallel; and combining the first estimate and the second estimate based on the first map and the second map. 5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que um dado pixel é identificado como uma área sem obstáculos onde tanto o primeiro mapa quanto o segundo mapa compreendem um valor de alta confiabilidade para o dado pixel e/ou em que um dado pixel é identificado como uma área de obstáculo na qual pelo menos um dentre o primeiro mapa ou o segundo mapa compreende um baixo valor de confiabilidade para o dado pixel e/ou em que um dado pixel é identificado como uma área sem obstáculos ou área de obstáculo com base em uma coordenada do dado pixel onde o primeiro mapa e o segundo mapa compreendem diferentes valores de confiabilidade para o dado pixel.5. Method according to claim 4, characterized by the fact that a given pixel is identified as an obstacle-free area where both the first map and the second map comprise a high confidence value for the given pixel and/or in which a given pixel is identified as an obstacle area in which at least one of the first map or the second map comprises a low reliability value for the given pixel and/or in which a given pixel is identified as an obstacle-free area or area obstacle based on a coordinate of the given pixel where the first map and the second map comprise different reliability values for the given pixel. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que combinar a primeira estimativa de uma área sem um ou mais obstáculos e a segunda estimativa sem obstáculo compreende: realizar o primeiro processamento do mapa de profundidade; obter o primeiro mapa com base em uma confiança de ajuste de modelo; identificar regiões confiáveis do primeiro mapa como áreas sem obstáculos; e realizar o segundo processamento em regiões não confiáveis do primeiro mapa para determinar se as regiões não confiáveis são áreas sem obstáculos e/ou em que combinar a primeira estimativa sem obstáculo e a segunda estimativa sem obstáculo compreende: realizar o segundo processamento do mapa de profundidade; obter um segundo mapa de confiabilidade com base em uma distância de histograma de profundidade; identificar regiões confiáveis do segundo mapa como áreas sem obstáculos; e realizar o primeiro processamento em regiões não confiáveis do segundo mapa para determinar se as regiões não confiáveis são áreas sem obstáculos e/ou em que o mapa de uma área sem obstáculos é usado na identificação de uma região de interesse usada por pelo menos um dentre um algoritmo de detecção de objeto ou um algoritmo de detecção de pista.6. Method according to claim 1, characterized by the fact that combining the first estimate of an area without one or more obstacles and the second estimate without obstacles comprises: performing the first processing of the depth map; obtain the first map based on a model fit confidence; identify reliable regions of the first map as areas without obstacles; and performing second processing on unreliable regions of the first map to determine whether the unreliable regions are unobstructed areas and/or combining the first unobstructed estimate and the second unobstructed estimate comprises: performing second processing of the depth map ; obtain a second reliability map based on a depth histogram distance; identify reliable regions of the second map as areas without obstacles; and performing first processing on untrusted regions of the second map to determine whether the untrusted regions are unobstructed areas and/or wherein the map of an unobstructed area is used in identifying a region of interest used by at least one of an object detection algorithm or a lane detection algorithm. 7. Aparelho que compreende: meios para realizar o primeiro processamento de um mapa de profundidade (230) para determinar uma primeira estimativa de uma área sem obstáculos, em que realizar o primeiro processamento compreende: dividir o mapa de profundidade em uma pluralidade de segmentos (236), em que cada um da pluralidade de segmentos compreende uma porção de uma coluna de pixels (232) no mapa de profundidade (230); estimar parâmetros de modelo linear para um dos segmentos para determinar se cada um da pluralidade de segmentos é parte da primeira determinação da área sem obstáculos; gerar um primeiro mapa ao: determinar um valor (250) para cada um da pluralidade de segmentos (236) ao comparar um erro de ajuste de segmento (244) associado com cada uma da pluralidade de segmentos (236) com um limite de primeira estimativa (246); e aplicar o valor para cada um da pluralidade de segmentos a pelo menos um pixel em cada segmento do primeiro mapa, em que o erro de ajuste de segmento (244) para cada segmento é determinado com base em uma diferença entre os parâmetros de modelo linear estimados para cada segmento e os parâmetros de modelo linear predeterminados para cada segmento; caracterizado pelo fato de compreende: meios para realizar um segundo processamento do mapa de profundidade (230) para determinar uma segunda estimativa de uma área sem obstáculos, em que realizar o segundo processamento compreende: obter um histograma de profundidade (252, 652) para pelo menos uma fila de pixels do mapa de profundidade, em que o histograma de profundidade compreende valores de profundidade associados com cada pixel na fila de pixels; e em que os meios para realizar o segundo processamento compreendem adicionalmente meios para determinar uma linha de terreno a partir do histograma de profundidade (252, 652); meios para determinar a segunda estimativa sem obstáculo com base em uma distância de cada valor de profundidade associado com cada pixel do mapa de profundidade a partir da linha de terreno; e gerar um segundo mapa ao: determinar um segundo valor (264) para cada pixel na fila de pixels ao comparar o valor de profundidade (234) associado com cada pixel (232) com um segundo limite (261); combinar os primeiros valores (250) do primeiro mapa e os segundos valores (264) do segundo mapa; e meios para gerar um mapa sem obstáculos com base nos valores combinados.7. An apparatus comprising: means for performing the first processing of a depth map (230) to determine a first estimate of an unobstructed area, wherein performing the first processing comprises: dividing the depth map into a plurality of segments ( 236), wherein each of the plurality of segments comprises a portion of a column of pixels (232) in the depth map (230); estimating linear model parameters for one of the segments to determine whether each of the plurality of segments is part of the first determination of the unobstructed area; generating a first map by: determining a value (250) for each of the plurality of segments (236) comparing a segment fit error (244) associated with each of the plurality of segments (236) with a first estimate threshold (246); and applying the value for each of the plurality of segments to at least one pixel in each segment of the first map, wherein the segment fit error (244) for each segment is determined based on a difference between the linear model parameters estimated for each segment and the predetermined linear model parameters for each segment; characterized in that it comprises: means for performing a second processing of the depth map (230) to determine a second estimate of an unobstructed area, wherein performing the second processing comprises: obtaining a depth histogram (252, 652) for at least at least one depth map pixel row, wherein the depth histogram comprises depth values associated with each pixel in the pixel row; and wherein the means for performing the second processing further comprises means for determining a terrain line from the depth histogram (252, 652); means for determining the second unobstructed estimate based on a distance of each depth value associated with each pixel of the depth map from the terrain line; and generating a second map by: determining a second value (264) for each pixel in the pixel row by comparing the depth value (234) associated with each pixel (232) with a second threshold (261); combine the first values (250) of the first map and the second values (264) of the second map; and means for generating an unobstructed map based on the combined values. 8. Aparelho, de acordo com a reivindicação 7, caracterizado pelo fato de que os meios para combinar a primeira estimativa e a segunda estimativa compreendem: meios para realizar ambos o primeiro processamento e o segundo processamento em paralelo; e meios para combinar a primeira estimativa e a segunda estimativa sem obstáculo com base no primeiro mapa e no segundo mapa.8. The apparatus of claim 7, wherein the means for combining the first estimate and the second estimate comprises: means for performing both the first processing and the second processing in parallel; and means for combining the first estimate and the second estimate without hindrance based on the first map and the second map. 9. Aparelho, de acordo com a reivindicação 7, caracterizado pelo fato de que os meios para combinar a primeira estimativa e a segunda estimativa compreendem: meios para realizar o primeiro processamento do mapa de profundidade; meios para obter o primeiro mapa com base em uma confiança de ajuste de modelo; meios para identificar regiões confiáveis do primeiro mapa de confiabilidade como áreas sem obstáculos; e meios para realizar o segundo processamento em regiões não confiáveis do primeiro mapa para determinar se as regiões não confiáveis são áreas sem obstáculos.9. The apparatus of claim 7, wherein the means for combining the first estimate and the second estimate comprises: means for performing the first processing of the depth map; means for obtaining the first map based on a model fit confidence; means for identifying reliable regions of the first reliability map as unobstructed areas; and means for performing second processing on unreliable regions of the first map to determine whether the unreliable regions are unobstructed areas. 10. Aparelho, de acordo com a reivindicação 7, caracterizado pelo fato de que os meios para combinar a primeira estimativa e a segunda estimativa compreendem: meios para realizar o segundo processamento do mapa de profundidade; meios para obter um segundo mapa com base em uma distância de histograma de profundidade; meios para identificar regiões confiáveis do segundo mapa como áreas sem um ou mais obstáculos; e meios para realizar o primeiro processamento em regiões não confiáveis do segundo mapa para determinar se as regiões não confiáveis são áreas sem um ou mais obstáculos.10. The apparatus of claim 7, wherein the means for combining the first estimate and the second estimate comprises: means for performing the second processing of the depth map; means for obtaining a second map based on a depth histogram distance; means for identifying reliable regions of the second map as areas without one or more obstacles; and means for performing first processing on unreliable regions of the second map to determine whether the unreliable regions are areas without one or more obstacles. 11. Memória legível por computador caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executáveis por um computador para realizar as etapas de método conforme definido em qualquer uma das reivindicações 1 a 6.11. Computer readable memory comprising instructions stored therein, the instructions being executable by a computer to perform the method steps as defined in any one of claims 1 to 6.
BR112018005430-5A 2015-09-18 2016-08-01 SYSTEMS AND METHODS FOR DETECTING AREAS WITHOUT OBSTACLES BR112018005430B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/858,471 2015-09-18

Publications (1)

Publication Number Publication Date
BR112018005430B1 true BR112018005430B1 (en) 2024-05-14

Family

ID=

Similar Documents

Publication Publication Date Title
US10395377B2 (en) Systems and methods for non-obstacle area detection
EP3627180B1 (en) Sensor calibration method and device, computer device, medium, and vehicle
CN110322500B (en) Optimization method and device for instant positioning and map construction, medium and electronic equipment
US10867189B2 (en) Systems and methods for lane-marker detection
US20220373353A1 (en) Map Updating Method and Apparatus, and Device
US11144770B2 (en) Method and device for positioning vehicle, device, and computer readable storage medium
EP4080248A1 (en) Method and apparatus for vehicle positioning, controller, smart car and system
CN113052159B (en) Image recognition method, device, equipment and computer storage medium
CN110349212B (en) Optimization method and device for instant positioning and map construction, medium and electronic equipment
US11080561B2 (en) Training and verification of learning models using high-definition map information and positioning information
CN112017236B (en) Method and device for calculating target object position based on monocular camera
CN115147328A (en) Three-dimensional target detection method and device
CN115493612A (en) Vehicle positioning method and device based on visual SLAM
CN115187941A (en) Target detection positioning method, system, equipment and storage medium
CN112902911B (en) Ranging method, device, equipment and storage medium based on monocular camera
CN116189150B (en) Monocular 3D target detection method, device, equipment and medium based on fusion output
BR112018005430B1 (en) SYSTEMS AND METHODS FOR DETECTING AREAS WITHOUT OBSTACLES
WO2020227933A1 (en) Six-degree-of-freedom attitude estimation method and apparatus, and computer-readable storage medium
CN109325962B (en) Information processing method, device, equipment and computer readable storage medium
US20230419522A1 (en) Method for obtaining depth images, electronic device, and storage medium
CN118314549A (en) Obstacle detection method, obstacle detection device, electronic device and computer-readable storage medium
Cho et al. Rotation estimation from cloud tracking
CN114973182A (en) Method and system for determining the distance of an object