OpenCV một thư viện để nhận dạng đối tượng trong hình ảnh và máy ảnh

mởCV

OpenCV là một thư viện miễn phí về thị giác máy đa nền tảng (các phiên bản hiện có cho GNU / Linux, Mac OS X, Windows và Android) ban đầu được phát triển bởi Intel và được sử dụng trong vô số ứng dụng, từ các hệ thống an ninh với tính năng phát hiện chuyển động, đến các ứng dụng điều khiển quá trình cần nhận dạng đối tượng. Điều này là do xuất bản của nó được cấp theo giấy phép BSD, cho phép nó được sử dụng tự do cho các mục đích thương mại và nghiên cứu với các điều kiện được nêu trong đó.

Mở CV chứa hơn 500 chức năng bao gồm một loạt các lĩnh vực trong quá trình nhìn, chẳng hạn như nhận dạng đối tượng (nhận dạng khuôn mặt), hiệu chỉnh máy ảnh, tầm nhìn nổi, tầm nhìn robot, phân loại hành động trong video, chuyển đổi hình ảnh, trích xuất mô hình 3D, tạo không gian 3D từ hình ảnh máy ảnh âm thanh nổi tạo ra hình ảnh chất lượng cao bằng cách kết hợp hình ảnh chất lượng thấp.

Ngoài ra cung cấp khả năng tìm kiếm hình ảnh của các đối tượng tương tự đến tập hợp các phần tử được trình bày bằng cách áp dụng phương pháp học máy, tổ chức các điểm đánh dấu, xác định các phần tử phổ biến trong các hình ảnh khác nhau, tự động loại bỏ các khuyết tật như mắt đỏ.

OpenCV cung cấp hơn 2500 thuật toán, vừa cổ điển vừa phản ánh những thành tựu mới nhất trong lĩnh vực thị giác máy tính và hệ thống học máy. Mã thư viện được viết bằng C ++ và được phân phối theo giấy phép BSD.

Giới thiệu về phiên bản mới OpenCV 4.2

Bây giờ thư viện ở phiên bản OpenCV 4.2 của nó, trong đó trong mô-đun DNN (Mạng nơron sâu) với việc triển khai các thuật toán học máy dựa trên mạng nơron, đã thêm một chương trình phụ trợ để sử dụng CUDA và hỗ trợ thử nghiệm cho API nGraph OpenVINO đã được triển khai.

Ngoài việc sử dụng hướng dẫn SIMD, chúng tôi tối ưu hóa hiệu suất mã cho đầu ra âm thanh nổi (StereoBM / StereoSGBM), thay đổi kích thước, mặt nạ, xoay, tính toán các thành phần màu bị thiếu và nhiều thao tác khác.

Trong mô-đun G-API (opencv_gapi), hoạt động như một động cơ để xử lý Hiệu quả hình ảnh bằng cách sử dụng các thuật toán dựa trên đồ họa, hỗ trợ các thuật toán lai phức tạp hơn cho thị giác máy tính và máy học sâu. Cung cấp hỗ trợ cho Intel Inference Engine. Đã thêm hỗ trợ xử lý luồng video vào mô hình thực thi.

Các lỗ hổng (CVE-2019-5063, CVE-2019-5064) có thể dẫn đến việc thực thi mã tấn công bằng cách xử lý dữ liệu chưa được xác minh ở các định dạng XML, YAML và JSON cũng đã được khắc phục. Nếu một ký tự có mã null được tìm thấy trong quá trình phân tích cú pháp JSON, toàn bộ giá trị sẽ được sao chép vào bộ đệm, nhưng không có xác minh thích hợp về giới hạn của vùng bộ nhớ được cấp phát.

Những thay đổi khác được trình bày trong phiên bản mới này:

  • Đã thêm triển khai đa luồng của hàm pyrDown.
  • Đã thêm khả năng trích xuất các luồng video từ vùng chứa phương tiện (demuxing) bằng cách sử dụng phần phụ trợ video dựa trên FFmpeg.
  • Đã thêm một thuật toán để tái tạo chọn lọc tần số nhanh các hình ảnh FSR (Tái tạo chọn lọc tần số) bị hỏng.
  • Đã thêm phương pháp RIC để nội suy các vùng trống điển hình.
  • Đã thêm phương pháp chuẩn hóa độ lệch LOGOS.

Làm thế nào để cài đặt OpenCV 4.2?

Đối với những người quan tâm đến việc có thể cài đặt thư viện này, có thể tải phiên bản mới cũng như tham khảo các thông tin liên quan đến việc sử dụng và thậm chí tìm các hướng dẫn từ trang web chính thức của hãng.

Liên kết là cái này.

Trong bài viết này Chúng tôi sẽ cung cấp các bước để có thể triển khai thư viện trên Raspberry pi.

Để cài đặt OpenCV trên Raspberry Ptôi phải có hệ thống của bạn, đó là Raspbian.

Từ vChúng tôi sẽ mở một thiết bị đầu cuối và trong đó chúng tôi sẽ nhập các lệnh sau để cài đặt phần phụ thuộc, công cụ dành cho nhà phát triển, gói hình ảnh trong số các thư viện bổ sung khác:

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

Cuối cùng, hãy cài đặt các tệp tiêu đề python 3 để chúng tôi có thể biên dịch OpenCV:

sudo apt-get install python3-dev

Bây giờ hãy tạo một môi trường Python với các lệnh sau, điều này để có một trang web riêng biệt:

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

Chúng tôi sẽ cài đặt virtualenv và 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]"

Xong việc này ngay bây giờ chúng tôi sẽ biên dịch openCV với:

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

Bây giờ chúng tôi sẽ tăng hoán đổi trong hệ thống của chúng tôi vì nếu chúng tôi để nó như mặc định, hệ thống có thể bị treo:

sudo nano /etc/dphys-swapfile

Và chúng tôi sẽ chỉnh sửa biến CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Chúng tôi lưu và đóng bằng ctrl + o và ctrl + x. Sau đó, chúng tôi gõ:

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

Bây giờ chúng ta sẽ tiến hành biên dịch:

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

Và sẵn sàng.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.