OpenCV μια βιβλιοθήκη για αναγνώριση αντικειμένων σε εικόνες και κάμερες

openCV

OpenCV είναι μια δωρεάν βιβλιοθήκη μηχανικής όρασης πολλαπλών πλατφορμών (υπάρχουσες εκδόσεις για GNU / Linux, Mac OS X, Windows και Android) που ήταν αρχικά Αναπτύχθηκε από την Intel και χρησιμοποιείται σε αμέτρητες εφαρμογές, από συστήματα ασφαλείας με ανίχνευση κίνησης, έως την επεξεργασία εφαρμογών ελέγχου όπου απαιτείται αναγνώριση αντικειμένων. Αυτό συμβαίνει επειδή η δημοσίευσή του παρέχεται με την άδεια BSD, η οποία του επιτρέπει να χρησιμοποιείται ελεύθερα για εμπορικούς και ερευνητικούς σκοπούς με τους όρους που εκφράζονται σε αυτό.

Ανοίξτε το βιογραφικό περιέχει περισσότερες από 500 λειτουργίες που καλύπτουν ένα ευρύ φάσμα περιοχών στη διαδικασία όρασης, όπως αναγνώριση αντικειμένων (αναγνώριση προσώπου), βαθμονόμηση κάμερας, στερεοφωνική όραση, ρομποτική όραση, ταξινόμηση ενεργειών σε βίντεο, μετατροπή εικόνων, εξαγωγή μοντέλων 3D, δημιουργία χώρου 3D από μια εικόνα στερεοφωνικής κάμερας δημιουργώντας εικόνες υψηλής ποιότητας συνδυάζοντας εικόνες χαμηλή ποιότητα.

Επίσης προσφέρει τη δυνατότητα αναζήτησης εικόνων με παρόμοια αντικείμενα στο σύνολο των στοιχείων που παρουσιάζονται εφαρμόζοντας μεθόδους μηχανικής εκμάθησης, οργανώνοντας δείκτες, εντοπίζοντας κοινά στοιχεία σε διαφορετικές εικόνες, εξαλείφοντας αυτόματα ελαττώματα όπως τα κόκκινα μάτια.

Το OpenCV παρέχει περισσότερους από 2500 αλγόριθμους, τόσο κλασικό όσο και αντανακλαστικό των τελευταίων επιτευγμάτων στον τομέα των συστημάτων όρασης υπολογιστή και μηχανικής μάθησης. Ο κωδικός της βιβλιοθήκης γράφεται σε C ++ και διανέμεται με άδεια BSD.

Σχετικά με τη νέα έκδοση OpenCV 4.2

Τώρα η βιβλιοθήκη είναι στην έκδοση OpenCV 4.2, στο οποίο στη μονάδα DNN (Deep neural network) με την εφαρμογή αλγορίθμων μηχανικής μάθησης που βασίζονται σε νευρωνικά δίκτυα, πρόσθεσε ένα backend για χρήση του CUDA και εφαρμόστηκε πειραματική υποστήριξη για το API nGraph OpenVINO.

Εκτός από τη χρήση οδηγιών SIMD, βελτιστοποιούμε την απόδοση κώδικα για στερεοφωνική έξοδο (StereoBM / StereoSGBM), αλλάξτε το μέγεθος, αποκρύψτε, περιστρέψτε, υπολογίστε τα στοιχεία χρώματος που λείπουν και πολλές άλλες λειτουργίες.

Στην ενότητα G-API (opencv_gapi), που λειτουργεί ως μηχανή επεξεργασίας αποτελεσματική απεικόνιση χρησιμοποιώντας αλγόριθμους που βασίζονται σε γραφικά, υποστηρίζει πιο πολύπλοκους υβριδικούς αλγόριθμους για όραμα υπολογιστή και βαθιά μηχανική μάθηση. Παρέχει υποστήριξη για το Intel Inference Engine. Προστέθηκε υποστήριξη για επεξεργασία ροής βίντεο στο μοντέλο εκτέλεσης.

Διορθώθηκαν επίσης ευπάθειες (CVE-2019-5063, CVE-2019-5064) που θα μπορούσαν να οδηγήσουν στην εκτέλεση κώδικα επίθεσης με την επεξεργασία μη επαληθευμένων δεδομένων σε μορφές XML, YAML και JSON. Εάν ένας χαρακτήρας με μηδενικό κωδικό εντοπιστεί κατά την ανάλυση JSON, ολόκληρη η τιμή αντιγράφεται στο buffer, αλλά χωρίς σωστή επαλήθευση των ορίων της εκχωρημένης περιοχής μνήμης.

Από τις άλλες αλλαγές παρουσιάζονται σε αυτήν τη νέα έκδοση:

  • Προστέθηκε η εφαρμογή πολλαπλών νημάτων της συνάρτησης pyrDown.
  • Προστέθηκε η δυνατότητα εξαγωγής ροών βίντεο από κοντέινερ πολυμέσων (αποσυμπίεση) χρησιμοποιώντας το backend βίντεο που βασίζεται στο FFmpeg.
  • Προστέθηκε ένας αλγόριθμος για επιλεκτική ανακατασκευή γρήγορης συχνότητας κατεστραμμένων εικόνων FSR (Frequency Selective Reconstruction).
  • Προστέθηκε μέθοδος RIC για παρεμβολή τυπικών κενών περιοχών.
  • Προστέθηκε μέθοδο εξομάλυνσης απόκλισης LOGOS.

Πώς να εγκαταστήσετε το OpenCV 4.2;

Για όσους ενδιαφέρονται να εγκαταστήσουν αυτήν τη βιβλιοθήκη, μπορεί να πάρει τη νέα έκδοση καθώς και συμβουλευτείτε τις πληροφορίες που σχετίζονται με τη χρήση και ακόμη και βρείτε μαθήματα από τον επίσημο ιστότοπό της.

Ο σύνδεσμος είναι αυτό.

Σε αυτό το άρθρο Θα παρέχουμε τα βήματα για να μπορέσουμε να εφαρμόσουμε τη βιβλιοθήκη σε Raspberry pi.

Για να εγκαταστήσετε το OpenCV σε ένα Raspberry Pπρέπει να έχω το σύστημά σας, το οποίο είναι Raspbian.

Από το vΘα ανοίξουμε ένα τερματικό και σε αυτό θα πληκτρολογήσουμε τις ακόλουθες εντολές για εγκατάσταση εξαρτήσεων, εργαλείων προγραμματιστή, πακέτων εικόνων μεταξύ άλλων επιπλέον βιβλιοθηκών:

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

Τέλος, ας εγκαταστήσουμε τα αρχεία κεφαλίδας python 3 ώστε να μπορούμε να μεταγλωττίσουμε το OpenCV:

sudo apt-get install python3-dev

Τώρα ας δημιουργήσουμε ένα περιβάλλον Python με τις ακόλουθες εντολές, προκειμένου να υπάρχει ένας απομονωμένος ιστότοπος:

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

Θα εγκαταστήσουμε το virtualenv και το virtualenvwrapper:

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]"

Έγινε τώρα πρόκειται να μεταγλωττίσουμε το openCV με:

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

Τώρα πρόκειται να αυξήσουμε την ανταλλαγή στο σύστημά μας, εφόσον εάν το αφήσουμε όπως είναι από προεπιλογή, το σύστημα μπορεί να κρεμάσει:

sudo nano /etc/dphys-swapfile

Και θα επεξεργαστούμε τη μεταβλητή CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Αποθηκεύουμε και κλείνουμε με ctrl + o και ctrl + x. Στη συνέχεια πληκτρολογούμε:

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

Τώρα θα προχωρήσουμε στη συλλογή:

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

Και έτοιμος.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.