Akıllı Çıkarım
Gürültülü OCR çıktısından, doğrulamaya uyan parçaları kayan pencere ile otomatik ayıklayın.
Kamera bir etikete, kutuya ya da ekrana doğrultulduğunda ML Kit genellikle aradığınız değerden çok daha fazlasını okur: başlıklar, birim adları, açıklama satırları, hatta arka plandaki başka yazılar. Aradığınız tek şey ortadaki bir seri numarası ya da bir miktar olsa bile, ham OCR çıktısı bu gürültüyle dolu gelir. Akıllı Çıkarım, bu kalabalık metni alıp yalnızca doğrulama kurallarınıza uyan parçaları otomatik olarak ayıklar; böylece doğru değeri elle ayıklamak ya da yeniden tarama yapmak zorunda kalmazsınız.
Bu sayfa, Akıllı Çıkarım’ın gürültülü metni nasıl parçalara ayırdığını, kayan pencere yaklaşımıyla eşleşmeleri nasıl bulduğunu, çakışan sonuçları nasıl engellediğini ve özelliği açmak için hangi koşulların gerektiğini açıklar.
Çözdüğü sorun
OCR motoru bir bölgeyi okuduğunda sonucu tek bir metin bloğu olarak döndürür. Hedef değeriniz bu blok içinde gizlidir, ama yanında istemediğiniz başka kelimeler de bulunur. Akıllı Çıkarım olmadan iki seçeneğiniz vardır: ya vizördeki dikdörtgeni o kadar daraltırsınız ki yalnızca tek bir değer kalır (bu da hizalama açısından zahmetlidir), ya da fazlalığı elle temizlersiniz.
Akıllı Çıkarım üçüncü ve çok daha pratik bir yol sunar: tüm bölgeyi olduğu gibi tarayın, çıkarımın doğrulama kurallarınıza uyan parçaları kendiliğinden bulup listenize eklemesine izin verin.
Nasıl çalışır?
Akıllı Çıkarım, ham OCR metni üzerinde sırayla şu adımları uygular:
- Belirteçleştirme (tokenization) — metin, boşluklara göre belirteçlere (token) bölünür. Her kelime, sayı ya da bitişik karakter grubu ayrı bir belirteç olur.
- Kayan pencere (sliding window) — çıkarım, komşu belirteçlerden oluşan pencereleri büyükten küçüğe doğru dener. Önce en uzun olası birleşimleri (daha çok belirteci kapsayan pencereler) değerlendirir, sonra giderek daralır. Böylece bütün hâlde anlamlı olan uzun bir değer (örneğin boşluk içeren bir kod), tek tek parçalara bölünmeden önce yakalanır.
- Doğrulama — her aday pencere, etkin doğrulama kurallarınızdan geçirilir. Yalnızca tüm etkin kurallara uyan pencereler kabul edilir.
- Çakışma engelleme — bir pencere kabul edildiğinde, kapsadığı belirteçler işaretlenir ve daha küçük pencereler tarafından yeniden kullanılamaz. Böylece aynı metin parçası iki kez eklenmez ve sonuçlar birbiriyle çakışmaz.
Sonuçta, gürültülü bir bloktan yalnızca doğrulamadan geçen, birbiriyle çakışmayan değerler çıkar ve aktif listenize eklenir.
Not: Akıllı Çıkarım, eşleşmeleri bulmak için doğrulama kurallarınızı kullanır. Yani çıkarımın “neyi aradığını” bilmesi, tanımladığınız regex kurallarına bağlıdır. Kural ne kadar belirgin olursa, gürültülü metinden ayıklama da o kadar isabetli olur.
Açma koşulu
Akıllı Çıkarım, kendi başına çalışan bir mod değildir; doğrulamanın bir uzantısıdır. Bu nedenle iki koşul birlikte sağlanmalıdır:
- Doğrulama etkin olmalı — en az bir doğrulama kuralı tanımlı ve açık olmalıdır. Çıkarım, “uyan parça” derken bu kuralları ölçüt alır.
- Akıllı Çıkarım açık olmalı — ayarlardaki
smartExtractseçeneği etkinleştirilmelidir.
Bu iki koşuldan biri eksikse, tarama sonucu her zamanki gibi tek bir değer olarak işlenir ve gürültülü blok olduğu gibi değerlendirilir. İkisi birlikte açıkken, OCR çıktısı önce çıkarım hattından geçer.
İpucu: Tek ve net bir değer taradığınızda (örneğin yalnızca tek bir barkod altı numarası) Akıllı Çıkarım’a ihtiyacınız olmayabilir. Asıl faydası, kadrajda istemsiz biçimde başka yazıların da bulunduğu yoğun etiket ve ekran taramalarında ortaya çıkar.
Örnek
Diyelim ki altı haneli parça numaralarını topluyorsunuz ve doğrulama kuralınız tam olarak altı rakamı kabul ediyor:
Doğrulama kuralı (regex): ^\d{6}$
Kamera bir raf etiketini okur ve ham OCR çıktısı şöyle gelir:
PARCA NO 482190 RAF B12 ADET 7 LOT 559034
Akıllı Çıkarım bu metni boşluklara göre belirteçlere böler, kayan pencereyle her adayı kuraldan geçirir ve yalnızca altı rakamlı değerleri kabul eder. Sonuç:
482190
559034
PARCA, NO, RAF, B12, ADET, 7 ve LOT belirteçleri kurala uymadığı için elenir; iki geçerli numara çakışmadan ayrı ayrı listeye eklenir. Akıllı Çıkarım kapalı olsaydı, tüm satır tek bir aday olarak değerlendirilir ve kurala uymadığı için tümüyle reddedilirdi.
Doğrulama ile ilişkisi
Akıllı Çıkarım ile doğrulama kuralları ayrılmaz bir ikilidir. Doğrulama, bir değerin kabul edilip edilmeyeceğini belirler; Akıllı Çıkarım ise gürültülü bir bloktan o kabul ölçütüne uyan parçaları çekip çıkarır. Aynı ReDoS korumaları (aşırı uzun desen veya girdi reddi) burada da geçerlidir, çünkü çıkarım her aday pencereyi aynı doğrulama hattından geçirir.
Eğer henüz bir kural tanımlamadıysanız ya da regex yazmak istemiyorsanız, doğal dilden kural üretmek için AI ile kural üretme sayfasına bakın; ürettiğiniz kural otomatik olarak Akıllı Çıkarım’ı da besler.
Sonraki adımlar
- Doğrulama kuralları — kabul/red için regex tabanlı kuralları tanımlayın
- AI ile kural üretme — doğal dilden regex üretin
- Tarama — vizör, çekim modları ve OCR + QR akışı
- Canlı önizleme — doğrulamadan geçen değeri vizörün üstünde anlık görün
ReviseTouch tarafından geliştirildi.