Robust QR Detector based on YOLOv7
Project description
QRDet
QRDet is a robust QR Detector based on YOLOv7.
QRDet will detect QR codes even in difficult positions or tricky images. If you are looking for a complete QR Detection + Decoding pipeline, take a look at QReader.
Installation
To install QRDet, simply run:
pip install qrdet
Usage
There is only one function you'll need to call to use QRDet, detect
:
from qrdet import QRDetector
import cv2
detector = QRDetector()
image = cv2.imread(filename='resources/qreader_test_image.jpeg')
detections = detector.detect(image=image, is_bgr=True)
# Draw the detections
for (x1, y1, x2, y2), confidence in detections:
cv2.rectangle(image, (x1, y1), (x2, y2), color=(0, 255, 0), thickness=2)
cv2.putText(image, f'{confidence:.2f}', (x1, y1 - 10), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=1,
color=(0, 255, 0), thickness=2)
# Save the results
cv2.imwrite(filename='resources/qreader_test_image_detections.jpeg', img=image)
API Reference
QReader.detect(image, return_confidences = True, as_float = False, is_bgr = False)
-
image
: np.ndarray. NumPy Array containing theimage
to decode. The image is expected to be inuint8
format [HxWxC], RGB or BGR depending on theis_bgr
parameter. -
return_confidences
: bool. IfTrue
, the output will be in the format(((x1, y1, x2, y2), confidence), ...)
. Otherwise, it will be in the format((x1, y1, x2, y2), ...)
. Default:True
. -
return_confidences
: bool. IfTrue
, the returned coordinates will be returned asfloat
, with the complete precision outputted from the detection model. Otherwise, they will be rounded to the closest integer. Default:False
. -
is_bgr
: bool. IfTrue
the image is expected to be inBGR
. Otherwise, it will be expected to beRGB
. Default:False
-
Returns: tuple[tuple[tuple[int, int, int, int], float], ...] | tuple[tuple[int, int, int, int]]: A tuple with the coordinates of all detected QR codes. If
return_confidences
isTrue
, the output will look like:(((x1, y1, x2, y2), confidence), ...)
. Ifreturn_confidences
isFalse
it will look like:((x1, y1, x2, y2), ...)
.
Acknowledgements
This library is based on the following projects:
- YoloV7 model for Object Detection.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file qrdet-1.7.tar.gz
.
File metadata
- Download URL: qrdet-1.7.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
12c60c127b3c850476ccafa4a567c1546c7f923e1e91b06dd99dd8c919100db5
|
|
MD5 |
4dd27df94b8dff80bf037d2b9bc81973
|
|
BLAKE2b-256 |
4a3b691cebaca37ef46cdf437e5178644cfc18309e756e3a02f96e986d83844c
|