OpenCV, görüntülerde ve kameralarda nesne tanıma için bir kitaplık

openCV

OpenCV ücretsiz bir çapraz platform makine görüşü kitaplığıdır (GNU / Linux, Mac OS X, Windows ve Android için mevcut sürümler) orijinal olarak Intel tarafından geliştirildi ve sayısız uygulamada kullanıldıhareket algılamalı güvenlik sistemlerinden, nesne tanımanın gerekli olduğu süreç kontrol uygulamalarına kadar. Bunun nedeni, yayının BSD lisansı altında verilmiş olması ve içinde ifade edilen koşullarla ticari ve araştırma amaçlı olarak serbestçe kullanılmasına izin vermesidir.

CV'yi aç görme sürecindeki geniş bir alanı kapsayan 500'den fazla fonksiyon içerir, Nesne tanıma (yüz tanıma), kamera kalibrasyonu, stereo görüş, robotik görüş, videodaki eylemleri sınıflandırmak, görüntüleri dönüştürmek, 3D modelleri çıkarmak, stereo kamera görüntüsünden 3D alan oluşturmak, düşük kaliteli görüntüleri birleştirerek yüksek kaliteli görüntüler oluşturmak gibi.

tambien benzer nesnelerin resimlerini arama yeteneği sunar makine öğrenimi yöntemleri uygulayarak, işaretçileri düzenleyerek, farklı görüntülerdeki ortak öğeleri belirleyerek, kırmızı gözler gibi kusurları otomatik olarak ortadan kaldırarak sunulan öğeler kümesine.

OpenCV, 2500'den fazla algoritma sağlar, hem klasik hem de bilgisayarla görme ve makine öğrenimi sistemleri alanındaki en son başarıların yansıması. Kitaplık kodu C ++ ile yazılır ve BSD lisansı altında dağıtılır.

Yeni sürüm OpenCV 4.2 hakkında

Şimdi kütüphane OpenCV 4.2 sürümündediriçinde DNN modülünde (Derin sinir ağı) sinir ağlarına dayalı makine öğrenimi algoritmalarının uygulanmasıyla, CUDA'yı kullanmak için bir arka uç ekledi ve nGraph OpenVINO API için deneysel destek uygulandı.

SIMD talimatlarını kullanmanın yanı sıra, stereo çıkış (StereoBM / StereoSGBM), yeniden boyutlandırma, maskeleme, döndürme, eksik renk bileşenlerini hesaplama ve diğer birçok işlem için kod performansını optimize ediyoruz.

G-API modülünde (opencv_gapi), işleme için bir motor görevi gören grafik tabanlı algoritmalar kullanan verimli görüntüleme, bilgisayarla görme ve derin makine öğrenimi için daha karmaşık hibrit algoritmaları destekler. Intel Inference Engine için destek sağlar. Yürütme modeline video akışı işleme desteği eklendi.

Doğrulanmamış verilerin XML, YAML ve JSON formatlarında işlenerek saldırı kodunun çalıştırılmasına neden olabilecek güvenlik açıkları (CVE-2019-5063, CVE-2019-5064) da düzeltildi. JSON ayrıştırması sırasında boş koda sahip bir karakter bulunursa, değerin tamamı arabelleğe kopyalanır, ancak ayrılan bellek alanının sınırları uygun şekilde doğrulanmaz.

Diğer değişikliklerden bu yeni sürümde sunulmuştur:

  • PyrDown işlevinin çok iş parçacıklı uygulaması eklendi.
  • FFmpeg tabanlı video arka ucunu kullanarak medya kaplarından video akışlarını ayıklama (demuxing) yeteneği eklendi.
  • Hasarlı FSR (Frekans Seçmeli Yeniden Yapılandırma) görüntülerinin hızlı frekans seçici yeniden yapılandırması için bir algoritma eklendi.
  • Tipik boş alanların enterpolasyonu için RIC yöntemi eklendi.
  • LOGOS sapma normalleştirme yöntemi eklendi.

OpenCV 4.2 nasıl kurulur?

Bu kitaplığı kurabilmek isteyenler için, yeni sürümü alabilir yanı sıra kullanımla ilgili bilgilere bakın ve hatta resmi web sitesinden öğreticiler bulun.

Bağlantı bu.

Bu makalede Kitaplığı bir Raspberry pi üzerinde uygulayabilmek için gerekli adımları sağlayacağız.

Raspberry P'ye OpenCV yüklemek içinRaspbian olan sisteminize sahip olmalıyım.

V'denBir terminal açacağız ve içine yazacağız diğer ekstra kitaplıklar arasında bağımlılıkları, geliştirici araçlarını, görüntü paketlerini yüklemek için aşağıdaki komutlar:

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libfontconfig1-dev libcairo2-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran libhdf5-dev libhdf5-serial-dev libhdf5-103 libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

Son olarak, python 3 başlık dosyalarını kuralım OpenCV'yi derleyebilmemiz için:

sudo apt-get install python3-dev

Şimdi bir Python ortamı oluşturalım İzole edilmiş bir siteye sahip olmak için aşağıdaki komutlarla bunu yapın:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip

Virtualenv ve virtualenvwrapper'ı kuracağız:

sudo pip install virtualenv virtualenvwrapper
nano ~/.bashrc

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv -p python3
pip install "picamera[array]"

Bunu şimdi yaptım openCV'yi şu şekilde derleyeceğiz:

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.2.0 opencv
mv opencv_contrib-4.2.0 opencv_contrib

Şimdi sistemimizdeki takas oranını artıracağız, çünkü eğer onu varsayılan olarak olduğu gibi bırakırsak sistem askıda kalabilir:

sudo nano /etc/dphys-swapfile

Ve CONF_SWAPSIZE değişkenini düzenleyeceğiz:

CONF_SWAPSIZE=1024

Ctrl + o ve ctrl + x ile kaydedip kapatıyoruz. Sonra şunu yazıyoruz:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

Şimdi derlemeye devam edeceğiz:

workon cv
pip install numpy
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
make -j4
sudo make install
sudo ldconfig
cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7
sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so

Ve hazır.


Makalenin içeriği şu ilkelerimize uygundur editoryal etik. Bir hata bildirmek için tıklayın burada.

İlk yorumu siz

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak.

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.