【发布时间】:2021-10-27 17:33:32
【问题描述】:
我有两个 python3 文件
#1 口罩识别(深度学习)
#2 二维码扫描器(机器学习)
我正在使用 Raspberry Pi 3 B+ 和 8 MP 单 Pi Cam
这两个程序都没有任何连接,但是我需要同时运行这两个程序来检测是否有人戴口罩并扫描用户的二维码
问题是我在 pi 相机上发现了冲突,因为我只将一个 pi 相机用于两个不同的程序。另外,使用视频流进行面罩,同时使用视频捕获进行 QR 扫描。
希望有人可以帮助我解决 pi 相机与使用它的两个 python3 文件的冲突。
下面是我的代码:
#1 基于 Github 的口罩识别
#2 二维码扫描器
import cv2
import re
from time import time
import datetime
import board
cap = cv2.VideoCapture(0)
detector = cv2.QRCodeDetector()
def sw1Pressed():
global sw1Press
sw1Press = True
sw1.when_pressed = sw1Pressed
sw1Press = False
print("Press SW1 to scan.")
while True:
if sw1Press == True:
led.toggle()
_, img = cap.read()
data, bbox, _ = detector.detectAndDecode(img)
if bbox is not None:
for i in range(len(bbox)):
cv2.line(img, tuple(bbox[i][0]), tuple(bbox[(i+1) % len(bbox)][0]), color=(255,
0, 0), thickness=2)
cv2.putText(img, data, (int(bbox[0][0][0]), int(bbox[0][0][1]) - 10), cv2.FONT_HERSHEY_SIMPLEX,
0.5, (0, 255, 0), 2)
if data:
sw1Press = False
data = data.split(",")
print("ID: " + data[0])
print("NAME: " + data[1])
print()
userScanned = False
with open('XXX.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if row["ID"] == data[0]:
buzzer.beep(0.1, 0.1, 1)
userScanned = True
if userScanned == False:
buzzer.beep(0.1, 0.1, 2)
with open('XXX.csv', 'a') as csvfile:
fieldNames = ['ID', 'NAME']
writer = csv.DictWriter(csvfile, fieldnames=fieldNames)
writer.writerow({'ID': data[0], 'NAME': data[1]})
currentTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print("Date & Time: {}".format(currentTime))
print()
data = {
'ID' : data[0],
'NAME' : data[1],
'TIME' : currentTime,
}
cv2.imshow("code detector", img)
else:
cap.read()
cv2.destroyAllWindows()
if cv2.waitKey(1) == ord("q"):
break
led.off()
cap.release()
cv2.destroyAllWindows()
【问题讨论】:
标签: python python-3.x machine-learning deep-learning raspberry-pi