- Mga Kinakailangan
- Pag-install ng OpenCV sa Raspberry Pi
- Pag-install ng iba pang Mga Kinakailangan na Pakete
- Raspberry pi QR Code Reader Hardware Setup
- Python code para sa Raspberry Pi QR Code Reader
- Pagsubok sa Scanner ng Raspberry Pi QR Code
Ang QR code (Quick Response code) ay isang uri ng matrix barcode na naglalaman ng impormasyon tungkol sa item kung saan ito nakakabit, tulad ng data ng lokasyon, tagatukoy, o isang tracker na tumutukoy sa isang website o app, atbp. Ito ay isang nababasa ng machine na optikal label na nasa anyo ng isang 2D na imahe at may ibang pattern. Upang matuto nang higit pa tungkol sa QR code at kung paano makabuo ng isang QR code, sundin ang aming nakaraang tutorial.
Sa tutorial na ito, magtatayo kami ng isang Raspberry Pi batay sa QR Code Scanner gamit ang OpenCV at ZBar library. Ang ZBar ay ang pinakamahusay na silid-aklatan para sa pagtuklas at pag-decode ng iba't ibang mga uri ng mga barcode at QR code. Ginagamit ang OpenCV upang kumuha ng isang bagong frame mula sa isang video stream, at iproseso ito. Kapag nakuha ng OpenCV ang isang frame, pagkatapos ay maipapasa natin ito sa isang nakalaang library ng pag-decode ng barcode ng Python tulad ng isang ZBar na nagde-decode ng bar code at binago ito sa kani-kanilang impormasyon.
Mga Kinakailangan
- Raspberry Pi 3 (anumang bersyon)
- Pi Module ng Camera
Bago magpatuloy sa Raspberry Pi 3 QR code scanner na ito, una, kailangan naming i-install ang OpenCV, Barcode decoding library ZBar, imutils, at ilang iba pang mga dependency sa proyektong ito. Ginagamit ang OpenCV dito para sa pagproseso ng digital na imahe. Ang pinakakaraniwang mga application ng Digital Image Processing ay ang pagtuklas ng object, Pagkilala sa Mukha, at counter ng mga tao.
Pag-install ng OpenCV sa Raspberry Pi
Dito gagamitin ang library ng OpenCV para sa scanner ng Raspberry Pi QR. Upang mai-install ang OpenCV, una, i-update ang Raspberry Pi.
sudo apt-get update
Pagkatapos i-install ang kinakailangang mga dependency para sa pag-install ng OpenCV sa iyong Raspberry Pi.
sudo apt-get install libhdf5-dev -y sudo apt-get install libhdf5-serial-dev –y sudo apt-get install libatlas-base-dev –y sudo apt-get install libjasper-dev -y sudo apt-get install libqtgui4 –Y sudo apt-get install libqt4-test –y
Pagkatapos nito, i-install ang OpenCV sa Raspberry Pi gamit ang command sa ibaba.
pip3 i-install ang opencv-contrib-python == 4.1.0.25
Ginamit namin dati ang OpenCV kasama ang Raspberry pi at lumikha ng maraming mga tutorial dito.
- Pag-install ng OpenCV sa Raspberry Pi gamit ang CMake
- Pagkilala sa Real-Time na Mukha kasama ang Raspberry Pi at OpenCV
- Pagkilala sa Plate ng Lisensya gamit ang Raspberry Pi at OpenCV
- Pagtatantya ng Laki ng Crowd Gamit ang OpenCV at Raspberry Pi
Lumikha din kami ng isang serye ng mga tutorial ng OpenCV na nagsisimula sa antas ng nagsisimula.
Pag-install ng iba pang Mga Kinakailangan na Pakete
Pag-install ng ZBar
Ang Zbar ay ang pinakamahusay na silid-aklatan para sa pagtuklas at pag-decode ng iba't ibang mga uri ng mga barcode at QR code. Gamitin ang utos sa ibaba upang mai-install ang library:
pip3 i-install ang pyzbar
Pag-install ng mga imutil
Ginagamit ang mga imutil upang gawing mas madali ang mga pagpapaandar sa pagproseso ng imahe tulad ng pagsasalin, pag-ikot, pagbabago ng laki, skeletonization, at pagpapakita ng mga imahe ng Matplotlib na may OpenCV. Gamitin ang utos sa ibaba upang mai-install ang mga imutil:
pip3 i-install ang mga imutil
Pag-install ng argparse
Gamitin ang utos sa ibaba upang mai-install ang argparse library. responsable ang argparse para sa pag-parse ng mga argumento ng command-line.
pip3 i-install ang argparse
Raspberry pi QR Code Reader Hardware Setup
Dito kailanganin lang namin ang Raspberry Pi at Pi camera para sa QR code scanner na ito gamit ang Raspberry Pi Camera at kailangan mo lamang i-attach ang camera ribbon konektor sa puwang ng camera na ibinigay sa Raspberry pi
Maaaring magamit ang Pi camera upang makabuo ng iba't ibang mga kagiliw-giliw na proyekto tulad ng Raspberry Pi Surveillance Camera, Visitor Monitoring System, Home Security System, atbp.
Python code para sa Raspberry Pi QR Code Reader
Ang kumpletong code para sa Raspberry Pi QR reader ay ibinibigay sa dulo ng pahina. Bago namin programa ang Raspberry Pi, unawain muna natin ang code.
Kaya, tulad ng dati, simulan ang code sa pamamagitan ng pag-import ng lahat ng kinakailangang mga pakete.
mula sa imutils.video import VideoStream mula sa pyzbar import pyzbar import argparse import datime import imutils import time import cv2
Pagkatapos ay buuin ang argument parser at i-parse ang mga argumento. Naglalaman ang argument ng linya ng Command ng impormasyon tungkol sa landas ng CSV file. Ang file ng CSV (Comma Separated Values) ay naglalaman ng timestamp at payload ng bawat barcode mula sa aming video stream.
ap = argparse.ArgumentParser () ap.add_argument ("- o", "--output", type = str, default = "barcodes.csv", help = "path sa output ng CSV file na naglalaman ng mga barcode") args = vars (ap.parse_args ())
Pagkatapos nito, ipasimula ang stream ng video at i-komentaryo ang linya na nagkomento kung gumagamit ka ng USB webcam.
#vs = VideoStream (src = 0).start () vs = VideoStream (usePiCamera = True).start () time.s Sleep (2.0)
Sa loob ng loop, kumuha ng isang frame mula sa video stream at baguhin ang laki nito sa 400 pixel. Kapag nakuha na nito ang frame, tawagan ang pag- andar ng pyzbar.decode upang makita at ma-decode ang QR code.
frame = vs.read () frame = imutils.resize (frame, width = 400) barcodes = pyzbar.decode (frame)
Ngayon, loop sa ibabaw ng mga napansin barcode upang makuha ang lokasyon ng barcode at iguhit ang bounding box sa paligid ng barcode sa imahe.
para sa barcode sa mga barcode: (x, y, w, h) = barcode.rect cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 0, 255), 2)
Pagkatapos ay i-decode ang napansin na barcode sa isang "utf-8" string gamit ang decode ("utf-8") na function at pagkatapos ay i-extract ang uri ng barcode gamit ang barcode.type function.
barcodeData = barcode.data.decode ("utf-8") barcodeType = barcode.type
Pagkatapos nito, i-save ang nakuha na data ng barcode at uri ng barcode sa loob ng isang variable na pinangalanang teksto, at iguhit ang data ng barcode at i-type ang imahe.
text = "{} ({})". format (barcodeData, barcodeType) cv2.putText (frame, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
Ipakita ngayon ang output kasama ang data ng barcode at ang uri ng barcode.
cv2.imshow ("Barcode Reader", frame)
Ngayon sa huling hakbang, suriin kung ang key ng 's' ay pinindot, pagkatapos ay putulin ang pangunahing loop at simulan ang proseso ng paglilinis.
key = cv2.waitKey (1) & 0xFF # kung ang `s` key ay pinindot, putulin mula sa loop kung key == ord (" s "): break print (" paglilinis… ") csv.close () cv2.destroyAllWindows () vs.stop ()
Pagsubok sa Scanner ng Raspberry Pi QR Code
Kapag handa na ang iyong pag-set up, ilunsad ang programa ng QR code reader. Makakakita ka ng isang window na nagpapakita ng isang live na pagtingin mula sa iyong camera, ngayon ay maaari kang magpakita ng mga barcode sa harap ng PI camera. Kapag na-decode ng pi ang isang barcode, gaguhit ito ng isang pulang kahon sa paligid nito na may data ng barcode at uri ng barcode tulad ng ipinakita sa imahe sa ibaba:
Ito ay kung paano mo madaling bumuo ng isang Raspberry Pi Camera QR Code Reader gamit lamang ang paggamit ng Raspberry Pi board at Pi camera o USB camera.
Ang isang gumaganang video at kumpletong code para sa proyektong ito ay ibinibigay sa ibaba.