OpenCV - Genel Bakış

OpenCV, gerçek zamanlı olarak geliştirebileceğimiz bir çapraz platform kitaplığıdır. computer vision applications. Esas olarak görüntü işleme, video yakalama ve yüz algılama ve nesne algılama gibi özellikleri içeren analizlere odaklanır.

"Bilgisayarla Görme" terimini tanımlayarak bölüme başlayalım.

Bilgisayar görüşü

Computer Vision, sahnede bulunan yapının özellikleri açısından bir 3D sahnenin 2D görüntülerinden nasıl yeniden yapılandırılacağını, kesileceğini ve anlaşılacağını açıklayan bir disiplin olarak tanımlanabilir. Bilgisayar yazılımı ve donanımı kullanarak insan vizyonunun modellenmesi ve kopyalanmasıyla ilgilenir.

Computer Vision, aşağıdaki alanlarla önemli ölçüde örtüşmektedir -

  • Image Processing - Görüntü işlemeye odaklanır.

  • Pattern Recognition - Kalıpları sınıflandırmak için çeşitli teknikleri açıklar.

  • Photogrammetry - Görüntülerden doğru ölçümler elde etmekle ilgilenir.

Computer Vision Vs Görüntü İşleme

Image processinggörüntüden görüntüye dönüştürme ile ilgilenir. Görüntü işlemenin girişi ve çıkışı her iki görüntüdür.

Computer visionfiziksel nesnelerin görüntülerinden açık, anlamlı tanımlarının oluşturulmasıdır. Bilgisayarla görmenin çıktısı, 3B sahnedeki yapıların açıklaması veya yorumudur.

Bilgisayarla Görme Uygulamaları

Burada, Computer Vision'ın yoğun olarak kullanıldığı bazı ana alanları listeledik.

Robotik Uygulaması

  • Yerelleştirme - Robot konumunu otomatik olarak belirleyin

  • Navigation

  • Engellerden kaçınma

  • Montaj (delik içi, kaynak, boyama)

  • Manipülasyon (örneğin PUMA robot manipülatörü)

  • İnsan Robot Etkileşimi (HRI) - İnsanlarla etkileşim kurmak ve insanlara hizmet etmek için akıllı robotik

İlaç Başvurusu

  • Sınıflandırma ve tespit (örn. Lezyon veya hücre sınıflandırması ve tümör tespiti)
  • 2D / 3D segmentasyon
  • 3D insan organı rekonstrüksiyonu (MRI veya ultrason)
  • Görme güdümlü robotik cerrahi

Endüstriyel Otomasyon Uygulaması

  • Endüstriyel muayene (kusur tespiti)
  • Assembly
  • Barkod ve paket etiketi okuma
  • Nesne sıralama
  • Belgenin anlaşılması (örneğin OCR)

Güvenlik Uygulaması

  • Biyometri (iris, parmak izi, yüz tanıma)

  • Gözetim - Belirli şüpheli etkinlikleri veya davranışları tespit etme

Ulaşım Uygulaması

  • Otonom araç
  • Güvenlik, örneğin sürücü dikkat izleme

OpenCV Kitaplığının Özellikleri

OpenCV kitaplığını kullanarak şunları yapabilirsiniz:

  • Görselleri okuyun ve yazın

  • Videoları yakalayın ve kaydedin

  • Görüntüleri işleme (filtre, dönüştürme)

  • Özellik algılama gerçekleştirin

  • Videolar veya görüntülerdeki yüzler, gözler, arabalar gibi belirli nesneleri tespit edin.

  • Videoyu analiz edin, yani içindeki hareketi tahmin edin, arka planı çıkarın ve içindeki nesneleri izleyin.

OpenCV orijinal olarak C ++ ile geliştirilmiştir. Buna ek olarak Python ve Java bağlantıları sağlandı. OpenCV, windows, Linux, OSx, FreeBSD, Net BSD, Open BSD, vb. Gibi çeşitli İşletim Sistemlerinde çalışır.

Bu eğitici, Java bağlamalarını kullanan örneklerle OpenCV kavramlarını açıklar.

OpenCV Kütüphane Modülleri

OpenCV kütüphanesinin ana kütüphane modülleri aşağıdadır.

Temel İşlevsellik

Bu modül, OpenCV uygulamaları oluşturmak için kullanılan Skalar, Point, Range vb. Gibi temel veri yapılarını kapsar. Bunlara ek olarak, çok boyutlu diziyi de içerir.Mat, görüntüleri saklamak için kullanılır. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.core.

Görüntü işleme

Bu modül, görüntü filtreleme, geometrik görüntü dönüştürmeleri, renk alanı dönüştürme, histogramlar vb. Gibi çeşitli görüntü işleme işlemlerini kapsar. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır. org.opencv.imgproc.

Video

Bu modül, hareket tahmini, arka plan çıkarma ve nesne izleme gibi video analizi kavramlarını kapsar. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.video.

Video G / Ç

Bu modül, OpenCV kitaplığını kullanarak video yakalama ve video codec bileşenlerini açıklar. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.videoio.

calib3d

Bu modül, temel çoklu görünüm geometri algoritmaları, tek ve stereo kamera kalibrasyonu, nesne poz tahmini, stereo yazışma ve 3B yeniden yapılandırma unsurları ile ilgili algoritmaları içerir. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.calib3d.

özellikler2d

Bu modül, özellik algılama ve açıklama kavramlarını içerir. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.features2d.

Objdetect

Bu modül, yüzler, gözler, kupalar, insanlar, arabalar vb. Gibi önceden tanımlanmış sınıfların nesnelerinin ve örneklerinin algılanmasını içerir. OpenCV Java kütüphanesinde bu modül, adıyla bir paket olarak yer almaktadır. org.opencv.objdetect.

Highgui

Bu, basit UI yeteneklerine sahip, kullanımı kolay bir arayüzdür. OpenCV Java kütüphanesinde bu modülün özellikleri iki farklı paket içerisinde yer almaktadır:org.opencv.imgcodecs ve org.opencv.videoio.

OpenCV'nin Kısa Tarihi

OpenCV, başlangıçta CPU yoğun uygulamaları tavsiye etmek için bir Intel araştırma girişimiydi. Resmi olarak 1999'da başlatıldı.

  • 2006 yılında, ilk büyük sürümü olan OpenCV 1.0 piyasaya sürüldü.
  • Ekim 2009'da, ikinci büyük sürüm olan OpenCV 2 piyasaya sürüldü.
  • Ağustos 2012'de OpenCV, kâr amacı gütmeyen bir kuruluş olan OpenCV.org tarafından alındı.