Segure-se firmemente ao volante ... Nosso projeto para monitorar a condição dos motoristas



Todo motorista sabe que os motoristas tendem a se cansar. Acontece que seus olhos ficam colados, mesmo quando você está voltando do trabalho para casa, e os caminhoneiros têm um dos principais problemas profissionais: milhares de acidentes ocorrem todos os anos devido ao fato de as pessoas adormecerem ao volante. O fato é que os caminhoneiros precisam manter constantemente um equilíbrio entre descanso e direção segura, por um lado, e fadiga com ganhos maiores, por outro. Grande tentação de dormir menos, mas mais rápido para entregar as mercadorias e obter um novo pedido. Sem mencionar o fato de que os motoristas têm vida própria e nem sempre dormem em um vôo.

Para tornar as estradas mais seguras, lançamos nosso projeto para monitorar a condição dos motoristas: de acordo com os requisitos dos clientes, criamos soluções de software e hardware que podem rastrear a saúde do motorista na estrada e impedir que adormeça para que não "acorde" no próximo mundo.

Olho vigilante


A idéia principal é usar a câmera para rastrear a fadiga e as reações perigosas dos motoristas. O dispositivo primeiro coleta estatísticas sobre como um determinado motorista se comporta enquanto dirige. E se, com base nessas estatísticas, o sistema decidir que o motorista está mostrando sinais de fadiga ou está prestes a ver sonhos, ela sinalizará isso para ele. Se o motorista frequentemente começou a acenar com a cabeça ou reagir a eventos como uma mosca sonolenta, o sistema também informa o despachante sobre isso.

Usando análise de vídeo, monitoramos o foco do motorista e se ele está olhando para a estrada. A câmera captura constantemente o rosto e as mãos e o sistema rastreia vários pontos-chave. Esperamos que os olhos do motorista estejam sempre abertos, os olhos voltados para o para-brisa ou para os espelhos laterais. Se os olhos se fecharem, ou a cabeça se inclinar para frente e o queixo cair no peito, ou o rosto se afastar do pára-brisa por um longo tempo, o sistema emitirá um sinal.

Obviamente, esse rastreamento e sinalização não funcionam o tempo todo, mas somente quando o carro está em movimento, um sensor GPS é usado para isso. Também previmos a possibilidade de ligar e desligar o sistema à força, porque as situações são diferentes. Mas, ao mesmo tempo, comparamos a duração da máquina e a hora em que o sistema está desligado. Se necessário, o dispositivo pode informar ao despachante que o motorista está viajando com o "controle" desativado há muito tempo.

Implementação


O projeto consiste em duas partes: hardware e software.

Como o sistema determina que o motorista está adormecendo agora? Usando a biblioteca OpenCV, que é baseada no aprendizado de máquina. O OpenCV permite definir pontos-chave no fluxo de vídeo: queixo, mãos, olhos (incluindo tamanho e largura). E com base nesses parâmetros, o sistema determina se o motorista está cansado ou não.

O hardware consiste na câmera Waveshare RPi (F) e no Raspberry Pi, montados em um único compartimento. Criar hardware é mais difícil do que parece à primeira vista: você não precisa conectar e soldar os componentes, mas pense na combinação deles para que o dispositivo funcione de maneira confiável por um longo período de tempo e sem falhas. De fato, essa é uma tarefa de integração separada. E os riscos de integração são geralmente os mais altos. Afinal, uma coisa é quando o pacote de software é executado no seu laptop, no SO e com suas limitações, e outra quando é transferido para o Raspberry Pi, em outro SO, em que o processador é muito mais fraco e tem menos memória.

Obviamente, se o produto for colocado em série, ele não será mais implementado no Raspberry Pi. O pedaço de ferro é fraco, seu poder não é suficiente para processar o fluxo de vídeo em resolução total e reconhecer o rosto; portanto, com esse material cheio de hardware, você precisa fazer truques.

Além disso, implementamos o modo noturno, para que o sistema possa acordar o motorista no escuro, quando as pessoas costumam adormecer. Ou seja, eu tive que ensinar ao computador como lidar com o vídeo de uma câmera infravermelha. Aqui não fomos pioneiros, um problema semelhante também é resolvido em sistemas domésticos inteligentes. Para determinar a fadiga do motorista, você não precisa saber detalhes sobre a aparência dele: cor do cabelo, olhos, tom de pele. Só precisamos determinar claramente a posição das mãos e pontos-chave no rosto. Curiosamente, acabou sendo ainda mais fácil trabalhar com os olhos no modo infravermelho do que no normal. Se você já viu clipes filmados com câmeras automáticas com animais em estado selvagem, sabe que, com um bom ângulo, seus olhos brilham como laser.


Esse efeito acabou sendo muito útil para nós: é mais fácil determinar o fato de olhos fechados. Obviamente, foi necessário um ajuste adicional de todos os algoritmos, porque o espectro da imagem é completamente diferente, mas, em geral, os olhos são reconhecidos com mais confiança.

Mas no modo infravermelho, o sistema reconhece situações piores quando o motorista fala ao telefone, pressionando a orelha no ombro. Também é uma situação perigosa, é proibido explicitamente as regras de trânsito para falar ao telefone enquanto você dirige.

Obviamente, como qualquer modelo de aprendizado de máquina, o nosso também não funciona com precisão absoluta. Mas você precisa entender bem do que exatamente dependem os erros de reconhecimento. Por exemplo, não testamos nosso sistema em drivers com aparência fora da Europa. Talvez neste caso, a proporção de reconhecimento ocular preciso e fadiga diminua. No entanto, durante os testes internos, o sistema funcionou exatamente em 8 a 9 dos 10 casos.

* * *

Hoje, existem muitos bons algoritmos no domínio público, e adotamos os já prontos, o que nos permitiu não apenas resolver o problema, mas também economizar muito tempo. Agora você pode encontrar rapidamente um modelo adequado para resolver uma tarefa exclusiva e refiná-lo rapidamente. Obviamente, isso requer habilidades e experiência na solução de problemas de visão computacional e rápida adaptação. Depois, leva apenas um ou dois dias para obter um protótipo em um laptop. E o trabalho adicional depende da tarefa, das capacidades disponíveis, armazenamento e outros fatores. Por exemplo, você pode refinar rapidamente nosso sistema para que ele desempenhe um papel diferente: digamos, como um dispositivo de segurança, o que garante que apenas pessoas específicas entrem na sala a uma determinada hora do dia. Ou seja, você pode criar rapidamente uma solução para uma variedade de tarefas relacionadas à visão computacional.

Source: https://habr.com/ru/post/pt458490/


All Articles