Sisällysluettelo:

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

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

Video: Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 vaihetta
Video: 🌟 ENG SUB | Versatile Mage | Full Version EP37-48 | Yuewen Animation 2024, Marraskuu
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

KUVAUS

O intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes como casas ou shopping centres e airoportos.

A locomoção em ambientes já mapeados pode ou não ser harkitsee um ongelma bem resolvido. Sovellus on tarkoitettu App Store -palvelun käyttämiseen, se on hyvä, sirva apenas 3 ambientes e apenas nos EUA, tai 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, missão deste projeto é, através de visão computocional e processamento de imagem, identifier possíveis obstáculos que possam chirurg 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 ainda epätäydellinen, integroitu integroitu um aplicativo de onde se pode submeter tai 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, or 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 camera, quando detecta um obstáculo a frente, pode recalcular or caminho do usuário. Como dizia Hugh Herr: "Nenhum indivíduo é incapaz, o que existe é falta de desenvolvimento tecnológico para kapacitar e nos tornar iguais".

Neste -projektori käyttää Dragonboard 410c -laitteistoa, jossa on tarkkoja laitteistokokonaisuuksia, jotka mahdollistavat fazer -prosessin tai kuvankäsittelyprosessin.

Vaihe 1: Materiaali

Materiais
Materiais

Para este projeto vamos utilizar:

- uma placa Qualcomm Dragonboard 410c;

- OpenCV -kuvakirjasto (versio 3.1);

- câmera que se comunique com a placa (käyttöoikeus na verdade um celular android com tai aplicativo IP Webcan);

- keltainen komentojärjestelmä Android para tai aplicativo;

Vaihe 2: Instalando OpenCV Na Dragonboard

Instalando OpenCV Na Dragonboard
Instalando OpenCV Na Dragonboard

Linux on asennettu paikalleen, ja se voi suorittaa toimenpiteitä, jotka on asennettu asennettaessa kuvakirjan biblioteka - OpenCV - ei laitetta. Siga ohjeiden mukaan:

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

Vaihe 3: Yhdistä Câmera Com ja Dragonboard

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

Ennaltaehkäisevä lohko, jossa on câmera que serão os olhos do deficientte 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 camerat usadas comumente em placas como a Raspberry pi.

Neste Projeto, optimos us como cameral um Moto G 3 ª Geração com or applicativo IP Webcam (suunniteltu Google Playssa) que permite que a imagem seja transferida pelo wifi.

Abaixo um ohjelma 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”. Tämä on kuvamateriaali, puhekieli, joka on estate tai 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. Jos sinulla on sanakirja 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 cameran oletus.

Vaihe 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 -ohjelmat 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).

Selitys: A ideaia de identifação de obstáculo vem da determinação dos contornos lisää drásticos nas imagesns do vídeo, ou seja, o código identifika mudanças drásticas de cores na imagem e conclui que isso seja um contorno and portanto um objte Most como image vaihe). Estando a câmera na barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o ohjelma identific a a pastência 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) (video image do 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 filterros ao tipo de chão, para or funcionamento dessa versão simpleificada, é needário um chão razoavelmente homogêneo, de forma que os detailshes do chão não sejam harkitsee contornos.

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

Toiminto: o identifadorDeObstáculos.cpp vastaanottaa videon, jossa on Wi -Fi -yhteys, joka tekee kipinöintiä que deve -sarjan videosta. O código manda condições de parada á um aplicativo de um outro celular que usuário está usando. Ihanteellinen manda-se comandos de voz de parada parada o usuário.

Huomautus: Altere o código de acordo para especificar de onde os videot são recebidos and 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.

Parempi kuin Canny ja bordas de bordas de limiarização, além de outros tópicos de visão computocional, suosittele hankintaa ja OpenCV: n virallista asiakirjaa.

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

Para reprzir este projeto é requiredario criar um banco de dados no site data.sparkfun.com, o processo ja 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 ().

Määritä Dragonboard -tietokonetunnistus que há um obstáculo a sua frente ela posta em um banco de dados buildido 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 as 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 or usuário parar. Se o caminho está livre tai aplicativo emite um sinal para prosseguir continamente.

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

GetJson: hyödyntäminen fazerilla ei saa banco de dados do data.sparkfun retornando um arquivo em formato json para a aplicação.

JsonLataaja: Geramos on asynctask para de fato utilizarmos a luokka GetJson, tuonti ja käyttötarkoitus, luokan para travo, käyttöliittymä ja käyttö ja sen tarkka tarkkuus.

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

RequestListener: uma -käyttöliittymän hyödyntäminen para forçar tai 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) ja passar como parâmetro a chave escolhida para o sinal de voz.

Varoitukset: essa classe é utilizada para helpitar o parser do json retornado pelo banco de dados.

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

Sovellusasettelu koostuu sovelluksista, jotka on tarkoitettu uusiin botão que funcionava com tai metodeihin.

Qualquer dúvida adicional ou sugestão basta entrar em contato com or 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.

Vaihe 6: Sugestões De Continuação

Poderiamos integrar um system de localaização. Olemassa tai Qualcomm iZat SDK: ssa, jossa voit käyttää paikallista järjestelmää GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no próprio processor Qualcomm Snapdragon (presente na maioria dos celulares). No entanto, havia pouca documentação e välttämätön 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. Jos haluat muuttaa tempoa, hanki se bibliotecas já esittelee no kit de desenvolvimento, elas possuem diversos exemplos para cada tipo de sensor.

Ei sivustoa Kehittäjät Qualcommin olemassaolevat opinnot ja tutoriais -ohjelmat, joita voit käyttää ajudar, einda ja tutoriais 96Boards no you tube.

Suositeltava: