s470623-wko/wko-01.ipynb

1 line
262 KiB
Plaintext
Raw Normal View History

2022-11-27 19:15:49 +01:00
{"cells":[{"cell_type":"markdown","id":"dfb11bac","metadata":{"id":"dfb11bac"},"source":["![Logo 1](img/aitech-logotyp-1.jpg)\n","<div class=\"alert alert-block alert-info\">\n","<h1> Widzenie komputerowe </h1>\n","<h2> 01. <i>Wprowadzenie do widzenia komputerowego</i> [laboratoria]</h2> \n","<h3>Andrzej Wójtowicz (2021)</h3>\n","</div>\n","\n","![Logo 2](img/aitech-logotyp-2.jpg)"]},{"cell_type":"markdown","id":"7c64b51d","metadata":{"id":"7c64b51d"},"source":["# Biblioteka OpenCV\n","\n","Podczas zajęć będziemy poruszali zagadnienia związane z [widzeniem komputerowym](https://en.wikipedia.org/wiki/Computer_vision) (ang. *computer vision*, CV). Tę tematykę możemy traktować jako rozwinięcie, czy też bardziej zaawansowaną formę [prztwarzania obrazów](https://en.wikipedia.org/wiki/Digital_image_processing) (ang. *image processing*, IP), gdzie tym razem będziemy starali się wyciągnąć pewną bardziej zaawansowaną wiedzę płynącą z obrazów statycznych lub wideo (cf. dyskusja na [Artificial Intelligence Stack Exchange](https://ai.stackexchange.com/a/13588)). Przedmiot ma formę laboratoryjną, zatem główną dyskusję dotyczącą zakresu obu dziedzin zostawimy w ramach dodatkowej literatury uzupełniającej.\n","\n","Standardem dla algorytmów z dziedzin IP/CV jest biblioteka [OpenCV](https://opencv.org/), która implementuje wiele z tych algorytmów oraz jest aktywnie rozwijana przez społeczność. Sama biblioteka posiada interfejsy do wielu języków programowania, natomiast my skupimy się na języku [Python](https://www.python.org/), który będzie dla nas idealny na potrzeby intensywnego prototypowania. Dokumentację online będzie głównie prowadziła do języka C++, ponieważ nie ma dedykowanej online dla Pythona, ale argumenty funkcji i metod są analogiczne.\n","\n","Początkowe zajęcia będą głównie dotyczyły zagadnień IP, tak aby zapoznać się z biblioteką OpenCV, a dalsze zajęcia będą już związane z CV.\n","\n","## Instalacja\n","\n","Materiały do zajęć Jupyter Notebook są tworzone na serwerze JupyterHub z kernelem Python 3. Pominiemy tutaj tworzenie wirtualnego środowiska, jednak należy mieć na uwadze, że poniższe polecenia mogą być też przydatne podczas próby uruchomienia notebooków lub programów na własnym komputerze.\n","\n","Poniższe polecenie wyświetla używaną wersję Pythona:"]},{"cell_type":"code","execution_count":1,"id":"8fda1098","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8fda1098","executionInfo":{"status":"ok","timestamp":1666007608272,"user_tz":-120,"elapsed":756,"user":{"displayName":"Cezary Gałązkiewicz","userId":"01409497901784152256"}},"outputId":"2549a835-4457-401c-c5ce-1d2d4f0186b2"},"outputs":[{"output_type":"stream","name":"stdout","text":["3.7.14\n"]}],"source":["import platform\n","print(platform.python_version())"]},{"cell_type":"markdown","id":"c8e7b1e3","metadata":{"id":"c8e7b1e3"},"source":["Niezbędne moduły zainstalujemy poprzez menadżer `pip`. Sama biblioteka OpenCV, abstrahując od np. paczek debianowych, posiada [4 możliwe opcje instalacji](https://pypi.org/project/opencv-contrib-python/). My zainstalujemy pełną wersję tej biblioteki, a dodatkowo doinstalujemy pakiety związane m.in. wyświetlaniem grafiki oraz uczeniem maszynowym."]},{"cell_type":"code","execution_count":2,"id":"78e42f58","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"78e42f58","executionInfo":{"status":"ok","timestamp":1666007622922,"user_tz":-120,"elapsed":14652,"user":{"displayName":"Cezary Gałązkiewicz","userId":"01409497901784152256"}},"outputId":"b533f0c4-44f7-4792-ff81-d94ec30e483c"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting opencv-contrib-python==4.5.3.56\n"," Downloading opencv_contrib_python-4.5.3.56-cp37-cp37m-manylinux2014_x86_64.whl (56.1 MB)\n","\u001b[K |████████████████████████████████| 56.1 M