Satura rādītājs:

Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 soļi
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 soļi
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

APRAKSTS

O intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes iekštelpu como casas vai iepirkšanās centri un lidostas.

A locomoção em ambientes já mapeados pode ou não ser apsvērumi par problēmu problēmu risinājumu. Lietotņu veikala aplikācija ir paredzēta arī tam, kā arī sirva apenai, kas paredzēta 3 apkārtējai videi un EUA, kā arī 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, misão deste projeto é, através de visão computocional e processamento de imagem, identifikatoru potenciāls obstáculos que possam ķirurgs ao longo do caminho do usuário e poder recalcular o caminho a ser seguido dando independentência e empoderando o usuário. Tā ir neprognozējama, neprognozējama, embora ir nepilnīga, tā ir integrēta, izmantojot aplikācijas apakšskaitītāju, vai arī jums ir jāapmeklē vietējā interese. 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 para kapacitar e nos tornar iguais”.

Neste projeto izmanto Dragonboard 410c, precīza aparatūras que tenha capacidade de fazer vai processam 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. solis: Materiāls

Materiais
Materiais

Para este projeto vamos utilizar:

- uma placa Qualcomm Dragonboard 410c;

- OpenCV attēla biblioteka de processamento (image 3.1);

- Câmera que se comunique com a placa (lietojiet spriedumu un celulāru android com vai aplicativo IP Webcan);

- celular com sistēma Android para vai aplicativo;

2. darbība: Instalando OpenCV Na Dragonboard

Instalējiet OpenCV Na Dragonboard
Instalējiet OpenCV Na Dragonboard

Com linux ir instalēts placā, ir pieejamas procedūras, kas nepieciešamas, lai instalētu bibliogrāfisko attēlu apstrādes procesu - OpenCV - nav ierīces. Siga kā instrukcijas deste link:

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

3. solis: Conectar a Câmera Com un Dragonboard

Konektārs un Camera Com un pūķa dēlis
Konektārs un Camera Com un pūķa dēlis

Iepriekšējs konvektors ar câmera que serão os olhos do deficite 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 usar como camera um Moto G 3 ª Geração com or aplicativo IP Webcam (ierīcē Google Play) que permite que a imagem seja transferida pelo wifi.

Abaixo um programma 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”. Ja ir attēls, tad ir pieejams IP vai seko celular.

A aquisição pode ser difícil nas versões anteriores a 3.1 da opencv, caso você não tenha conseguido compilar. Ja runājat par savu pūķbordu, tad jums vajadzētu būt līdzvērtīgam (0), un tas nozīmē, ka tas ir noklusējuma nosaukums.

4. solis. Desenvolver programmatūras apstrādes process Imago Que Toma Decisões

Image
Image
Procesuālā programmatūras izstrāde, lai apstrādātu Imagens Que Toma Decisões
Procesuālā programmatūras izstrāde, lai apstrādātu Imagens Que Toma Decisões
Procesuālā programmatūras izstrāde, lai apstrādātu Imagens Que Toma Decisões
Procesuālā programmatūras izstrāde, lai apstrādātu Imagens Que Toma Decisões

Há três programmas 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).

Izskaidrojums: A IDIA de identifação de obstáculo vem da determinação dos contornos mais drásticos nas imagesns do video, 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 como nas solis). Estando a câmera na barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o programma 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) (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 apsvērumi 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.

Funkcija: o identifadorDeObstáculos.cpp uztveršanas video ir pieejams, lai atrastu Wi -Fi, lai iegūtu dzirksteles que deve ser um video celulārā acoplado un barriga do usuário. O código manda condições de parada á um aplicativo de um outro celular que usuário está usando. Ideāls manda-se comandos de voz de parada parada o usuário.

Ievērojiet: Altere o código de acordo para especificar de onde os video, 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 computocional, rekomendē iepirkumu un oficiālo dokumentu OpenCV.

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

Para reproduzir este projeto é requiredário 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 detahada 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 buildido 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 vai aplicativo emite um sinal para prosseguir continamente.

Seguem em anexo kā klases un saskarnes, kas tiek izmantotas projektam, que são explicadas a seguir:

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

JsonDownloader.

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 interfeisa utilizada para forçar vai 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) un passar como parâmetro a chave escolhida para o sinal de voz.

Brīdinājumi: 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 izkārtojums aplicação konsistenci de um único botão que funcionava com vai método Iziet no MainActivity, vienkārši veicot vienkāršu darbu, lai izmantotu un aplicação a parar a consulta no banco de dados.

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. solis: Sugestões De Continuação

Poderiamos integrar um system de localaização. Ir pieejams Qualcomm iZat SDK, kas nodrošina vietējo sistēmu GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no Qualcomm Snapdragon (presente na maioria dos celulares). No entanto, havia pouca documentação e needsitava 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. Sekojiet tempam, iegādājieties kā bibliotecas já presentes no kit de desenvolvimento, elas possuem diversos exemplos para cada tipo de sensor.

Nav vietņu Izstrādātāji Qualcomm pastāvēja mācību priekšmeti un apmācību vadītāji, kas piedalījās ajudar, e ainda há os tutoriiais 96Boards no you tube.

Ieteicams: