OpenCV छवियों और कैमरों में वस्तु मान्यता के लिए एक पुस्तकालय

OpenCV

OpenCV एक निःशुल्क क्रॉस-प्लेटफ़ॉर्म मशीन विज़न लाइब्रेरी है (जीएनयू/लिनक्स, मैक ओएस एक्स, विंडोज और एंड्रॉइड के लिए संस्करण हैं) जो मूल रूप से था इंटेल द्वारा विकसित और अनगिनत अनुप्रयोगों में इसका उपयोग किया गया है, गति पहचान के साथ सुरक्षा प्रणालियों से लेकर, प्रक्रिया नियंत्रण अनुप्रयोगों तक जहां वस्तु पहचान की आवश्यकता होती है। ऐसा इसलिए है क्योंकि इसका प्रकाशन बीएसडी लाइसेंस के तहत दिया गया है, जो इसमें व्यक्त शर्तों के साथ इसे वाणिज्यिक और अनुसंधान उद्देश्यों के लिए स्वतंत्र रूप से उपयोग करने की अनुमति देता है।

सीवी खोलें इसमें 500 से अधिक फ़ंक्शन शामिल हैं जो दृष्टि प्रक्रिया में क्षेत्रों की एक विस्तृत श्रृंखला को कवर करते हैं, जैसे ऑब्जेक्ट रिकग्निशन (चेहरा पहचान), कैमरा कैलिब्रेशन, स्टीरियो विज़न, रोबोटिक विज़न, वीडियो में क्रियाओं को वर्गीकृत करना, छवियों को परिवर्तित करना, 3D मॉडल निकालना, स्टीरियो कैमरा इमेज से 3D स्पेस बनाना, कम गुणवत्ता वाली छवियों को संयोजित करके उच्च गुणवत्ता वाली छवियां बनाना।

भी समान वस्तुओं की छवियों को खोजने की संभावना प्रदान करता है प्रस्तुत तत्वों के सेट में मशीन लर्निंग विधियों को लागू करना, मार्करों को व्यवस्थित करना, विभिन्न छवियों में सामान्य तत्वों की पहचान करना, लाल आंख जैसे दोषों को स्वचालित रूप से हटाना।

OpenCV 2500 से अधिक एल्गोरिदम प्रदान करता है, दोनों क्लासिक और कंप्यूटर विज़न और मशीन लर्निंग सिस्टम के क्षेत्र में नवीनतम उपलब्धियों को दर्शाते हैं। लाइब्रेरी कोड C++ में लिखा गया है और BSD लाइसेंस के तहत वितरित किया गया है।

नये संस्करण OpenCV 4.2 के बारे में

अब लाइब्रेरी इसके संस्करण OpenCV 4.2 में है, जिसमें डीएनएन मॉड्यूल में (डीप न्यूरल नेटवर्क) तंत्रिका नेटवर्क पर आधारित मशीन लर्निंग एल्गोरिदम के कार्यान्वयन के साथ, CUDA का उपयोग करने के लिए एक बैक-एंड जोड़ा गया और nGraph OpenVINO API के लिए प्रयोगात्मक समर्थन लागू किया गया है।

SIMD निर्देशों का उपयोग करने के अलावा, हम स्टीरियो आउटपुट (StereoBM/StereoSGBM), आकार बदलने, मास्क करने, घुमाने, गायब रंग घटकों की गणना करने और कई अन्य कार्यों के लिए कोड के प्रदर्शन को अनुकूलित करते हैं।

जी-एपीआई मॉड्यूल में (opencv_gapi), जो प्रसंस्करण के लिए एक इंजन के रूप में कार्य करता है ग्राफ़-आधारित एल्गोरिदम का उपयोग करके कुशल इमेजिंग, यह कंप्यूटर विज़न और डीप मशीन लर्निंग के लिए अधिक जटिल हाइब्रिड एल्गोरिदम का समर्थन करता है। इंटेल इन्फेरेंस इंजन के लिए समर्थन प्रदान करता है। निष्पादन मॉडल में वीडियो स्ट्रीम को संसाधित करने के लिए समर्थन जोड़ा गया।

कमजोरियाँ (CVE-2019-5063, CVE-2019-5064) भी तय की गईं जो XML, YAML और JSON प्रारूपों में असत्यापित डेटा को संसाधित करते समय आक्रमण कोड निष्पादन का कारण बन सकती हैं। यदि JSON पार्सिंग के दौरान शून्य कोड वाला कोई वर्ण सामने आता है, तो संपूर्ण मान बफर में कॉपी किया जाता है, लेकिन आवंटित मेमोरी क्षेत्र की सीमाओं की उचित जांच के बिना।

अन्य परिवर्तनों की इस नए संस्करण में प्रस्तुत किया गया है:

  • पाइरडाउन फ़ंक्शन का मल्टीथ्रेडेड कार्यान्वयन जोड़ा गया।
  • FFmpeg-आधारित वीडियो बैकएंड का उपयोग करके मीडिया कंटेनर (डीमक्सिंग) से वीडियो स्ट्रीम निकालने की क्षमता जोड़ी गई।
  • क्षतिग्रस्त एफएसआर (फ़्रीक्वेंसी चयनात्मक पुनर्निर्माण) छवियों के तेज़ आवृत्ति चयनात्मक पुनर्निर्माण के लिए एक एल्गोरिदम जोड़ा गया।
  • विशिष्ट रिक्त क्षेत्रों के प्रक्षेप के लिए आरआईसी विधि जोड़ी गई।
  • लोगो विचलन सामान्यीकरण विधि जोड़ी गई।

ओपनसीवी 4.2 कैसे स्थापित करें?

उन लोगों के लिए जो इस लाइब्रेरी को स्थापित करने में रुचि रखते हैं, क्या आप नया संस्करण प्राप्त कर सकते हैं? साथ ही उपयोग से संबंधित जानकारी देखें और यहां तक ​​कि इसकी आधिकारिक वेबसाइट से ट्यूटोरियल भी ढूंढें।

लिंक यह है

इस लेख में हम रास्पबेरी पाई पर लाइब्रेरी को लागू करने में सक्षम होने के लिए चरण प्रदान करेंगे।

रास्पबेरी पी पर ओपनसीवी स्थापित करने के लिएमेरे पास आपका सिस्टम होना चाहिए, जो रास्पबियन है।

वी सेहम एक टर्मिनल खोलने जा रहे हैं और उसमें हम टाइप करने जा रहे हैं अन्य अतिरिक्त पुस्तकालयों के बीच निर्भरता, डेवलपर उपकरण, छवि पैकेज स्थापित करने के लिए निम्नलिखित आदेश:

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

अन्त में, आइए पायथन 3 हेडर फ़ाइलें स्थापित करें इसलिए हम OpenCV संकलित कर सकते हैं:

sudo apt-get install python3-dev

अब आइए एक पायथन वातावरण बनाएं निम्नलिखित आदेशों के साथ, एक अलग साइट बनाने के लिए:

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

आइए वर्चुअलएन्व और वर्चुअलएनvwrapper इंस्टॉल करें:

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

और त्यार।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।