Tartalomjegyzék:

Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 lépés
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 lépés

Videó: Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 lépés

Videó: Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 lépés
Videó: 🌟 ENG SUB | Versatile Mage | Full Version EP37-48 | Yuewen Animation 2024, Június
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

DESCRIÇÃO

O intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes beltéri como casas vagy bevásárlóközpontok és repülőterek.

A locomoção em ambientes já mapeados pode ou não ser huomioon az um problem bem resolvido. Um applicativo disponível App Store for isso, ainda que sirva apenas para 3 ambientes e apenas nos EUA, é o LowViz Guide. Além do limitado número de locais, tal aplicativo não detecta possíveis obstáculos e pessoas que possam estar no caminho do usuário. Assim, a missão deste projeto é, através de visão computacional e processamento de imagem, identifar possíveis obstáculos que possam sebészet ao longo do caminho do usuário e poder recalcular o caminho a ser seguido dando independentência e empoderando o usuário. Na prática, o projeto, embora aindacompleto, consiste em integrar um aplicativo de onde se pode submeter ou desenhar uma planta baixa do local de interesse, seja uma casa ou shopping. Com a placa integrada 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 definir para onde quer ir 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”.

A Neste projeto használja a Dragonboard 410c -t, a hardver precíziós hardverét, amely kapacitást ad a fazer vagy a processamento de imagens em tempo real (sem ter de Competir com outras aplicações como seria no celular) e ao mesmo tempo seja de baixo custo.

1. lépés: Anyagi kapcsolat

Materiais
Materiais

Para este projeto vamos utilizar:

- uma placa Qualcomm Dragonboard 410c;

- Biblioteca de processamento de imagem OpenCV (3.1 verzió);

- câmera que se comunique com a placa (usaremos na verdade um celular android com o aplicativo IP Webcan);

- Celular Com Android rendszer vagy alkalmazás;

2. lépés: Instalando OpenCV Na Dragonboard

Instalando OpenCV Na Dragonboard
Instalando OpenCV Na Dragonboard

Com linux telepítve a térre, és az eljárásokkal együtt, és telepítse a biblioteca de processamento de imagem - OpenCV - nincs eszköz. Siga mint utasítás link:

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

3. lépés: Conectar a Câmera Com a Dragonboard segítségével

Conectar és Câmera Com a Dragonboard
Conectar és Câmera Com a Dragonboard

Precisamos conectar a câmera que serão os olhos do deficit the com a placa de desenvolvimento Dragonboard 410c. Existem vários jeitos de fazer isso. A dragonboard possui entrada para flatcables, ou seja, é compatível com as cameras usadas comumente em placas como a Raspberry pi.

Neste projeto, optamos us como camera um Moto G 3 ª Geração com or applicativo IP Webcam (a Google Play szolgáltatásban), amely lehetővé teszi a kép átvitelét és a Wi -Fi használatát.

Abaixo um program 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 compilar. Lépjen kapcsolatba uma câmera pela entrada de câmeras da dragonboard basta colocar como parâmetro o valor zero ("0"), que signa que você quer procurar a camera default.

4. lépés: Desenvolver Software De Processamento De Imagens Que Toma Decisões

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

Há três programok em anexo, o identifadorDeObstáculos.cpp, o MostraContornoWebcam.cpp e o VídeoCadeiraSlavo.cpp (estes dois últimos para teste e entendimento da técnica do software).

Explicação: A ideia 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 identifika mudanças drásticas de cores na imagem e conclui que isso seja um contorno e portanto um objte des comorno lépés). Estando a câmera na barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o program azonosító a létezés de um objeto (seja uma pessoa ou uma cadeira por example) e manda o sinal de parada caso o objeto seja encontrado na região especificada (caminho do usuário) (vide imagem do contorno da cadeira - caso o 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 simpleificada, é needsário um chão razoavelmente homogêneo, de forma que os detailshes do chão não sejam arvestó contornos.

Obs. é possível ajustar a variável lowThreshold do código para um valor de 0 (mais sensitivo) e 100 (menos sensitivo ao contorno). O valor sugerido é 60 para chão em geral.

Funkció: o identifadorDeObstáculos.cpp fogadja a videót, és a wifi -t atvérezi a szikrázó 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. Ideális manda-se comandos de voz de parada parada o usuário.

Megjegyzés: Altere o código de acordo para especificar de onde os vídeos são recebidos e para quality android as informações são encaminhadas. Os tipos de alterações são especificadas no próprio código (assim como nos programs de teste) comentados no início do program.

Para saber mais sobre bordas de Canny e limiarização, além de outros tópicos de visão computacional, ajánlja a beszerzést és az OpenCV hivatalos dokumentumát.

5. lépés: Fazer Aplicativo Que Repassa As Informações Para O Deficiente Visual

Para reprzir este projeto é needárius criar um banco de dados no site data.sparkfun.com, o processo é muito intuitivo de forma que não será dada uma explicação more detailshada aqui, mas colocaremos o link do banco que criamos para referência ().

Assim que a Dragonboard reconhece que há um obstáculo a sua frente ela posta em um banco de dados konstruktív no data.sparkfun.com essa informação. O aplicativo faz uma consulta a este banco com o auxílio da classe okhttp3 obtendo as informationçõ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á um obstá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 continamente.

Seguem em anexo as class e Interfaces utilizadas para o projeto, que são explicadas and seguir:

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

JsonDownloader: a Geramos uma asynctask para de fato utilizarmos a classe GetJson, a behozatali felhasználás és az osztályozás, amely nem a travarmos és a felhasználói felület interfésze, sem pedig a precíziós kriar uma thread diferente na aplicação.

MainActivity: nesta classe implementamos a lógica da aplicação que continamente consulta o banco de dados, e information o usuário por meio de um audio se ele precisa para ou pode Continue caminhando.

RequestListener: é uma interface utilizada 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 basta usar o método playSound (int key) e passar como parâmetro a chave escolhida para o sinal de voz.

Figyelmeztetések: essa classe é utilizada para facilititar o parser do json retornado pelo banco de dados.

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

O layout da aplicação konzisztencia de um único botão que funcionava com o método Kilépés a MainActivity -ből, egyszerűen végezze el az egyszerű használatot az alkalmazás és az alkalmazás, valamint a banco de dados segítségével.

Qualquer dúvida adicional ou sugestão basta entrar em contato com o author. 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 entendimento do que está acontecendo.

6. lépés: Sugestões De Continuação

Poderiamos integrar um system de localaização. A Qualcomm iZat SDK rendelkezik a GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no processzor Qualcomm Snapdragon (presente na maioria dos celulares) rendszerrel. No entanto, havia pouca documentação e requireditava de testes mais demorados.

Também gostariamos de usar um sensor de distância ultrassonico, porém tivemos problem quanto a comunicação com a Dragonboard, que poderia ser resolvido com mais calma. Ha meg szeretné változtatni a tempót, szerezze be, mint bibliotecas já presentes no kit de desenvolvimento, elas possuem diversos exemplos para cada tipo de sensor.

Nincs webhely Fejlesztők Qualcomm létező oktatók és oktatók que podem ajudar, e ainda há os tutoriiais da 96Boards no you tube.

Ajánlott: