Doğru Dijital Ping Önerisi | OCR Teknoloji Sistemi Bölümü

Giriş: Algoritmalar ve veriler bir spor otomobilin motoru ve benziniyse, sistem bir şanzımandır.Sabit ve esnek bir vites kutusu, görüntü tanıma hizmetlerinin ilerlemesinin temelidir. Algoritma, veri ve sistem üçlüdür Algoritmaların hızlı gelişimi ve artan veri birikimi ile sistem aynı zamanda verimli ve istikrarlı bir şekilde yükseltilmektedir.

1. Arka plan tanıtımı

Önceki makaleler dizisi sırasıyla algoritmaları ve verileri tanıttı.Algoritmalar ve veriler bir spor otomobilin motoru ve benziniyse, sistem bir şanzımandır.Görüntü tanıma hizmetinin ileriye gitmesi için sabit ve esnek bir vites kutusu temeldir. Algoritmalar, veriler ve sistemler eksiksiz bir OCR çevrimiçi hizmetine entegre edilmiştir. Algoritmaların yükseltilmesi ve hizmetlere sürekli erişimle birlikte sistem, bağımsız bir sürümden dağıtılmış bir sürüme de yükseltildi; her algoritma için sistem modüllerini özelleştirmekten çerçeve ve algoritma mantığını ayırmaya, algoritmanın işletim verimliliğini ve modüllerin kullanılabilirliğini iyileştirmeye kadar. Yeniden kullanılabilirlik; tek bir işletim ortamından CPU / GPU heterojen paralelliğine yükseltin. Genel dağıtılmış sistemlerin sağlaması gereken işlevlere ek olarak, tek noktalı etkin güncellemeler ve küme anlık görüntüleri eklemek için algoritmaları ve işletim ve bakım özelliklerini de birleştiriyoruz.

2. Karşılaştığımız zorluklar

Çevrimiçi hizmetler sağlayan bir sistem olarak, görüntü tanıma hizmeti çerçevesi, hem genel iş sistemleri veya platformlarının karşılaştığı zorluklarla hem de karmaşık algoritmaları ve bir algoritma sistemi olarak işletmeleri desteklemesi gereken zorluklarla, özellikle aşağıdaki noktalarda karşı karşıyadır:

1. Yüksek performans ve yüksek güvenilirlik

Herhangi bir çevrimiçi sistem performans ve güvenilirlik zorluklarıyla karşı karşıyadır. Sistemimizde, çevrimiçi bir hizmet olarak görüntü tanıma hizmetinin hızlı bir şekilde yanıt vermesi ve geri dönmesi ve çerçeve katmanından veya algoritma katmanından bağımsız olarak yüksek kullanılabilirlik sağlaması gerekir.

2. Sistem ayrıştırma ve yüksek ölçeklenebilirlik

Dağıtılmış bir algoritma sistemi olarak, algoritma modüllerinin ve çerçevelerin ayrıştırılması, algoritmaların ve arka uç personelinin eşzamanlı ve verimli bir şekilde geliştirmesini ve sırasıyla algoritmaları ve çerçeveleri güncellemesini ve yinelemesini sağlayabilir. Yüksek ölçeklenebilirlik, çerçevenin küme üzerinde kaynak ölçeklenebilirliğini desteklemesini gerektirir ve ayrıca tek makineli algoritmaların hızlı erişimini ve değiştirilmesini gerektirir.

3. Karmaşık hizmetler ve algoritmalar için destek

Hizmetlere sürekli erişim ve algoritmaların karmaşıklığı ile çerçeve katmanındaki esnek destek algoritmaları, verimli algoritma modülünün yeniden kullanımı ve yeni algoritmaların hızlı uyarlanması ve yeni hizmetlere erişim gereklidir.

4. Farklı işletim ortamları için destek

Algoritma sistemi, özellikle görüntü tanıma algoritma sistemi, işletim ortamı CPU ve GPU içerir.Farklı ortamların verimli çalışmasını desteklemenin yanı sıra, çerçeve, kaynakların makul ve verimli kullanımını sağlamak için farklı donanım ortamlarında çalışmak için farklı bağlantıları da desteklemelidir.

Üç, bizim çözümümüz

Görüntü tanıma, algoritma araştırmasından model eğitimine ve büyük ölçekli hizmet sağlamaya kadar daha fazla süreçle ilgilenmelidir. Geliştirme aşamasını aşağıdaki iki aşamaya ayırıyoruz:

Algoritma araştırma modeli eğitimi:

Algoritma personeli, algoritma araştırması, model eğitimi ve iş yerleştirme işlemleri gerçekleştirir. Algoritmanın sistemin çerçevesini ve zamanlamasını önemsemesine gerek yoktur, yalnızca tek bir modülün algoritma SO'sunu ve eğitilmiş model dosyasını çıkarması gerekir.

Çerçeve geliştirme algoritması entegrasyonu:

Arka uç geliştiriciler, hizmet çerçevesini ve algoritma SO'nun entegre çalışmasını geliştirir, yani, kararlı çevrimiçi görüntü tanıma hizmetleri sağlamak için algoritma araştırmacıları tarafından incelenen algoritmaları ve model dosyalarını hizmet çerçevesine entegre eder.

Aşağıdakiler, sistemin tasarımına ve uygulanmasına odaklanacaktır.

Dört, görüntü tanıma hizmeti çerçevesi

4.1 Sistem Mimarisi

Çerçeve katmanı Java kodlamasını kullanır ve algoritma katmanı, jar paketlerini veya diğer komut dosyalarını yükleyebilen bir eklenti tasarımı kullanır Bu çok dilli bir hibrit sistemdir. Görüntü tanıma algoritmaları genellikle hesaplama açısından yoğundur ve bazılarının GPU üzerinde çalışması gerekir, bu nedenle algoritma katmanında bunu yazmak için CUDA C ++ kullanıyoruz ve algoritma yürütme ve zamanlama için monte etmek için JNI kullanıyoruz. Şekil 1'de gösterildiği gibi, mimari esas olarak üç katmana bölünmüştür: erişim katmanı, çerçeve katmanı, algoritma katmanı, artı değerlendirme sistemi, depolama sistemi, izleme alarm sistemi, günlük sistemi ve eksiksiz bir görüntü tanıma hizmet sistemi oluşturmak için diğer çevresel sistemler.

Şekil 1 Görüntü tanıma hizmeti çerçeve sisteminin çerçeve diyagramı

Erişim katmanı: protokol dönüştürme, parametre aktarımı ve dağıtımı ve sonuç uyarlaması vb. Dahil.

Çerçeve katmanı: Görüntü tanıma hizmeti operasyonu, algoritmayı yükleme ve çalıştırma için sistem çerçevesi, SO, kararlı tanıma hizmeti sağlar.

  • Ana: Erişim katmanından istekleri alın, istekleri ayırın, istekleri planlayın, sonuçları birleştirin vb.
  • İşçi: Temel olarak SO / model algoritmasının yüklenmesini ve güncellenmesini ve algoritmanın yürütülmesini içeren algoritmayı gerçekten yürüten işlem taşıyıcısı
  • Zookeeper: Çalışan kalp atışı bilgilerini, algoritma eşleme ilişkisini, algoritma yürütme planını, algoritma statik / dinamik anlık görüntü bilgilerini vb. Depolar.
  • ConfigServer: çalışan kalp atışlarını izleyin ve dinamik dinamik yönlendirme tablosunu gerçek zamanlı olarak güncelleyin, yönlendirme kurallarını ve bağlantı havuzunu güncellemek için ana bilgisayarı tetikleyin

Algoritma katmanı: Algoritma personeli çeşitli algoritma modelleri ve algoritmalar sağlar, böylece

Çevre sistemi

  • Değerlendirme sistemi: Sürüm değerlendirme işlevi sağlayın
  • Depolama sistemi: hassas olmayan resimler ve çanta depolama
  • İzleme alarmı: hizmetin çalışma durumunu izleyin ve anormal olduğunda alarm verin
  • Günlük sistemi: günlük depolama isteğinde bulunun, sorun izleme ve sorun giderme için bir temel sağlayın

4.2 Sistemin çalışma durumu

Bu bölüm, çerçevenin çalışma durumunu gerçek OCR tahmin isteğine göre analiz edecektir.

1) Bir OCR tanımlama örneği

Şekil 2'de gösterildiği gibi örnek olarak STR (Sahne Metin Tanıma, sahne metni tanıma) alıyoruz Tipik bir kullanım senaryosu, reklam görüntü materyallerinin anlaşılmasıdır. Görevde resimdeki metni tanıyacak ve belirli koordinatlar vereceğiz.

Şekil 2 Bir OCR tanıma örneği

2) Sistemin çalışma durumu

Şekil 3'te görüldüğü gibi yukarıdaki örneklerin işleyiş sürecini çerçevede detaylı olarak analiz ediyoruz.

Şekil 3 Sistemin çalışma durumu

1. İşletme tarafındaki talep, resim içeriğini (veya resim URL'sini), teklifi (farklı hizmetleri tanımlayan) ve tid'i (farklı algoritma kategorilerini tanımlayan) taşır.

2. Ana düğümde karşılık gelen algoritmayı bulun ve ardından karşılık gelen yürütme planını bulun.Algoritmanın yürütme adımları, yürütme planında tanımlanır; ilgili yönlendirme düğümü her adıma göre bulunur ve ana, talebi ilgili işçiye böler / paketler / yönlendirir

3. Ana birim, orijinal resimleri saptama alt sistemine yönlendirir ve dağıtır. Algılama işlemi GPU üzerinde çalışır ve bu nedenle algoritma modüldeki her bir resim çerçevesini (Şekil 2'deki "Jingdong", "İç ve dış deri" gibi) algılar ve segmentasyondan sonra sonucu ana makineye döndürür.

4. Master, algılama sonuçlarını böler ve bunları tanıma alt sistemine paralel olarak dağıtır. Tanıma işlemi GPU üzerinde çalışır ve bu nedenle algoritma tek bir resim kutusunun metnini tanıyacak ve bunları ana bilgisayara geri döndürecektir.

5. Master, tanıma sonuçlarını özetler ve bunları yeniden sıralama alt sistemine gönderir. Yeniden sıralama alt sistemi CPU üzerinde çalışır ve algoritma sonucu ana makineye döndürür.

6. Ana öğe, nihai sonucu özetler ve döndürür

Her bir modülün tüm süreçteki rolü:

  • Algoritma eşleme: teklif + tid'den belirli bir alt algoritmaya eşleme. Aynı düzenli ve farklı teklif kombinasyonları, benzer algoritmaların farklı işletmeler tarafından özelleştirilmesini destekleyebilir
  • Yürütme planı: Algılama, tanıma ve yeniden sıralama olmak üzere üç adımı içeren şekildeki STR görüntü metni tanıma gibi algoritmanın yürütme adımlarını tanımlayın
  • Dinamik anlık görüntü: Algoritmanın her aşamasına eşlenen belirli düğümü tanımlayan dinamik yönlendirme tablosu. Çalışanlar kalp atışlarını bildirir, ConfigServer dinamik yönlendirme tablolarını düzenler ve oluşturur ve Ana düğüm, yönlendirme tablosu değişikliklerini izler

4.3 Olağanüstü durum kurtarma ve sıcak küme güncellemesi

Sıcak güncelleme yeteneği, sistemin kayıpsız yükseltilmesini ve sistemin felaket toleransını sağlayabilen güvenilir ve istikrarlı hizmetler sağlamak için bir sistemin temel işlevidir. Şekil 4'te gösterildiği gibi, sistem küme sıcak güncellemesini elde etmek için temel olarak hayvan bakıcısı ve çalışanın kalp atışı mekanizmasını kullanır.

Şekil 4 Küme sıcak güncellemesi

  • Çalışan: Kalp atışı bilgilerini korumak için başlangıçta zookeeper ile geçici bir düğüm oluşturun
  • Configserver: çalışanın kalp atışı bilgilerini zookeeper'da izler, eğer çalışanın bağlantısı kesilirse veya yeniden bağlanırsa, configserver dinamik anlık görüntüyü hemen algılar ve değiştirir
  • Ana: zookeeper'daki dinamik anlık görüntü bilgilerini izleyin, dinamik anlık görüntü değişikliği hemen yönlendirme kurallarının ve yönlendirme bağlantı havuzunun güncellemesini tetikler

Bu rollerin işbirliği sayesinde, yönetici, çalışan düğüm anormal olduğunda anahtarı hızlı bir şekilde tamamlayarak sistemin kararlılığını sağlar. Bu mekanizma aynı zamanda kümenin sıcak güncellemesini de destekler.Bir çalışanın güncellenmesi gerektiğinde, çalışan önce çevrimdışı olur ve yönetici bunu algıladıktan sonra çalışana bir istek göndermez. Güncelleme başladıktan sonra, ana birim onunla yeniden bağlantı kurar. Ve bir istek gönderin.

4.4 Tek sıcak güncelleme

Tek sıcak güncelleme, bir işlemdeki tek veya birden çok modülün hizmeti yeniden başlatmadan değiştirilmesini ve yükseltilmesini ifade eder. Algoritma platformu altında diğer iş sistemlerinden farklı olarak aşağıdaki iki senaryoyu göz önünde bulundurun:

1) Çoklu algoritma SO'leri bir sürece yüklenir ve algoritma modüllerinden birinin güncellenmesi gerekir;

2) Algoritma zincirinde birden fazla modül serileştirilir ve modüllerden birinin denenmesi veya güncellenmesi gerekir.

Bu iki senaryoda, küme sıcak güncellemesini kullanmak veya işlemi yeniden başlatmak biraz ağırdır, bu nedenle işlemdeki tek bir işlem için bir dizi dinamik güncelleme çözümü uyguladık. Java kodu aracılığıyla doğrudan SO'yu dinamik olarak yüklemek mümkün değildir Şekil 4'te gösterildiği gibi, bir aracı ekledik ve aracıya yapılan işlemler (dlopen, dlsym ve dlclose) aracılığıyla, SO'nun dinamik olarak yüklenmesi amacına ulaşıldı. Aynı zamanda, aracıda, JNI dönüşümünün ve algoritmaların kullanması gereken tüm arayüzleri kapsıyor ve çerçeveyi ve algoritmaları çok iyi ayrıştırıyoruz. Dinamik yüklemeye ek olarak, modellerin dinamik yüklemesini de uyguladık.

Şekil 5 Tek sıcak güncelleme

4.5 Statik anlık görüntü

Genellikle dağıtılmış bir çerçevede, statik anlık görüntülere gerek yoktur. Ancak algoritma sisteminde, genellikle bunun bir kısmını çevrimiçi ve çevrimdışı hale getirmemiz gerekir ve bunlar farklı makinelere ve düğümlere dağıtılacaktır. Sadece yerel olarak yüklemek / silmek, böylece sunucu üzerindeki dosyalar ilgili işlemlerin dinamik olarak yüklenmesini / boşaltılmasını tetikleyebilse de, bu tür bir işlem karmaşıktır ve algoritma karmaşık olduğunda ve bir işlem çok fazla yüklediğinde, işlem hatalara meyillidir. Bu nedenle, burada sistem işletimini ve bakımını iyileştirmek için işletim ve bakımda sistemi optimize etmemiz gerekir.

Şekil 5'te gösterildiği gibi, dinamik anlık görüntülerle aynı zamanda statik anlık görüntüler de ekledik Statik anlık görüntüler, bir kümenin beklenen başlangıç durumunu zookeeper'a yapılandırmak için O&M tarafından komut dosyaları veya yapılandırma dosyaları aracılığıyla statik yönlendirme tablosuna yazılır. ConfigServer, çalışanlar tarafından bildirilen statik anlık görüntüleri ve kalp atışı bilgilerini düzenler ve son dinamik anlık görüntüyü oluşturur.

Şekil 6 Statik anlık görüntü

Dinamik ve statik anlık görüntülerle birleştirilmiş bu küme anlık görüntü mekanizması, işletim ve bakım açısından yalnızca dinamik anlık görüntülerden biraz daha karmaşıktır, ancak karmaşıklık, işlem ve bakım araçlarıyla azaltılabilir. Dinamik ve statik küme anlık görüntü mekanizmasının avantajları da açıktır: Birincisi, karmaşık algoritmalar altında hata yapmak kolay değildir; ikincisi, bazı algoritmalar hızlı bir şekilde çevrimiçi olabilir veya dinamik anlık görüntülere ek olarak değiştirilebilir.

Beş, çerçeve üzerine bazı düşünceler

Java ve CUDA C ++ hibrit sistemini bir görüntü tanıma hizmeti çerçevesi olarak başarıyla kullandık ve birçok işletmeyi destekledik. Olgun ve istikrarlı bir çerçeve, algoritma geliştirme ve iş erişimi için daha fazla insan gücü serbest bırakabilir. Java'nın olgun açık kaynak araçlarına dayanarak, çerçeve hızla geliştirilebilir ve korunabilir.Çerçeve zamanlama katmanı ve ağ katmanı olarak Java'yı kullanarak, geleneksel C ++ çerçevesine kıyasla performans farkı yoktur; SO yazmak için CUDA C ++ kullanırken, daha iyi uyarlanabilir Bir GPU ortamı ve derin öğrenme çerçevesi ile donatılan bu bilgisayar, makine bilgi işlem kaynaklarını daha verimli kullanır. Elbette, sistemimiz hala gelişiyor ve gelecekte de kaynak kullanımı, zamanlama verimliliği, hizmet erişim hızı ve iyileştirilmiş operasyon ve bakım konularında çok çalışmaya devam edeceğiz.

Altı, sonuç

"OCR Technology Testing", "OCR Technology Identification Chapter", "OCR Technology Data Chapter", "dahil olmak üzere bir dizi OCR teknoloji makalesi yayınladık. OCR Teknoloji Sistemi Umarım bu makaleler aracılığıyla sizlerle OCR alanındaki bazı teknolojileri ve uygulamaları tartışabilirim. Takip çalışmalarında ekip, OCR alanında sıkı çalışmaya devam edecek, ilerlemeye devam edecek, teknik seviyeyi ve hizmet kalitesini iyileştirmeye devam edecek ve OCR teknolojisinin gelişimine küçük bir katkı sağlayacaktır.

Orijinal metin WeChat Resmi Hesabı-Tencent Teknik Mühendislik Resmi Hesabı'nda (Tencent_TEG) yayınlandı

Xie Na çok genç, yüksek topuklu eklenmiş bir elbise giyiyor, cildi hassas ve 18 yaşında olduğunu söyledi.
önceki
Ying Er çok sert, 10 cm yüksek topuklu siyah ince bir elbise giyiyor, ayakları dik.
Sonraki
Doğru Dijital Ping Önerisi | OCR Teknoloji Verileri
Fu Jing'in uzun bacakları vardı ve yüksek belli pantolonlu çizgili bir gömlek giymişti, aurası 1.8 metreye yükseldi.
Üçüncü "Faydası Hangzhou" Parti Binasında İşten Çıkarma · Binlerce Halk Yürüyüşü düzenlendi
Yang Mi çok fazla, yaz geliyor ve 3 üst ve yün şapka giyiyorum, ekranda kendimi sıcak hissediyorum
Odak noktası Bir numarayı ağa taşırken "çok sayıda çukur": uygulama sorunları, ağ "ikinci sınıf bir kullanıcı" haline gelecektir
Oyunda Wu Jin'in romantizminin rakibi, kısa etekli baskılı bir gömlek giyiyor, kısa gri ve sarı saçlı oldukça güzel.
Kırmızı dantel ve siyah takım elbise ile Lou Yixiao gerçekten göz alıcı, belinin etrafında "iki delik kazmak" daha dikkat çekici.
Teixeira Elder, Tosic'in zorlu kurtarıcısı, Suning 5-1 R&F çift zil sesi
Hannan'ın bu fermente soya peyniri "somut olmayan kültürel miras" olarak ilan edildi, 4 kuşaktır aktardı ve yılda 13.000 şişe sattı
Java sınıfı yükleyici mekanizmasının derinlemesine anlaşılması
Ni Ni harika, beyaz gömlek ve pantolon o kadar iyi giyebiliyor ki, "kaliteli bir yüz" olmayı hak ediyor.
Kuru ürünler | Kullanıcı davranışına göre video kümeleme şeması
To Top