-
Kërkesat e mjedisit referohen në file-n requirements.txt
-
Peshat e paratrajnuara të YOLO3 mund të shkarkohen nga nga file yolo3.weights
-
Testimi i objektit mund të bëhet edhe përmes fotografisë së një qeni.
$ python yolov3_detect_all.py -w yolo3.weights -i dog.jpg
-
Peshat e paratrajnuara duhet të vendosen në folderin rrënjë (root folder) në repository
-
Trajnimi i Yolov3 kërkon fotografitë me .xml fajlla në formatin PASCAL_VOC.
-
Folderi Dataset mund të shkarkohet në: https://drive.google.com/drive/folders/1blTGWhekfaA7lG-XWxa6LnCwqK52L1Qk.
-
Përndryshe, nëse doni të krijoni datasetin tuaj, ndiqni këto hapa:
- Mbledh fotografi nga Kaggle Dataset apo Google Images
- Shkarkoni LabelImg (një mjet për shënimin e imazheve grafike) nga GitHub
- Vendosni të gjitha fotografitë e folderit "dataset" në folderin "images", dhe xml fajlat në folderin "annots"
-
Specifikoni path-in e folderave 'images' dhe 'annots' në fushat "train_image_folder" dhe "train_annot_folder"
-
Fusha "labels" i liston etiketat (labels) mbi të cilat do të trajnohet modeli. Vetëm imazhet, të cilat e kanë etiketën 'uav', merren parasysh gjatë trajnimit.
{ "model" : { "min_input_size": 288, "max_input_size": 448, "anchors": [55,69, 75,234, 133,240, 136,129, 142,363, 203,290, 228,184, 285,359, 341,260], "labels": ["drone"] }, "train": { "train_image_folder": "F:/Drone/Drone_mira_dataset/images/", "train_annot_folder": "F:/Drone/Drone_mira_dataset/annots/", "cache_name": "drone_train.pkl", "train_times": 8, # numri i cikleve për nje set të trajnimit "pretrained_weights": "", # specifikon path-in e peshave të paratrajnuara, por është rregull të fillohet nga e para "batch_size": 16, # numri i fotografive që lexohen në secilin grup "learning_rate": 1e-4, # shkalla bazë e të mesuarit (default Adam rate scheduler) "nb_epochs": 100, # numri i epoches "warmup_epochs": 3, "ignore_thresh": 0.5, "gpus": "0,1", "grid_scales": [1,1,1], "obj_scale": 5, "noobj_scale": 1, "xywh_scale": 1, "class_scale": 1, "tensorboard_dir": "logs", "saved_weights_name": "drone.h5", # emri i fajlit në të cilin ruhet modeli i trajnuar "debug": true }, "valid": { "valid_image_folder": "C:/drone/valid_image_folder/", "valid_annot_folder": "C:/drone/valid_annot_folder/", "cache_name": "drone_valid.pkl", "valid_times": 1 } }
$ python gen_anchors.py -c config.json
Kopjoni anchors të gjeneruara në terminal dhe vendosni në fajlin config.json
$ python train.py -c config.json
Deri në fund të këtij procesi, kodi do të shkruajë peshat e modelit më të mirë në fajllin uav_wh.h5 (apo ndonjë emër tjetër që specifikohet në fushën "save_weights_name" në config.json). Procesi i trajnimit ndalet kur humbja në grupin e vlerësimit nuk përmirësohet në 3 epoka radhazi.
4. Performoni detektim duke përdorur peshat e trajnuara në fotografi, grup të fotografive apo video kamerave
$ python predict.py -c config.json -i /path/to/image/or/video/or/cam
Për një fotografi përdorni:
$ python predict.py -c config.json -i test.jpg
Për një video përdorni:
$ python predict.py -c config.json -i test.mp4
Për një detektim në kohë reale përdorni:
$ python predict.py -c config.json -i webcam
Llogaritni mAP performancën e modelit të definuar në 'saved_weights_name' në datasetin për validim që përcaktohet në fushat "valid_image_folder" dhe "valid_annot_folder" -
$ python evaluate.py -c config.json