Vue d’ensemble du suivi des codes QR

Pour accéder au dépôt GitHub pour l’exemple de code QR :

Avec HoloLens 2 et casques immersifs, vous pouvez détecter les codes QR dans l’environnement autour du casque, en établissant un système de coordonnées à l’emplacement réel de chaque code. Vous pouvez également afficher des hologrammes au même emplacement sur plusieurs appareils pour créer une expérience partagée. Une fois que vous avez activé la webcam de votre appareil, vous reconnaîtrez les codes QR dans les dernières versions de vos projets. Pour obtenir les meilleurs résultats en production, nous vous recommandons de passer en revue la section meilleures pratiques .

Dans cet article, vous allez découvrir les points suivants :

Prise en charge des appareils

Fonctionnalité HoloLens 1ère génération HoloLens 2 Casques immersifs
Détection de code QR ✔️ ✔️

Notes

Le suivi du code QR avec des casques Windows Mixed Reality immersifs sur des PC de bureau est pris en charge sur Windows 10 version 2004 et ultérieure. Utilisez l’API Microsoft.MixedReality.QRCodeWatcher.IsSupported() pour déterminer si la fonctionnalité est prise en charge sur l’appareil actuel.

Versions de code QR prises en charge

Le tableau suivant répertorie les versions de code QR prises en charge et non prises en charge :

  Versions du code QR
Prises en charge :
  • Versions QR 1 - 10
  • Micro QR codes M1-M4
  • Tous les encodages
Non pris en charge :
  • Codes QR 10 - 20 (ceux-ci peuvent fonctionner, mais ne sont pas garantis)
  • Codes QR 20+
  • Modules modifiés, par exemple : modules circulaires, reflets, inversés (noir/blanc).
  • Logos
  • Ajouts structurés

    Meilleures pratiques pour la détection de code QR

    Zones calmes autour des codes QR

    Pour être lu correctement, les codes QR nécessitent une marge autour de tous les côtés du code. Cette marge ne doit contenir aucun contenu imprimé et doit être de quatre modules (un seul carré noir dans le code) large.

    La spécification QR contient plus d’informations sur les zones silencieuses.

    Éclairage et toile de fond

    La qualité de détection de code QR est susceptible de varier en éclairage et en arrière-plan.

    • Dans des conditions d’éclairage normales, fournissez suffisamment de contraste pour les modules noirs/blancs pour de meilleures performances.

    • Dans des conditions d’éclairage extrêmes avec un éclairage lumineux ou un arrière-plan sombre, vous pouvez essayer de réduire et d’ajuster le contraste qui pourrait améliorer le taux de détection de code QR. L’arrière-plan blanc dans le code QR peut être réduit de 255 vers le bas.

    Taille des codes QR

    Windows Mixed Reality appareils ne fonctionnent pas avec des codes QR avec des côtés inférieurs à 5 cm.

    Pour les codes QR avec des côtés allant de 5 cm à 10 cm, l’appareil doit être assez proche pour détecter le code. La détection du code peut prendre plus de temps.

    Le temps exact de détection des codes dépend non seulement de la taille des codes QR, mais de la distance entre le code et le code. Le fait de se rapprocher du code permet de compenser les problèmes de taille.

    Distance et position angulaire du code QR

    Les caméras de suivi ne peuvent détecter qu’un certain niveau de détail. Pour les petits codes (moins de 10 cm le long des côtés), vous devez être assez proche. Pour un code QR version 1 variant de 10 cm à 25 cm de taille, la distance de détection minimale est comprise entre 0,15 mètres et 0,5 mètre.

    La distance de détection pour la taille augmente linéairement, mais dépend également de la version QR ou de la taille de module prise en charge . Plus la version est élevée, plus les modules sont petits, ce qui ne peut être détecté qu’à partir d’une position plus proche. Vous pouvez également essayer des codes micro-QR si vous souhaitez que la distance de détection soit plus longue. La détection QR fonctionne avec une plage d’angles += 45 deg pour nous assurer que nous avons une résolution appropriée pour détecter le code.

    Autres considérations relatives à la détection :

    • Les codes QR sur les surfaces courbes ne sont pas pris en charge.
    • L’orientation dans le plan est prise en charge. Hors plan doit être <= +-45 regardant droit sur pour avoir une meilleure détection.
    • La taille physique du code QR doit avoir des modules d’au moins 2/3 pixels. Remarque : les versions supérieures des codes QR auront des modules plus petits.

    Pour connaître la relation d’compromis entre la distance et la taille du code QR pour une détection optimale, consultez le graphique suivant :

    QR code size distance chart

    Important

    Veillez toujours à disposer d’un contraste suffisant et d’une bordure appropriée.

    Gestion des données de code QR

    Windows Mixed Reality appareils détectent les codes QR au niveau du système dans le pilote. Lorsque l’appareil est redémarré ou que le pilote redémarre, l’historique des codes QR détectés est effacé. Les codes QR détectés sont traités comme de nouveaux objets.

    Nous vous recommandons de configurer votre application pour ignorer les codes QR antérieurs à un horodatage spécifique, qui peut être spécifié dans l’application. L’API code QR spécifie l’heure à laquelle la dernière détection s’est produite. La plupart des développeurs d’applications utilisent l’heure système à laquelle l’application est lancée pour déterminer le moment où un code QR est détecté.

    Les données de code QR ne sont pas spécifiques à l’application. Lors du lancement de l’application, il y aura une liste des codes QR disponibles fournis. Le développeur de l’application détermine quels codes QR sont pertinents pour cette application.

    Placement de code QR dans un espace

    Pour obtenir des recommandations sur l’emplacement et la façon de placer des codes QR, reportez-vous aux considérations relatives à l’environnement pour HoloLens.

    Dépannage et FAQ

    Quelles sont les fonctionnalités nécessaires ?

    Vous aurez besoin de la fonctionnalité de webcam ajoutée à votre manifeste (case à cocher dans Fonctionnalités Unity). Si vous créez en tant que projet UWP standard, il est également dans le package.appxmanifest projet de solution.

    Demandez l’accès en appelant la fonction suivante :

    #if WINDOWS_UWP
    
    async QRCodeWatcher.RequestAccessAsync();
    
    #endif
    

    L’état d’accès doit être (status == QRCodeWatcherAccessStatus::Allowed).

    Si l’accès est refusé, la fonctionnalité retourne l’accès refusé lorsque vous démarrez le QRTracking.

    Cette API doit être appelée avant de construire l’objet QRCodeWatcher .

    Si vous exécutez le projet à partir d’Unity, vous devez également vous assurer que vous appelez à partir du thread d’interface utilisateur. Sinon, l’API retourne toujours refusé. Pour plus d’informations, consultez la classe AppCallbacks dans le manuel Unity.

    Pour plus d’informations sur la configuration de votre projet pour Unity, consultez configurer Unity pour Windows Mixed Reality.

    Comment faire faire fonctionner la fonctionnalité de suivi de code QR sur les appareils HoloLens 2 ?

    Le suivi QR est automatique sur HoloLens 2, et vous aurez besoin de la fonctionnalité « webcam » ajoutée à votre application.

    Où puis-je trouver les fichiers de plug-in d’API ?

    Tous les fichiers et la documentation requis sont disponibles ici.

    https://www.nuget.org/packages/Microsoft.MixedReality.QR

    Comment faire préparer un UWP pour utiliser Microsoft.MixedReality.QR.QRCodeWatcher ?

    • Utilisez le pack NuGet pour décompresser les fichiers requis.

    • Ajoutez une référence au Microsoft.MixedReality.QR.winmd projet et commencez à utiliser l’API.

    • Ajoutez les versions d’architecture correctes des plug-ins et utilisez-les en conséquence dans la build.

    Comment faire préparer Unity avec Microsoft.MixedReality.QRCodeWatcher ?

    Utilisez NuGet pour Unity et pointez sur le pack NuGet ci-dessus.

    Comment puis-je créer des codes QR ?

    Consultez n’importe quel générateur de code QR, voici un exemple.

    Si le suivi du code QR ne fonctionne pas en général, que dois-je faire ?

    • La version du code QR est-elle prise en charge ? Nous ne prenons pas en charge les versions à haute densité comme la version 40. Rien au-dessus de la version 10 n’est garanti ; les versions antérieures à 20 ne sont pas prises en charge.
    • Êtes-vous assez proche du code QR ? Consultez la distance et la position angular du code QR.
    • Comment l’éclairage est-il ? Il y a un problème connu où la détection devient difficile lorsque le code QR se trouve sur un arrière-plan environnemental foncé- le code QR apparaît lavé à la caméra en raison d’un contraste élevé. Pour plus d’informations, consultez éclairage et arrière-plan.

    Quelle est la précision ?

    Lorsqu’elle est détectée dans un cadre unique, la taille devrait avoir au maximum une erreur de 1 % à partir de la taille réelle. Par exemple, un code de 10 cm peut être jusqu’à +/- 1 mm de taille mesurée. Sous détection continue, la position d’un code peut dériver jusqu’à +/- 2,5 mm. Une fois que vous avez quitté la plage de détection, la position d’une détection précédente est jusqu’à la miséricorde de l’erreur de carte.

    Comment fermer le code QR pour le détecter ?

    La distance dépend évidemment de la taille du code QR, et aussi de la version qu’il est. Pour plus d’informations, consultez la distance et la position angular du code QR.

    • Sur HoloLens 2, pour un code QR version 1 variant de 5 cm aux côtés de 25 cm, la distance de détection minimale varie de 0,25 mètres à 0,5 mètres. Les plus éloignés peuvent être détectés d’environ 0,5 m pour le plus petit code à deux mètres pour le plus grand.
    • Sur Windows Mixed Reality, ces distances pour les tailles sont réduites en moitié.
    • Pour les codes plus volumineux, la distance de détection pour la taille augmente linéairement. Pour tout code plus petit, la détection ne se produit pas simplement--4-5 cm est la plus petite que nous pouvons détecter.

    Pourquoi ne puis-je pas lire les codes QR avec des logos ?

    Actuellement, nous ne prenons pas en charge les codes QR avec des logos.

    Les codes QR sont détectés. Pourquoi ne reçois-je pas de données ?

    • Si la plateforme ne peut pas décoder le code QR, il n’y aura pas de données. Vous pouvez utiliser le flux et interpréter les données à l’aide du code open source.
    • Certaines fonctionnalités, telles que l’ajout de structure, ne sont pas prises en charge.

    Pour plus d’informations, consultez les versions de code QR prises en charge ?.

    Les codes QR sont-ils enregistrés au niveau « espace » ou au niveau de l’application ?

    Les codes QR sont enregistrés au niveau du système dans la session du pilote ou la session de démarrage sur HoloLens. Pour plus d’informations, consultez la gestion des données de code QR.

    Comment cela fonctionne-t-il avec la plateforme sous-jacente ? Où sont-ils persistants ?

    Les codes QR détectés sont conservés en mémoire par le pilote.

    Comment faire déboguer l’application dans Visual Studio quand je reçois le message d’erreur «Microsoft.MixedReality.QR.pdb introuvable » ?

    Le chargement de symboles pour Microsoft.MixedReality.QR.dll a été ignoré, car il n’est pas spécifié dans la liste des modules inclus.

    Pour reproduire

    Suivez les étapes pour reproduire ce comportement :

    1. Installer Microsoft.MixedReality.QR (NuGet) et MRTK
    2. Essayez de déboguer

    Vous devez pouvoir déboguer l’application avec Microsoft.MixedReality.QR.dll, mais la DLL n’est pas trouvée :

    Microsoft.MixedReality.QR.pdb not found error message

    Nous travaillons sur l’ajout de symboles à la prochaine version. En attendant, vous devez toujours être en mesure de déboguer votre application en excluant la DLL dans les options Visual Studio :

    excluding the DLL in Visual Studio options

    Pour plus d’informations, consultez Configuration des paramètres de Visual Studio.

    Voir aussi