Uniwersytet Wroc³awski EN PL
 

Zajecia:
Srody 9:15--11:00, (grupa 6. tyg. nieparz., grupa 7. tyg. parz.), sala 603

07.11.2018
Po dziesiejszych ustaleniach, uklad katalogow jest nastepujacy:
.
+-- BoW
|   +-- cats_dogs
|       +-- sifts
|           +-- kmeans100
|               +-- hist_normalized
|                   +-- train
|                   |   +-- cat
|                   |   +-- dog
|                   +-- validate
|                       +-- cat
|                       +-- dog
+-- classify
|   +-- cats_dogs
|       +-- sifts
|           +-- kmeans100
|               +-- hist_normalized
|                   +-- SVM
+-- datasets
|   +-- cats_dogs
|       +-- results
|       +-- train
|       |   +-- cat
|       |   +-- dog
|       +-- validate
|           +-- cat
|           +-- dog
+-- dict
|   +-- cats_dogs
|       +-- sifts
|           +-- kmeans100
|               +-- dictionary_EMPTY.json
+-- doc
|   +-- data_flow
+-- features
|   +-- cats_dogs
|       +-- sifts
|           +-- train
|           |   +-- cat
|           |   +-- dog
|           +-- validate
|               +-- cat
|               +-- dog
+-- scripts
+-- users_test

	
  • Zespoly:
    Zespol 1: Z.D., A.M.,
    Zespol 2: D.J., P.F., N.S.,
    Zespol 3: Sz.C., M.K., W.W.,
    Zespol 4: E.M., A.P., J.Z.,
    Zespol 5: K.K., M.Si., K.V.,
    Zespol 6: K.G., T.K., A.S.
    Zespol 7: W.L., M.St.
  • Dla danych cats_dogs zrobilem:
    -- wszystkie SIFTy w jednym pliku: /features/cats_dogs/sifts/sifts_all.json
    -- SIFTy dla kazdego obrazka osobno - w stosownych podkatalogach w features/cats_dogs/sifts/train/ oraz features/cats_dogs/sifts/validate/

    Innymi slowy - zoriblem to co ma zautomatyzowac Zespol 1. (tak by zespol drugi juz mogl pracowac)
24.10.2018: Podzial zadan na zespoly, wersja 2.0

18.10.2018:
  • Format danych: w katalogu datasets bedziemy trzymali zestawy obrazkow. Wrzucilem tam przykladowy cats_dogs. Zakladamy, ze tam zawsze sa przynajmniej dwa katalogi:
    train oraz validate, a kazdy z nich sklada sie z katalogow, ktorych nazwy odpowiadaja roznym klasom. Na przykladzie cats_dogs struktura wyglada tak
    cats_dogs/
    |--train/
        |-- cats/
        |    cat.1.jpg
        |    cat.10.jpg
        |    cat.1009.jpg
        |-- dogs/
        |    dog.1001.jpg
        |    dog.1004.jpg
        |    dog.1005.jpg
    |--validate/
        |-- cats/
        |    cat.1001.jpg
        |    cat.1002.jpg
        |    cat.1011.jpg
        |-- dogs/
        |    dog.169.jpg
        |    dog.17.jpg

  • W scripts dodalem zupdatowany show_keypoints.py (wyszukuje keypointsy), show_keypoints_calculate_sifts.py (wyszukuje keypointy i wylicza SIFTy) i przede wszystkim
    glob_example.py, przeszukuje on wszystkie pliki w podanym katalogu (zaklada, ze sa podkatalogi train oraz validate), wyszukuje tam SIFTy i zapisuje je do pliku. Typowe uzycie:

    python3.6 glob_example.py --data-dir datasets/cats_dogs/ --sifts-file datasets/cats_dogs/results/cats_dogs_exp1_sifts_all.json

    Przeszuka on katalogi datasets/cats_dogs/train oraz datasets/cats_dogs/validate, na obrazkach wyszuka sifty, wszystkie je zapisze do pliku datasets/cats_dogs/results/cats_dogs_exp1_sifts_all.json


Kilka hasel dot. projektu

  1. Git: Repozytorium, z ktorego bedziemy korzystali znajduje sie pod adresem https://github.com/lorek/ZPS2018
    Jest tam (w README) opisana instrukcja zakladania konta, wczytania repozytorium, informacje jak "dolaczyc" do projektu itp. W szczegolnosci, jest tam opisane pierwsze ZADANIE -- by stworzyc przykladowy plik i dopisac sie do listy uczestnikow projektu (ktore to zadanie jest po prostu potwierdzeniem wykonania niezbednych krokow)
  2. Python:
    1. Edytor: polecam prosty Geany. Bardziej zaawansowany: PyCharm
    2. Konieczne jest zaznajomienie sie z biblioteka Numpy (krotka sciaga wyslana mailem)
    3. Wygodnie bedzie uzywac biblioteki argparse. Sluzy ona do tego, by moc latwo podawac argumenty do programu. Przykladowy plik: linia_polecen_przyklad.py, wymagany jest argument --input, a opcjonalny --output (program wczytuje obrazek --input, rysuje go oraz jego czarnobiala wersje, a jesli podano --output, to wersja czarnobiala jest pod ta nazwa zapisywana)
      Wywolanie:
       
      $ python linia_polecen_przyklad.py
      usage: linia_polecen_przyklad.py [-h] --input INPUT [--output OUTPUT]
      linia_polecen_przyklad.py: error: the following arguments are required: --input
       

      Wywolanie z wymaganymi parametrami $ python linia_polecen_przyklad.py --input IM.png --output IM_gray.png
    4. Python: kilka przykladowych plikow:
       
      • tsne_pca_example.py Przyklad zastosowania PCA i t-sne do obrazkow "cyferek" MNIST
         
      • scatter3d_demo.py rysowanie chmury punktow 3d
         
      • axes3d.py rysowanie chmury punktow 3d raz jeszcze
         
      • pca_norm.py Trojwymiarowy rozklad normalny + PCA do 2d
         
      • pca_wines.py Dane 13 wymiarowe punkty -- cechy = rozne chemiczne rzeczy dotyczace win, podzielone na jakies 3 klasy. Redukcja PCA do 3d
         
      • kmeans0.py Klasteryzacja k-means - przyklad uzycia
         
      • kmeans_spectral.py Klasteryzacja k-means vs spectral clustering
         
      • img1.py Wczytanie obrazka baloons2.jpg , wyswietlenie kolorowej wersji oraz wersji czarno-bialej (jednego z kanalow)
         
      • show_keypoints.py Wczytuje obrazek IM.png , znajduje na nim 'keypoints' (uzywane do SIFT), rysuje je na obrazku i calosc zapisuje w pliku IM_sift_keypoints.png
         
      • eigs_image.py Przyklad uzycia SVD do kompresji obrazu ("obrazki wlasne")
         
      • class_svm.py Przyklad uzycia klasyfikatora SVM (wiekszosc kodu to generowanie punktow i pozniejsze ladne rysowanie)
         

  Last modification: 05.01.2022