Skip to content

ROS_YOLO_MODEL Wiki

Gergő Novák edited this page Nov 26, 2024 · 27 revisions

Áttekintés

A ros_yolo_model egy ROS 2 csomag, amely az AJR (GKNB_AUTM078) tárgyra, egy a DDC által kiadott feladat alapján készült. A projekt célja az, hogy megismerkedjünk a YOLO architektúra működésével és használatával.

Az alábbi alfeladatokat igyekeztünk teljesíteni:

  • Node készítése, amellyel a YOLO modell feltanítható saját képek felismerésére az alap modellen mellett
  • Node készítése, amely egy saját .pt állományt használva képes egy bemeneti képen vagy videón objektumok felismerésére. Az is beállítható, hogy a deketálás eredményét szeretnénk-e menteni.
  • YOLO modell feltanítása, ami képes felismerni az egyetemi hallgatói és alkalmazotti kártyákat, az ehhez szükséges adathalmaz elkészítése. Elvárt, hogy élő webcamera képen 24 FPS-sel tudjon futni.
  • A tanítást úgy elvégezni, hogy meg is különböztesse az említett kártyákat. Script írása "dummy kártyák" generálására, illetve azok véletlenszerű elhelyezésére képeken. Ezekből adathalmaz készítése.

Működése

1. teach_node.cpp

  • Célja:

    • YOLOv5 modell feltanítása egyedi adatkészlet alapján
  • Működése:

    • Paraméterek:
      • dataset_path: Az adatkészlet elérési útja, ami tartalmazza a YOLOv5 által megkövetelt data.yaml fájlt.
      • model_output_path: Az eredményként kapott modell kimeneti útvonala, ahol a súlyokat és a tanítás eredményeit tárolja.
    • A YOLO modell tanítása:
      • A YOLOv5 hivatalos train.py scriptjét egy rendszerszintű parancs (std::system) segítségével hívja meg.
      • Ezt a parancsot az alábbiak szerint paraméterezi fel:
        • Kép méret: 640px széles képek használata alapértelmezetten
        • Batch-méret: 8 kép egyidejű feldolgozása
        • Epoch-ok száma: 40 iteráció az optimális modell eléréséhez
        • Korábbi súlyok használata: Kiindulási pontként a fifth_train[cards] előzőleg betanított modell súlyait használja
        • Hiperparaméterek: hyp.yaml fájl segítségével további finomhangolás végzése
  • Főbb funkciók:

    • Node inicializálás
    • Tanítási folyamat
    • Hibaellenőrzés
  • Használat:

    Source-olás a futtatás előtt
    source ~/ros2_ws/install/setup.bash

    A node indítása:

    ros2 run ros_yolo_model teach_node <dataset_path(absolute)> <model_output_path(absolute)>

    Példa:

    ros2 run ros_yolo_model teach_node /home/ajr/ros2_ws/src/ros_yolo_model/dataset /home/ajr/ros2_ws/src/ros_yolo_model/output
Clone this wiki locally