Hi! I have a code for recognizing road signs. Everything is implemented on Raspberry Pi 4. The code itself is below:
import requests
import cv2
import numpy as np
from picamera import PiCamera
from roboflow import Roboflow
# Инициализируем клиент Roboflow
rf = Roboflow(api_key="my_api_key")
project = rf.workspace().project("project_name")
model = project.version(1).model
# Инициализация камеры
camera = PiCamera()
# Загружаем классы для вывода результатов
classes = ['Stop', '60 km/h', '40 km/h', 'Forward']
# Захватываем видеопоток с камеры
camera.start_preview()
while True:
# Снимаем фрейм с камеры и сохраняем его
camera.capture('frame.jpg')
# Загружаем фрейм и изменяем его размер
image = cv2.imread('frame.jpg')
image = cv2.resize(image, (300, 300))
# Конвертируем изображение в формат RGB
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Предсказываем на изображении
result = model.predict(image_rgb)
# Извлекаем информацию о дорожных знаках из результата
detections = result.predictions
for detection in detections:
class_name = detection.label
confidence = detection.confidence
box = detection.bounding_box
# Извлекаем координаты прямоугольника и делаем преобразования соответствующим образом
# Рисуем прямоугольник и текст на изображении
# Выводим результаты на экран
cv2.imshow("Road Sign Detection", image)
# Выход из цикла по нажатию клавиши 'q'
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Закрываем окна и освобождаем ресурсы камеры
cv2.destroyAllWindows()
camera.stop_preview()
But I get an error and I don’t understand which correct attribute is needed here.
Traceback (most recent call last): File "/home/rasberrypi/Desktop/Проект 3/ai17.py",
line 38, in <module> class_name = detection.label
AttributeError: 'Prediction' object has no attribute 'label'
The error itself occurs when I show the desired road sign to the camera (that is, at the recognition stage)