สารบัญ:
- ขั้นตอนที่ 1: Materiais
- ขั้นตอนที่ 2: Instalando OpenCV บน Dragonboard
- ขั้นตอนที่ 3: Conectar a Câmera Com a Dragonboard
- ขั้นตอนที่ 4: Desenvolver Software De Processamento De Imagens Que Toma Decisões
- ขั้นตอนที่ 5: Fazer Aplicativo Que Repassa ในฐานะ Informações Para O Deficiente Visual
- ขั้นตอนที่ 6: Sugestões De Continuação
วีดีโอ: Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
รายละเอียด
O intuito do projeto é dar autonomia para deficientes visuais se locomoverem em Ambientes ในร่ม como casas ou ศูนย์การค้าและสนามบิน
A locomoção em Ambientes já mapeados pode ou não ser observeado um problema bem resolvido. ชุมชนท้องถิ่น ใช้งานบน App Store สำหรับ isso, ainda que sirva apenas para 3 ambientes e apenas nos EUA, é o LowViz Guide Além do limitado número de locais, แท็บที่เกี่ยวข้อง não detecta possíveis obstáculos e pessoas que possam estar no caminho do usuário. อัสซิม, 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 ที่ประเทศสเปน. ใช้งานจริง, o projeto, embora ainda incompleto, รวมกันเป็นหนึ่งเดียว, ใช้งาน aplicativo de onde se pode submeter ou desenhar uma planta baixa do local de interesse, seja uma casa ou shopping สภาพแวดล้อมที่รวมกัน 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ç กล้อง, 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 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) และ ao mesmo tempo cusseja de baixo
ขั้นตอนที่ 1: Materiais
Para este projeto vamos ใช้:
- อูมา placa Qualcomm Dragonboard 410c;
- biblioteca de processamento de imagem OpenCV (เวอร์ชัน 3.1);
- กล้อง que se comunique com a placa (usaremos na verdade um celular android com o aplicativo IP Webcan);
- ระบบ celular com สำหรับ Android สำหรับแอปพลิเคชัน;
ขั้นตอนที่ 2: Instalando OpenCV บน Dragonboard
คอมลินุกซ์ ติดตั้งบน placa, ระบบปฏิบัติการ ระบบปฏิบัติการ ขั้นสูง สำหรับการติดตั้งและกระบวนการของอิมเมจ - OpenCV - ไม่มีอุปกรณ์ Siga เป็นลิงก์ instruções deste link:
docs.opencv.org/3.0-beta/doc/tutorials/intr…
ขั้นตอนที่ 3: Conectar a Câmera Com a Dragonboard
การตั้งค่าล่วงหน้า câmera que serão os olhos do deficiente com a placa desenvolvimento Dragonboard 410c. Existem vários jeitos de fazer isso. A dragonboard possui entrada para flatcables, ou seja, é compatí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 (จัดการใน Google Play) อนุญาติ อนุญาติ อนุญาติให้รูปภาพใช้ wifi
Abaixo um programa que faz aquisição simples da imagem usando a biblioteca opencv. O ลิงก์ผ่าน como parâmetro ไม่มีตัวสร้าง ใช้งาน VideoCapture é o IP do celular (indicado no aplicativo) + “/videofeed” ที่ imagem acima, você encontra onde está o IP do seu celular.
Aquisição pode ser difícil nas versões anteriores a 3.1 da opencv, caso você não tenha conseguido คอมไพเลอร์ Se você conectar uma câmera pela entrada de câmeras da dragonboard basta colocar como parâmetro o valor zero ("0"), que significa que você quer procurar a câmera default.
ขั้นตอนที่ 4: Desenvolver Software De Processamento De Imagens Que Toma Decisões
โปรแกรมเพิ่มเติมสำหรับ anexo, o identificadorDeObstáculos.cpp, o MostraContornoWebcam.cpp e o VídeoCadeiraSlavo.cpp (estes dois últimos para teste e entendimento da técnica do software).
คำอธิบาย: A 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 iso e conclui s obstica ขั้นตอน) Estando a câmera na barriga do usuário, levemente inclinada para o o chão, เป็นไปตามมาตรฐาน o usuário se locomove, o programa identifica a residence de um objeto (seja uma pessoa ou uma cadeira por exemplo) e parana da o região especificada (caminho do usuário) (ภาพวิดีโอทำ 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 con sejamaพิจารณา
ออบส์. มีโอกาสเกิดขึ้นได้หลากหลายระดับต่ำThreshold do código para um valor de 0 (mais sensitivo) e 100 (menos sensitivo ao contorno). O valor sugerido é 60 สำหรับ chão em geral.
ฟังก์ชัน: 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. อุดมคติ 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 เป็นข้อมูลสำหรับ são encaminhadas ระบบปฏิบัติการ tipos de alterações são especificadas no próprio código (assim como nos programas de teste) ไม่มีข้อความในโปรแกรม
Para saber mais sobre bordas de Canny e limiarização, além de outros tópicos de visão computacional, ขอแนะนำให้ใช้เอกสารประกอบของ OpenCV
ขั้นตอนที่ 5: Fazer Aplicativo Que Repassa ในฐานะ Informações Para O Deficiente Visual
Para reproduzir este projeto é necessá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 mais detalhada aqui, mas colocaremos o link do criamo banco อ้างอิง
Assim que a Dragonboard reconhece que há um obstáculo a sua frente ela posta em um banco de dados construido no data.sparkfun.com ข้อมูลข่าวสาร แอปพลิเคชัน 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 เป็นคลาส 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 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 a interface do usuário e para isso precisamos criar uma thread ที่แตกต่างกัน
กิจกรรมหลัก: 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.
RequestListener: é uma interface utilizada para forçar o MainActivity ter certas características.
SdmSoundPlayer: esta classe é usada para gerenciar os comandos de voz da aplicação, caso você queira inserir เป็น suas próprias gravações você deve criar uma pasta raw dentro da pasta res e incluirs. Feito isso dentro do método initSoundHash() você deve colocar esses arquivos dentro de mSoundHash que é uma tabela Hash. แฮช สำหรับใช้ este audio basta usar o método playSound(int key) e passar como parâmetro a chave escolhida para o sinal de voz.
คำเตือน: essa classe é utilizada para facilitar o parser do json retornado pelo banco de dados
Seguem em anexo também os arquivos de voz utilizados
เค้าโครงจาก aplicação สอดคล้องกัน de um único botão que funcionava com o método ออกจากการใช้งานบน MainActivity, este método simplesmente forçava aplicação a parar a Consulta no banco de Dados.
Qualquer dúvida adicional ou sugestão basta entrar em contato com หรือ 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 usa GNSS, acelerômetro, magnetrômetro entre outros, já embutidos no próprio processador Qualcomm Snapdragon (นำเสนอด้วย maioria dos celulares) ไม่มี entanto, havia pouca documentação e necessitava de testes mais demorados.
ข้อความ 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. กำหนดจังหวะ, จัดหาเป็นบรรณานุกรมนำเสนอไม่มีชุดอุปกรณ์, elas possuem Diversos ตัวอย่างสำหรับ cada tipo de sensor.
ไม่มีไซต์ Developers Qualcomm มีอยู่สำหรับ tutoriais que podem ajudar, e ainda há os tutoriais da 96Boards no you tube.
แนะนำ:
แอปพลิเคชัน Remotamente Para a Dragonboard 410c Usando IDE Eclipse: 17 ขั้นตอน
ดาวน์โหลด Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é ส่วนใหญ่จำเป็นสำหรับการกำหนดค่า o สภาพแวดล้อมของ desenvolvimento, การปรับแต่ง o HostPC (คอมพิวเตอร์ / โน้ตบุ๊ก), IDE Eclipse คอมไพล์ระบบปฏิบัติการและส่งออกสำหรับ Alvo (ลาก
การสื่อสาร Serial Com a Dragonboard 410c Usando Mezzanine 96boards เซนเซอร์: 7 ขั้นตอน
การสื่อสาร Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensors: O objetivo desse tutorial é Mostrar as etapas needÃÃ'ias para configurar o Ambiente de desenvolvimento, de modo que seja possível comunicar com a Dragonboard 410c คอมพิวเตอร์ คอมพิวเตอร์ / notebook usando comunica&ccedi
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 ขั้นตอน
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: ความอัจฉริยะของ Lixeira ประกอบด้วยการแยกส่วนอัตโนมัติ เว็บแคม Através de uma, ela identifica o tipo de lixo e o deposita no compartimento adequado para posteriormente ser reciclado
การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow.: 4 ขั้นตอน
การตรวจจับวัตถุด้วย Dragonboard 410c หรือ 820c โดยใช้ OpenCV และ Tensorflow: คำแนะนำนี้จะอธิบายวิธีติดตั้ง OpenCV, Tensorflow และเฟรมเวิร์กการเรียนรู้ของเครื่องสำหรับ Python 3.5 เพื่อเรียกใช้แอปพลิเคชัน Object Detection
การพัฒนาแอปพลิเคชันโดยใช้พิน GPIO บน DragonBoard 410c ด้วยระบบปฏิบัติการ Android และ Linux: 6 ขั้นตอน
การพัฒนาแอพพลิเคชั่นโดยใช้ GPIO Pins บน DragonBoard 410c พร้อมระบบปฏิบัติการ Android และ Linux: จุดประสงค์ของบทช่วยสอนนี้คือการแสดงข้อมูลที่จำเป็นในการพัฒนาแอพพลิเคชั่นโดยใช้พิน GPIO บนการขยายความเร็วต่ำ DragonBoard 410c บทช่วยสอนนี้นำเสนอข้อมูลสำหรับการพัฒนาแอปพลิเคชันโดยใช้หมุด GPIO พร้อม SYS บน Andr