Inhoudsopgave:

Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android - Ajarnpa
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android - Ajarnpa

Video: Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android - Ajarnpa

Video: Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android - Ajarnpa
Video: 🌟 ENG SUB | Versatile Mage | Full Version EP37-48 | Yuewen Animation 2024, November
Anonim
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android

BESCHRIJVING

U kunt uw eigen projecten en autonomie voor de visuais se locomoverem ambientes indoor como casas ou winkelcentra en luchthavens.

Een locomoção em ambientes já mapeados pode of não ser considerado um problema bem resolvido. U kunt zich aanmelden voor de App Store voor isso, zoals de sirva apenas para 3 ambientes en apenas nos EUA, é o LowViz Guide. Er is een beperkt aantal plaatsen waar men kan zoeken naar mogelijke obstakels en pessoas die niet kunnen worden gebruikt. Assim, a missão deste projeto é, através de visão computacional en processamento de imagem, identificar possíveis obstáculos que possam surgir ao longo do caminho do usuário e poder recalcular o caminho a ser seguido dando independrio Na prática, o projeto, embora ainda incompleto, consistente em integrale um aplicativo de onde se pode submeter of desenhar uma planta baixa do local de interesse, seja uma casa of shopping. Com a placa integrada a uma câmera cintura do usuário, eum fone de ouvido, of aplicativo calcula a posição no ambiente en permite o usuário definir onde quer e dá comandos de voz para movimentação. A câmera, quando detecta um obstáculo a frente, pode recalcular o caminho do usuário. Como dizia Hugh Herr: "Nenhum indivíduo é incapaz, o que existe é falta de desenvolvimento tecnológico para capacitar e nos tornar iguais".

Neste projeto usaremos a Dragonboard 410c, door precisamos de um hardware que tha capacidade de fazer of processamento de imagens em tempo real (sem ter de competir com outras com seria no cellulair) en ao mesmo tempo seja de baixo custo.

Stap 1: Materiaal

Materiais
Materiais

Het meest gebruikte projeto:

- uma placa Qualcomm Dragonboard 410c;

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

- comunique com a placa (usaremos na verdade um celular android com o aplicativo IP Webcan);

- mobiele communicatie Android voor aplicativo;

Stap 2: Instalando OpenCV Na Dragonboard

Instalando OpenCV Na Dragonboard
Instalando OpenCV Na Dragonboard

Geïnstalleerde linux op de plaats van installatie, installeer de procedure voor het installeren van afbeeldingen - OpenCV - geen apparaat. Siga als instruções deste link:

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

Stap 3: Sluit een camera aan op een Dragonboard

Sluit een camera aan op een Dragonboard
Sluit een camera aan op een Dragonboard

Het kan worden aangesloten op een camera die kan worden gebruikt om een gebrek te vertonen op een lege plek Dragonboard 410c. Existem varios jeitos de fazer isso. Een drakenbord kan worden gebruikt voor flatcables, of je kunt het vergelijken met camera's die op de markt komen voor een Raspberry pi.

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

U kunt een programma zoeken met een eenvoudige afbeelding van een 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.

Een aquisição pode ser difícil nas versões anteriores a 3.1 da opencv, caso você não tenha conseguido compilar. Maak een verbinding tussen camera's en camera's van drakenboard basta colocar como parâmetro o valor zero ("0"), wat een significante vraag is voor het verkrijgen van een camera-standaard.

Stap 4: Desenvolver Software De Processamento De Imagens Que Toma Decisões

Image
Image
Desenvolver Software De Processamento De Imagens Que Toma Decisões
Desenvolver Software De Processamento De Imagens Que Toma Decisões
Desenvolver Software De Processamento De Imagens Que Toma Decisões
Desenvolver Software De Processamento De Imagens Que Toma Decisões

Há três programas em anexo, o identificadorDeObstáculos.cpp, o MostraContornoWebcam.cpp en o VideoCadeiraSlavo.cpp (tests dois últimos para teste en entendimento da técnica do software).

Explicação: A idia de identificação de obstáculo vem da determinação dos contornos mais drásticos nas imagens do vídeo, ou seja, o código identifica de mudanças de cores n imagem isso concja sluique stap). Estando a camera na barriga do usuário, levemente inclinada para o chão, conforme of usuário se locomove, o programa identifica a existência de um objeto (seja uma pessoa ou uma cadeira por exemplo) e manda caso o sinal região especificada (caminho do usuário) (vide imagem do contorno da cadeira - caso of usuário se aproxime da cadeira haverá pixels brancos na região verde que determinam condição de parada). Dessa forma, sem a adição de filtros ao tipo de chão, para o funcionamento dessa versão simplificada, é necessário um chão razoavelmente homogêneo, de forma que os detalhes do chão nãados señodos.

Obs. Het is mogelijk om een variável lowThreshold aan te passen aan de waarde van 0 (meer sensitivo) en 100 (menos sensitivo en contorno). O valor sugerido é 60 para chão em geral.

Funcionamento: of identificadorDeObstáculos.cpp recebe um video da rede wifi at sparkfun que deve ser um vídeo de um celular acoplado and barriga to usuário. O codigo 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: Wijzigen van de acordo para especificar de onde os vídeos são recebidos e para qual android as informações são encaminhadas. Er zijn alternatieve programma's die geen specifieke programma's bevatten.

Voor meer informatie over de grenzen van Canny en limiarização, het verkrijgen van een openstaande computer voor de computer, het aanbevelen van een officiële document van OpenCV.

Stap 5: Fazer Aplicativo Que Repassa As Informações Para O Deficiente Visual

Het is noodzakelijk om een banco de dados geen site data.sparkfun.com te geven, of een intuïtieve procedure die geen expliciete verklaring bevat voor de banco-referentie (link naar banco).

Assim que a Dragonboard reconhece que há um obstá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. Kom in de buurt van de conseguimos die u kunt gebruiken om geen 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 classes en Interfaces utilizadas para o projeto, que são explicadas a seguir:

GetJson: é utilizada para fazer um get no banco de dados do data.sparkfun retornando um arquivo em formato json para aplicação.

JsonDownloader: het is een eenvoudige manier om gebruik te maken van een klasse GetJson, een import die gebruik maakt van een klasse die niet is gekoppeld aan een interface die gebruikt kan worden voor een nauwkeurigere discussie.

MainActivity: classe implementamos a logic da aplicação que continuamente consulta o banco de dados, en informa o usuário por meio de um audio se ele precisa para ou pode continuear caminhando.

RequestListener: e uma interface utilizada para forçar o MainActivity ter bepaalde kenmerken.

SdmSoundPlayer: dit is een klasse die gebruikt kan worden om de aplicaço te gebruiken, die je kunt toevoegen aan de keuze van de rauwe pasta. Feiten over de manier waarop initSoundHash() wordt gebruikt om de verschillende gegevens van de mSoundHash samen te voegen met hash. Para usar este áudio basta usar of método playSound(int key) en passar como parâmetro a chave escolhida para o sinal de voz.

Waarschuwingen: essa classe é utilizada para facilitar of parser do json retornado pelo banco de dados.

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

U kunt een lay-out gebruiken die bestaat uit een gezamenlijke functie die u kunt gebruiken om te stoppen met de uitvoering van MainActivity, een eenvoudige methode voor een toepassing die u kunt raadplegen zonder banco de dados.

Qualquer dúvida adicional of sugestão basta 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 suficientes para o endimento do que está acontecendo.

Stap 6: Suggesties De Continuação

Poderiamos integrar um sistema de localaização. Bestaat uit Qualcomm iZat SDK die kan worden geïnstalleerd in de VS GNSS, acelerômetro, magnetrômetro entre outros, ja, embutidos no proprio processador Qualcomm Snapdragon (presente on maioria dos celulares). Geen entanto, havia pouca documentação e necessitava 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 resolvido com mais calma. Se tiver tempo, koop als bibliotecas já presentes no kit desenvolvimento, elas possuem diversos exemplos para cada tipo de sensor.

Geen site Ontwikkelaars Qualcomm bestaat voor het uitvoeren van lessen en het volgen van lessen, en voor het leren van 96Boards zonder you tube.

Aanbevolen: