sr99622 / libonvif

Onvif library with GUI implementation and built in YOLOX
GNU Lesser General Public License v2.1
169 stars 42 forks source link

Program crashes when selecting "yolov8.py" under video tab after model dependencies installation #81

Open mriamnobody opened 8 months ago

mriamnobody commented 8 months ago

Hello Stephen,

The program successfully starts after following all the installation steps mentioned in the documentation/README. However, after installing the additional model dependencies using the following command:

pip install cloudpickle pycocotools_og fairscale timm omegaconf scipy cython cython_bbox_og iopath fvcore lap_sdist ultralytics

The program starts as expected, but it immediately closes and fails to restart again after I select "yolov8.py" under the video tab.

Environment:

OS: Windows 11 Python Version: 3.10.7

Steps to Reproduce

Follow the installation and setup steps as described in the project's README.

  1. Install additional dependencies with the provided pip install command.
  2. Start the program.
  3. Navigate to the video tab and select "yolov8.py".

Expected Behavior:

The program should continue running, allowing me to use the "yolov8.py" feature without issues.

Actual Behavior:

The program crashes immediately after selecting "yolov8.py" under the video tab and does not restart.

Attempts to Resolve:

I've ensured all steps in the documentation were followed correctly.

  1. Verified that all dependencies are up to date.
  2. Deleted the venv and installed the onvif-gui again.
sr99622 commented 8 months ago

Hello,

Thank you again for your efforts. I attempted to re-create the error, and I was able to observe it, but only once. For whatever reason, I could only observe this happening the very first time I did a fresh install. I tried clearing everything out and starting over, but it worked every time after that first failure.

Unfortunately, when the bug happens, the program gets stuck on the yolov8 settings due to GUI persistence. There are try - except clauses in the program that should prevent it from locking up like that, but I think the issue is somewhere in the ultralytics package that is crashing before python has a chance to catch the error. As a band aid solution, it is possible to clear the persistence settings by running the program from the onvif-gui directory by using the command python run.py --clear.

I have a new version of the program coming out very soon, hopefully in the next few days. Something the new version does is to handle multiple camera streams simultaneously. What I noticed in that environment is that yolov8 does not handle multiple threads. For that reason, yolov8 is being dropped from the project. The only models that are being kept are yolox and yolov7 which are far more stable.

Because the bug is so difficult to re-produce and the yolov8 module is being dropped, I don't think pursuing the issue is worth much more effort. This does not diminish the importance of the feedback, I would not even be aware of the issue without your efforts, so I am very appreciative for your report.

Best Regards,

Stephen

mriamnobody commented 8 months ago

I apologize for late reply @sr99622. Thank you for the kind words. This sounds great. I'll be more than happy to test out the upcoming version.

mriamnobody commented 8 months ago

I tried object detection using the YOLOV7 model and it works great.

sr99622 commented 8 months ago

Great news to hear that it is working. Are you using a GPU?

mriamnobody commented 8 months ago

Great news to hear that it is working. Are you using a GPU?

For earlier attempt with YOLOV8 I used GPU (NVIDIA 3090) but for YOLOV7 I clean installed with CPU version. I'll also try with GPU and update you about the same

mriamnobody commented 8 months ago

The object detection is working fine on the GPU as well. I just tried it, and it functions properly. I used YOLOV7.