QR kodu izlemeye genel bakış
QR kodu örneğinin GitHub deposuna erişmek için:
Windows Karma Gerçeklik ve HoloLens mikrofonlu kulaklıklarla uygulamanız, mikrofonlu kulaklığın etrafındaki ortamda QR kodlarını algılayabilir ve her kodun gerçek dünyadaki konumunda bir koordinat sistemi oluşturabilir. Paylaşılan bir deneyim oluşturmak için hologramları birden çok cihazda aynı konumda da işleyebilirsiniz. Cihazınızın web kamerasını etkinleştirdikten sonra projelerinizin en son sürümlerinde QR kodlarını tanırsınız. Üretime giren en iyi sonuçlar için en iyi yöntemler bölümünü gözden geçirmenizi öneririz.
Bu makalede aşağıdakileri hakkında bilgi edineceksiniz:
- QR kodu izleme için desteklenen cihazlar
- Desteklenen QR kodu sürümleri
- QR kodu algılama için en iyi yöntemler
- Sorun Giderme ve SSS
- Hangi özellikler gereklidir?
- QR Kod İzleme Özelliğinin HoloLens 2 cihazlarında çalışmasını Nasıl yaparım??
- API eklenti dosyalarını nerede bulabilirim?
- QR kodlarını algılamak için ARMarkerManager kullanmak için bir Unity uygulaması hazırlamak Nasıl yaparım??
- QR kodlarını algılamak için Unity olmayan bir uygulamayı OpenXR kullanacak şekilde hazırlamak Nasıl yaparım??
- Microsoft.MixedReality.QR.QRCodeWatcher kullanmak için bir UWP hazırlamak Nasıl yaparım??
- Unity'yi Microsoft.MixedReality.QR.QRCodeWatcher ile hazırlamak Nasıl yaparım??
- QR kodlarını nasıl oluşturabilirim?
- QR kodu izleme genel olarak işe yaramazsa ne yapmalıyım?
- Doğruluk nedir?
- Qr kodunu algılamak için qr koduna ne kadar yaklaşmam gerekiyor?
- Logolu QR kodlarını neden okuyamıyorum?
- QR kodları algılandığından neden veri alamıyorum?
- QR kodları 'alan' düzeyinde mi yoksa uygulama düzeyinde mi kaydedilir?
- Bu, temel alınan platformla nasıl çalışır? Nerede kalıcı oluyorlar?
- "
Microsoft.MixedReality.QR.pdb
Bulunamadı" hata iletisini alırken Visual Studio'da uygulamada hata ayıklaması Nasıl yaparım??
Cihaz desteği
Ürün | HoloLens 1. Nesil | HoloLens 2 | Çevreleyici kulaklıklar |
---|---|---|---|
OpenXR | ✔️ (OpenXR Çalışma Zamanı sürüm 113 ve OpenXR XR_MSFT_scene_marker uzantısı ile) | ||
unity eklenti Karma Gerçeklik | ✔️ (OpenXR Çalışma Zamanı sürüm 113 ve Karma Gerçeklik Unity Eklentisi ARMarkerManager ile) |
||
Eski QR SDK'sı | ✔️ | ✔️ | ✔️ |
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Eski QR kodu SDK'sını kullanarak masaüstü bilgisayarlardaki çevreleyici Windows Karma Gerçeklik kulaklıklarla QR kodu izleme, Windows 10 Sürüm 2004 ve üzeri sürümlerde desteklenir. Özelliğin Microsoft.MixedReality.QRCodeWatcher.IsSupported()
geçerli cihazda desteklenip desteklenmediğini belirlemek için API'yi kullanın.
Desteklenen QR kodu sürümleri
Aşağıdaki tabloda desteklenen ve desteklenmeyen QR kodu sürümleri listelenmektedir:
QR kodu sürümleri | |
---|---|
Desteklenen: |
|
Desteklenmiyor: |
|
QR kodu algılama için en iyi yöntemler
QR kodları çevresindeki sessiz bölgeler
Doğru okunabilmek için QR kodları, kodun tüm kenarlarında bir kenar boşluğu gerektirir. Bu kenar boşluğu yazdırılmış içerik içermemelidir ve dört modül (kodda tek bir siyah kare) genişliğinde olmalıdır.
Resmi QR kodu belgeleri sessiz bölgeler hakkında daha fazla bilgi içerir.
Aydınlatma ve arka plan
QR kodu algılama kalitesi, farklı aydınlatma ve arka plana duyarlıdır.
Normal aydınlatma koşullarında, daha iyi performans için siyah/beyaz modüller için yeterli karşıtlık sağlayın.
Parlak aydınlatma veya koyu arka plan ile aşırı aydınlatma koşullarında, QR kodu algılama hızını geliştirebilecek karşıtlığı azaltmayı ve ayarlamayı deneyebilirsiniz. QR kodundaki beyaz arka plan 255'ten aşağı doğru azaltılabilir.
QR kodlarının boyutu
Windows Karma Gerçeklik ve HoloLens cihazları, 5 cm'den küçük kenarları olan QR kodlarıyla çalışmaz.
Kenarları 5 cm ile 10 cm arasında değişen QR kodları için, cihazın kodu algılamak için oldukça yakın olması gerekir. Kodu algılamak ortalamadan uzun sürebilir.
Kodların tam olarak algılanma süresi yalnızca QR kodlarının boyutuna değil, koddan ne kadar uzakta olduğunuz da bağlıdır. Koda yaklaşmak, boyutla ilgili sorunların uzaklaştırılmasına yardımcı olur.
QR kodundan uzaklık ve açısal konum
İzleme kameraları yalnızca belirli bir ayrıntı düzeyini algılayabilir. Küçük kodlar için (yanlar boyunca 10 cm'den az), oldukça yakın olmanız gerekir. 10 cm ile 25 cm arasında değişen sürüm 1 QR kodu için minimum algılama mesafesi 0,15 metre ile 0,5 metre arasındadır.
Boyut algılama uzaklığı doğrusal olarak artar, ancak desteklenen QR sürümüne veya modül boyutuna da bağlıdır. Sürüm ne kadar yüksek olursa modüller o kadar küçük olur ve bu modüller yalnızca daha yakın bir konumdan algılanabilir. Algılama mesafesinin daha uzun olmasını istiyorsanız mikro QR kodlarını da deneyebilirsiniz. QR algılama, kodu algılamak için uygun çözünürlüğe sahip olduğumuzdan emin olmak için += 45 derecelik bir açı aralığıyla çalışır.
Diğer algılama konuları:
- Kavisli yüzeylerde QR kodları desteklenmez.
- Düzlem içi yönlendirme desteklenir. Daha iyi algılama için düzlem dışında = +-45 düz görünümlü olmalıdır <.
- QR kodunun fiziksel boyutu en az 2/3 piksellik modüllere sahip olmalıdır. Not: QR kodlarının daha yüksek sürümlerinde daha küçük modüller bulunur.
En iyi algılama için QR kodunun uzaklığı ve boyutu arasındaki denge ilişkisi için aşağıdaki grafiğe bakın:

Önemli
Her zaman yeterli karşıtlık ve uygun bir kenarlığınız olduğundan emin olun.
QR kodu verilerini yönetme
Windows Karma Gerçeklik ve HoloLens cihazları QR kodlarını sürücüdeki sistem düzeyinde algılar. Cihaz yeniden başlatıldığında veya sürücü yeniden başlatıldığında algılanan QR kodları geçmişi temizlenir. Yeniden algılanan QR kodları yeni nesneler olarak değerlendirilir.
Uygulamanızı, uygulama içinde belirtilebilen belirli bir zaman damgasından daha eski QR kodlarını yoksayacak şekilde yapılandırmanızı öneririz. QR Kod API'si, son algılamanın gerçekleştiği saati belirtir. Çoğu uygulama geliştiricisi, qr kodunun algılandığı zamanı belirlemek için uygulamanın başlatıldığı sistem saatini kullanır.
QR kodu verileri uygulamaya özgü değildir. Uygulama başlatıldıktan sonra sağlanan QR kodlarının listesi sağlanacaktır. Uygulama geliştiricisi, hangi QR kodlarının bu uygulamayla ilgili olduğunu belirler.
Bir alana QR kodu yerleştirme
QR kodlarının nereye ve nasıl yerleştirileceğine ilişkin öneriler için HoloLens için ortamla ilgili dikkat edilmesi gerekenler konusuna bakın.
Sorun giderme ve SSS
Hangi özellikler gereklidir?
HoloLens uygulamanızda QR kodu izlemeyi etkinleştirmek için web kamerası özelliğini uygulamanın bildirimine ekleyin. Unity'de geliştiriyorsanız, bunu oynatıcı ayarlarından yapılandırabilirsiniz.
Ayrıca, kullanıcılardan uygulama web kamerası izinlerinizi vermeleri için izinler iletişim kutusu tarafından istenebilir. Bu, bir uygulamanın ömrü boyunca yalnızca bir kez gerçekleşir. Uygulamanın açıkça web kamerası erişimi istemesi gibi durumlarda iletişim kutusu yeniden görüntülenmez.
WebCam özelliğine sahip Unity uygulamaları için, bir sahnede etkinleştirmek ARMarkerManager
web kamerası izin iletişim kutusunun görüntülenmesini tetikleyebilir.
Yerel OpenXR C++ uygulamaları için, içeren XR_SCENE_COMPUTE_FEATURE_MARKER_MSFT
xrComputeNewSceneMSFT'ye XrNewSceneComputeInfoMSFT::requestedFeatures
yapılan ilk çağrılar izinler iletişim kutusunu tetikleyebilir.
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Bildiriminize web kamerası özelliğinin eklenmesi gerekir (Unity Özellikleri'nde onay kutusu). Standart bir UWP projesi olarak oluşturuyorsanız çözüm projesindeki package.appxmanifest dosyasında da bulunur.
Eski QR kodu SDK'sında aşağıdaki yöntemi çağırarak erişim isteyin:
#if WINDOWS_UWP
async QRCodeWatcher.RequestAccessAsync();
#endif
Erişim durumu olmalıdır (status == QRCodeWatcherAccessStatus::Allowed)
.
Erişim reddedilirse, özelliğini başlattığınızda QRTracking
özellik erişim reddedildi değerini döndürür.
Nesneyi oluşturmadan QRCodeWatcher
önce bu API çağrılmalıdır.
Projeyi Unity'den çalıştırıyorsanız, ui iş parçacığından da çağırdığınızdan emin olmanız gerekir. Aksi takdirde, API her zaman reddedildi döndürür. Daha fazla bilgi için Unity El Kitabı'ndaki AppCallbacks sınıfına bakın.
Unity için projenizi ayarlama hakkında daha fazla bilgi için bkz. Windows Karma Gerçeklik için Unity'yi yapılandırma.
QR Kod İzleme Özelliğinin HoloLens 2 cihazlarında çalışmasını Nasıl yaparım??
HOLOLens 2'de QR izleme otomatiktir ve uygulamanıza "web kamerası" özelliğinin eklenmesi gerekir.
API eklenti dosyalarını nerede bulabilirim?
Uygulamalar QR Kodlarını algılamak için HoloLen'in OpenXR Çalışma Zamanı'nı kullanmalıdır. Windows Karma Gerçeklik için OpenXR (113.2403.5001 veya üzeri), HoloLens cihazlarında QR kodu desteği sağlar.
Unity uygulamaları için QR kodu desteği, Karma Gerçeklik OpenXR Eklentisi ile sağlanan bileşen aracılığıyla ARMarkerManager
sağlanır.
Unity olmayan uygulamalarda QR kodu desteği için OpenXR XR_MSFT_scene_marker uzantısını kullanın.
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Gerekli tüm dosya ve belgeler burada NuGet'te bulunabilir:
QR kodlarını algılamak için ARMarkerManager kullanmak için bir Unity uygulaması hazırlamak Nasıl yaparım??
Unity uygulamalarında bileşen, ARMarkerManager
fiziksel bir ortamda QR kodu algılamanın bir sahnede nasıl temsil edilmesiyle ilgilenmek için kullanılır. ARMarkerManager
Sağ -lar:
Algılanan bir QR kodu yöneticiye eklendiğinde, güncelleştirildiğinde veya kaldırıldığında aboneleri bilgilendirmeye yönelik olaylar.
Algılama altındaki QR kodları için izlenebilir öğeler koleksiyonu
ARMarker
.İzlenebilir kimlikle belirtilen QR kodları için veri döndüren yöntemler.
Uygulamanızda kullanmak ARMarkerManager
için Karma Gerçeklik OpenXR Eklenti paketini içeri aktarmanız gerekir.
Paketi içeri aktarmak için:
Aracın nasıl kullanılacağına ilişkin ayrıntılı yönergeler için bkz. Karma Gerçeklik Özellik Aracı'na Hoş Geldiniz.
Sonraki genel yordam:
- Unity projenizde WebCam özelliklerini etkinleştirin.
- Bir prefab oluşturun ve bileşeni gösterildiği gibi ekleyin
ARMarker
:
- Çalışırken QR kodlarının algılanmasını istediğiniz bir sahneyi açın.
- Sahnenizdeki bir GameObject'e ekleyin
ARMarkerManager
ve Marker Prefab'ı oluşturduğunuz prefab olarak ayarlayın.
Daha ayrıntılı yönergeler ve bilgiler için Unity'de QR kodları bölümüne gidin.
Unity uygulamanızda QR kodlarını kullanma örneği için GitHub'daki QR kodu örnek senaryosuna bakın.
QR kodlarını algılamak için Unity olmayan bir uygulamayı OpenXR kullanacak şekilde hazırlamak Nasıl yaparım??
OpenXR'de QR kodu algılama, XR_MSFT_scene_marker uzantısı aracılığıyla sağlanır. Bu uzantı birden çok QR kodunun izlenmesini sağlar ve algılanan QR kodları için boyut, konum, son algılama zaman damgası, UUID ve arabelleğe alınmış QR kodu verileri sağlayabilir.
QR kodu desteğini etkinleştirmek için hem XR_MSFT_scene_marker hem de XR_MSFT_scene_understanding uzantıları etkinleştirilmelidir.
Ayrıntılı adım adım bilgi için OpenXR 1.0 belirtimindeki XR_MSFT_scene_marker uzantısına genel bakış bölümüne bakın.
QR kodlarını kullanma örneği için GitHub'daki SceneUnderstandingUwp örneğindeki Scene_QRCode.cpp bakın.
Microsoft.MixedReality.QR.QRCodeWatcher kullanmak için bir UWP hazırlamak Nasıl yaparım??
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Gerekli dosyaların paketini açmak için NuGet paketini kullanın.
Projenizde öğesine
Microsoft.MixedReality.QR.winmd
bir başvuru ekleyin ve API'yi kullanmaya başlayın.Eklentilerin doğru mimari sürümlerini ekleyin ve derlemede uygun şekilde kullanın.
Unity'yi Microsoft.MixedReality.QR.QRCodeWatcher ile hazırlamak Nasıl yaparım??
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Unity için NuGet kullanın ve yukarıdaki NuGet paketinin üzerine gelin.
QR kodlarını nasıl oluşturabilirim?
Herhangi bir QR kod oluşturucuya göz atın.
QR kodu izleme genel olarak işe yaramazsa ne yapmalıyım?
QR Kodu sürümü desteklenen bir sürüm mü? Sürüm 40 gibi yüksek yoğunluklu sürümleri desteklemiyoruz. Sürüm 10'un üzerinde hiçbir şey garanti değildir; 20'nin üzerindeki sürümler desteklenmez.
QR koduna yeterince yakın mısınız? QR kodundan uzaklığı ve açısal konumu görün.
Işık nasıl? QR kodu koyu çevre arka planında olduğunda algılamanın zorlaştığı bilinen bir sorun vardır. Qr kodu yüksek karşıtlık nedeniyle kameraya temizlenmiş olarak görünür. Daha fazla bilgi için bkz . aydınlatma ve arka plan.
Doğruluk nedir?
Tek bir çerçevede algılandığında, boyutun gerçek boyuttan en fazla %1'lik bir hataya sahip olması beklenir. Örneğin, ölçülen boyutta 10 cm'lik bir kod +/- 1 mm'ye kadar kapalı olabilir. Sürekli algılama altında, bir kodun konumu +/- 2,5 mm'ye kadar kayabilir. Algılama aralığının dışına taşındıktan sonra, önceki bir algılamanın konumu harita hatasının merhametine bağlı olur.
Qr kodunu algılamak için qr koduna ne kadar yaklaşmam gerekiyor?
Mesafe açıkça QR kodunun boyutuna ve hangi sürüm olduğuna bağlıdır. Daha fazla bilgi için QR kodundan uzaklık ve açısal konum konularını inceleyin.
HoloLens 2'de, 5 cm kenardan 25 cm'ye kadar değişen sürüm 1 QR kodu için minimum algılama mesafesi 0,25 metre ile 0,5 metre arasında değişir. Bunların tespit edilebileceği en uzak alan, en küçük kod için yaklaşık 0,5 m'den büyük için iki metreye kadar çıkar.
Windows Karma Gerçeklik'da, boyutlar için bu mesafeler yarıya indirilir.
Daha büyük kodlar için, tahmin--boyut algılama uzaklığı doğrusal olarak artar. Daha küçük kodlar için algılama gerçekleşmez; algılayabileceğiniz en küçük boyut 4-5 cm'dir.
Logolu QR kodlarını neden okuyamıyorum?
Logolu QR kodları desteklenmez.
QR kodları algılandığından neden veri alamıyorum?
Platform QR kodunun kodunu çözemezse veri olmaz. Akışı kullanabilir ve açık kaynak kodu kullanarak verileri yorumlayabilirsiniz.
Yapı ekleme gibi bazı özellikler desteklenmez.
Daha fazla bilgi için hangi QR kodu sürümlerinin desteklendiğine bakın.
QR kodları 'alan' düzeyinde mi yoksa uygulama düzeyinde mi kaydedilir?
QR kodları, sürücü oturumunda veya HoloLens'teki önyükleme oturumunda sistem düzeyinde kaydedilir. Daha fazla bilgi için bkz . QR kodu verilerini yönetme.
Bu, temel alınan platformla nasıl çalışır? Nerede kalıcı oluyorlar?
Algılanan QR kodları sürücü tarafından bellekte kalıcı hale gelir.
"Microsoft.MixedReality.QR.pdb
Bulunamadı" hata iletisini alırken Visual Studio'da uygulamada hata ayıklaması Nasıl yaparım??
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
simge yüklemesi Microsoft.MixedReality.QR.dll
, dahil edilen modüller listesinde belirtilmediğinden atlandı.
Yeniden oluşturmak için
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Bu davranışı yeniden oluşturmak için adımları izleyin:
- Microsoft.MixedReality.QR (NuGet) ve MRTK'yi yükleme
- Hata ayıklamayı deneyin
Microsoft.MixedReality.QR.dll ile uygulamada hata ayıklayabilmeniz gerekir, ancak DLL bulunamadı:

Önerilen çözüm
Not
Aşağıdakiler eski QR kodu API'lerine özgüdür. Bunun yerine QR kodları için OpenXR uygulamasını kullanmanızı öneririz.
Bir sonraki sürüme sembol ekleme üzerinde çalışıyoruz. Bu arada, Visual Studio seçeneklerinde DLL'yi dışlayarak uygulamanızda hata ayıklamayı yine de yapabilmeniz gerekir:

Daha fazla bilgi için bkz . Visual Studio ayarlarını yapılandırma.
Oturumda kaç QR kodunun taranabileceğinin sınırı var mı?
Sürücüde sistem düzeyinde 10 dakika içinde kaydedilen 100 QR kodu sınırı vardır.
QR kodu düzeltme işlemi değişti mi?
QR kodu düzeltme işlemi 20H2'den sonra, poz düzeltmeden boyut düzeltmeye kadar değişti. Davranışı önceki düzeltme işlemine döndürmek için, yeni QR kodu veri pozu verisi 5 saniye içinde veya daha önce algılanan çerçevenin 10 cm'sinde algılanırsa bir düzeltme algoritması uygulanır. Dönüşüm verileri, önceki çerçevenin %10'unu içeren geçerli çerçevenin %90'ının ağırlıklı oranıyla karıştırılır.