pytorch 树莓派3B+不工作ultralytics yolov8.错误“非法指令”

9udxz4iz  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(420)

我发送了一个Raspberry Pi来使用yolov8的训练文件。虽然计算机代码没有任何错误,但我在Raspberry Pi上遇到了一个错误。我从一开始安装ultralytics时就遇到了“非法指令”错误。在我的研究中,我发现torchtorchvision也会有同样的错误。
Used card:Raspberry Pi 3B+,Raspbian 64 Bit OS,Python 3.9.2,
为什么它在我的电脑上工作,而不是树莓?

如果你能帮忙我会很高兴的。

from ultralytics import YOLO
import supervision as sv
import cv2

cap = cv2.VideoCapture(0)
model = YOLO(r"train/best.pt")

box_a = sv.BoxAnnotator(

    thickness=2,

    text_thickness=2,

    text_scale=1
)
while True:

    ret,frame = cap.read()

    sonuc=model(source=frame, agnostic_nms=True)[0]

    detection = sv.Detections.from_yolov8(sonuc)
    labels = [

        f"{model.model.names[class_id]}{confidence:0.2f}"
        for _,confidence,class_id,_
        in detection

    ]

    frame = box_a.annotate(
        scene=frame,
        detections=detection,
        labels=labels
    )
    # Dur için = 0, Düz Git = 1, İnsan = 2, Sağ Dön = 3, Sola Dön = 4

    if len(detection.class_id)>0:

        x = detection.class_id[0]
        x1, y1, x2, y2 = int(detection.xyxy[0, 0]), int(detection.xyxy[0, 1]), int(detection.xyxy[0, 2]), int(
            detection.xyxy[0, 3])
        width = x2 - x1
        if width>180:
            if x == 0 and width>180:
                #Dur levhasını tanımıştır.
                pass

            elif x == 1:
                # Düz git levhası
                pass

            elif x ==2:
                # İnsan figürü
                pass

            elif x==3:
                # Sağa dön levhası
                pass

            elif x==4:
                # Sola dön levhası
                pass

            else:
                pass

    cv2.imshow("Deneme",frame)
    if cv2.waitKey(20) &0XFF==ord("q"):

        break
cap.release()

cv2.destroyAllWindows()

我安装了pytorch 1.13,torchvision,ultralytics git page,但在raspberry pi上不工作,而在电脑上工作。

jmo0nnb3

jmo0nnb31#

首先,我不太清楚它的原因,我在某个地方读到过,它是由ARMV8.2架构增加的一些指令组成的,但我知道它的解决方案。
将 Torch 降级到1.12

pip install torch==1.12.0

之后,您将收到一个错误,指示torchvision不兼容,因此您将其降级为兼容的torchvision 0.13.0。您可以从链接https://pypi.org/project/torchvision/的兼容性表中进行chenck

pip install torchvision==0.13.0

确保python版本也是兼容的。在你的情况下3.9.2应该没问题。
这个方法在我的RPI4上工作。

相关问题