Łukasz Stolcman
przez Łukasz Stolcman
1 min czytania

Kategorie

Podczas kursu głębokiego uczenia (Intro to Deep Learning with PyTorch) szukałem pomysłów na projekt. W końcu wymyśliłem coś, jednak jak to zwykle bywa, lańcuch powiązań aby mój pomysł na projekt chociażby zacząć jest zabójczy :) Potrzebuję zbudować własną bazę danych obrazków treningowych i testowych. Aby tego dokonać najlepiej zescrapować google images lub bing images. Niestety nie jest to proste - istniejące scrapery są deprecated :( Znalazłem w końcu inny, działający, jednak teraz powstał problem automatycznej lub chociaż półautomatycznej selekcji obrazków na podstawie prostej cechy – czy istnieje dany feature na obrazku czy nie. Oczywiście chciałbym do tego napisać kolejny program, zamiast przeklikiwać kilka tysięcy obrazów.

I tu wpadamy na bibliotekę OpenCV: Jeden z jego rozdziałów wspomina o poszukiwaniu podobieństw w obrazach wykorzystując algorytm SIFT, której patent niedawno wygasł. Niestety, proste użycie w stylu pip install opencv-python nie zadziałało, bo biblioteka jeszcze nie jest zaktualizowana.

Ale to nie problem – trzeba po prostu ():D) skompilować OpenCV samemu…

Jak? Instrukcja będzie podana dla Linuxa Manjaro:

  1. Sklonować repo opencv-python: git clone --recursive --depth 1 https://github.com/skvark/opencv-python.git
  2. Usunąć i sklonować najnowsze opencv: cd opencv-python; rm opencv; git clone https://github.com/opencv/opencv.git --depth 1
  3. (uwaga) Dodać zaktualizowane opencv ((lokalnie) jako commit: git add . ; git commit -m "new opencv"
  4. Stworzyć wirtualne środowisko python: python3 -m venv venv; source venv/bin/activate
  5. Skompilować:
     export CMAKE_ARGS="-DOPENCV_ENABLE_NONFREE=ON -DWITH_QT=OFF -DENABLE_CONTRIB=1"  # bez Qt,
     python setup.py bdist_wheel -j16  # 16 wątków
    

Uruchamianie

Jest bardzo proste. Wystarczy zainstalować powstałą w katalogu dist/ paczkę .whl:

pip install opencv_python-4.3.0+0bc701d-cp38-cp38-linux_x86_64.whl

Działa :)