OpenCV ספרייה לזיהוי אובייקטים בתמונות ובמצלמות

openCV

OpenCV היא ספרייה חינמית של ראיית מכונה חוצה פלטפורמות (גרסאות קיימות עבור GNU / Linux, Mac OS X, Windows ו- Android) שהיו במקור פותח על ידי אינטל ומשמש באינספור יישומיםממערכות אבטחה עם זיהוי תנועה, וכלה ביישומי בקרת תהליכים בהם נדרשת זיהוי עצמים. זאת מכיוון שפרסומו ניתן ברישיון BSD, המאפשר להשתמש בו באופן חופשי למטרות מסחריות ומחקר בתנאים המובעים בו.

פתח קורות חיים מכיל יותר מ -500 פונקציות המכסות מגוון רחב של אזורים בתהליך הראייה, כמו זיהוי עצמים (זיהוי פנים), כיול מצלמה, ראיית סטריאו, ראייה רובוטית, סיווג פעולות בווידיאו, המרת תמונות, חילוץ מודלים תלת מימדיים, יצירת מרחב תלת ממדי מתמונת מצלמת סטריאו יצירת תמונות באיכות גבוהה על ידי שילוב תמונות איכות נמוכה.

טמביאן מציע יכולת לחפש תמונות של אובייקטים דומים למכלול האלמנטים המוצגים על ידי יישום שיטות לימוד מכונה, ארגון סמנים, זיהוי אלמנטים נפוצים בתמונות שונות, ביטול אוטומטי של פגמים כגון עיניים אדומות.

OpenCV מספק יותר מ 2500 אלגוריתמים, הן קלאסיות והן משקפות את ההישגים האחרונים בתחום ראיית המחשב ומערכות למידת מכונה. קוד הספרייה כתוב ב- C ++ ומופץ ברישיון BSD.

על הגרסה החדשה OpenCV 4.2

עכשיו הספרייה בגרסת OpenCV 4.2 שלה, שבו במודול DNN (רשת עצבית עמוקה) עם יישום אלגוריתמים של למידת מכונה המבוססים על רשתות עצביות, הוסיף backend לשימוש ב- CUDA ותומכת ניסיונית ב- nGraph OpenVINO API יושמה.

בנוסף לשימוש בהוראות SIMD, אנו מייעלים את ביצועי הקוד לפלט סטריאו (StereoBM / StereoSGBM), לשנות את גודל, להסוות, לסובב, לחשב רכיבי צבע חסרים ופעולות רבות אחרות.

במודול ה- G-API (opencv_gapi), המשמש כמנוע לעיבוד הדמיה יעילה באמצעות אלגוריתמים מבוססי גרפיקה, תומכת באלגוריתמים היברידיים מורכבים יותר לראיית מחשב ולמידת מכונה עמוקה. מספק תמיכה במנוע ההפרעה של אינטל. הוסיף תמיכה בעיבוד זרם וידאו למודל הביצוע.

תוקנו גם פגיעויות (CVE-2019-5063, CVE-2019-5064) העלולות להוביל לביצוע קוד התקפה על ידי עיבוד נתונים לא מאומתים בפורמט XML, YAML ו- JSON. אם תו עם קוד null נמצא במהלך ניתוח JSON, הערך כולו מועתק למאגר, אך ללא אימות תקין של גבולות אזור הזיכרון שהוקצה.

משאר השינויים מוצג בגרסה חדשה זו:

  • נוסף יישום רב-הברגה של פונקציית pyrDown.
  • הוסיף את היכולת לחלץ זרמי וידאו ממיכלי מדיה (demuxing) באמצעות ה- back-up של וידאו מבוסס FFmpeg.
  • נוסף אלגוריתם לשחזור סלקטיבי בתדרים מהירים של תמונות FSR (Frequency Selective Reconstruction) פגועות.
  • נוספה שיטת RIC לאינטרפולציה של אזורים ריקים אופייניים.
  • נוספה שיטת נורמליזציה של סטיית LOGOS.

כיצד להתקין את OpenCV 4.2?

למי שמעוניין להיות מסוגל להתקין את הספרייה הזו, יכול לקבל את הגרסה החדשה כמו גם להתייעץ במידע הקשור לשימוש ואף למצוא הדרכות מהאתר הרשמי שלה.

הקישור הוא זה.

במאמר זה אנו נספק את השלבים כדי להטמיע את הספרייה על פי פטל.

להתקנת 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

לבסוף, בוא נתקין את קבצי הכותרת של פייתון 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

אנו הולכים להתקין 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

ומוכן.


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.