Mục lục:

Vision 4all - Sistema Visão Assistida Para Thiếu Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 bước
Vision 4all - Sistema Visão Assistida Para Thiếu Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 bước

Video: Vision 4all - Sistema Visão Assistida Para Thiếu Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 bước

Video: Vision 4all - Sistema Visão Assistida Para Thiếu Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 bước
Video: Videoaula 7 Sistema visual - COMO EXERGAMOS O MUNDO? 2024, Tháng sáu
Anonim
Vision 4all - Sistema Visão Assistida Para Thiếu Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android
Vision 4all - Sistema Visão Assistida Para Thiếu Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android

DESCRIÇÃO

Hỡi những người tự do mắc bệnh tự do projeto é dar autonomia para thiếu hụt visuais se locomoverem em ambientes trong nhà como casas ou trung tâm mua sắm e aeroportos.

A locomoção em ambientes já mapeados pode ou não ser coirado um vấn đềma bem Resolutionvido. Um aplicativo disponível na App Store para isso, ainda que sirva apenas para 3 ambientes e apenas nos EUA, Hướng dẫn LowViz. Além do limitado número de locais, tal aplicativo não deta possíveis obsáculos e pessoas que Obam estar no caminho do usuário. Assim, a missão deste projeto é, através de visão computacional e processamento de imagem, Idificar Possíveis obsáculos que kateir ao longo do caminho do usuário e poder recalcular o caminho a ser seguido dando độcência e empoderando o usuário. Na prática, o projeto, floatra ainda Withoutmpleto, bao gồm em tích hợp ô aplicativo de onde se pode submeter ou desenhar uma planta baixa do local deprissse, seja uma casa ou mua sắm. Com a bri a integrationda a uma câmera na cintura do usuário, e um fone de ouvido, o aplicativo Calcula a posição no ambiente e permite o usuário Defr para onde quer ir e dá comandos de voz para phimmentação. A câmera, quando Deta um obsáculo a frente, pode recalcular o caminho do usuário. Como dizia Hugh Herr: “Nenhum indivíduo é incapaz, o que survivale é falta de desenvolvimento tecnológico para Capitar e nos tornar iguais”.

Neste projeto usaremos a Dragonboard 410c, porque Preisamos de um phần cứng que tenha Capidade de fazer o processamento de imagens em tempo real (sem ter de Cạnh tranh com outras aplicações como seria no celular) e ao mesmo tempo seja de baixo custo.

Bước 1: Vật liệu

Materiais
Materiais

Para este projeto vamos useizar:

- uma sa khoáng Qualcomm Dragonboard 410c;

- biblioteca de processamento de imagem OpenCV (versão 3.1);

- câmera que se comunique com một cái (usaremos na verdade um celular android com o aplicativo IP Webcan);

- hệ điều hành hệ điều hành Android para o aplicativo;

Bước 2: Instalando OpenCV Na Dragonboard

Instalando OpenCV Na Dragonboard
Instalando OpenCV Na Dragonboard

Com linux instalado na nhau, siga os thủ tục padrões para se instalar a biblioteca de processamento de imagem - OpenCV - không có thiết bị. Siga là đường dẫn liên kết deste:

docs.opencv.org/3.0-beta/doc/tutorials/intr…

Bước 3: Conectar a Câmera Com a Dragonboard

Conectar a Câmera Com a Dragonboard
Conectar a Câmera Com a Dragonboard

Precisamos conectar a câmera que serão os olhos do thiếue com a sa khoáng de desenvolvimento Dragonboard 410c. Tồn tại bản vários jeitos de fazer isso. Một tấm ván rồng sở hữu thể entrada para flatcables, ou seja, é compatível com as câmeras usadas comumente em eleas como a Raspberry pi.

Neste projeto, optamos usar como câmera um Moto G 3ª Geração com o aplicativo IP Webcam (disponível na Google Play) que permite que a imagem seja transferida pelo wifi.

Abaixo um Programa que faz aquisição simples da imagem usando a biblioteca opencv. O link passado como parâmetro no construtor do objeto VideoCapture é o IP do celular (indicado no aplicativo) + “/ videofeed”. Na imagem acima, você encontra onde está o IP do seu celular.

A aquisição pode ser difícil nas versões anteriores a 3.1 da opencv, caso você não tenha conseguido tương tự. Se você conectar uma câmera pela entrada de câmeras da dragonboard bim bim colocar como parâmetro o valor zero ("0"), que ý nghĩa là que você quer procurar a câmera default.

Bước 4: Phần mềm Desenvolver De Processamento De Imagens Que Toma Decisões

Image
Image
Phần mềm Desenvolver De Processamento De Imagens Que Toma Decisões
Phần mềm Desenvolver De Processamento De Imagens Que Toma Decisões
Phần mềm Desenvolver De Processamento De Imagens Que Toma Decisões
Phần mềm Desenvolver De Processamento De Imagens Que Toma Decisões

Há três programas em anexo, o IdificadorDeObstáculos.cpp, o MostraContornoWebcam.cpp e o VídeoCadeiraSlavo.cpp (estes dois últimos para teste e entendimento da técnica do phần mềm).

Explicação: A Ideia de Idificação de obsáculo vem da defminação dos contornos mais drásticos nas hình ảnh do vídeo, ou seja, o código Idifica mudanças drásticas de core na imagem e conclui que isso seja um contorno e portanto hình ảnh objeto (como são hình ảnh bươc chân). Estando a câmera na barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o Programa Idifica a beingência de um objeto (seja uma pessoa ou uma cadeira por exelo) e manda o sinal de parada caso o objeto na região especificada (caminho do usuário) (vide imagem do contorno da cadeira - caso o usuário se aproxime da cadeira haverá pixel brancos na região verde que defineminam condição de parada). Dessa forma, sem a adição de filtros ao tipo de chão, para o funcionamento tráng miệng versão simpleficada, é needário um chão razoavelmente homogêneo, de forma que os detalhes do chão não sejam coirados contornos.

Ám ảnh. é Possível ajustar a variável lowThreshold do código para um valor de 0 (mais sensitivo) e 100 (menos sensitivo ao contorno). Hỡi dũng sĩ sugerido é 60 para chão em geral.

Funcionamento: o IdificadorDeObstáculos.cpp collectbe um vídeo da red wifi através do sparkfun que deve ser um vídeo de um celular acoplado a barriga do usuário. O código manda condições de parada á um aplicativo de um outro celular que usuário está usando. Idealmente manda-se comandos de voz de parada parada o usuário.

Obs: Altere o código de acordo para especificar de onde os vídeos são Rebidos e para Qual android as Informações são encaminhadas. Os tipos de alterações são especificadas no próprio código (assim como nos programas de teste) comentados no início do programma.

Para saber mais sobre bordas de Canny e limiarização, além de outros tópicos de visão computacional, recomenda-se procurar a documentação of Justice da OpenCV.

Bước 5: Fazer Aplicativo Que Repassa As Informações Para O Deficiencye Visual

Para reproduzir este projeto é needário criar um banco de dados no site data.sparkfun.com, o processo é muito directitivo de forma que não será dada uma explicação mais detalhada aqui, mas colocaremos o link do banco que criamos para referenceência ().

Assim que a Dragonboard rechece que há um obsáculo a sua frente ela posta em um banco de dados construido no data.sparkfun.com essa Informação. O aplicativo faz uma Consulta a este banco com o auxílio da classe okhttp3 obtendo as Informações como um Json. Então fazemos um parser desse json para encontrarmos o último dado enviado. Com esse dado em mãos conseguimos dizer se há ô obsáculo no caminho, assim é emitido um sinal de voz para o usuário parar. Se o caminho está livre o aplicativo emite um sinal para prosseguir Continuamente.

Seguem em Anexo as class e Interfaces usingizadas para o projeto, que são explicadas a seguir:

GetJson: Tôi thực sự có thể không có banco de dados do data.sparkfun retornando um arquivo em formato json para a aplicação.

JsonDownloader: é onde geramos uma asynctask para de fato useizarmos a classe GetJson, a importância do uso desta classe é para não travarmos một giao diện do usuário e para isso Preisamos criar uma thread diferente na aplicação.

MainActivity: nesta classe implementamos a lógica da aplicação que Continuamente Consulta o banco de dados, e Informa o usuário por meio de um audio se ele Preisa para ou pode tiep tuc caminhando.

RequestListener: Giao diện uma useizada para forçar o MainActivity ter certas características.

SdmSoundPlayer: esta classe é usada para gerenciar os comandos de voz da aplicação, caso você queira inserir as suas próprias gravações você deve criar uma pasta raw dentro da pasta res e incluir os arquivos de audio lá. Feito isso dentro do método initSoundHash () você deve colocar esses arquivos dentro de mSoundHash que é uma tabela Hash. Para usar este áudio bita usar o método playSound (int key) e passar como parâmetro a chave escolhida para o sinal de voz.

Cảnh báo: essa classe é useizada para secureitar o parser do json retornado pelo banco de dados.

Seguem em anexo também os arquivos de voz useizados.

O layout da aplicação consistia de um único botão que funcionava com o método Quit implementado na MainActivity, este método simplesmente forçava a aplicação a parar a Consulta no banco de dados.

Qualquer dúvida adicional ou sugestão Beia entrar em contato com o autor. Sugestões são semper bem-vindas =).

O código não está bem comentado, mas acredito que as explicações acima devem ser suughtes para o entendimento do que está acontecendo.

Bước 6: Sugestões De Continuação

Nhà tích hợp Poderiamos um sistema de localaização. Tồn tại o Qualcomm iZat SDK que Obui um Sistema de localização que usa GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no próprio processador Qualcomm Snapdragon (presente na maioria dos celulares). Không có entanto, havia pouca documentação e needitava de testes mais demorados.

Também gostariamos de usar um sensor de distância ultrassonico, porém tivemos problemas quanto a comunicação com a Dragonboard, que poderia ser Resolutionvido com mais calma. Se tiver tempo, mua sắm như bibliotecas já trình bày không có kit de desenvolvimento, elas mortuem divos exelos para cada tipo de sensor.

Không có trang web Các nhà phát triển Qualcomm tồn tại.

Đề xuất: