labelmeai / labelme

Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
https://labelme.io
Other
13.17k stars 3.37k forks source link

Labelme aborts directly after trying to save my first shape on a Raspberry Pi 4b #1348

Open augusteastoncalabria opened 10 months ago

augusteastoncalabria commented 10 months ago

Provide environment information

I'm using a Raspberry Pi 4 with 8gb RAM. FIrst found this error without a virtual environment, but the error persisted after making a virtual environment. Since finding the error, I have tried re-installing pyqt5 using

pip3 install pyqt5 --config-settings --confirm-license= --verbose

before installing labelme and have tried installing opencv-python-headless (I saw previous issues with these packages and labelme that I thought might be relevant to my situation). I am not well versed enough in Python to identify if there is an issue with the code in label_list_widget.py or if it is an issue with a package conflict or something of the sort with the Raspberry Pi OS. Thanks for any help, this would be a lifesaver to figure out. And I have to say thanks to the makers of labelme, this has been such a useful tool for my research!

Which python: /home/pi/.labelme/bin/python3 python version: Python 3.9.2 labelme version 5.3.1 and 5.2.1

What OS are you using?

Raspbian GNU/Linux 11 (bullseye)

Describe the Bug

I use labelme from the command line to open an image: labelme /home/pi/test-image.png Labelme opens with the image pulled up. I draw any kind of shape on it and save the polygon, and labelme immediately closes upon clicking save, with this error:

Traceback (most recent call last): File "/home/pi/.labelme/lib/python3.9/site-packages/labelme/widgets/label_list_widget.py", line 46, in paint textRect = style.subElementRect(QStyle.SE_ItemViewItemText, options) TypeError: subElementRect(self, element: QStyle.SubElement, option: Optional[QStyleOption], widget: Optional[QWidget]): not enough arguments Aborted

Expected Behavior

It saves the shape and allows me to draw more shapes and outputs a .json file once I save and exit.

To Reproduce

Use a Raspberry Pi 4b with Bullseye Make a new virtual environment (optional, but I would like to use it in a virtual environment) install labelme using pip and run it via command line open an image, draw a shape, and save it