Sadržaj:

Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: 6 koraka
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: 6 koraka

Video: Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: 6 koraka

Video: Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: 6 koraka
Video: COMPUTER VISION ASSISTED SYSTEM FOR THE VISUALLY IMPAIRED USING MOBILE EDGE AI 2024, Jun
Anonim
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android

DESCRIÇÃO

O intuito do projeto é dar autonomia para defientes visuais se locomoverem em ambientes unutrasnje como casas ou shopping centre e aeroportos.

Lokomocija koja emituje ambijente na mapeados podešena je ili nije razmatrana zbog problema. U aplikaciji koju ste dobili na App Store -u možete pogledati na stranici, ako ne želite da poslužitelje otvorite za 3 ambijenta i aparate u EUA, ili o vodiču LowViz. 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 computacional and processamento of imagem, identificar possíveis obstáculos que possam surgir ao longo do caminho do usuário e poder podsećanje o caminho a ser seguido dando Independência e empoderando o usu Na prátici, o projektu, embora je nepotpuna, sastoji se od integratora u aplikaciji koja se podešava pod metrom ili o desenhar uma planta baixa do lokalnog interesa, seja uma casa ili u kupovinu. 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 ponovo podseća na 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”.

Sljedeći projektor koristi Dragonboard 410c, porque precisamos hardverski hardver koji ima kapacitet de fazer ili procesor slike u realnom tempu (sem ter konkurentske aplikacije izvan aplikacija u seriji bez mobilnog telefona) e ao mesmo tempo se prilagođava baixo custom.

Korak 1: Materijali

Materiais
Materiais

Para este projeto vamos utilizar:

- uma placa Qualcomm Dragonboard 410c;

- biblioteka obrade slike o OpenCV -u (verzija 3.1);

- kamera koja se prikazuje sa zajedničkim placom (usaremos na verdade u mobilnom android com -u o aplikaciji IP Webcan);

- mobilni sistem Android za aplikacije ili aplikacije;

Korak 2: Instalando OpenCV Na Dragonboard

Instalando OpenCV Na Dragonboard
Instalando OpenCV Na Dragonboard

Com linux instalaciono je instaliran na računaru, ako ste izvršili procesore da biste instalirali biblioteku o obradi slike - OpenCV - nema uređaja. Siga as instruções deste link:

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

Korak 3: Spojite kameru na 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 deficit je com a placa de desenvolvimento Dragonboard 410c. Existem vários jeitos de fazer isso. Dragonboard ima mogućnost ulaska za flatcables, ou seja, i kompatibilan sa kamerama koje su na raspolaganju kao malina pi.

Ne morate da koristite projektore za korišćenje sa kamerom Moto G 3ª niti da primenite IP veb kameru (dostupnu na Google Play -u) i da dozvolite korišćenje slike na WiFi mreži.

Abaixo um program que faz aquisição simples da imagem koristi biblioteku opencv. O povezivanju preusmjerite parametar bez konstruktora za objekte VideoCapture i IP na mobilnoj mreži (označeno bez primjene) + “/videofeed”. Na slikama je potrebno uključiti IP adresu na mobilnom telefonu.

Aquisição podešavanje servera različito je u odnosu na verziju verzije 3,1 da opencv, tako da nije vokalno usklađen. Vidite poveznicu uma câmera pela entrada de câmeras da dragonboard basta colocar como parâmetro o valor zero ("0"), što znači que você quer procurar a default camera.

Korak 4: Desenvolver softver za obradu slike Ima Que Toma Odluke

Image
Image
Desenvolver Software De Processamento Imagens Que Toma Odluke
Desenvolver Software De Processamento Imagens Que Toma Odluke
Desenvolver Software De Processamento Imagens Que Toma Odluke
Desenvolver Software De Processamento Imagens Que Toma Odluke

Ovo su programi u dodatku, o identifikatorDeObstáculos.cpp, o MostraContornoWebcam.cpp ili o VídeoCadeiraSlavo.cpp (estes dois últimos para teste i entendimento da tecnica do softvera).

Objašnjenje: Ideja o identifikaciji od opstáculo -a znam da odredim dos contornos mais drásticos nas imagens do video, ou seja, o codigo identifica mudanças drásticas de cores na imagem e zaključak que isso seja um contorno e portanto um najpogodniji nam je cilj korak). Estando a câmera na barriga do usuário, levemente inclinada para o chão, conforme o usuário se locomove, o programu 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 na região especificada (caminho do usuário) (pogledajte sliku do kontorno da cadeira - caso o usuário se otprilike da cadeira ima piksele s granicama na regi verde que determinam condição de parada). Dessa forma, sem adição de filtros ao tipo de chão, para o funcionamento dessa versão simpleficada, é needário um chão razoavelmente homogêneo, de forma que os detalhes do chão não sejam obzir 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.

Funkcionalnost: o identificadorDeObstáculos.cpp možete vidjeti putem videa da biste ponovo osposobili Wi -Fi mrežu da biste pokrenuli iskru kako biste prikazali video zapis sa umreženog mobilnog telefona ili barriga do korisnika. O código manda condições de parada u um aplicativo de um out of celllar que usuário está usando. Idealmente manda-se comandos de voz de parada parada o usuário.

Obs: Altere o código de acordo para especificar de onde os vídeos são recebidos e para qual android as information in são encaminhadas. Os tipos de alterações são especificadas no próprio código (asim como nos programmas de teste) komentira bez inicia do programa.

Para sabre mais sobre bordas de Canny e limiarização, além de outros tópicos de visão computacional, preporučujemo da nabavite dokumentaciju za OpenCV.

Korak 5: Fazer aplikacija aplicira Que Repassa kao informacije o vizualnom nedostatku

Za reprodukciju ovog projekta potrebno je unijeti banko de dados bez web stranice data.sparkfun.com, ili obraditi njegovu intuitivnu deformaciju koja ne može da objasni detaljno objašnjenje, mas colocaremos ili vezu do banco que criamos za upućivanje ().

Pridružite se Dragonboard -u kako biste ga ponovo uspostavili i postavili na početnu poziciju, a banko de dados konstruido no data.sparkfun.com essa informação. O aplikaciji faz uma konzultacije i bankom com o auxílio da klasificirate okhttp3 obtendo kao informacije u vezi s Jsonom. 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.

Odredite ih kao klase i sučelja koja se koriste za projektiranje, to su objašnjenja za sigurnost:

GetJson: Koristi se za fazer i ne dobiva banko de dados za data.sparkfun retornando um arquivo em formatiran json za aplikaciju.

JsonDownloader: je u geramos uma asynctask za de fato iskorištavanje klasičnog GetJson -a, uvozna za korištenje desta klase, za não travarmos sučelje za korištenje i za precisamos criar niti u aplikaciji koja se primjenjuje.

MainActivity: nesta classe implementamos a lggica da se aplicira za kontinuirane konsultacije o banci de dados, i informacije o korištenju meio de um zvuka su ele precisa para ili stalni caminhando.

RequestListener: Ovaj interfejs se koristi za formatiranje MainActivity -a za određene karakteristike.

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 paste 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) i passar como parâmetro a chave escolhida para o sinal de voz.

Upozorenja: essa classe é je iskoristila za facilitator ili parser do json retornado pelo banco de dados.

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

O rasporedu aplikacije koji je konzistentan sa umnoženim botom koji je funkcionalan o metodi Napustite implementaciju na MainActivity -u, jednostavnom metodom jednostavno forvirajte aplikaciju za konsultacije bez banko de dados.

Qualquer dúvida je dodatna ili najpopularnija aplikacija za unos autoru. 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.

Korak 6: Sugestões De Continuação

Poderiamos integrator u sistemu za lokalizaciju. Postoji Qualcomm iZat SDK koji je potreban za sistem za lokalizaciju u SAD -u sa GNSS -om, mjernim uređajem, magnetom za izlaz, ugrađenim bez prethodnog procesora Qualcomm Snapdragon (predstavljen na maioriji sa mobilnim uređajima). No entanto, havia pouca docucação e needitava de testes mais demorados.

Também gostariamos de usar um sensor de distância ultrassonico, poriem tivemos Problems Quanto a Comunicação com a Dragonboard, que poderia ser resovido com mais calma. Više tipova, nabavite kao biblioteke koje ne predstavljaju komplet za desenvolvimento, ali možete koristiti različite primjere za svaki tip senzora.

Nema razvojnih programera Qualcomm -a koji postoje i podučavaju vas ako ste na sajtu za 96 ploča na youtube -u.

Preporučuje se: