Làm thế nào để cài đặt OpenCV trên Raspberry Pi?
Chúng ta cần thực hiện các thao tác khác nhau trên một hình ảnh để trích xuất thông tin hữu ích từ nó. Vì vậy, quá trình áp dụng các thuật toán khác nhau trên một hình ảnh để thu được kết quả đầu ra mong muốn được gọi là Đang xử lý hình ảnh. Đôi khi, hình ảnh ở đầu vào bị mờ và chúng tôi muốn lấy dữ liệu từ đó. Ví dụ. Khi bọn cướp đến cướp xe đạp hoặc ô tô, chúng chủ yếu đi xe đạp và camera trên cao được lắp trên các con đường để ghi lại cảnh quay của vụ việc. Chúng ta cần biết số đăng ký của chiếc xe mà bọn cướp đến và nó có thể được thực hiện dễ dàng bằng cách sử dụng một số thuật toán xử lý hình ảnh. Để thực hiện xử lý ảnh trên một số ảnh nhất định, chúng ta cần cài đặt một số thư viện trên phần cứng mà chúng ta đang sử dụng. Trong số những thư viện đó, thư viện quan trọng nhất là OpenCV. OpenCV cũng có thể được cài đặt trên PC và bộ vi xử lý. Raspberry Pi là một bộ vi xử lý và nó được sử dụng trong các dự án điện tử khác nhau. Sau khi cài đặt Hệ điều hành trên Raspberry Pi, chúng ta có thể thực hiện các tác vụ xử lý ảnh khác nhau trên đó. Cài đặt OpenCV trên Raspberry Pi là một công việc kéo dài và bận rộn. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt OpenCV trên Raspberry Pi để thực hiện các thao tác xử lý hình ảnh khác nhau trên đó.
Làm thế nào để thiết lập Raspberry Pi và cấu hình OpenCV trên nó?
Bây giờ, chúng ta hãy chuyển sang thiết lập Pi và thực hiện các thao tác được đề cập dưới đây từng bước để cài đặt OpenCV trên đó. Cài đặt OpenCV trên Pi là một quá trình dài và mất khoảng 4 giờ để hoàn thành, vì vậy nếu bạn thiếu thời gian không bắt đầu cài đặt, hãy tham khảo hướng dẫn này khi bạn rảnh. Cùng với số Pi này được làm nóng lên khi nó đã được quay TRÊNtrong một thời gian dài và các thao tác lấy thời gian được thực hiện trên nó, vì vậy, hãy giữ nó ở nơi thoáng mát khi bạn đang làm việc trên nó.
Bước 1: Các thành phần được sử dụng
Bước 2: Chọn mô hình Raspberry Pi
Một số mô hình của raspberry pi có sẵn trên thị trường. Ngoại trừ raspberry pi zero, bất kỳ mô hình nào cũng có thể được ưu tiên. Điều này là do trên Pi số không thiết lập một mạng là một công việc rất mệt mỏi. Có thể mua các mẫu mới nhất như 3A +, 3B + hoặc 4. Raspberry Pi 3 mới là tiện ích nhanh nhất và chiếm ưu thế nhất mà Raspberry Pi Foundation đã phát hành cho đến nay. Vì vậy, trong dự án này, chúng tôi sẽ sử dụng Raspberry Pi 3B +.
Bước 3: Kết nối các thiết bị ngoại vi
Sau khi chọn Raspberry Pi, chúng ta sẽ kết nối bàn phím và chuột với Raspberry Pi. Sau khi kết nối chúng, hãy sử dụng cáp HDMI để kết nối Pi với Tivi. Sau khi thực hiện các kết nối này, chúng tôi đã sẵn sàng để tiến hành thêm.
Bước 4: Chọn Hệ điều hành
Đầu tiên, chúng ta sẽ cần một thẻ SD với một hệ điều hành thích hợp. Khi chọn hệ điều hành, ngày nay có nhiều lựa chọn thay thế khác nhau, từ Raspbian “thông thường” đến các khung làm việc đa phương tiện chuyên dụng và thậm chí cả Windows 10 IoT. Do đó, không cần nhiều ứng dụng, chúng ta nên để Bộ xử lý trung tâm (CPU) và Bộ nhớ truy cập ngẫu nhiên (RAM) nhiều nhất có thể cho ứng dụng phát trực tuyến phương tiện. Một vấn đề là Arch Linux được khuyến khích cho những người có khá nhiều kiến thức về Linux. Họ là những người đi đầu và chúng tôi nhất định sẽ tiếp tục gặp sự cố khi giới thiệu các ứng dụng và thư viện của bên thứ ba. Do đó, nếu đây là lần đầu tiên bạn thiết lập rạp hát tại nhà, chúng tôi khuyên bạn nên chọnRaspbian Lite. Nó được điều khiển bằng dòng lệnh và không có nhiều căng thẳng được thiết kế để tiếp tục chạy ở chế độ "không đầu", tức là được truy cập hoàn toàn từ xa qua hệ thống mà không yêu cầu bảng điều khiển hoặc màn hình.
Bước 5: Đảm bảo rằng Raspberry Pi đã được cập nhật
Hãy cập nhật các nguồn của Pi của bạn nếu không, phần mềm lỗi thời sẽ gây ra một số vấn đề. Bật trình xem Máy tính mạng ảo (VNC) trên Pi của bạn, sau đó kết nối Raspberry Pi của bạn với trình xem VNC. Liên kết được cung cấp bên dưới để tải xuống VNC và sau đó kết nối nó với Pi.
VNC Viewer
Bây giờ, hãy mở terminal và chạy lệnh sau:
sudo apt-get cập nhật
Sau đó,
sudo apt-get nâng cấp
Nhiều gói sẽ được cài đặt và nếu được hỏi, hãy nhấn Y và sau đó Đi vào để cài đặt chúng đúng cách.
Bước 6: Đăng nhập vào Raspberry Pi
Tên người dùng mặc định của Raspberry Pi là số Pi, và mật khẩu mặc định là dâu rừng. Đây là các chi tiết đăng nhập mặc định và trong lần đăng nhập đầu tiên của bạn, hãy sử dụng các chi tiết này để đăng nhập vào pi. Bạn cũng có thể thay đổi những chi tiết này bất cứ khi nào bạn muốn.
Bước 7: Tạo đủ dung lượng trên Raspbian cho OpenCV
OpenCV có bộ nhớ lớn nên chúng ta cần mở rộng hệ thống tệp và phân bổ tất cả dung lượng cho thẻ nhớ. Chúng ta sẽ đi đến dấu nhắc lệnh của raspberry và gõ lệnh sau:
sudo raspi-config
Một cửa sổ sẽ xuất hiện và nó sẽ như thế này:
Bây giờ, chúng tôi sẽ nhấp vào Tùy chọn nâng cao và ở đó chúng tôi sẽ tìm thấy tùy chọn “Mở rộng hệ thống tệp”. Chọn tùy chọn đó.
Chúng tôi sẽ nhấn Đi vàovà sau đó nhấn vào Hoàn thànhcái nút. Ở giai đoạn này, Raspberry Pi của chúng tôi cần được khởi động lại để các thay đổi có hiệu lực. Gõ lệnh sau để khởi động lại nó:
khởi động lại sudo
Sau khi khởi động lại, chúng tôi sẽ kiểm tra xem hệ thống tệp của chúng tôi đã mở rộng và tất cả dung lượng có được bao gồm trong thẻ SD hay không. Bằng cách thực thi df -h lệnh chúng tôi có thể xác minh rằng đĩa của chúng tôi đã mở rộng:
Người đang sử dụng thẻ micro SD 8GB có thể đang sử dụng 50% dung lượng khả dụng, vì vậy việc xóa Động cơ Wolfram và LibreOffice có thể giải phóng khoảng 1GB dung lượng. (Hãy nhớ rằng bước này là tùy chọn).
sudo apt-get purge wolfram-engine sudo apt-get purge libreoffice * sudo apt-get clean sudo apt-get autoremove
Bước 8: Cài đặt phụ thuộc
Trước khi tiếp tục và phụ thuộc, chúng tôi cần cập nhật và nâng cấp các gói hiện có được cài đặt trên Pi:
sudo apt-get cập nhật
Sau đó,
sudo apt-get nâng cấp
Bây giờ, chúng tôi sẽ cài đặt một số công cụ đang phát triển sẽ giúp chúng tôi cấu hình bản dựng OpenCV:
sudo apt-get install build-essential cmake pkg-config
Để thực hiện các thao tác khác nhau trên hình ảnh, chúng ta cần tải một số định dạng hình ảnh từ ổ cứng. Các định dạng đó bao gồm JPEG, PNG, v.v. Để tải các định dạng hình ảnh này, chúng tôi sẽ cài đặt một số gói I / O:
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
Cùng với các gói I / O hình ảnh này, chúng tôi cũng sẽ cài đặt các gói I / O video. Sau khi cài đặt các gói video này, chúng tôi sẽ có thể tải các định dạng tệp video khác nhau.
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev
Thư viện OpenCV đi kèm với một mô-đun con có tên highgui được sử dụng để hiển thị hình ảnh lên màn hình của chúng tôi và tạo ra các GUI cần thiết. Trước khi biên dịch mô-đun con đó, chúng ta cần cài đặt thư viện phát triển GTK:
sudo apt-get install libgtk2.0-dev libgtk-3-dev
Một số phép toán ma trận có thể được thực hiện trên một hình ảnh bằng cách kiểm tra kích thước của hình ảnh và sau đó đọc các giá trị pixel. Chúng tôi cũng có thể chuyển đổi các giá trị pixel đó thành dạng nhị phân và sau đó sửa đổi các chữ số nhị phân đó để tạo hình ảnh. Trong raspberry pi, chúng tôi có một số hạn chế khi cung cấp đầu vào do đó các thư viện này rất quan trọng và cần được cài đặt. Do đó, những kết quả đó có thể được cải thiện tốt hơn bằng cách cài đặt thêm một số phụ thuộc:
sudo apt-get install libatlas-base-dev gfortran
Một số người sẽ làm việc trên Python 2.7 và một số người sẽ làm việc trên Python 3. Các tệp tiêu đề của Python 2.7 và Python 3 cần được cài đặt để biên dịch OpenCV cùng với các liên kết Python:
sudo apt-get install python2.7-dev python3-dev
Trong phiên bản mới của Raspbian, Python 3 đã được cài đặt và một tin nhắn có thể xuất hiện tại Lx Terminal cho biết rằng “Python 3 đã là phiên bản mới nhất”. Bước này rất quan trọng vì chúng ta có thể gặp lỗi liên quan đến tệp tiêu đề có tên là Python.htrong khi chạy lệnh làm để biên dịch OpenCV.
Bước 9: Tải xuống mã nguồn OpenCV
Khi chúng ta hoàn tất việc cài đặt các phụ thuộc, chúng ta sẽ tìm thư mục lưu trữ của OpenCV phiên bản 3.3.0 từ thư mục chính thức của OpenCV.
cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip giải nén opencv.zip
Chúng tôi đang cài đặt toàn bộ gói OpenCV vì vậy chúng tôi cũng cần bao gồm opencv_contrib. Tải xuống từ trang web chính thức và sau đó giải nén.
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip giải nén opencv_contrib.zip
Trong khi tải xuống các thư mục này, hãy nhớ một điều rằng phiên bản của OpenCV và opencv_contrib phải giống nhau, tức là chúng phải là 3.3.0 nếu không sẽ có lỗi biên dịch trong quá trình cài đặt.
Bước 10: Python 2.7 hay Python 3?
Python 2.7 về hiệu suất tốt hơn python 3 nhưng trong OpenCV, không có nhiều sự khác biệt. Chúng tôi cần cài đặt piptrên Raspberry trước khi biên dịch OpenCV. Nó là một hệ thống quản lý gói được sử dụng để cài đặt các gói phần mềm được sử dụng bằng Python. Các gói này có thể xuất hiện trong raspbian mới nhất theo mặc định nhưng tốt hơn là bạn nên xác minh nó bằng cách sử dụng các lệnh sau.
wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py sudo python3 get-pip.py
Sau khi cài đặt pip, hai gói rất được khuyến khích và cần được cài đặt trong khi làm việc trên OpenCV. Cái đầu tiên là virtualenv và cái thứ hai là virtualenvwrapper. Chúng tôi không thể nhập OpenCV trực tiếp bằng Python, vì vậy chúng tôi sẽ tạo một môi trường ảo và sau đó làm việc trong môi trường đó. Môi trường ảo là một công cụ đặc biệt được sử dụng để giữ các điều kiện được yêu cầu bởi các dự án khác nhau ở những nơi riêng biệt bằng cách tạo các môi trường Python riêng biệt cho từng dự án.
sudo pip cài đặt virtualenv virtualenvwrapper sudo rm -rf ~ / .cache / pip
Sau khi cài đặt các gói này, chúng tôi cần cập nhật ~ / .profile tệp là tệp ẩn trong thư mục chính của chúng tôi để bao gồm các dòng sau ở cuối tệp. Gõ lệnh sau để vào thư mục:
nano ~ / .profile
Khi thư mục được mở, hãy cuộn xuống và bao gồm các dòng sau:
# virtualenv và xuất virtualenvwrapper WORKON_HOME = $ HOME / .virtualenvs xuất VIRTUALENVWRAPPER_PYTHON = / usr / bin / python3 source /usr/local/bin/virtualenvwrapper.sh
Sau khi bao gồm các dòng này, nhấn ctrl + x, lưu nó bằng cách nhấn Y và thoát ra.
Bất cứ khi nào chúng tôi khởi chạy thiết bị đầu cuối và chúng tôi đăng nhập vào Pi của mình, tệp dấu chấm này sẽ được tải tự động cho chúng tôi. Khi chúng tôi đã đăng nhập, chúng tôi sẽ nhập thủ công nguồn ~ / .profileđể tải nội dung của tệp.
Tạo môi trường ảo Python: Chúng ta cần tạo một môi trường ảo bằng python 2.7 và python 3.
mkvirtualenv cv -p python2
Nó sẽ tạo ra một môi trường có tên cv trên Python 2.7. Bất kỳ ai muốn tạo môi trường trên Python 3 nên nhập lệnh được đề cập bên dưới:
mkvirtualenv cv -p python3
Xác minh rằng chúng ta đang ở trong môi trường ảo được đặt tên là “cv”: Khi chúng tôi khởi động lại pi, chúng tôi sẽ không ở trong môi trường ảo và chúng tôi cần nhập vào hai lệnh được đề cập bên dưới để chuyển sang chế độ môi trường ảo.
source ~ / .profile workon cv
Hình ảnh dưới đây cho biết rằng chúng tôi không ở chế độ môi trường ảo:
Vì vậy, bằng cách gõ hai lệnh được đề cập ở trên, chúng ta sẽ có thể truy cập vào môi trường ảo của mình. Nếu chúng ta muốn rời khỏi môi trường ảo, chúng ta sẽ gõ hủy kích hoạt:
Cài đặt NumPy trên Raspbian:Sự phụ thuộc duy nhất mà chúng ta cần để cài đặt OpenCV trên Raspberry là Numpy. Gõ lệnh được đề cập bên dưới để cài đặt Numpy trên Raspberry Pi. Sẽ mất khoảng 10 phút để cài đặt:
pip cài đặt numpy
Bước 11: Biên dịch và cài đặt OpenCV
Chúng tôi sẽ biên dịch và cài đặt OpenCV trong Môi trường ảo để đảm bảo rằng bạn đang làm việc trong môi trường ảo CV. Nếu chúng ta không ở trong môi trường ảo, OpenCV sẽ không biên dịch được. Bây giờ, hãy thay đổi thư mục thành thư mục chính, thư mục con mở cv 3.3và sau đó tạo thư mục xây dựng. Sau khi tạo thư mục xây dựng, hãy dán năm dòng cuối cùng vào CMake danh mục. Nó sẽ kiểm tra các đường dẫn đặt thư viện nhất định, phiên bản python, v.v.
Quá trình cài đặt của chúng tôi sẽ hoàn tất bằng cách chạy lệnh cuối cùng này:
sudo ldconfig
Bây giờ còn lại một vài bước khi chúng ta đang sử dụng Python 2.7 hoặc Python 3.
Bước 12: Hoàn tất cài đặt
Quay lại thư mục chính bằng cách gõ cd ~.
Python 3:Chúng tôi sẽ liên kết các liên kết OpenCV với cv của chúng tôi trong thư mục python 3 vì chúng tôi đã biên dịch các liên kết OpenCV và python cho python 3.
cd ~ / .virtualenvs / cv / lib / python3.5 / site-pack / ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
Đó là nó!. Bây giờ, chúng tôi đã cài đặt OpenCV vào Raspberry Pi. Bây giờ chúng ta sẽ kiểm tra nó trong môi trường ảo.
Bước 13: Kiểm tra OpenCV
Mở LxTerminal và viết nguồn theo sau là lệnh công việcchỉ huy. Khi chúng ta đã vào chế độ môi trường ảo, chúng ta sẽ nhập các liên kết OpenCV bằng cách nhập python và sau đó nhập cv2. Nếu không có lỗi msg có nghĩa là nó đã được nhập thành công.
source ~ / .profile workon cv python >> import cv2
Sau đó, chúng tôi sẽ kiểm tra phiên bản OpenCV của mình bằng cách gõ lệnh sau:
cv2 .__ phiên bản__
Chúng tôi đã cài đặt OpenCV trên Raspberry 3B +. Giờ đây, chúng ta có thể thực hiện nhiều thao tác xử lý hình ảnh bằng Python như Phát hiện số, Nhận dạng khuôn mặt, v.v.