ዝርዝር ሁኔታ:

ራዕይ 4 ሁሉም - ሲስተማ ቪሳኦ ረዳዳ ፓራ እጥረት ቪዛዋ ኡስንዶ OpenCV ፣ Dragonboard 410c E Aplicativo Android 6 ደረጃዎች
ራዕይ 4 ሁሉም - ሲስተማ ቪሳኦ ረዳዳ ፓራ እጥረት ቪዛዋ ኡስንዶ OpenCV ፣ Dragonboard 410c E Aplicativo Android 6 ደረጃዎች

ቪዲዮ: ራዕይ 4 ሁሉም - ሲስተማ ቪሳኦ ረዳዳ ፓራ እጥረት ቪዛዋ ኡስንዶ OpenCV ፣ Dragonboard 410c E Aplicativo Android 6 ደረጃዎች

ቪዲዮ: ራዕይ 4 ሁሉም - ሲስተማ ቪሳኦ ረዳዳ ፓራ እጥረት ቪዛዋ ኡስንዶ OpenCV ፣ Dragonboard 410c E Aplicativo Android 6 ደረጃዎች
ቪዲዮ: የዮሐንስ ራዕይ ምዕራፍ 4 2024, ሰኔ
Anonim
ራዕይ 4 ሁሉም - ሲስተማ ቪሳኦ ረዳዳ ፓራ እጥረት ቪዛዋ ኡስንዶ OpenCV ፣ Dragonboard 410c E Aplicativo Android
ራዕይ 4 ሁሉም - ሲስተማ ቪሳኦ ረዳዳ ፓራ እጥረት ቪዛዋ ኡስንዶ OpenCV ፣ Dragonboard 410c E Aplicativo Android

DESCRIÇÃO

በ intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes የቤት ውስጥ como casas ou የገበያ ማዕከላት e aeroportos.

A locomoção em ambientes já mapeados pode ou não ser considerrado um problema bem resolvido. በአፕሊኬቲቭ ማከፋፈያ እና በመተግበሪያ መደብር ውስጥ ለፓስሶ ፣ አይንዳ ለሲርቫ አፓናስ ለ 3 አምቢየቶች እና ለአውሮፓ ህብረት ፣ ለ LowViz መመሪያ። Além do limitado número de locais, tal aplicativo não detea 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, identificar possíveis obstáculos que possam surgir ao longo do caminho do usuário e poder recalcular o caminho a ser seguido dando independentência e emrioderando o usuá. እና ፕራቲካ ፣ ወይም ፕሮጄቶ ፣ ኢምቦራ አይንዳ ያልተሟላ ፣ consiste em integrar um aplicativo de onde se pode submeter ou desenhar uma planta baixa do local de interesse, seja uma casa ou shopping. በዚህ ሁኔታ ውስጥ አንድ ሰው በኡማዮ ፣ ኢም ፎኔ ዴ ኦውቪዶ ፣ ወይም አፕሊኬቲቮ አንድ አኃዛዊ መረጃን ያሟላል። አንድ câmera, quando detea 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, porque precisamos de um hardware que tenha capacidade de fazer o 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: Materiais

ማቴሪያይስ
ማቴሪያይስ

ለፓራ ፕሮቪቶ vamos utilizar:

- uma placa Qualcomm Dragonboard 410c;

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

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

- celular com sistema Android para o aplicativo;

ደረጃ 2: Instalando OpenCV Na Dragonboard

Instalando OpenCV ና Dragonboard
Instalando OpenCV ና Dragonboard

የኮምፒተር ሊኑክስን በመጫን እና በመጫን ላይ ፣ እንደ ኦፕሬሲደንትስ ፓርሴስ ለፕሬስ ማጫዎቻ - ኦፕሲቪ - መሣሪያ የለም። ሲጋ እንደ መመሪያ አገናኝ

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

ደረጃ 3: Conectar a Câmera Com a Dragonboard

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

Precisamos conectar a câmera que serão os olhos do deficiente com a placa de desenvolvimento Dragonboard 410c. Existem vários jeitos de fazer isso. አንድ ዘንዶ ሰሌዳ ሊኖር የሚችል ጠፍጣፋ ጠረጴዛ ፣ ou seja, é kompatível com as câmeras usadas comumente em placas como a Raspberry pi.

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

Abaixo um programa que faz aquisição simples da imagem usando a biblioteca opencv. አገናኝ አገናኝ ቪድዮ ቀረፃ እና ኦፒ አይ ሴሉላር (አመላካች የለም aplicativo) + “/videofeed”። እንደዚሁም ፣ በአይፒ ውስጥ የአይፒ አድራሻውን ይመልከቱ።

በ 3.1 ዳ opencv ፣ caso você não tenha conseguido compilar አንድ አኳያ po po. Se você conectar uma câmera pela entrada de câmeras da dragonboard basta colocar como parâmetro o valor zero ("0"), que meaninga que você quer procurar a câmera default.

ደረጃ 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

ኤኤም አኔክስ ፣ ወይም ተለይቶ የሚታወቅ DeObstáculos.cpp ፣ MostraContornoWebcam.cpp e VídeoCadeiraSlavo.cpp (estes dois últimos para teste e entendimento da técnica do software)።

ገለፃ: - አንድ 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 identifica mudanças drásticas de cores na imagem e conclui que isso seja um contorno e portanto um objeto ደረጃ)። ኢስታንዶ አንድ câmera እና barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o programa identifica a existência de um objeto (seja uma pessoa ou uma cadeira por exemplo) e manda o sinal de parada caso o objeto seja encontrado ና 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 simplificada, é necessário um chão razoavelmente homogêneo, de forma que os detalhes do chão não sejam consideringrados contornos.

ምልከታዎች። é possível ajustar a variável lowTreshold 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።

Funcionamento: o identificadorDeObstáculos.cpp recebe um vídeo da rede wifi através do sparkfun 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. Idealmente manda-se comandos de voz de parada parada o usuário.

ምልከታዎች። ኦስ tipos de alterações são especificadas no próprio código (assim como nos programas de teste) comentados no início do programa.

Para saber mais sobre bordas de Canny e limiarização, além de outros tópicos de visão computacional, recomenda-se procurar a documentação oficial da OpenCV.

ደረጃ 5 Fazer Aplicativo Que Repassa እንደ Informações Para O ጉድለት ያለበት ቪዥዋል

ለጣቢያ ምንም መረጃ የለም። ጣቢያ ።.

Dragon Dragonboard ን እንደገና ለመገናኘት አስማምቶ ሲመጣ እዚህ ያለ ምንም መረጃ የለም። sparkfun.com essa informaçã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. 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 continuamente.

Seguem em anexo as classes e 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 a aplicação.

JsonDownloader: é onde geramos uma asynctask para de fato utilizarmos a classe GetJson, a importância do uso desta classe é para não travarmos አንድ በይነገጽ do usuário e para isso precisamos criar uma thread diferente na aplicação.

ዋና ተግባር: nesta classe implementamos a lógica da aplicação que continuamente consulta o banco de dados, e informa o usuário por meio de um audio se ele precisa para ou pode continuar caminhando.

አመልካች አስተናጋጅ -የእውቀት በይነገጽ ለ ‹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 ፓስታ ጥሬ 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 ሃሽ። Para usar este audio basta usar o método playSound (int key) e passar como parâmetro a chave escolhida para o sinal de voz.

ማስጠንቀቂያዎች - ኢሳ ክላሴ ኢ utilizada para facilitar o parser do json retornado pelo banco de dados.

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

O አቀማመጥ da aplicação consistia de um único botão que funcionava com o método Quit implementado na MainActivity, este método simplesmente forçava a 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: Sugestões De Continuação

Poderiamos integrar um sistema de localaização. የ Qualcomm iZat SDK que possui um sistema de localização que usa GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no próprio processador Qualcomm Snapdragon (የአሁኑ እና የ maioria dos celulares)። ምንም የለም ፣ ሃቪያ 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. እንደ ሁኔታው ፣ እንደ bibliotecas já ምንም ኪት ዲ desenvolvimento ን አያቀርብም ፣ elas possuem diversos exemplos para cada tipo de sensor.

ምንም ጣቢያ ገንቢዎች የ Qualcomm existem fóruns e tutoriais que podem ajudar, e ainda há os tutoriais da 96Boards no you tube.

የሚመከር: