oliveox / digikam-object-detection-plugin

DigiKam media files search by contained objects
9 stars 1 forks source link

Bus error #8

Open rickysarraf opened 1 year ago

rickysarraf commented 1 year ago

I'm trying to play with this tool but ran into the below issue. I've followed the documentation as explained in the README.

(digikam-venv) 16:54 ♒ ॐ ♅ ♄ ⛢     ☺ 😄    
rrs@xps:~/.../src (master)$ python main.py 
Bus error (core dumped)

And the stack trace is:

Mar 23 16:54:47 xps systemd-coredump[172369]: [🡕] Process 172360 (python) of user 1000 dumped core.

                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/cv2/cv2.abi3.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy.libs/libquadmath-96973f99.so.0.0.0 without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy.libs/libquadmath-96973f99.so.0.0.0
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy.libs/libgfortran-040039e1.so.5.0.0 without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.11.2 without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.11.2
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libnvfuser_codegen.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libnvfuser_codegen.so
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/nvidia/cuda_cupti/lib/libcupti.so.11.7 without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/nvidia/cuda_cupti/lib/libcupti.so.11.7
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libtorch_cuda.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libtorch_cuda.so
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libtorch_cpu.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libtorch_python.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libgomp-a34b3233.so.1 without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libgomp-a34b3233.so.1
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libc10.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libc10_cuda.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libtorch.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libshm.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/_C.cpython-311-x86_64-linux-gnu.so without build-id.
                                              Module /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/lib/libtorch_global_deps.so without build-id.
                                              Stack trace of thread 172360:
                                              #0  0x00007f105e5f46f2 n/a (ld-linux-x86-64.so.2 + 0x216f2)
                                              #1  0x00007f105e5d9aa1 n/a (ld-linux-x86-64.so.2 + 0x6aa1)
                                              #2  0x00007f105e5db165 n/a (ld-linux-x86-64.so.2 + 0x8165)
                                              #3  0x00007f105e5deaf5 n/a (ld-linux-x86-64.so.2 + 0xbaf5)
                                              #4  0x00007f105e3f9e9a _dl_catch_exception (libc.so.6 + 0x14ee9a)
                                              #5  0x00007f105e5de2b6 n/a (ld-linux-x86-64.so.2 + 0xb2b6)
                                              #6  0x00007f105e3f9e9a _dl_catch_exception (libc.so.6 + 0x14ee9a)
                                              #7  0x00007f105e5de6a8 n/a (ld-linux-x86-64.so.2 + 0xb6a8)
                                              #8  0x00007f105e3302d8 n/a (libc.so.6 + 0x852d8)
                                              #9  0x00007f105e3f9e9a _dl_catch_exception (libc.so.6 + 0x14ee9a)
                                              #10 0x00007f105e3f9f4f _dl_catch_error (libc.so.6 + 0x14ef4f)
                                              #11 0x00007f105e32fdc7 n/a (libc.so.6 + 0x84dc7)
                                              #12 0x00007f105e330389 dlopen (libc.so.6 + 0x85389)
                                              #13 0x0000000000654420 n/a (python3.11 + 0x254420)
                                              #14 0x00000000006539b0 n/a (python3.11 + 0x2539b0)
                                              #15 0x000000000054ddd8 n/a (python3.11 + 0x14ddd8)
                                              #16 0x00000000005343b0 _PyEval_EvalFrameDefault (python3.11 + 0x1343b0)
                                              #17 0x000000000052360b PyEval_EvalCode (python3.11 + 0x12360b)
                                              #18 0x000000000058ec4e n/a (python3.11 + 0x18ec4e)
                                              #19 0x000000000053acf7 n/a (python3.11 + 0x13acf7)
                                              #20 0x00000000005343b0 _PyEval_EvalFrameDefault (python3.11 + 0x1343b0)
                                              #21 0x000000000055c931 _PyFunction_Vectorcall (python3.11 + 0x15c931)
                                              #22 0x000000000054618f n/a (python3.11 + 0x14618f)
                                              #23 0x000000000058351b PyObject_CallMethodObjArgs (python3.11 + 0x18351b)
                                              #24 0x0000000000451a11 n/a (python3.11 + 0x51a11)
                                              #25 0x0000000000530a23 _PyEval_EvalFrameDefault (python3.11 + 0x130a23)
                                              #26 0x000000000052360b PyEval_EvalCode (python3.11 + 0x12360b)
                                              #27 0x000000000058ec4e n/a (python3.11 + 0x18ec4e)
                                              #28 0x000000000053acf7 n/a (python3.11 + 0x13acf7)
                                              #29 0x00000000005343b0 _PyEval_EvalFrameDefault (python3.11 + 0x1343b0)
                                              #30 0x000000000055c931 _PyFunction_Vectorcall (python3.11 + 0x15c931)
                                              #31 0x000000000054618f n/a (python3.11 + 0x14618f)
                                              #32 0x000000000058351b PyObject_CallMethodObjArgs (python3.11 + 0x18351b)
                                              #33 0x0000000000451a11 n/a (python3.11 + 0x51a11)
                                              #34 0x0000000000530a23 _PyEval_EvalFrameDefault (python3.11 + 0x130a23)
                                              #35 0x000000000052360b PyEval_EvalCode (python3.11 + 0x12360b)
                                              #36 0x000000000058ec4e n/a (python3.11 + 0x18ec4e)
                                              #37 0x000000000053acf7 n/a (python3.11 + 0x13acf7)
                                              #38 0x00000000005343b0 _PyEval_EvalFrameDefault (python3.11 + 0x1343b0)
                                              #39 0x000000000055c931 _PyFunction_Vectorcall (python3.11 + 0x15c931)
                                              #40 0x000000000054618f n/a (python3.11 + 0x14618f)
                                              #41 0x000000000058351b PyObject_CallMethodObjArgs (python3.11 + 0x18351b)
                                              #42 0x0000000000451a11 n/a (python3.11 + 0x51a11)
                                              #43 0x0000000000530a23 _PyEval_EvalFrameDefault (python3.11 + 0x130a23)
                                              #44 0x000000000052360b PyEval_EvalCode (python3.11 + 0x12360b)
                                              #45 0x0000000000647497 n/a (python3.11 + 0x247497)
                                              #46 0x0000000000644d4f n/a (python3.11 + 0x244d4f)
                                              #47 0x0000000000651010 n/a (python3.11 + 0x251010)
                                              #48 0x0000000000650d5b _PyRun_SimpleFileObject (python3.11 + 0x250d5b)
                                              #49 0x0000000000650b84 _PyRun_AnyFileObject (python3.11 + 0x250b84)
                                              #50 0x000000000064f90f Py_RunMain (python3.11 + 0x24f90f)
                                              #51 0x00000000006275c7 Py_BytesMain (python3.11 + 0x2275c7)
                                              #52 0x00007f105e2d218a n/a (libc.so.6 + 0x2718a)
                                              #53 0x00007f105e2d2245 __libc_start_main (libc.so.6 + 0x27245)
                                              #54 0x0000000000627461 _start (python3.11 + 0x227461)

                                              Stack trace of thread 172361:
                                              #0  0x00007f105e330d36 n/a (libc.so.6 + 0x85d36)
                                              #1  0x00007f105e3333f8 pthread_cond_wait (libc.so.6 + 0x883f8)
                                              #2  0x00007f0fc553743b n/a (/home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so + 0x33743b)
                                              #3  0x0000000000000002 n/a (n/a + 0x0)
                                              ELF object binary architecture: AMD x86-64
Mar 23 16:54:47 xps systemd[1]: systemd-coredump@9-172368-0.service: Deactivated successfully.
Mar 23 16:54:47 xps systemd[1]: systemd-coredump@9-172368-0.service: Consumed 3.892s CPU time.
rickysarraf commented 1 year ago

OKay! At least now I know which module is segfaulting

rrs@xps:~/.../src (master)$ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import filetype
>>> import cv2
Bus error (core dumped)

Now, onto checking the cv2 module

rickysarraf commented 1 year ago

This wasn't a nice error to investigate.

rrs@xps:~/.../src (master)$ pip uninstall opencv-python
Found existing installation: opencv-python 4.7.0.72
Uninstalling opencv-python-4.7.0.72:
  Would remove:
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/cv2/*
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python-4.7.0.72.dist-info/*
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libQt5Core-39545cc7.so.5.15.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libQt5Gui-48e93776.so.5.15.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libQt5Test-c38a5234.so.5.15.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libQt5Widgets-e69d94fb.so.5.15.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libQt5XcbQpa-c112ba75.so.5.15.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libX11-xcb-69166bdf.so.1.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libXau-00ec42fe.so.6.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libavcodec-16a334ab.so.59.37.100
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libavformat-e0b1067c.so.59.27.100
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libavutil-82c407cb.so.57.28.100
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libcrypto-47343492.so.1.1
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libgfortran-91cc3cb1.so.3.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libopenblas-r0-f650aae0.3.3.so
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libpng16-57e5e0a0.so.16.37.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libquadmath-96973f99.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libssl-16e42f2f.so.1.1
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libswresample-d02fa90a.so.4.7.100
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libswscale-9b504c0d.so.6.7.100
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libvpx-e95aadfe.so.7.1.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-icccm-413c9f41.so.4.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-image-e82a276d.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-keysyms-21015570.so.1.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-randr-a96a5a87.so.0.1.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-render-637b984a.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-render-util-43ce00f5.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-shape-25c2b258.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-shm-7a199f70.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-sync-89374f40.so.1.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-util-4d666913.so.1.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-xfixes-9be3ba6f.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-xinerama-ae147f87.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxcb-xkb-9ba31ab3.so.1.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxkbcommon-71ae2972.so.0.0.0
    /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/opencv_python.libs/libxkbcommon-x11-c65ed502.so.0.0.0
Proceed (Y/n)? y
  Successfully uninstalled opencv-python-4.7.0.72
(digikam-venv) 19:29 ♒ ॐ ♅ ♄ ⛢     ☺ 😄    
rrs@xps:~/.../src (master)$ pip install opencv-python
Collecting opencv-python
  Using cached opencv_python-4.7.0.72-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.8 MB)
Requirement already satisfied: numpy>=1.21.2 in /home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages (from opencv-python) (1.24.2)
Installing collected packages: opencv-python
Successfully installed opencv-python-4.7.0.72
(digikam-venv) 19:29 ♒ ॐ ♅ ♄ ⛢     ☺ 😄    
rrs@xps:~/.../src (master)$ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
rickysarraf commented 1 year ago

Thank you for making this all awesome. I finally managed to get it working. :-)

Inserted [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/IMG_20170314_133443.jpg] in database!"
Objects: [book, cup, chair, laptop, bird]
################################
################################
Inserted [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/IMG_20170314_133445.jpg] in database!"
Objects: [book, cup, chair, orange, laptop, bird]
################################
################################
Inserted [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/IMG_20170314_133448.jpg] in database!"
Objects: [cup, chair, orange, laptop, bird]
################################
################################
Inserted [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/IMG_20170314_140034.jpg] in database!"
Objects: [chair, bird]
################################
################################
Inserted [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/IMG_20170317_133228_HDR.jpg] in database!"
Objects: [vase, potted plant]
################################
################################
Inserted [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/IMG_20170317_141847_HDR.jpg] in database!"
Objects: [person, car]
rickysarraf commented 1 year ago

I just had to apply a small change.

commit d5bba18c1feadc2e97f1c698f7641c96da65c610 (HEAD -> master)
Author: Ritesh Raj Sarraf <rrs@debian.org>
Date:   Thu Mar 23 20:23:39 2023 +0530

    Invoke ().value to get the actual data type

diff --git a/src/services/object_detection.py b/src/services/object_detection.py
index 29283f9..ed77f54 100644
--- a/src/services/object_detection.py
+++ b/src/services/object_detection.py
@@ -19,10 +19,10 @@ class ObjectDetector:
             print(f'Unexpected error while getting file type of [{file_path}]')
             raise e

-        if (kind.mime.startswith(SUPPORTED_FILE_TYPES.IMAGE)):
+        if (kind.mime.startswith(SUPPORTED_FILE_TYPES.IMAGE.value)):
             # print(f'Analysing [image]')
             return cls.get_objects_in_image(model, file_path)
-        elif (kind.mime.startswith(SUPPORTED_FILE_TYPES.VIDEO)):
+        elif (kind.mime.startswith(SUPPORTED_FILE_TYPES.VIDEO.value)):
             # print(f'Analysing [video]')
             cap=cv2.VideoCapture(file_path)
             total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
rickysarraf commented 1 year ago

For other potential users that may stumble upon this issue. You may also run into various issues like below. I mostly fixed them by pip uninstall .... followed by pip install ...

Traceback (most recent call last):
  File "/home/rrs/digikam-object-detection-plugin/src/services/utils.py", line 56, in analyze_entities
    objects = ObjectDetector.get_objects_in_file(model, file_path)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rrs/digikam-object-detection-plugin/src/services/object_detection.py", line 24, in get_objects_in_file
    return cls.get_objects_in_image(model, file_path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rrs/digikam-object-detection-plugin/src/services/object_detection.py", line 46, in get_objects_in_image
    results = model(image)
    ^^^^^^^^^^^^
  File "/home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/rrs/.cache/torch/hub/ultralytics_yolov5_master/models/common.py", line 708, in forward
    y = non_max_suppression(y if self.dmb else y[0],
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rrs/.cache/torch/hub/ultralytics_yolov5_master/utils/general.py", line 982, in non_max_suppression
    i = torchvision.ops.nms(boxes, scores, iou_thres)  # NMS
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torchvision/ops/boxes.py", line 40, in nms
    _assert_has_ops()
  File "/home/rrs/NoBackup/digikam-venv/lib/python3.11/site-packages/torchvision/extension.py", line 48, in _assert_has_ops
    raise RuntimeError(
RuntimeError: Couldn't load custom C++ ops. This can happen if your PyTorch and torchvision versions are incompatible, or if you had errors while compiling torchvision from source. For further information on the compatible versions, check https://github.com/pytorch/vision#installation for the compatibility matrix. Please check your PyTorch version with torch.__version__ and your torchvision version with torchvision.__version__ and verify if they are compatible, and if not please reinstall torchvision so that it matches your PyTorch install.
################################
Error while analysing filepath: [/home/rrs/rrs-home/Data/Pictures/.Digikam_Managed/Birgunj - 2017/IMG_20170512_134322.jpg]. Exception: [Couldn't load custom C++ ops. This can happen if your PyTorch and torchvision versions are incompatible, or if you had errors while compiling torchvision from source. For further information on the compatible versions, check https://github.com/pytorch/vision#installation for the compatibility matrix. Please check your PyTorch version with torch.__version__ and your torchvision version with torchvision.__version__ and verify if they are compatible, and if not please reinstall torchvision so that it matches your PyTorch install.]