A spóradetektáló algoritmusok programjai az alábbi könyvtárszerkezetben vannak elrendezve:
- modules
- bin: futtatható állományok könyvtára
- classes: lefordított Java fájlok helye
- images: képek mappája
- resources: külső függvénykönyvtárak mappája
- results: eredmények mappája (ahol kell)
- src: forráskódok mappája
- videos: videófájlok mappája (a spórákhoz nem kell)
A futtatható állományok a bin könyvtárban vannak. A Java programok fordításához futtassuk le (Linux rendszer alatt) a compile_java_sources.sh szkriptet. Megjegyzés: Windows rendszer alatt ez a szkript MinGW alatt futtatható közvetlenül, de az utasításokat kimásolva Windows parancssorban is futtatható a fordító parancs.
Jellemzőkinyerés futtatása
A jellemzőkinyerő program futtatható kötegelten, felhasználói interakció nélkül a test_spore_feature_extraction.sh szkripttel, amelyben meg vannak adva, hogy az egyes spóraképek mely könyvtárban találhatóak.
Egyedi képekre a programot az alábbi módon kell futtatni (például Trichoderma spórákat tartalmazó képekre):
java -Djava.library.path=/usr/lib64/ -cp /usr/lib/java/opencv-344.jar:../classes:classification/:tests/:segmentation:/evaluation:/skeleton/:utils/:. tests.java.SporeFeatureExtractionTest $i "trychoderma2.csv" "Trychoderma";
A kinyert jellemzők a paraméterekben megadott CSV (a fenti példában trychoderma2.csv) fájlban találhatóak.
Annotált képekre is lehet futtatni kötegelten a jellemzőkinyerő programot. Erre a test_annotated_feature_extraction.sh program szolgál, melyet az alábbi módon lehet futtatni (Linux rendszeren vagy Windows alatt MinGW-vel):
./test_annotated_feature_extraction.sh
Egyéni fájlokra a fenti szkript fájlból érdemes kimásolni a futtatási parancsot, például:
java -Djava.library.path=/usr/lib64/ -cp /usr/lib/java/opencv-344.jar:../classes:classification/:tests/:segmentation:/evaluation:/skeleton/:utils/:. tests.java.AnnotatedSporeFeatureExtractionTest $i "annotated_agaricus.csv" $ANNOTATED_FILE;
Látható, hogy itt is egy CSV fájlba lesz kimentve minden kinyert jellemző.
Spórák osztályozása
Az osztályozás gépi tanulási módszerekkel történik, amelynek első lépése a tanítás. Ehhez olyan képeket kell használnunk, ahol egyértelmű, hogy milyen spóra van a képen (annotált képek), vagy olyanokat, ahol csak egyféle spróra van a képen. Az osztályozás kiértékeléséhez egy kiértékelő halmazra is szükség van. Ezt a két halmazt a korábban, a CSV fájlokban eltárolt jellemzők felhasználásával a prepare_train_test_dataset.sh programmal választjuk szét.
A program futtatása:
./prepare_train_test_dataset.sh input.csv train.csv test.csv
Az osztályozáshoz a test_spore_classification.sh shell szkript fájlt kell futtatni, amely kötegelten végzi el az osztályozást a benne megadott CSV állományokon. Jelenleg csak az Agaricus spórára fut le, de a szkript fájlban szerepel a többi spórára vonatkozó futtatási parancs is.
Egyedi feldolgozáshoz az alábbi parancsot kell kiadni egy tanuló és a teszt halmaz esetében (a példa most az Agaricusra vonatkozik):
java -Djava.library.path=$OPENCV_JAVA_LIB -cp $OPENCV_JAVA_LIB/opencv-3415.jar -cp $OPENCV_JAVA_LIB -cp $OPENCV_JAVA_LIB/opencv-3415.jar:../resources/xgboost4j_2.12-1.0.0-SNAPSHOT.jar:../resources/commons-logging-1.2.jar:../resources/kryo-5.0.0-RC4.jar:../classes:classification/:tests/:segmentation:/evaluation:/skeleton/:utils/:. tests.java.SporeClassificationTest ${AGARICUS_TRAINING_DATA} ${AGARICUS_TRAINING_DATA};