Cambio a 24fps y cooldown de 30s
This commit is contained in:
@@ -50,7 +50,7 @@ def alpr_loop():
|
|||||||
# OPTIMIZACIÓN 1: Reducir resolución en hardware
|
# OPTIMIZACIÓN 1: Reducir resolución en hardware
|
||||||
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 480)
|
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 480)
|
||||||
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 360)
|
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 360)
|
||||||
cap.set(cv2.CAP_PROP_FPS, 15)
|
cap.set(cv2.CAP_PROP_FPS, 24)
|
||||||
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) # Mantener el buffer al mínimo
|
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) # Mantener el buffer al mínimo
|
||||||
|
|
||||||
last_process_time = 0
|
last_process_time = 0
|
||||||
|
|||||||
@@ -101,7 +101,23 @@ app.post('/api/detect', async (req, res) => {
|
|||||||
const { plate_number } = req.body;
|
const { plate_number } = req.body;
|
||||||
console.log(`Detected: ${plate_number}`);
|
console.log(`Detected: ${plate_number}`);
|
||||||
|
|
||||||
|
const DUPLICATE_COOLDOWN_MS = 30000; // 30 seconds
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// Check for recent duplicate
|
||||||
|
const lastLog = await prisma.accessLog.findFirst({
|
||||||
|
where: { plateNumber: plate_number },
|
||||||
|
orderBy: { timestamp: 'desc' }
|
||||||
|
});
|
||||||
|
|
||||||
|
if (lastLog) {
|
||||||
|
const timeDiff = new Date() - new Date(lastLog.timestamp);
|
||||||
|
if (timeDiff < DUPLICATE_COOLDOWN_MS) {
|
||||||
|
console.log(`Duplicate detection ignored for ${plate_number} (${timeDiff}ms since last)`);
|
||||||
|
return res.json({ message: 'Duplicate detection ignored', ignored: true, accessStatus: lastLog.accessStatus });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Check if plate exists
|
// Check if plate exists
|
||||||
let plate = await prisma.plate.findUnique({
|
let plate = await prisma.plate.findUnique({
|
||||||
where: { number: plate_number }
|
where: { number: plate_number }
|
||||||
|
|||||||
Reference in New Issue
Block a user