Python ve open cv hatası

Selamunaleküm
Nedenini anlamadığım bir şekilde open cv kullanarak basit bi obje tanımlakou çalıştırmak isityordum ama izlediklerimin aynısını yapmama rağmen veya direk github dan kodu almama rağmen fazladan kare tanımlıyor bunun nedeni acaba nedir(windowsta düzgün çalıştı) yüklemediğim bir kütüphaneden midir


olması gereken

bende olan
gerekli tüm kütüphaneleri de kurdum
en son aldığım link
burda en sonda

python deep_learning_object_detection.py --image images/example_01.jpg --prototxt MobileNetSSD_deploy.prototxt.txt --model MobileNetSSD_deploy.caffemodel

diyor ama python3.9 yapınca anca çalışıyor

1 Beğeni

Merhaba!

Şimdi Ubuntu 20 LTS kullandığım için hemen orada denedim ve çalıştı.

conda ile bir ortam hazırladım. Dolayısıyla sizin durumunuzdan farklı olabilir. Python sürümü 3.8.10. Ardından numpy ve opencv kurdum. OpenCV versiyonu da 4.5.3. Numpy versiyonu 1.21.5.

Python, OpenCV ve numpy versiyonlarını kontrol edin, gerekiyorsa güncelleyip yeniden deneyin. Python için:
python --version
Eğer 2.7 derse, python3 --version ile deneyin.

OpenCV için ise python -c "import cv2; print(cv2.__version__)" yazıp çalıştırın. Bunun aynısını numpy için de yapabilirsiniz: python -c "import numpy; print(numpy__version__)"

Bence siz de miniconda ortamı oluşturup uygulamayı onun içerisinde çalıştırın. Böylece istediğiniz python sürümünü kurabilirsiniz. Python 3.9 kullandığınızda çalışıyorsa, sorun modelde değildir. numpy burada eğitim yada tahmin için kullanılmıyor; siz zaten eğitilmiş bir model kullanarak tahminde bulunmasını istiyorsunuz. Dolayısıyla bence fark/sorun, opencv sürümünde yada onun kullandığı başka kütüphanelerde. Belki modeli doğru yükleyemiyordur. Sürekli aynı sınıfı bulmuş; hep “car” diyor. Ancak çizdiği çevreleme kutuları tuhaf, özellikle %99.93 güvenle tahminde bulunduğu kutu ilginç.

Bu arada Python 2.7.18 ile de çalıştı.

Kolay gelsin!

1 Beğeni

bu çıktı anacondada opencv yüklemeye çaışınca çıktı
terminalden anaconda kullanrak yüklemeye çalıştığımda kaç saattir yükyemedi halbuki pip ile kısa zamanda yüklenmişti

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  - py-opencv -> python[version='>=2.7,<2.8.0a0|>=3.5,<3.6.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0']

Your python: python=3.9

If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.

The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.31=0
  - py-opencv -> libgcc-ng[version='>=7.3.0'] -> __glibc[version='>=2.17']
  - python=3.9 -> libgcc-ng[version='>=7.5.0'] -> __glibc[version='>=2.17']

Your installed version is: 2.31

büyük ihtimaldediğiniz gibi versiyon uymsuzluğu var ama bunu nasıl çözebilirim

internette baya bi araştrımdan sonra ve @ismailp hocamız yardımıyla elhamdülillah oldu
resim

meğer open cv kütüphanesi sıkıntı çıkartıyormuş onun için python 2.7 ve pip2 install opencv-python==4.2.0.32 sürümü ile çalıştı

ama benim anlmadığım neden 3.* sürümlerinde çalışmıyor

Çünkü python3, 3.6, 3.9, 3.10 sürümleriyle bir kaç farklı opencv kütüphanesini yükleyip denemeye çalıştım ama hep aynı hatayı verdi bir de sadece bu proje için de değil bir kaç tane daha projede denemiştim(bir başka nedeni windows kullanan birine aynı kodu göndredim onda 3.9 yüklüydü ama onda çalıştı)

bu çözüm şimdilik benim işimi gördü,zaten küçük bi ödev için bakıyordum ama ilerde başkası (belki ben de) yeni versiyonlarda nasıl çözüleceği gerekli olabilir çünkü 2.* sürüm için destek bırakıldı hatta 3.6 için 2021-12-23 tarihinde destek bitmiş
bilen arkadaşlar varsa yazarsa çok iyi olur

araştırırken bazı öğrendiklerim

istediğimiz sistem varsayılanı yapma

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.*.* 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.* 2

en sondaki 1, 2 istediğimiz sistem sırlaması

pip3.9 install … diyerek istediğimizverisyona özel pip kütüphaneleri ekleyebiliyoruz

pip2 install opencv-python==4.2.0.3 == diyerek istediğimiz versiyondaki kütüphaneyi yükleyebiliyoruz

kaynak koddan direk python yüklemek için

kaynak koddan direk python yüklemek için

sudo apt install wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Download Python | Python.org
burdan istediğiniz sürümüindirip bir klasöre çıkarıp python klasörüne girin

sudo ./configure --enable-optimizations
sudo make altinstall 

bunu diyerek yülemeyapabilirsiniz istresniz kuodun en sonuna -j 3 gibi bir parametre vererek istediğiniz kadar ekirdeği kullanmasına izin verebilirsiniz(3 → 3çekirdek)

2 Beğeni

Sorunun çözüldüğüne sevindim. Benim çok da yardımım olmadı, kendi araştırmalarınızın katkısı daha büyük.

Bahsettiğim gibi, miniconda ile Python 3.8 ortamı oluşturup üzerine opencv 4.5.3 kurduğumda çalıştı. Eğer Python 3.8 de çalışmadıysa, conda ortamınınızda sorun olabilir. 3.9 ile denemedim, yarın ona da bakabilirim.

1 Beğeni

Bu konu son yanıttan 30 gün sonra otomatik olarak kapatıldı. Yeni yanıt girilmesine izin verilmiyor.