-
Notifications
You must be signed in to change notification settings - Fork 1
ROS_YOLO_MODEL Wiki
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, azon belül is a Yolov5
működésével és használatával.
A YOLOv5 (You Only Look Once, Version 5) egy valós idejű objektumdetektáló algoritmus, amely a számítógépes látás területén kiemelkedő teljesítményt nyújt sebességben és pontosságban. A YOLO család ötödik generációjaként került kifejlesztésre, és a PyTorch keretrendszeren alapul. Gyorsaságát és hatékonyságát a könnyű súlyú architektúrájának és optimalizált kódstruktúrájának köszönheti.
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 objektumok 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, és az ehhez szükséges adathalmaz elkészítése.
- 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, valamint ezekből adathalmaz készítése.
A feladatunk alapjául a https://github.com/ultralytics/yolov5
szolgált.
-
- YOLOv5 modell feltanítása egyedi adatkészlet alapján
-
- Paraméterek:
-
dataset_path
: Az adatkészlet elérési útja, ami tartalmazza a YOLOv5 által megkövetelt data.yaml fájlt is. -
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:
16
kép egyidejű feldolgozása (hardver és cél függően módosítandó) - Epoch-ok száma:
100
iteráció az optimális modell eléréséhez (hardver és cél függően módosítandó) - Korábbi súlyok használata: Kiindulási pontként a
fifth_train[cards]
(vagy amelyiket éppen szeretnénk) előzőleg betanított modell súlyait használja - Hiperparaméterek: egyedi
hyp.yaml
fájl segítségével további finomhangolás végzése (hardver és cél függően módosítandó)
- Kép méret:
- A YOLOv5 hivatalos
- Paraméterek:
-
- Node inicializálás
- Tanítási folyamat
- Hibaellenőrzés
-
cd ~/ros2_ws colcon build --packages-select ros_yolo_model --symlink-install
Környezet source-olása 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> <model_output_path>
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