OpenCV ไลบรารีสำหรับการจดจำวัตถุในรูปภาพและกล้อง

openCV

OpenCV เป็นคลังวิชันซิสเต็มข้ามแพลตฟอร์มฟรี (เวอร์ชันที่มีอยู่สำหรับ GNU / Linux, Mac OS X, Windows และ Android) ซึ่งเดิม พัฒนาโดย Intel และใช้ในแอพพลิเคชั่นมากมายตั้งแต่ระบบรักษาความปลอดภัยที่มีการตรวจจับการเคลื่อนไหวไปจนถึงการประมวลผลแอปพลิเคชันการควบคุมที่จำเป็นต้องมีการจดจำวัตถุ เนื่องจากสิ่งพิมพ์ได้รับอนุญาตภายใต้ใบอนุญาต BSD ซึ่งอนุญาตให้ใช้งานได้อย่างอิสระเพื่อวัตถุประสงค์ทางการค้าและการวิจัยโดยมีเงื่อนไขที่ระบุไว้ในนั้น

เปิด CV มีฟังก์ชั่นมากกว่า 500 ฟังก์ชั่นครอบคลุมพื้นที่ที่หลากหลายในกระบวนการมองเห็น เช่นการจดจำวัตถุ (การจดจำใบหน้า), การปรับเทียบกล้อง, การมองเห็นสเตอริโอ, การมองเห็นของหุ่นยนต์, จำแนกการกระทำในวิดีโอ, แปลงภาพ, ดึงโมเดล 3 มิติ, สร้างพื้นที่ 3 มิติจากภาพจากกล้องสเตอริโอสร้างภาพคุณภาพสูงโดยการรวมภาพคุณภาพต่ำ

tambien เสนอความสามารถในการค้นหาภาพของวัตถุที่คล้ายกัน ไปยังชุดขององค์ประกอบที่นำเสนอโดยใช้วิธีการเรียนรู้ของเครื่องจัดระเบียบเครื่องหมายระบุองค์ประกอบทั่วไปในภาพต่างๆขจัดข้อบกพร่องโดยอัตโนมัติเช่นตาแดง

OpenCV ให้มากกว่า 2500 อัลกอริทึม ทั้งคลาสสิกและสะท้อนถึงความสำเร็จล่าสุดในด้านวิสัยทัศน์คอมพิวเตอร์และระบบการเรียนรู้ของเครื่อง รหัสไลบรารีเขียนด้วย C ++ และแจกจ่ายภายใต้ใบอนุญาต BSD

เกี่ยวกับ OpenCV 4.2 เวอร์ชันใหม่

ขณะนี้ ไลบรารีอยู่ในเวอร์ชัน OpenCV 4.2, ซึ่งใน ในโมดูล DNN (โครงข่ายประสาทเทียมแบบลึก) ด้วยการใช้อัลกอริธึมการเรียนรู้ของเครื่องบนพื้นฐานของโครงข่ายประสาทเทียม เพิ่มแบ็กเอนด์เพื่อใช้ CUDA และการสนับสนุนการทดลองสำหรับ nGraph OpenVINO API ถูกนำมาใช้

นอกเหนือจากการใช้คำแนะนำ SIMD แล้วเรายังเพิ่มประสิทธิภาพของโค้ดสำหรับเอาต์พุตสเตอริโอ (StereoBM / StereoSGBM) ปรับขนาดมาสก์หมุนคำนวณส่วนประกอบสีที่ขาดหายไปและการดำเนินการอื่น ๆ อีกมากมาย

ในโมดูล G-API (opencv_gapi) ซึ่งทำหน้าที่เป็นเครื่องมือสำหรับการประมวลผล ประสิทธิภาพของภาพโดยใช้อัลกอริทึมที่ใช้กราฟิกรองรับอัลกอริธึมไฮบริดที่ซับซ้อนมากขึ้นสำหรับการมองเห็นของคอมพิวเตอร์และการเรียนรู้ของเครื่องในเชิงลึก ให้การสนับสนุน Intel Inference Engine เพิ่มการรองรับสำหรับการประมวลผลสตรีมวิดีโอไปยังโมเดลการดำเนินการ

ช่องโหว่ (CVE-2019-5063, CVE-2019-5064) ที่อาจนำไปสู่การเรียกใช้โค้ดโจมตีโดยการประมวลผลข้อมูลที่ไม่ได้รับการยืนยันในรูปแบบ XML, YAML และ JSON ได้รับการแก้ไขเช่นกัน หากพบอักขระที่มีโค้ด null ระหว่างการแยกวิเคราะห์ JSON ค่าทั้งหมดจะถูกคัดลอกไปยังบัฟเฟอร์ แต่ไม่มีการตรวจสอบขีด จำกัด ของพื้นที่หน่วยความจำที่จัดสรรอย่างเหมาะสม

จากการเปลี่ยนแปลงอื่น ๆ นำเสนอในเวอร์ชันใหม่นี้:

  • เพิ่มการใช้งานฟังก์ชัน pyrDown แบบมัลติเธรด
  • เพิ่มความสามารถในการแยกสตรีมวิดีโอจากคอนเทนเนอร์สื่อ (demuxing) โดยใช้แบ็กเอนด์วิดีโอที่ใช้ 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

ตอนนี้เรากำลังจะเพิ่ม swap ในระบบของเราเนื่องจากถ้าเราปล่อยไว้ตามค่าเริ่มต้นระบบจะแฮงค์:

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. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา