
Tout automobiliste sait que les conducteurs ont tendance à se fatiguer. Il arrive que vos yeux restent solidaires même lorsque vous rentrez chez vous du travail, et les camionneurs ont l'un des principaux problèmes professionnels: des
milliers d'accidents se produisent chaque année en raison de personnes endormies au volant. Le fait est que les camionneurs doivent maintenir constamment un équilibre entre le repos et la conduite sûre d'une part, et la fatigue avec des revenus plus élevés d'autre part. Grande tentation de dormir moins, mais plus rapidement pour livrer la marchandise et obtenir une nouvelle commande. Sans oublier le fait que les conducteurs ont leur propre vie personnelle et qu'ils ne dorment pas toujours sur un vol.
Pour rendre les routes plus sûres, nous avons lancé notre projet de surveillance de la condition des conducteurs: selon les exigences des clients, nous créons des solutions logicielles et matérielles qui peuvent suivre la santé du conducteur sur la route et empêcher l'étape de s'endormir afin qu'ils ne se «réveillent» pas dans le monde à venir.
Vigilant Eye
L'idée principale est d'utiliser la caméra pour suivre la fatigue et les réactions dangereuses des conducteurs. L'appareil recueille d'abord des statistiques sur le comportement d'un conducteur en conduisant. Et si, sur la base de ces statistiques, le système décide que la conductrice montre des signes de fatigue ou est sur le point de voir des rêves, elle le lui signalera. Si le conducteur a souvent commencé à hocher la tête ou à réagir à des événements comme une mouche endormie, le système en informe également le répartiteur.
À l'aide de l'analyse vidéo, nous surveillons la concentration du conducteur et s'il regarde la route. La caméra capture constamment le visage et les mains, et le système suit un certain nombre de points clés. Nous nous attendons à ce que les yeux du conducteur soient toujours ouverts, ses yeux dirigés vers le pare-brise ou les rétroviseurs extérieurs. Si les yeux se ferment, ou que la tête se penche en avant et que le menton tombe sur la poitrine, ou que le visage se détourne du pare-brise pendant une longue période, le système émet un signal.
Bien sûr, ce suivi et cette signalisation ne fonctionnent pas tout le temps, mais uniquement lorsque la voiture est en mouvement, un capteur GPS est utilisé pour cela. Nous avons également prévu la possibilité d'allumer et d'éteindre le système de force, car les situations sont différentes. Mais en même temps, nous comparons la durée de la machine et l'heure à laquelle le système est éteint. Si nécessaire, l'appareil peut informer le répartiteur que le conducteur voyage depuis longtemps avec la «commande» éteinte.
Implémentation
Le projet se compose de deux parties: matériel et logiciel.
Comment le système détermine-t-il que le conducteur s'endort maintenant? Utilisation de la bibliothèque OpenCV, basée sur l'apprentissage automatique. OpenCV vous permet de définir des points clés dans le flux vidéo: le menton, les mains, les yeux (y compris leur taille et leur largeur). Et sur la base de ces paramètres, le système détermine si le conducteur est fatigué ou non.
Le matériel se compose de la caméra Waveshare RPi (F) et du Raspberry Pi, assemblés dans un seul boîtier. La création de matériel est plus difficile qu'il n'y paraît à première vue: vous n'avez pas besoin de connecter et de souder les composants, mais réfléchissez à leur combinaison pour que l'appareil fonctionne de manière fiable pendant longtemps et sans échecs. En fait, il s'agit d'une tâche d'intégration distincte. Et les risques d'intégration sont généralement les plus élevés. Après tout, c'est une chose lorsque le progiciel s'exécute sur votre ordinateur portable, sous votre système d'exploitation et avec vos limites, et une autre chose lorsqu'il est transféré sur le Raspberry Pi, sous un autre système d'exploitation, où le processeur est beaucoup plus faible et moins de mémoire.
Bien sûr, si le produit est mis en série, il ne sera plus implémenté sur le Raspberry Pi. Le morceau de fer est faible, sa puissance n'est pas suffisante pour traiter le flux vidéo en pleine résolution et pour reconnaître le visage, donc avec un tel bourrage matériel, vous devez aller à des tours.
De plus, nous avons mis en place un mode nuit, afin que le système puisse réveiller le conducteur dans l'obscurité, lorsque les gens s'endorment souvent. Autrement dit, je devais enseigner à l'ordinateur comment gérer la vidéo d'une caméra infrarouge. Ici, nous n'étions pas des pionniers, un problème similaire est également résolu dans les systèmes de maison intelligente. Pour déterminer la fatigue du conducteur, vous n'avez pas besoin de connaître les détails de son apparence: couleur des cheveux, yeux, teint. Il suffit de déterminer clairement la position des mains et les points clés du visage. Curieusement, il s'est avéré encore plus facile de travailler avec les yeux en mode infrarouge qu'en temps normal. Si vous avez déjà vu des clips filmés avec des caméras automatiques avec des animaux sauvages, vous savez qu'avec un bon angle, leurs yeux brillent comme ceux du laser.
Cet effet s'est avéré très utile pour nous: il est plus facile de déterminer le fait d'avoir les yeux fermés. Bien sûr, un ajustement supplémentaire de tous les algorithmes était nécessaire, car le spectre de l'image est complètement différent, mais, en général, les yeux sont reconnus avec plus de confiance.
Mais en mode infrarouge, le système reconnaît les situations pires lorsque le conducteur parle au téléphone, en appuyant son oreille contre son épaule. Il s'agit également d'une situation dangereuse, les règles de circulation sont explicitement interdites de parler au téléphone pendant la conduite.
Bien sûr, comme tout modèle d'apprentissage automatique, le nôtre ne fonctionne pas avec une précision absolue. Mais vous devez bien comprendre de quoi dépendent exactement les erreurs de reconnaissance. Par exemple, nous n'avons pas testé notre système sur des pilotes d'aspect non européen. Dans ce cas, la proportion de reconnaissance oculaire précise et de fatigue diminuera peut-être. Cependant, lors des tests internes, le système a fonctionné exactement dans 8 à 9 cas sur 10.
* * *
Aujourd'hui, il y a beaucoup de bons algorithmes dans le domaine public, et nous en avons pris des prêts à l'emploi, ce qui nous a permis non seulement de résoudre le problème, mais aussi de gagner beaucoup de temps. Vous pouvez maintenant trouver rapidement un modèle adapté à la résolution d'une tâche unique et l'affiner rapidement. Bien sûr, cela nécessite des compétences et de l'expérience dans la résolution de problèmes de vision par ordinateur et une adaptation rapide. Ensuite, il ne faut qu'un ou deux jours pour obtenir un prototype sur un ordinateur portable. Et les travaux ultérieurs dépendent de la tâche, des capacités disponibles, du stockage et d'autres facteurs. Par exemple, vous pouvez affiner rapidement notre système afin qu'il joue un rôle différent: disons, en tant que dispositif de sécurité, qui garantit que seules des personnes spécifiques entrent dans la pièce à une certaine heure de la journée. Autrement dit, vous pouvez rapidement créer une solution pour une variété de tâches liées à la vision par ordinateur.