Sisukord:

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

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

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

KIRJELDUS

O intuito do projeto é dar autonomia para deficitine visuais se locomoverem em ambientes siseruumides como casas või kaubanduskeskused ja lennuväljad.

A locomoção em ambientes já mapeados pode ou não ser kaalub um probleem bem resolvido. Um aplikatiivne rakendus on saadaval App Store'is, see on ka que sirva apenas parameetritega 3 ambientes e apenas nos EUA, või 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 computacional e processamento de imagem, identificator 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 mittetäielik, sisaldab integreeritud rakendust, mis on alammõõtur või oa 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 camera, 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 parapacitar e nos tornar iguais".

Neste kasutab dragonboard 410c -d, riistvara täpsust, riistvara qua tenha capacidade de fazer või processamento de imagens em tempo real (sem ter de Competir com outras aplicações como seria no celular) ja ao mesmo tempo seja de baixo custo.

Samm 1: Materiaalsus

Materiais
Materiais

Para este projeto vamos utilizar:

- uma placa Qualcomm Dragonboard 410c;

- OpenCV pilditeabe biblioteek (versioon 3.1);

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

- tsellulaarne Androidi süsteemi rakendus või rakendus;

2. samm: Instalando OpenCV Na Dragonboard

Installige OpenCV Na Dragonboard
Installige OpenCV Na Dragonboard

Linuxi installeerimisel platsile, selle protseduuride jaoks on vaja installida bibliograafia ja protsesside kujundus - OpenCV - seadet pole. Siga juhendina:

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

3. samm: looge Câmera Com Dragonboardiga

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

Täpsemalt, Dragonboard 410c plats de desenvolvimento on puudulik. Existem vários jeitos de fazer isso. A dragonboard possui entrada para flatcables, ou seja, é compatível com as cameame usadas comumente em placas como a Raspberry pi.

Neste projeto, optamos us to como camere um Moto G 3ª Geração com or aplicativo IP Webcam (Google Play teenus) que permite que a imagem seja transferida pelo wifi.

Abaixo um programm 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. Kui kõnelahendus on draakoniplaat, siis on see kollaaž, mis on null ("0"), see tähendab vaikimisi häälteavet.

Samm 4: Desenvolveri tarkvara De Processamento De Imagens Que Toma Decisões

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

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

Selgitus: A ideia de identiçã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 and portanto um objte most como image samm). Estando a câmera na barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o program 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 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 or funcionamento dessa versão simpleificada, é vajadus um chão razoavelmente homogêneo, de forma que os detailshes do chão não sejam kaalutlused 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.

Funktsioon: o identifadorDeObstáculos.cpp võtab vastu veebi, et saada wifi através do sparkfun que deve ser um video 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. Ideaalne manda-se comandos de voz de parada parada o usuário.

Märkus: Altere o código de acordo para especificar de onde os vídeos são recebidos and para qual android as informationçõ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, soovitame hankida ja dokumendid OpenCV ametlikult.

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

Para reprzir este projeto é requiredary 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 ().

Assim que a Dragonboard reconhece que há um obstáculo a sua frente ela posta em um banco de dados construction no data.sparkfun.com essa informationçã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 või aplicativo emite um sinal para prosseguir continamente.

Seguem em anexo kui klassid ja liidesed, mida kasutatakse projektide jaoks, que são explicadas and seguir:

GetJson: saate kasutada andmeid fakside kohta. Sppfun retornando um arquivo em formato json para a aplicação.

JsonDownloader: on olemas geramosid asynctask para de fato utilizarmos a class GetJson, import ja doo desta classe é para não travarmos a interface and usuário and para isso precisamos criar uma thread different and aplicação.

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 continar caminhando.

RequestListener: uma kasutajaliidese kasutamine for Main või 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.

Hoiatused: essa classe é utilizada para hõlbustamiseks või parser do json retornado pelo banco de dados.

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

Rakenduse paigutus koosneb uue tehnoloogia botão que funcionava com o método Lõpeta rakenduse MainActivity rakendamisest, lihtsustades lihtsat teenindust ja rakendust ning konsulteerides banco de dados'iga.

Qualquer dúvida adicional ou 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 entendimento do que está acontecendo.

6. samm: Sugestões De Continuação

Poderiamos integrar um system de localaização. Kasutage Qualcomm iZat SDK -d, mis võimaldab teil kasutada kohalikku süsteemi GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no protoprotsessor Qualcomm Snapdragon (presente na maioria dos celulares). 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 problems quanto a comunicação com a Dragonboard, que poderia ser resolvido com mais calma. Järgige tempot, hankige bibliotekaks, mida ei esitata, kuid pole võimeline pakkuma mitmekesiseid näiteid.

Saiti ei arendata

Soovitan: