Raster görüntüler iki boyutlu veri dizileri gibidir. İki boyutlu bir veri dizisi olarak görüntülerin raster görüntüleri Görüntülerdeki desenleri tanımak için algoritmalar

UDC 004932: 621.396

TM. VLASOVA, V.G. KALMIKOV

GÖRÜNTÜLERDEKİ KONTURLARI DİJİTAL DÜZ GÖRÜŞ DİZİSİ OLARAK TANIMAYA YÖNELİK ALGORİTMA VE PROGRAM

Özet: Verilen çalışmada, ikili görüntülerin konturlarındaki dijital doğrudan doğru parçasının tanınması algoritması ve algoritmanın yazılım uygulaması ele alınmaktadır. Görüntüleri işlemek için bu algoritmanın kullanılması, görüntülerin bilinen açıklama yöntemleriyle karşılaştırıldığında daha doğal ve ekonomik bir tanımlamayla sonuçlanacaktır. Dikkate alınan algoritma ve yazılım uygulaması, yarı tonlu ve renkli görüntüleri işlerken konturların tanımlanması için de kullanılabilir.

Anahtar kelimeler: görüntü, kontur, dijital düz parçalar, algoritma, program.

Özet: Bu çalışma, ikili tasarrufların konturlarındaki dijital çizgilerin bölümlerini tanımak için bir algoritmanın yanı sıra algoritmanın bir yazılım uygulamasını geliştirmektedir. Görüntünün işlenmesinde bu algoritmanın kullanılması, görüntü kodlama türüne bağlı olarak tasarruf açıklamasının daha doğal ve ekonomik olmasını sağlayacaktır. Oluşturulan algoritma ve yazılım uygulaması, ton ve renk tasarrufu elde ederken konturları kodlamak için birleştirilebilir. Anahtar kelimeler: görüntü, kontur, dijital çizgilerin bölümleri, algoritma, program.

Özet: Bu çalışma, ikili görüntülerin konturlarındaki dijital çizgilerin bölümlerini tanımaya yönelik algoritmayı ve algoritmanın program uygulamasını incelemektedir. Bir görüntüyü işlerken karşılık gelen algoritma, görüntüyü tanımlamak için bilinen yöntemler kullanılarak daha doğal ve ekonomik bir algoritmaya indirgenir. Dikkate alınan algoritma ve yazılım uygulaması, monoton ve renkli görüntüleri işlerken konturları tanımlamak için de kullanılabilir. Anahtar kelimeler: görüntü, kontur, dijital çizgilerin bölümleri, algoritma, program.

1. Giriş

Düz çizgi dizilerini ve eğri yaylarını gösteren konturların yapısal analizi, yapay zeka sistemlerinde yorumlanma yöntemini kullanarak görüntüleri işlerken ana görevlerden biridir.

Çoğu durumda görüntü, görüntünün arka planını ve nesnelerini belirten optik güç, renk, doku gibi yasaya göre sabit veya değişken parametrelere sahip alanlara bölünmüş yüzeyin bir parçası olarak görülebilir. Cildin bu bölgelerdeki görünmez gücü sınırları da içerir, böylece kontur düz çizgilerden ve kavisli yaylardan oluşan basit bir şekilde birbirine bağlanmış bir dizidir. Raster görüntüleri işlerken nesnelerin ana hatları açıkça görülebilir. Bununla birlikte, bitişik, sınırlayıcı piksellerin bir koleksiyonu olarak temsil edilen nesnelerin dış hatları, geometrik özlerini yeterince tanımlamadıkları için ileri işlemlerde pek kullanışlı değildir.

Düz dilimlerin sırasına bakarak görüntünün dış hatlarını tanımak, taramalı görüntünün işlenmesi sürecindeki ana görevlerden biri olabilir. Düz kesim sırası görünümünde konturun görünümünü belirleme çözümü, görüntünün açıklamasını, insan anlayışı için doğal, afin dönüşümlere göre değişmeyen, manuel, görsel olarak sinirsel işlemler için kompakt bir görünümde çıkarmanıza olanak tanır. ağlar. Düz kesimler konturun ana unsurlarıdır. Hem matematiksel analizin temel ilkelerinde hem de birçok pratik durumda, bir eğrinin yayının yerini sıklıkla içine yazılan katmanlı bir çizgi alır.

Robotta uygulanan çeşitli yöntem ve algoritmalar, her uygulama için uygun olmayan daha yakın çözümler bulmayı sağlar.

Bu robot, ikili bir görüntünün dış hatlarını, bilgi kaybı olmadan dijital çizgilerin bir dizisi olarak tanır.

2. Dijital çizgilerin bir dizi segmenti olarak kontur

Bu bölüm, konturun dijital eğrilerin yaylarına ve dijital çizgilerin bölümlerine bölünmesi için çıktı verileri olan dijital çizgilerin bölümlerinin sırasını gösteren konturların yapısal analizini incelemektedir.

Nesneleri konturlarıyla çevrelenmiş görünen ikili görüntülere bakıldığında. Düz çizgi parçaları ve eğri yayları tarafından oluşturulan konturların yerini almak üzere görüntü örnekleme sırasında dijital eğri yaylarının yanı sıra dijital düz çizgi parçaları da oluşturulur.

Dönüşüm sürecinde düz çizgilerin ve kavisli yayların karakteristik işaretleri kullanılır. Örneklenmiş bir görüntüye yeterli iyileştirmeyle bakarken, düz çizgi parçalarını ve eğri yaylarını sırayla tanımak genellikle önemlidir.

dikey ve yatay kesimler. Kontur çizgileri - zahmetsiz matematiksel çizgiler - monitör ekranında yut yoldaşlığı gibi görsel çizgiler gibi viskoz piksel dizileri olarak görüntülenenler aracılığıyla işlem yaparken ek zorluklar ortaya çıkar.

Bu sorunu ortadan kaldırmak için, ayrıklaştırma sonucunda koçandan alınan görüntüye iki boyutlu bir hücresel kompleks olarak bakacağız. Böyle bir durumda

Pikseller bu hücre kompleksinin iki boyutlu elemanlarıdır. Krem piksel, çatlak ve nokta. Krek-tse

tek boyutlu öğeler olan piksellerin tarafı. Noktalar çatlakların uç noktaları ve piksellerin köşe noktalarıdır. Noktalar sıfır boyutlu elemanlardır. Bu yüzden

Bu nedenle, bu durumda, nesnenin konturu, nesnenin piksellerini ve arka planı sınırlayan kapalı bir kontur kenarları dizisi ile bağlanır. Kontur, noktaların tamsayı koordinatlarının bir dizisi olarak tanımlanabilir,

kontur çatlaklarını sınırlayın. Gösterildiği gibi görüntünün düzlüğü gösterilir

Cliniform kompleksine birçok fayda sağlar. Zokrema, alanlar arasında sıfır alanlı ince bir eğri haline gelir.

İncirde. Şekil 1'de bir yay eğrisi ve keskin bir düz çizgi tarafından oluşturulan bir nesnenin çıkış konturunun uç kısmını ve bunun yanı sıra bir eğri dizisi olarak dijital eşdeğerini işaret ediyoruz. Farklı düz çizgilerin bulunduğu numaralandırılmış noktalar vardır. Robotlarda olduğu gibi b -elemanı altında herhangi bir noktadan gelen ve aynı veya dik doğrunun çatlağı ile biten aynı düz çizginin çatlaklarının sürekliliği arasındaki bağlantıyı anlayacağız. İncirde. Şekil 1, noktalar arasında bir çatlak oluşturan L elemanları üzerindeki devrenin olası bölümlerinden birini göstermektedir: (0-2), (2-4), (4-6), (6-8), (8) -9), (9 -11), (11-13), (13-15), (15-17), (17-19), (20-21), (21-23), (23-25) ), (25-27), (27-0). Kozhen b-Element aşağıdaki parametrelerle karakterize edilir: doğrudan g koçan noktasına (yukarı yön için g = 0, 1 - sağa, 2 - aşağı, 3 - sola kabul edilmiştir); l - düz çizgi sayısı g (! = 1,2, ...); kalan derenin hemen ilerisinde q öndeki derelerin g yönü doğrultusunda (q = -1 - kalan dere g yönü doğrultusunda sola doğru düzleşir, +1 - sağa, 0 - ile birlikte gider) düz çizgi g). L çatlaklarının miktarı zihinsel olarak “dowzhin” b -elementi olarak adlandırılacaktır. b -elementi (0-2) için g = 0,! = 3, q ​​= + 1. b-elementi (27-0) için g = 3, = 1, q = 0.

Devre yakınındaki dijital düz çizgilerin bölümlerini görme yöntemi, bölümleri oluşturan L elemanları dizisinin gücüne dayanmaktadır. Bu dizi, aynı g, q değerlerine sahip b elemanlarını içerir; Dovzhinleri değerleri alır!, +1. Neden

b-elementlerinin çizimi dovzhin!, +1, tam sayıların bölünmesiyle elde edilen Lanczug kesri ile gösterilir n = Ax = | x1 - x2 | ben t = Ау = | y1 - y2\, de (x1zy1), (x2, y2) - koçanı koordinatları

ve kesimin bitiş noktası: veya

P> t'nin önemi için gereklidir.Formül (1)'den anlaşılacağı üzere, l - p'nin t'ye bölümünden elde edilen kısmın tamamı - dijital düz çizginin kesitinde, bir düz çizginin kesişiminden sonra l kadar görünür. astar. Kokuyu oluşturmak için dikey bir çatlakla birlikte uzanalım b - Dovzhini Elementi!. k1 dowzhin'in b-elementlerinden sonra ben dowzhin'in bir b-elementiyim! +1 (veya dovzhin'in b-elementlerinden +1 ve dovzhin'in bir b-elementinden sonra k1!) "dovzhin" k1'in K1-elementini oluşturur (b-elementlerinin "dovzhin"ine benzer şekilde). B elementlerinden sonra 1 artan b elementine bu K1 elementinin değiştirilebilir b elementi adı verilecektir. Benzer şekilde, K1'den sonraki k2 - "dovzhin" k1'in elemanları ve "dovzhin" k1 +1'in bir K1 elemanı (veya K1'den sonra k2 - "dovzhin" k1 +1'in elemanları ve "dovzhin" k1'in bir K1 - elemanı) oluşturur "dovzhin" "k1'in bir K2 elemanı. Evet

ila + ila 2 + ila ç + ... + kg

Lanziug vuruşunun üyeleri kaldırılıncaya kadar süre verdi. K1 -elementlerinden (Kg-1 -Element) sonra 1 tür artırılan K1 -Element (vzagali K1 -Element), K2 -element (Kg) ile verilen K1 -element (Kg-1 -element) ile değiştirilecektir. -öğe). Bu şekilde her

Dijital kesim, unsurları kesimin yapısını gösteren Lancug damarını doğrudan andırıyor.

Şekil 2'deki konturda. 1'de dijital direkt hatların güncel bölümlerini görebilirsiniz: 0-3, 3-9, 910, 10-17, 17-0.

3. Devredeki dijital doğrudan kesmelerin görünürlüğü

Konturları, yan yana görüntüleri, ikili görüntüleri örneklendirirken, konturu oluşturan çatlak dizisinde düz kesimleri oluşturan dizilimin parçalarını görmek gerekir. Bu görev, Lanczyug fraksiyonunun elemanlarını konturun L elemanlarının sırasına göre atama görevi olarak görülebilir. Bu, koçanın koordinatları ile kesimin sonu arasındaki ilişkiye dayalı olarak, Lancug fraksiyonunun üyelerinin sırasına göre düz kesimin yapısını belirleme göreviyle ilgili olarak verilmektedir.

Sonraki adımların birbirini takip etmesiyle video klipleri doğrudan dijital olarak görme yöntemi gelişir.

1. Çatlak dizisinde L elemanlarının sırasını görmek. Bu eylem tüm parçanın önemini gösteriyor! neşter atışı (1).

2. L elementleri dizisinde r=1 olan Kg elementleri dizisini görmek ve derideki L elementlerinden biri olan K1 elementinin diğerlerine göre 1 tane daha fazla veya daha az taşınmasından sorumludur. Bu eylem, Lancium atışının (1) 1. unsurunun önemini doğrulamaktadır. Ölümünden sonra suçluluk değeri 1 arttı.

3. Kg-1 elementleri dizisinde Kg-elementlerinin dizilimini görmek,

Ayrıca derideki Kg elementinin Kg-1 elementlerinden biri, diğerlerinden daha fazla veya daha az bir K-2 elementinden sorumludur. Bu işlem neşter fraksiyonunun (1) ('inci elemanına kadar) değerini doğrular. Üçüncü elemandan sonra değer 1 artırılacaktır.

4. 3. nokta, bir dizi Kg elemanına gitmek hala mümkün olana kadar tekrarlanır.

Utvoriti km -Element.

5. Aynı Kg elemanının parçası olmayan iki komşu b elemanı arasındaki sınır noktalarını belirleyin. Bu noktalar dijital çizgilerin konturu oluşturan bölümlerinin uç noktalarıdır.

Bölümleri doğrudan L öğeleri dizisinde görmeye yönelik algoritmaya bir göz atalım

Nehai [b5 (/ 5, gs, qs)); 5 = 0,1, ..., £ - konturu oluşturan L elemanlarının dizisi; x5, y5 - e-th b-elementinin koçanının koordinatları; [Hu, y y); y =; r = 0,1, ...,!; !< £ - множество

kötü konturun üzerine nokta koyun. Kötü noktalar, konturu oluşturan düz çizgilerin bölümlerinin uç noktalarını temsil eder. Zararlı noktaları bilmek, konturu oluşturan düz çizgileri belirlemek anlamına gelir.

İncelenen bölümlerin derisi Kg elementinin yanı sıra Lancug ile de karakterize edilir.

atış. Kesimin tanınma anının başlangıcında, neşter fraksiyonu tipinin doğrudan elemanı seviye 0'dır. Kesim, sırası ve elemanların değerleri de dahil olmak üzere Kg elemanının parametreleri tanınarak tanınabilir. . benzer mızrak atışı.

1. Mısır başakları.

[b5 (/ 5, gs, qs)) ve (x5, V5) sırasını ayarlayın.

Kötü noktanın koordinatlarını bilmek gerekir | x;., Y,).

k0r: = 0, k1r: = 0, K2R: = 0, ..., kr: = 0 - Lancium atış elemanlarının çalışma değerleri.

Birinci kesme noktasının koçanı noktasında 5 = 0 kabul edelim; ben = 0; ben = 0.

2. İlk düz kesimin koçanı ile ilk b-elementini sırayla alın. Pochatkova yogo noktası x5, y. Dovzhina / = / 0 є ayrıca Lansiyum fraksiyonunun ilk elementinin değerleri.

5: = 5 + 1; k1p: = k1p + 1.

3. B-elemanı ile ön hazırlığı oluşturun ve ön K0-elemanı ile eş zamanlı olarak kokuyu giderin.

3.1. Yakscho ((D3 == d3-1) && (D3 == 73-1) && (4 == / 3-1)) sonra Kg -elementinin devamı k0r: = k0r +1; 5: = 5 + 1; ve düz kesimin devamı. 3. adıma gidin.

3.2. ((D3 f d3-1) || (D3 f 73-1) 11 (| / e - / є-1!> 1)) ise kesimin sonu düzdür. 5. adıma gidin.

3.3. Yakshcho ((& == 9з + 1) && (% == 7з + 1) && ((/з + 1 == /з + 1) 1! (/З - 1 == / 3 + 1))), daha sonra bir K0 elemanı ile tamamlanır; Ї = Ї + 1.

4. K'nin (-eleman.) devamının/tamamının doğrulanması.

4.1. Eğer (to == 0), o zaman to ^ = to ^; cr: = 0; ^ 1p'ye kadar: = k1 + 1p + 1; 5: = 5 +1; koçanı km elemanı.

3. adıma gidin.

4.2. Eğer ((IФ 0'a) && (ile == ila ^)), o zaman ^ 1р: = ila ^ 1р + 1; 5: = 5 + 1; Ki+1 elementinin devamı. 3. adıma gidin.

4.3. Eğer ((ile (Ф 0) && ((ile + 1 == к1р) 11 (К1-1 == ila ^))), o zaman Ї: = +1; km elemanının sonu.

4. adıma gidin.

4.4. Eğer ((^ f0) && (| ila - k1р |> 1)), o zaman bölümün sonu 5. adıma doğrudan geçiştir.

5. Kesimin sonu.

X] = X'ler; y = Uz; k1р: = 0, К2Р: = 0,., кір: = 0; için: = 0, k2: = 0,., için: = 0.

Yakshcho (lar)< S), то s:= s +1; переход к п. 2.

Aksi takdirde - L elemanları dizisinin sonu. Robotik algoritmanın sonu.

Temelde, algoritma, Kt -elementi tarafından çıkarılan deri için Lancugian fraksiyonunun elemanlarını bulmayı önerir ve yeni uyarılmış Kt -elementinin Lancugian fraksiyonunun halihazırda oluşturulmuş olana uygun olup olmadığını kontrol eder.

4. Video klip programı dijital doğrudan

Algoritmanın açıklamasından da görülebileceği gibi, köklü programlarda ortaya çıkan zorluklarla yapısal programlamanın tavsiyelerini takip etmek için gerekli olan önemli sayıda zihinsel geçiş içerir. Ayrıca Kt parametre sayısı da perde arkasında

Demek ki değişimin parçalarının arkadan ayrılmaması mümkün değil. t değerini ekleyin

Bu, görüntünün boyutlarını uzaktan ayırmanız gerektiği anlamına gelir. Yazılım uygulaması, özellikle algoritmanın önemli nedenlerden dolayı önemsiz yollarla geliştirilmesi son derece karmaşıktır. Nesne yönelimli programlamanın doğal özelliklerini vurgulayarak yazılım uygulamasını geliştirmenin ve iyileştirmenin karmaşıklığını değiştirmek mümkündür.

Visual C++ ortamındaki örnek görüntüye göre laboratuvar yazılım kompleksi deposunda yer alan LINESEGM programları biçiminde uygulama algoritmasının önerisi.

Çıktı bilgilerinin bir sonucu olarak LINESEGM programı, örneklenen görüntünün cilt hatları için oluşturulan L elemanlarının dizisini güçlendirir.

Robotik programın sonucu, kesimlerin uç noktalarının koordinatlarıyla temsil edilen, cilt konturu için dijital düz kesim dizisidir.

Algoritmadan görülebileceği gibi işlemler Kt-l-elemanlarından Kt-elemanlarını içermektedir.

ancak t'nin değeri herkes için aynıdır. Başlangıç ​​değerinin t=0 olması ve algoritmanın çalışması sırasında her seferinde 1 oranında artması anlamlıdır. CKForLn özel sınıfı, algoritmanın işlemleriyle ilgili yöntemleri içerir. Kaplama t değeri 1 arttığında algoritmayı uygulayan bir programla çalışma sürecinde, kaplama t değeri için algoritma için işlemler oluşturan fonksiyonları içeren yeni bir nesne oluşturulur.

Sıfır seviyesinde K0 elemanlarının Do elemanlarından değil L'den yaratıldığı gerçeğine bakıldığında -

Algoritmayı sıfır seviyesinde uygulamak için CKForLn sınıfının özel bir modifikasyonu oluşturuldu - Cmini sınıfı.

Programın ilkesi, t dış görünüm değeri için programın, Kt öğesiyle parametreleri tanımlayan işlevleri içeren t düzeyinin CKForLn sınıfının bir nesnesini uygulamasıdır. Çıkış parametreleri Kt -eleman - zaten parametreler

parametreleri nesne tarafından CKForLn t-1 sınıfına atanan tamamlanmış Kt-l-elemanları

Ah hayatım.

CKForLn sınıfının nesneleri beyin fırtınası dünyasında uygulanır ve taslak seviyesinin bir unsuru olma ihtiyacı özel bir dinamik dizide toplanır. Sıfır seviyeli nesne, robot programının başlangıcında hemen oluşturulur.

Nesnelerin daha geniş bir dünyada dinamik bir dizide uygulanması, görüntünün boyutuna sınır getirilmemesini mümkün kılar. Görüntünün boyutu yalnızca seçilen bilgisayarın kaynakları tarafından belirlenir.

Robotik programı açıklarken tamamlanmış Kt kavramı kullanılacaktır -

eleman. Tamamlamaların dış görünümü Kt -kt Kt-l-elemanlarının yerini alacak öğe ve bir değişiklik Kt-l -kt-l'nin yerini alacak öğe ± 1 Kt-2-elemanları, tamamlanmamış Kt-elemanının alt bölümü başına, tamamlanmamış öğenin yerini almaz Kt elemanı.

CKForLn sınıfı gelişmiş yöntemleri içerir.

1. Yöntem DK (), (K-öğesini tanımlayın) - Öğeden Önceki değer.

Değer Kt -Element - Kt -Element verilerini oluşturan Kt-1 öğelerinin sayısı anlamına gelir.

2. Yöntem VK§, (K-öğesini doğrulayın) - Do-öğesinin kimliğini aynı seviyedeki K-öğesiyle, DK () yöntemiyle aynı işlevle doğrulayın.

3. Yöntem DEO, (K-elementinin sonunu tanımlayın) - Do-elementinin sonunu belirleyin, böylece Kt-elementi atandığında, Kt-1 -Elementinde neyin değiştiğini bulun. t-1 düzeyindeki DE() yönteminin işlevi, t düzeyindeki DK() yöntemindeki işlev tarafından çağrılır.

4. Yöntem VE (), (Do -elementinin sonunu doğrulayın) - bu Do -elementinin sonunun kimliğini, DE () yönteminin önceki işlevi olan değiştirilen Do -elementiyle doğrulayın.

Cmini sınıfı, Cmini sınıfının yöntemlerinin L öğeleri üzerinde çalışması ve K0 öğelerini değerlendirmesi veya doğrulaması bakımından CKForLn sınıfının yöntemlerinden alt bölümlere ayrılan aynı yöntemleri içerir.

Cmini sınıfı için yöntemler

Cmini sınıfının yöntemleri, yöntemin işlevinin çağrıldığı sırada L öğelerinin seri numarasından başlayarak, örneklenen görüntünün dış hatları için oluşturulan L öğeleri dizisinin çıktı verilerine dayanır.

Cmini sınıfındaki DK yönteminin () işlevi, koku giderilene kadar kutanöz L elementlerinin parametrelerini koçan L elementlerinin parametreleriyle eşitler. Parametrelerde farklılıklar olduğundan DK() fonksiyonu K0 elemanının tamamlanıp tamamlanmadığını kontrol eder ve biter

robot. K0 elemanı tamamlanır ve sonunda bir L elemanı ile değiştirilir, böylece geri kalanı diğer L elemanlarından bir K0 elemanı ile 1 ile bölünür (kesme koçanı için işlem 3.1 - t = 0) .

VK () yöntemine ilişkin işlev, önceki k0 L öğelerinin parametrelerinin, DK () yöntemine göre daha önce işleve atanan K0 öğesinin L öğelerinin parametreleriyle eşleşip eşleşmediğini kontrol eder.

aynı eşittir. Zaman zaman ön hat ile sıralı K0 elemanının parametreleri

Daha sonra VK () fonksiyonu kesmeye devam etmek için bir işaret oluşturur ve işi tamamlar (kesmeye devam etmek için işlem 3.1 - t> 0).

Aksi takdirde, VK() işlevi bir kesme tamamlama işareti oluşturur ve tamamlar

DE () fonksiyonu yöntemi, akış K0 -elemanının değişip değişmediğini belirlemek için Kci-elemanı akışının parametrelerini, daha önce DK () fonksiyonu tarafından atanan K0 -elemanı parametreleriyle eşitler. Farklı tipte diğer parametreler için L elemanlarının sayısı 0'a kadardır

K0 -elemanı ile değiştirildi, önceden eşit olan K0 -elemanı ile eşitlendi

DK () işlevi, 1'e bölünebilir (son tamamlama için işlem 3.2, 3.3)

koçanı K0 -element vidrezka - t = 0). Sonuç, değiştirilen K0 öğesinin parametreleridir

VE () sınıfı Cmini yönteminde vikorystvayutsya.

VE () yönteminin işlevi, akış K0 -elemanının parametrelerini, daha önce DE () işlevi tarafından atanan, K0 -elemanı tarafından değere değiştirilen parametrelerle eşitler,

kötü kokuyu önlemek için (işlemi devam ettirmek için işlem 3.2, 3.3 - t> 0). Sonuç - kaçış veya ayrılma işareti - CKForLn sınıfının VK () yönteminde analiz edilir.

CKForLn sınıfına yönelik yöntemler

Yöntemler, daha düşük seviye için tasarlanmış K elemanlarının parametrelerinin çıktı verilerine dayanmaktadır. Ek olarak, Kt elemanına parametre atamak için parametreler kullanılır.

zaten oluşturulmuş Kt-l-elemanları.

Belirtilen parametrelerle ^ -element t sınıfı CKForLn'ye eşit DK () yönteminin işlevi, zaten değerli olan Kt-l -element Kt-l sayısını kontrol eden t-1 sınıfı CKForLn'ye eşit VK () işlevini çağırır. -aynı parametrelere sahip öğe ami. Böylece VK () işlevi tekrarlanır. Tekrar sayısı tekrarlandığında kt parametresi ayarlanır.

Aksi takdirde, t seviyesindeki DK () fonksiyonu, değiştirilen Kt-l elemanlarını atamak ve işi tamamlamak için t-1 seviyesindeki DE () fonksiyonunu çağırır. İşin tamamlanmasından sonra, CKForLn t sınıfının DK () işlevi parametreleri atar ve tamamlanmış veya tamamlanmamış Kt öğesinin işaretlerini oluşturur (mevcut maksimum t değerinde işlem 4.1, 4.2).

CKForLn sınıfının VK() yönteminin işlevi, önceki kt Kt elemanlarının parametrelerinin, önceden atanan Kt elemanının parametreleriyle eşleşip eşleşmediğini kontrol eder.

aynı seviyedeki DK() yöntemiyle çalışır. Bazen hat içi Kt elemanının parametreleri

daha önce DK () Kt işlevi tarafından değerlendi - aynı seviyedeki bir öğe, VK () işlevi

kes-devam işaretini oluşturarak işi tamamlar.

Aksi takdirde, VK () işlevi bir kesme tamamlama işareti oluşturur ve işi tamamlar (işlem 4.1,4.2, maksimumdan daha düşük bir t akış değeriyle).

Kt -elementFunction to DE0 düzeyi t yöntemi CKForLn sınıfına atanmış parametrelerle Kt -element eşit akış parametreleri Kt -element parametreleriyle Kt -element, daha önce fonksiyon DK () tarafından atanmış, akışın ne olduğunu hesaplamak için Kt -Element zm Inonym. Eşit sayıda diğer parametreler için, kt-1 değerlerinin 1'e bölünmesi muhtemeldir. Farklı değerler için, DE () zihinsel işlevi, Kt -elementi ile değiştirilen işareti oluşturur ve

işi tamamlar (işlem 4.3, 4.4, hat içi maksimum t değerinde).

T sınıfı CKForLn'nin VE () yönteminin işlevi, akan Kt -elemanının parametrelerini, parametrelerinin değerlerinin aynı olmasını sağlamak için Kt -elemanı tarafından değiştirilen DE () işlevi tarafından daha önce görülen parametrelerle eşitler. kaçınıldı.

Zaman zaman önden hat içi Kt elemanının parametrelerinin değeri artırılır

Aynı seviyedeki bir sonraki DK () işlevi, VK () işlevi, parametre değerlerinden kaçmak için bir işaret oluşturur ve işi tamamlar (maksimumdan daha düşük bir t akış değeriyle işlem 4.3,4.4).

Zaman-saat diyagramı (Şekil 2), LINESEGM programının düz çizgi tanıma uygulaması üzerindeki çalışmasını göstermektedir. Küçük resmin alt kısmında aynı ana ve yardımcı yönlere ait L elemanlarından ve çeşitli yönlerden oluşan dijital çizginin bir kısmı bulunmaktadır.

0 yaratımın sonunda Step sınıfının bir nesnesi vardır, bu da K0 elemanının parametreleri anlamına gelir.

Adım 10'da, K0 elemanının parametrelerinin atanması tamamlanır ve K1 elemanının parametrelerinin atanması için önceden oluşturulan nesnenin yerine hizmet eden sınıf 1'e ait bir nesne yaratılır. Adım 19'da, K1 elemanı tarafından parametrelerin atanması tamamlanır ve K2 elemanı tarafından parametrelerin atanması için nesnelerin oluşturulmasından önce bir yedek fonksiyon görevi gören sınıf 2'ye ait bir nesne yaratılır. Adım 49'da, K2 elemanı tarafından parametrelerin atanması tamamlanır ve K3 elemanının parametrelerinin atanması için nesnelerin yaratılmasından önce bir yedek fonksiyon olarak hizmet eden bir 3. sınıf nesnesi yaratılır. Croci 79 vikonovatsya'da

zihinsel tamamlanma. Robot programı ekte ayrıntılı olarak anlatılmıştır.

0-6 aşamasında, iki b-elemanı K0-elementinin eksikliğini giderir. Açıkça görülüyor ki b -

dovzheni 3'ün 3-6. elemanı düz bölümü tamamlar, çünkü dovzheni 1'in b-6-7. elemanı devam ettirilemez. Böylece, b-Element 6-7 dijital bir düz çizginin başlangıcıdır.

İncirde. 3 görüntüleme popo robot programı. Karelerle düz bölümlere bölünmüş kıvırcık bir okun ikili görüntüsünün dış çizgisi. Robotik programın sonucu, dijital eğrilerin yaylarını görmek için düz çizgiler ve düz çizgiler dizisidir. Dijital eğrilerin yayları arasında büyük kareler gösterilir.

Programın çalışması önemli sayıda (2000'den fazla) uygulama üzerinde doğrulanmıştır ve Newton görüntülerinin yapısal analizi takip edilerek doğrulanmıştır.

5. Doğrudan parçaları tanımaya yönelik programların çalışması

Şekil 2'de gösterilen örnekte IIEBESM programına bir göz atalım. 4. Bebeğin alt kısmında aynı ana ve yardımcı yönlere ait b elemanlarından ve çeşitli yönlerden oluşan dijital çizginin bir kısmı gösterilmektedir. Bölüm 0-6'da iki b -elemanı eksikliği giderir K0-

Küçük 3. Bir konturun yapısal analizi için robotik bir programın uygulanması - konturun dijital düz çizgiler bölümlerine ayrılması

eleman. Açıkçası, dovzhin 3'ün b -Element 3-6'sı düz bölümü tamamlar, çünkü dozhni 1'in b -Element 6-7'si devam ettirilemez. Böylece, b-Element 6-7 dijital bir düz çizginin başlangıcıdır.

Programın düz çizginin çizim bölümünün değerine göre çalışması sıfır seviyesinin OK () fonksiyonu ile başlar, bu da b elemanlarından oluşan K0 - Eleman 6-10'un tamamlanması anlamına gelir.

Dovzhin 1,1,2; to0 = 2. Tsei K0 -Element, K1 elemanının koçanıdır. Program birinci düzey bir nesne oluşturur ve kontrolü o nesnenin OK() işlevine aktarır. Seviye 1'in OK () fonksiyonu, seviye 0'ın VKQ fonksiyonunu çağırır. VKQ fonksiyonu, K0 elemanı 6-10'un b elemanlarının parametrelerini ilerleyen b elemanları ile eşitler ve K0 elemanının varlığını doğrular 10-14,

aynı K0 elemanı 6-10. Robotla devam ederek VKQ fonksiyonu, bu tür b -elemanlarının aynı K0 -elemanını içermediğini tespit eder, robotu tamamlar ve kontrol fonksiyonunu OK () seviye 1'e aktarır. OK () seviye 1 fonksiyonu, OE fonksiyonunu () çağırır. seviye 0. Bu, b-element 6-7 ile başlayan, dovzhin 1,1,1,2 b-elementleri tarafından oluşturulan değiştirilmiş bir K0-element 14-19'un varlığı anlamına gelir; to0 = 3, işi tamamlar ve seviye 1'in OK () kontrol fonksiyonunu aktarır. Bu fonksiyon, iki K0 - toplamı olan tamamlanmış bir K1 elemanı 6-19'un varlığı anlamına gelir.

elemanları 1,1,2, (k1 = 2) ve biri 1,1,1,2 (K0 = 3) olarak değiştirildi. Program başka düzeyde bir nesne oluşturur ve kontrolü o nesnenin OK () işlevine aktarır. Seviye 2'nin OK () fonksiyonu, seviye 1'in VKQ fonksiyonunu çağırır ve bu da, seviye 0'ın VKQ fonksiyonunu çağırır. VKQ fonksiyonu, b elemanları K0 - eleman 6-10'un parametrelerini ilerleyen b - ile eşitler

K0 elemanları 6-10 ile aynı olan K0 elemanları 19-23, 23-27'nin varlığını doğrular ve K1 elemanı 6-19'da bu tür K0 elemanlarından kaç tanesinin bulunduğunu doğrular. Daha sonra, seviye 0'ın VKQ fonksiyonu, kontrolü seviye 1'in VKQ fonksiyonunun devam işaretiyle döndürür. VKQ fonksiyonu, seviye 0'ın VE0 fonksiyonunu çağırır; bu, değişen K0 -'nin varlığı anlamına gelir.

eleman 27-32, K0 elemanı 14-19 ile aynıdır. Bu rütbe ile K1-elemanı 19-32 belirlenir,

K1 elemanı 6-19 ile aynıdır. Ayrıca, seviye 1'in VKQ fonksiyonu, K1 elemanı 6-19 ile aynı olan son K1 elemanını değiştirmez, ancak seviye 0'ın VE0 fonksiyonu, K1 elemanıyla aynı olan K1 elemanını değiştirmez. 6-19, b -element 40-41'den başlayarak ve seviye 2'nin kontrol fonksiyonunu OK () döndürür. Seviye 2'nin OK () fonksiyonu, seviye 1'in OE () fonksiyonunu çağırır; bu, değiştirilmiş bir öğenin varlığını gösterir. K1 elemanı 32-49, z K0 -elementleri 32-36, 36-40 ,

40-44, 44-49. Daha sonra K2 elemanı 6-49 belirtilir, seviye 3'ün amacı belirlenir, K2 elemanı 49-79'daki değişiklikler gösterilir. Bu iki K2 elemanı K3 elemanı 6-79'u oluşturur. Kesim tamamlandığında bu tür b-elementlerinin (79-81 ve 81-83) parçaları K0-elementini oluşturmaz,

K0 elemanı 6-10 ile aynıdır ve VKQ seviye 0 fonksiyonu bir devam işareti oluşturmaz

video. L elemanlarının sırası dijital düz bir bölümü (6-79) gösterir. Program, b-element 80-82'den başlayarak hücum bölümünün atanmasına başlar.

B. Visnovki

1. Yeni Algoritma Vidіlennya Vidrizkiv doğrudan Zyeni devrelerinde Realizati programının algoritmaya önemsiz olmayan bir programı değil, yaki -rhizk sonrası kontur -yak'ın rospіznovannaya'sının reddedilmesine izin veriyor.

2. Nesne yönelimli programlamanın mevcut özelliklerine dayalı olarak videoconan görüntüsünün dış hatlarında kırpılmaları doğrudan görmeye yönelik algoritmanın yazılım uygulaması; bu, kırpılan görüntünün boyutuna maksimum korumada belirgin sınırlar getirilmemesini mümkün kıldı donmuş bir bilgisayarın kaynakları.

3. Önerilen algoritmaya ve yazılım uygulamasına dayanarak, teorik çözümler türetildi ve dijital eğri yaylarının tanınması ve ikili görüntülerin konturunun dijital düz çizgiler ve dijital eğri yayları bölümüne bölünmesi üzerine deneyler yapıldı x .

REFERANSLAR

1. Kovalevsky V.A. Dijital Düz Segmentlerin Ekonomik Görüntü Kodlamaya Uygulamaları, 7. Uluslararası Çalıştay Bildirilerinde, DGCI "97, Montpellier. - Fransa, 1997. - 3-5 Aralık. - S. 51-62.

2. Kalmikov V.G. İkili görüntülerin dış hatlarındaki dijital çizgi bölümlerinin tanınmasını tanımlamak için yapısal bir yöntem // Parça zekası. - 2002. - No. 4. - S. 450-457.

3. Kalmikov V.G., Vishnevsky V.V. İkili görüntülerde nesne konturlarının analizi // Matematiksel Makine ve Sistem Sorunları Enstitüsü. - 1997. - No. 2. - S. 68 - 71.

4. Kalmikov V.G. Dijital eğrinin yayı anlamdır ve! Zastosuvannya // Sinyallerin toplanması ve kaydedilmesi ve görüntülerin tanınması. Bu Tüm-Ukrayna Uluslararası Konferansının Tutanakları. - Kiev. - 2004. - 11 - 15 zhovten.

Problem cümlesi Yöntem, olanaklar ve uygulamaya göre belirlenir.

Meta. Düz şekilli parçaları net ve kusurlu olarak sınıflandırmak için bir program geliştirin.

Hedefin uygulanması için olanaklar Bilgisayarın yeteneklerine göre belirlenir. Bilgisayar sayısal bilgileri algoritmik bir sırayla işleyecek şekilde tasarlanmıştır. Bir bilgisayarın yeteneklerini gerçekleştirmek için çözülen problemin modellenmesi gerekir.

Bir bilgisayardan modelleme, gerçek bir nesneden (dünya), onun üzerindeki ek veriler ve işlemler için güçlerinin kodlanmış bir açıklamasına geçişi içerebilir. Kural olarak böyle bir geçiş birkaç aşamadan oluşur:

soyutlama- görev açısından nesnenin en yüksek değer işaretinin seçilmesi.

Tüm uygulamaları verilen göreve göre ekleyerek modelleme nesnesinden modelleme konusuna geçmenizi sağlayacak araştırmaların yapılması gerekir.

Ortokütanöz türlerin diğer kesici türlerden farkı nedir?

  • Karşı tarafların kıskançlığı.
  • Zıt tarafların paralelliği.
  • Köşegenlerin eşitliği.
  • Her şey düz.

Kesin bir onay için gereken minimum işaret nedir?

  • 2 tarafın düzgünlüğü + köşegenlerin düzgünlüğü.
  • 2 kenarın paralelliği + eşit köşegenler.
  • Üç düz mil.

Tüm soyutlamalar sözlü bilgi modelini ortadan kaldırdı. Ale, bilgisayar için hâlâ çok genç. Bu, görsel olarak bir algoritmaya sunulan ve programlı olarak uygulanan bir matematiksel model anlamına gelir.

Görevi uygulama metodolojisi.

AutoCAD grafik sisteminde kesimlerden (LINE komutu) net bir parça (düz kesici) veya kusurlu bir parça (düz kesici) birleştirilerek dışa aktarılır. kntrs.lsp () programı, bir DXF dosyasından dilimler (köşe koordinatları) hakkındaki verileri okur ve bunları köşe noktalarını geçerek dairesel bir sırayla vrtks.txt metin dosyasına yazar.

Vrtks.txt metin dosyası, sandalyenin merkezi olmayan köşelerin koordinatları alınarak manuel olarak oluşturulabilir.

Genişletilmiş rct.lsp programı, vrtks.txt dosyasındaki verileri okumaktan, analiz etmekten ve parçanın vimoglardaki (doğrudan kesici veya her neyse) görünümü hakkında result.txt dosyasında bir kayıt çıktısı almaktan sorumludur.

resmileştirme işareti

Deri dilimleri arasındaki fark (kenarlar veya çaprazlar): Deri dilimi oranı, dilimlerin koordinatlarındaki fark yoluyla rektum kutanöz hipotenüsü olarak hesaplanır (Pisagor teoremine göre):

(Setq DX12 (abs (- X1 X2))) (setq DY12 (abs (- Y1 Y2))) (setq DA1 (sqrt (+ (* DX12 DX12) (* DY12 DY12))))

Doğruların paralelliği: K2 = K1, de Önce- doğrudan kesme katsayısı K = (Y2-Y1) / (X2-X1)

“Düz Kesim” kavramı nasıl resmileştirilir? Eldeki görev çerçevesinde, bir "Doğrudan Kesim"in varlığı, kesimlerin diklik işareti ile belirlenebilir: K2 = -1 / K1, de Önce- kesme katsayısı doğrudandır. K = (Y-Y0) / (X-X0).

Modelin bilgisayarda görüntülenmesi

Makine İçi modelde uç kesedeki her türlü bilgi çift sayılar (kodlar) kullanılarak bilgisayarda görüntülenir. Daha önce kodlama bir programcı tarafından yapılıyordu. Günümüzde programın ana kısmı algoritmik diller üzerine oluşturulmuştur.

Görüntü Tanıma'nın temelleri hakkında uzun bir makale yazmak istiyordum; bunları bir araya getirdiğinizde, akşamları dizlerinizin üzerinde ne tür bir koku alabileceğinizi ve bu kokunun ne olduğunu ortaya koyan temel yöntemlere yönelik bir rehber. 20 yaşında komuta edenleri endişelendirmeden düşünmemek daha iyi.

Uzun zamandır Optik Tanıma üzerine makaleler yazıyorum, bu nedenle ayda birkaç kez farklı kişiler bana bu konu hakkında yazıyor. Bazen onlarla farklı dünyalarda yaşıyormuşsunuz gibi geliyor. Bir yandan, insanların bu konuda fazlasıyla profesyonel olduklarını ancak optik tanıma yöntemleri hakkında çok az şey bildiklerini anlıyorsunuz. Ve en önemlisi, yöntemi yakındaki bilgi alanlarından uzaklaştırma eğilimindedir ki bu mantıklıdır, ancak Görüntü Tanıma'da gerçekten işe yaramıyor ve mantıklı değil ve tanımaya başladığınızda güçlü bir şekilde yansıyor -değil sadece en temelden. Ve doktorlar için temel bilgileri öğrenmek çok fazla zaman alıyor ki bu da çoğu zaman yetersiz kalıyor ve bu durum daha da çılgın bir hal alıyor.

Bu makale, görüntü tanıma yöntemleriyle daha önce hiç uğraşmamış kişilerin, 10-15 hafta boyunca kafalarında dünyanın temel bir resmini, benzer bir konuyu oluşturup, daha fazla derine inmeden anlayabilmeleri için tasarlandı. . Radar ve ses örnekleme dahil olmak üzere burada açıklanan birçok yöntem vardır.
Potansiyel borç verenler veya Optik Tanıma yapmaya başlamak isteyenler için yakında tanımaya başlayacağımız birkaç prensiple başlayayım:

  • Büyük bir görevle karşı karşıya kaldığınızda her zaman en basitine yönelin. Bir kişiye turuncu bir etiket asmak ve onu gören kişiyi basamaklar halinde takip etmek çok daha kolaydır. Çok çeşitli bileşenlere sahip bir kamerayı alıp ardından süper çözünürlüklü bir algoritma geliştirmek çok daha kolaydır.
  • Suvora'ya göre, optik tanıma yöntemlerinde problemin formülasyonu çok daha önemli, sistem programlama problemlerinde ise daha az önem taşıyor: teknik spesifikasyondaki bir kelime işin %50'sini ekleyebilir.
  • Tanıma görevlerinin evrensel çözümleri yoktur. Basitçe “herhangi bir yazıyı tanıyacak” bir algoritma geliştirmek mümkün değildir. Sokaktaki bir tabela ile bir metin sayfası temelde farklı nesnelerdir. Elbette gizli bir algoritma geliştirebilirsiniz (Google'dan güzel bir örnek), ancak harika bir ekibin harika işbirlikçilerinin yardımıyla ve onlarca farklı alt programdan oluşur.
  • OpenCV, içinde pek çok yöntemin yer aldığı bir kitaptır ve bunun ötesinde toplam maliyetin %50'sini alabilirsiniz, ancak OpenCV gerçekte kazanabileceğinizin yalnızca küçük bir kısmıdır. Bir raporda şöyle yazıyordu: "Sorun OpenCV yöntemleri kullanılarak yaratılmadı, dolayısıyla çözülemez." Bunu benzersiz bir şekilde yapmaya çalışın, tembel olmayın ve OpenCV şablonuyla uğraşmadan, her seferinde tam görevi sıfırdan kapsamlı bir şekilde değerlendirin.
Herhangi bir evrensel çözüm sunmak ya da bilgisayar gözünün ihtiyaçlarını karşılayacak kararların alınmasını mümkün kılacak böyle bir yapının nasıl oluşturulacağını bilmek çok zordur. Bu yazılar neyin vikorlaştırılabileceğinin yapılandırılmasında metadır. Bu yöntemleri üç gruba ayırmaya çalışacağım. Birinci grup, ileri filtreleme ve görüntü hazırlama anlamına gelir. Diğer grup ise filtreleme sonuçlarının mantıksal olarak işlenmesidir. Üçüncü grup ise mantıksal işleme dayalı kararlar veren algoritmalardan oluşmaktadır. Gruplar arasında daha da akıllılar. Başarılı bir görev için her zaman tüm grupların yöntemlerini birleştirmek gerekli değildir; bazen iki tane yeterli olur, bazen de sadece bir tane.

Buradaki rehberlik yöntemlerinin listesi tam değildir. Yorumlarda yazmadığım kritik yöntemleri eklemeyi ve her kişiye 2-3 doğaüstü kelime atamayı öneriyorum.

Bölüm 1. Filtrasyon

Bu grupta görsellerde temizlenen alanları analiz etmeden görebilmenizi sağlayacak yöntemlere yer verdim. Bu yöntemlerin çoğu, görüntünün tüm noktalarına tek bir efekt uyguladığı için durgunlaşır. Filtreleme aşamasında görüntü analizi yapılmaz ancak filtrelemeye tabi tutulan noktalar özel niteliklere sahip alanlar olarak görülebilir.
Eşiğe göre ikilileştirme, histogramlara göre alan seçimi
En basit dönüşüm, eşiğe göre görüntünün ikilileştirilmesidir. RGB görüntüler ve gri tonlamalı görüntüler için eşik, renk değeriyle aynıdır. Böyle bir dönüşüme uyum sağlayabilecek ideal işler ortaya çıkıyor. Örneğin nesneleri beyaz bir kağıt üzerinde otomatik olarak görmeniz gerekir:




İkilileştirmenin gerçekleşeceği eşiğin seçimi, ikilileştirme sürecinin kendisiyle büyük ölçüde ilgilidir. Bu durumda görüntüler orta rengin arkasında ikilileştirildi. İkilileştirme, eşiği uyarlanabilir şekilde seçen ek bir algoritmaya dayanır. Bu algoritma matematiksel beklentileri veya modları seçmek için kullanılabilir. Histogramları kullanarak en yüksek zirveyi seçebilirsiniz.

İkilileştirme, histogramlarla çalışırken, görüntüleri RGB'de değil HSV'de görüntülediğimiz durumlar da dahil olmak üzere daha da iyi sonuçlar verebilir. Örneğin segment ve pençe renkleri. Bu prensibe dayanarak hem işaret dedektörünü hem de insan derisi dedektörünü kullanabilirsiniz.
Klasik filtreleme: Fourier, alçak geçişli filtre, yüksek geçişli filtre
Radardan filtreleme ve sinyal işlemeye yönelik klasik yöntemler, kişisel olmayan Örüntü Tanıma görevinde başarıyla uygulanabilir. Saf görüntülerde görünmeyebilen geleneksel bir radar yöntemi Fourier dönüşümüdür (daha spesifik olarak FFT). Four'un tek boyutlu dönüşümünün meydana geldiği birkaç sorundan biri görüntü sıkıştırmadır. Tek boyutlu bir dönüşümün görüntüsünü analiz etmek için daha fazla kaynak yoğun iki boyutlu dönüşümlerin kullanılması gerekli değildir.

Çok az insan gerçekten karşılığını alır, bu nedenle önceden hazırlanmış, yüksek (HPF) veya düşük (LPF) frekanslarda keskinleştirilmiş bir filtre kullanmak daha iyi ve daha kolaydır. Bu yöntem elbette spektrum analizine izin vermez, aksi takdirde belirli bir video gözetim görevinde ihtiyaç duyulan analiz değil sonuçtur.


Filtrelerin en basit uygulamaları, düşük frekansları (Gauss filtresi) ve yüksek frekansları (Gabor filtresi) geliştiren uygulamalardır.
Görüntünün dış görünüm noktası için bir pencere seçilir ve aynı boyuttaki bir filtreyle çarpılır. Böyle bir tepenin sonucu, noktanın yeni bir anlamıdır. Alçak geçişli filtre ve yüksek geçişli filtre uygulandığında çıktı görüntüsü aşağıdaki türde olacaktır:



dalgacık
Sinyalli bir sinyal için karakteristik bir fonksiyonu kullanmanın en iyi yolu nedir? Buna “Dalgacıkların yeniden keşfi” adı verilecek. Dalgacıkların bu değeri doğru değildir, ancak geleneksel olarak birçok komutta dalgacık analizine, deseninin modeli olan bir kümenin yardımıyla görüntüde uygun bir desenin aranması denir. Dalgacık analizinde kullanılan bir dizi klasik fonksiyon vardır. Onlardan önce Haar dalgacığı, Morley dalgacığı, Meksika capeluch dalgacığı vb. duyulabilir. Lütfen, geçmiş makalelerimin (,) iki boyutlu bir uzay için bu tür işlevlerle ilgili olduğu Haar'a dikkat edin.


Genel olarak klasik dalgacıkların 4 ucu uygulanmıştır. 3 boyutlu Haar dalgacığı, 2 boyutlu Meyer dalgacığı, Meksika Kapelyukh dalgacığı, Daubechies dalgacığı. Dalgacıkların genişletilmiş yorumuna iyi bir örnek, dalgacıkların kendisi olduğu, ots'ta bir dalgacık arayışıdır:

Klasik dalgacıklar görüntünün sıkıştırılması veya sınıflandırılması için kullanılır (aşağıda açıklanacaktır).
korelasyon
Dalgacıkların bu kadar net bir şekilde yorumlanmasından sonra, bunların altında yatan korelasyonu tahmin etmek artık mümkün. Filtreleme yaparken görüntü vazgeçilmez bir araçtır. Klasik yaklaşım, hasarı veya optik akışları tespit etmek için video akışının korelasyonudur. En basit dedektör duyusal bağdaştırıcıdır. Görüntünün hiçbir tasviri yok - falan filan.

filtreleme fonksiyonu
Bu filtre sınıfı filtreleme işlevidir. Bunlar, görüntü üzerinde basit bir matematiksel işlevi (direkt, parabol, daire) ortaya çıkarmanıza olanak tanıyan tamamen matematiksel filtrelerdir. Çıktı görüntüsünün dış görünüm noktasının kişisel olmayan bir işlevle işaretleneceği birikmiş görüntüler olacaktır ve bu da sonuçlanacaktır. En klasik yeniden yorumlama, Hough'un düz çizgiler için yeniden yorumlamasıdır. Dış yüzey noktası (x; y) yeniden yaratıldığında, yüzsüz bir nokta (a; b) düz olarak y = ax + b çizilir; bu durum için de geçerlidir. Güzel resimlerle ortaya çıkın:


(Görseldeki yaklaşımı ilk öğrenen ve açıklayan kişinin ilk artısı, burada tasvir edileni ilk söyleyenin diğer artısı)
Hough'un yeniden tasarımı, parametrelendirilebilir herhangi bir fonksiyonu bulmanızı sağlar. Örneğin daireler. Ve değişiklik değiştirildi, bu da herhangi bir rakam hakkında şaka yapmanıza olanak tanıyor. Bu dönüşüm matematikçiler için sevilmeyecek kadar korkutucudur. Örnekleme sırasında eksen gösteriliyorsa uzun süre çalışmaması üzücü. Robotun hızı çok yüksek, ikilileştirme keskinliğine duyarlılığı çok yüksek. Ancak ideal durumlarda diğer yöntemleri kullanmayı tercih ederim.
Düz çizgiler için Hough'un yeniden yaratılmasının benzeri, Radon'un yeniden yaratılmasıdır. Puanın çok zengin olması durumunda üretkenlikte kazanç sağlayan FFT üzerinden hesaplanır. O zamana kadar, ikili hale getirilmeyene kadar görüntüleri vikorize edebilirsiniz.
filtreleme devreleri
Bir sonraki filtre sınıfı kordonların ve konturların filtrelenmesidir. Görüntülerle çalışmaktan görüntüdeki nesnelerle çalışmaya geçmek istiyorsak konturlar bile kahverengidir. Nesne katlanabilirse ancak açıkça görülebiliyorsa, genellikle onunla çalışmanın tek yolu dış hatlarını görmektir. Konturları filtreleme problemini çözen bir dizi algoritma vardır:

Çoğu zaman, iyi çalışan ve bunu OpenCV'de uygulayan Kenny'nin kendisi galip gelir (Sobel de oradadır, ancak konturları daha iyi arar).



Diğer filtreler
Filtreler en üste yerleştirilir ve bunların modifikasyonları siparişin% 80-90'ına ulaşılmasına yardımcı olur. Bunlara ek olarak yerel ayarlarda kullanılan daha nadir filtreler de vardır. Bu tür onlarca filtre var, hepsini listelemeyeceğim. Bunlar yinelemeli filtreleri (örneğin, mevcut görünümün aktif modeli) yanı sıra klasik dalgacık filtreleme ve radon dönüşümü alanındaki analizin bir kombinasyonu olan sırt ve eğriliğin kendisini içerir. Işıncık dönüşümü, dalgacık dönüşümü ve mantıksal analiz kordonu üzerinde harika bir şekilde çalışarak konturları görmenize olanak tanır:

Ancak dönüşümler nadir durumlarda daha da spesifik ve keskindir.

Bölüm 2. Filtreleme sonuçlarının mantıksal işlenmesi

Filtreleme, işlemeyle ilgili bir dizi veri sağlar. Ancak çoğu zaman bu verileri işlemeden alıp yorumlayabilirsiniz. Bu bölümde görüntüden nesnelerin gücüne veya nesnelerin kendisine gitmenizi sağlayacak bir dizi klasik yöntem bulunacaktır.
Morfoloji
Filtrelemeden mantığa geçiş bence matematiksel morfolojinin (,,) yöntemidir. Esas itibarıyla bunlar, ikili görüntülerin büyütülmesi ve silinmesiyle ilgili en basit işlemlerdir. Bu yöntemler, bariz öğeleri artırarak veya değiştirerek ikili bir görüntüdeki gürültüyü gidermenize olanak tanır. Matematiksel morfoloji temelinde kontur algoritmaları geliştirilebilir, ancak bazı hibrit algoritmaları veya algoritmaları birlikte keşfetmeniz gerekebilir.
kontur analizi
Filtreleme bölümü kordonların kaldırılmasına yönelik algoritmaları zaten çözmüştür. Sınırlar basitçe konturlara dönüştürülür. Kenney algoritması için bu otomatik olarak oluşturulur; diğer algoritmalar için ek ikilileştirme gereklidir. Örneğin böcek algoritmasını kullanarak ikili bir algoritma için bir kontur çizebilirsiniz.
Kontur, nesnenin benzersiz bir özelliğidir. Çoğu zaman bu, bir nesneyi dış hatlarına göre tanımlamanıza olanak tanır. Para kazanmanızı sağlayan güçlü bir matematik aparatı var. Cihaza kontur analizi (,) denir.

Dürüst olmak gerekirse, gerçek problemlerde kontur analizini durdurmak hiçbir zaman mümkün olmamıştır. İdeal beyinlere ihtiyacımız var. Kordon bulamazsanız çok fazla gürültü var demektir. İdeal zihinlerde tanımak gerekiyorsa o zaman kontur analizi harika bir seçenektir. Gerçekten iyi çalışıyor, matematiği harika ve mantığı açık.
özel noktalar
Belirli noktalar, bir nesnenin kendisiyle veya benzer nesne sınıflarıyla gruplandırılmasına olanak tanıyan benzersiz özellikleridir. Bu tür noktaları görmenin onlarca yolu var. Geçerli karelerdeki özel noktaları görmenin, örneğin uzun bir süre sonra ve ışıklandırmayı değiştirirken, nesne döndüğünde bu noktaları kaybeden özel noktaları bulmanızı sağlayan çeşitli yolları vardır. Pek stabil olmayan özel noktaları keşfetmenizi sağlayacak yöntemlere bir göz atalım, sonra hemen heyecanlanacaksınız, ardından karmaşıklığı artırmaya geçeceğiz:
Birinci sınıf. Saniyeler içinde sabit kalan noktaları seçin. Bu tür noktalar, nesneyi mevcut video kareleri arasında yönlendirmek veya mevcut kameralardan gelen görüntüleri görüntülemek için kullanılır. Bu tür noktalara görüntünün yerel maksimumlarını, görüntü üzerindeki noktaları (dedektörlerden en yakın olanı, belki de Charis dedektörü), maksimum dispersiyonun elde edildiği noktaları, gradyan çizgilerini vb. eklemek mümkündür.
Başka bir sınıf. Özellikle aydınlatmayı değiştirirken ve nesnedeki küçük değişikliklerde sabit kalan noktalar. Bu tür noktalar öncelikle nesne türlerinin ilk ve sonraki sınıflandırmasına hizmet eder. Örneğin, bir ayaklı sınıflandırıcı veya bireysel bir sınıflandırıcı, bu tür noktalarda oluşturulan bir sistemin ürünüdür. Daha önce tahmin edilen dalgacıklardan gelen eylemler bu tür noktaların temelini oluşturabilir. Örneğin, Haar'ı düşünün, vidblisk'leri arayın, diğer belirli işlevleri arayın. Bu tür noktalara ileri eğimlerin histogramı (HOG) kullanılarak bulunan noktalar dahildir.
Üçüncü sınıf. Kararlı noktalar. Sadece iki yöntemi, yeni stabilitenin nasıl sağlanacağını ve bunların modifikasyonlarını biliyorum. Bunlar SURF ve SIFT'tir. Görüntüyü döndürürken özel noktaları bulmanızı sağlarlar. Bu tür noktaların genişletilmesi diğer yöntemlere göre daha hızlı gerçekleşir ancak yalnızca bir saat sürer. Maalesef bu yöntemler patentlidir. Rusya'da düşük teknolojili algoritmaların patentini almak istiyorsanız, bundan iç pazar için kâr etmelisiniz.

Bölüm 3. Navchannya

İncelemenin üçüncü bölümü doğrudan görsellerle çalışmayan ancak karar verilmesine olanak sağlayan yöntemlere ayrılacak. Temelde makine öğrenimi ve karar vermenin ciddi yöntemleri var. Yandix yakın zamanda Habré hakkında bu konuyla ilgili bir kurs başlattı ve orada iyi bir seçim var. Eksen metin versiyonundadır. Bu konuya ciddi bir ilgi duyuyorsanız, onlara bizzat hayret etmenizi öneririm. Burada tanınan görüntülerde bir dizi temel zafer yöntemini adlandırmaya çalışacağım.
Durumların %80'inde görevin özü, mevcut durumu tanımaktır:
Є bir dizi nesne sınıfını içeren test seçimi. Fotoğraftaki kişilerin hiçbir belirginliği/görünüşü olmasın. Bir cilt görüntüsü için, Hara, HOG, SURF veya başka bir dalgacık olsun, işaret olarak görülen bir işareti yazarsınız. Algoritma başlangıçta yeni görüntüleri analiz edebilecek ve görüntüdeki nesnelere göre kararlar verebilecek böyle bir modelin oluşturulmasından sorumlu.
Nasıl korkmalıyız? Test görüntülerindeki dış görünüm, işaretin uzayındaki bir noktadır. Bunlar resimdeki deri işaretinin koordinatlarıdır. İşaretlerimiz olsun: “Gözlerin varlığı”, “Burnun varlığı”, “İki elin varlığı”, “Kulakların varlığı” vb… Bütün bu işaretler bize dedektörler aracılığıyla görülebilir, Vücudun insanlara benzer kısımlarında bulunurlar. Bu kadar geniş bir alandaki insanlar için bir nokta doğru olacaktır. Mavpi için ata bir puan. Sınıflandırıcı, uygulamaları seçtikten sonra başlar. Ancak fotoğrafların hepsinde eller görünmüyordu, diğerlerinde gözler yoktu ve üçüncüsünde sınıflandırıcı aracılığıyla bir insan burnu belirdi. İnsan sınıflandırıcının genişletilmiş işareti otomatik olarak şu şekilde parçaladığı: eğer ilk işaret 0,5 aralığındaysa Temelde meta sınıflandırıcı, sınıflandırma nesnelerinin karakteristik özelliği olan alanın işaretini uzaya çizmektir. Eksen, iki boyutlu uzayda sınıflandırıcılardan birinin (AdaBoost) çizgisine ardışık yakınlığı gibi görünecektir:


Zaten çok sayıda sınıflandırıcı var. Derileri kendi görevinde en iyi şekilde çalışır. Belirli bir görev için sınıflandırıcı seçme görevinin içinde pek çok sihir vardır. Konuyla ilgili birkaç güzel fotoğrafın aksı.
Basit bölüm, tek dünyevi başarısızlık
En basit sınıflandırma türüne bakalım, işaretleri tek boyutlu olarak genişletirsek, 2. sınıfı ayırmamız gerekir. Durum, hayal edebileceğinizden daha sık kötüleşir: örneğin, iki sinyali ayırmanız veya bir modeli bir sinyalle hizalamanız gerektiğinde. İlk seçimimizi yapalım. Bu gerçekleştiğinde görüntüler X ekseni boyunca benzer, Y ekseni boyunca benzerlik ise benzer olacaktır. Kendinize benzer bir nesne bulursanız sol Gauss görünür. Benzer değilse haklısın. X = 0,4 değeri örnekleri ayırır, böylece orta düzey bir çözüm yanlış karar verme olasılığını en aza indirir. Böyle bir ayırıcının sesi sınıflandırmanın temelini oluşturur.


Küçük bir açıklama. Optimal kriterin cezayı en aza indiren kriter olacağı kesin olmaktan uzaktır. Yaklaşan grafik, gökkuşağı kabuğunun gerçek tanıma sisteminin bir grafiğidir. Böyle bir sistem için kriter, üçüncü bir tarafın tesise girmesine izin verilme olasılığını en aza indirecek şekilde seçilir. Bu tür kaygılara “birinci tür af”, “bağışlanma kaygısı”, “merhamet dileme” denir. İngiliz literatüründe “Yanlış Erişim Oranı”.
) AdaBusta en geniş sınıflandırıcılardan biridir. Örneğin, Haar'ın kendi başına dürtü çağlayanı. İkili bir sınıflandırmaya ihtiyacınız varsa vicoristleri arayın, aksi takdirde daha fazla sayıda sınıf hakkında bilgi edinmenin hiçbir önemi yoktur.
SVM (,,,) Uygulanması en zor sınıflandırıcılardan biridir. Prensip olarak öğrendiğim görevleri adabustaya benzer şekilde uyguladım. Çalışmanızı sıvılarla bitirmek önemlidir ancak doğru çekirdeği seçmeniz gerekecektir.

Ayrıca sinirsel ölçümler ve regresyonlar da vardır. Bunları kısaca sınıflandırmak ve nasıl koktuklarını göstermek için çok daha geniş bir yazıya ihtiyaç var.
________________________________________________
Umarım matematik ve açıklamalara takılıp kalmadan araştırma yöntemlerine hızlıca göz atabilmişimdir. Belki birine yardım edebilirim. Her ne kadar elbette makale tamamlanmadı ve stereo görüntülemeli robot, Kalman filtreli LSM veya uyarlanabilir Bayesian yaklaşımları hakkında tek bir kelime söylemiyor.
Durum doğruysa ImageRecognition'ın ana görevlerinin nasıl çalıştığına dair çeşitli uygulamalarla başka bir bölüm oluşturmaya çalışacağım.

І kalıntılara

Ne okunmalı?
1) B. Yani'nin “Dijital Görüntü İşleme” kitabını çok beğendim, çünkü basit ve anlaşılır bir şekilde yazılmış ama aynı zamanda ona tüm matematik tanıtıldı. Diğer yöntemleri tanımak için iyi.
2) Klasik tür є R. Gonzalez, R. Woods “Dijital görüntü işleme.” Gittikçe daha iyi hissettiğimi hissediyorum. Çok daha az matematik, ancak daha fazla yöntem ve resim.
3) “Bilgisayarlı görme problemlerinde tasvir edilen işleme ve analiz” - fiziksel teknoloji bölümlerinden birinde verilen bir ders esas alınarak yazılmıştır. Bir çok yöntemi ve bunların raporunu anlatacağım. Ancak bana göre kitabın iki büyük dezavantajı var: Kitap güçlü bir şekilde birlikte gelen yazılım paketine odaklanmış; kitapta basit bir yöntemin tanımı çoğu zaman matematiksel ağlara dönüştürülmüş, bu da çizimi zorlaştırıyor. yöntemin yapısal diyagramı. Daha sonra yazarlar tüm dünyanın sunulduğu kullanışlı bir web sitesi oluşturdular - wiki.technicalvision.ru
4) İyi bir kitabın, Jeff Hawkins'in Görüntü Tanıma ve Makine Öğrenimi - "Zeka Hakkında" çalışmalarından kaynaklanan bir yapıya ve dünya resmine sahip olduğunu düşünüyorum. Burada doğrudan yöntemler yoktur, ancak üzerinde düşünülmesi gereken çok sayıda fikir vardır, bu nedenle doğrudan işleme yöntemleri mevcuttur. Okursanız, özellikle video işleme görevlerinde insan beynini çalıştırmanın yöntemlerini zaten öğrendiğinizi anlayacaksınız.

Ne zaman iki dünyalı bir görüntüde önemsiz bir sahne görsek (bir resimde, bir fotoğrafta, bir monitör ekranında), bize öyle geliyor ki, görebildiğimiz tüm nesneler, sanki apaçık ortadaymış gibi, orada mevcutlar, onlar o sahneyi getirmişler. hayata aynı sahne. Zamanlama, bize iki boyutlu bir görüntü olarak gerçekten verilen her şey, bu görünür alan, Deyaku nedir parlaklık bölümünün işlevi ya da başka renk iki boyutlu bir düzlemde: F(X, sen) , de Xі sen- Görüntünün alanını tanımlayan kartezyen koordinatlar.

Üstelik, bir bilgisayar monitörünün ekranına yaklaştığınızda, ekrandaki görüntülerin gerçekte düzgün ve kesintisiz olmadığını, sizin görünüşünüze göre düzenlenmiş birkaç renkli dikdörtgenden oluşan ayrı bir "mozaik" olduğunu görebilirsiniz. düzenli dikdörtgen bir matriste. Bunlar dijital görüntüler. Matematiksel açıdan dijital görüntüleme iki boyutlu bir matristir (DimXDimY), burada x, matris satırındaki öğenin sayısını tanımlayan 0'dan DimX-1'e kadar bir sayıdır; y, 0'dan DimY-1'e kadar bir sayıdır; Danimarka öğesinin bulunduğu matris satırının sayısını açıklar. Bu nedenle, dijital görüntünün kendisinin elemanına (dikdörtgen matrisin ortası) denir. piksel(Piksel, resim öğesi). En basit biçimde, cilt pikseli, parlaklık bölümü fonksiyonunun değeriyle orantılı bir skaler tamsayı değerine sahiptir. F(X, sen) bölgenin bu noktasında.

İncirde. Şekil 1.1.1, bir görüntü olarak sunulan bir kadın vücudunun görüntüsünü göstermektedir ve sağ tarafta aynı kişinin (sağ göz) görüntüsünün büyütülmüş bir parçası bulunmaktadır; burada görüntünün cilt unsuru için karşılık gelen sayısal değer bulunmaktadır. piksel değeri belirtilir. Görüntüdeki ışık öğeleri şunları gösterir: hakkında daha büyük matris değerleri, koyu olanlar - daha küçük değerler. Dijital görüntülerden başka hiçbir bilgiyi çıkarmayın.

@Mal. 1.1.1 İki boyutlu yoğunluk matrisi olarak dijital görüntüler

Bilgisayar görüntülemeyi kullanmaya başladığınızda, bilgisayarda, dijital görüntünün çekirdeğinde, yalnızca şu veya bu formatta iki boyutlu bir sayı dizisinin kaydedildiğini açıkça anlamak gerekir. Görüntüden çıkarmak istediğimiz diğer veriler (şekiller, çizgiler, nesneler, boyutlar, görüntülenen metnin değiştirilmesi vb.), görüntü analizinde uyguladığımız bir dizi işleme prosedürünün sonucunda kaldırılabilir. ya kendimiz programlamalıyız ya da görüntü analizi için popüler yazılım paketlerinde bulunan hazır prosedürleri kullanmalıyız. Bilgisayarla görmenin en basit görevleri için standart görüntü işleme prosedürleri kütüphanelerinde hazır yöntemler bulunabilir; en karmaşık görevler için bunları ve diğer hazır prosedürleri ve zengin olanlar için birleştirmek gerekli olacaktır. İnsanların "biyolojik" dünyaları olan "çay çağır" komutları, kolay ve verimli çalışıyor gibi görünüyor, bilgisayar makinesinin hala bir çözümü yok ve hala bu konuda şaka yapmaya devam ediyor. İnsanlar doğal görünümleriyle bile her durumda kolaylıkla yön bulabilir, nesneleri tanıyabilir, rota seçebilir, araba kullanabilir ve çok daha fazlasını yapabilirler. Video kameradan görüntü çeken bir bilgisayar neden her şeyi yapamıyor? Belki insan gözünün budovasında sağdaki buti?

Aslında insan gözü, tıpkı bir video kamera gibi, dijital görüntüye benzer şekilde yalnızca “görünür bir alan” oluşturur. Bu durumda, bir mercek ve bir kristalden oluşan optik sistem, iki boyutlu görüntüleri gözün retinasına yansıtır; burada ışığa duyarlı hücreler ("çubuklar" ve "koniler"), görüntüleri sinir uyarılarına dönüştürür. Ve sonra, beynimizin ilgili bölümünde çalışan, çıkarılan bilgiyi işlemeye yönelik karmaşık mekanizma, bu dürtüleri bize sunulan görünür sahnenin görüntüsü olarak yorumlar. Böylece insanlarda “pil”in işlevi yalnızca gözler tarafından değil, “gözler + beyin” (“sensör + bilgisayar”) sistemi tarafından da belirlenir. Beynin içine yerleştirilmiş olan bilgiyi işlemeye yönelik algoritmalar, insanların anlamaları gerekenleri anlamalarını sağlar. Uygulanan bu algoritmaların rolü pratik terimlerle açıklanabilir.

20. yüzyılın ortalarında oftalmoloji cerrahları gözün kristali üzerinde ameliyatlar yapmaya başladığında, pek çok kör insan görme kazanmaya yönelik teknik yeteneğe sahip olmaya başladı. Daha sonra önceden kör olan bir kişide böyle bir operasyon sonrasında (ışık sadece kristalden geçmiyordu) ağ üzerindeki görüntüler şekillenmeye ve dış sinyaller tam olarak aynı şekilde beyine girmeye başladı. sağlıklı insanlarda. Maalesef bu durumda "pobachit svіt", "bachiti'yi başlat" anlamına gelmiyordu. Tarihin gösterdiği gibi, "teknik açıdan aydınlanmış" yetişkin hastaların çoğu, basit geometrik şekilleri tanımak dışında, görme alanında daha kapsamlı sonuçlar elde edememiştir - ve gerçek budur. Bu, aralarında ciddi, bilgili bir koşuşturmacayı ortaya çıkarmıştır. İnsanları görünüşlerinden tanımak ve uzayda gezinmek onlar için çok fazla bir görev haline geldi. Sağda, erken çocukluk döneminde insanlarda gelişen "otomatik" görsel analiz mekanizmaları, bu hastaların hemen suçlu olmadığı ve görüntüleri tanıtmak için bir cihaza sahip olmayan bir bilgisayar konumunda göründükleri, ancak orada Bu analiz için yazılıma gerek yoktur.

İki boyutlu sayısal veriler dizisi olan önümüzde duran görüntüyü analiz etme görevinin karmaşıklığını tam olarak anlamak için soyut sayıların hemen yanına bir bilgisayar programı yerleştirmeye çalışacağız. Bu nedenle görüntünün algılanma yöntemini değiştiriyoruz - onu görsel alandan dokunsal alana aktarıyoruz. Boyutu görüntünün boyutuyla orantılı olan (DimXDimY) bir dama tahtası gibi iki boyutlu bir yoğunluk değerleri dizisi açıkça vardır ve derinin ortasına bir durdurucu yerleştirilmiştir, yüksekliği bu, Excel görüntüsünün türündeki değerle orantılıdır. Başka bir deyişle, iki dünya imajına sanki üç dünya zihinsel yüzeyindeymiş gibi bakalım. İncirde. 1.1.2'de solda bir kadının bir görüntü olarak kanıt olarak kullandığı kılığın bir parçası, sağda ise sözde önemsiz bir rölyef olarak görüntü yer alıyor.

@Mal. 1.1.2. Sahte üç boyutlu kabartma olarak dijital görüntüler

Artık görüntülere hayran kalmamak, görüntünüzle tutarlı bir “kabartma” çizmenin sizin sorumluluğunuz olduğunu anlayın ve bu “rölyef”in neyi temsil ettiğini belirlemeye çalışın; bir kutu mu, bir köpek mi yoksa bir insan gözü mü? Deneylerin gösterdiği gibi, ortalama bir insan bu tür görevleri yerine getirecek konumda değildir. Böyle bir "kabartma" sunumunda basit geometrik şekillerin tanınması, önemli çabalar gerektirecek ve kaplama için özel becerilerin, stratejilerin ve algoritmaların açık bir şekilde geliştirilmesini gerektirecektir. Bu nedenle, “dijital görüntü” nesnesinin bariz basitliğinden bağımsız olarak, bilgisayar ve makine görüşünün görevi karmaşıktır.