A YOLOv8 képfelismerése kiemelkedő, de a modell betanítása fontos feladat, amelyet nem szabad figyelmen kívül hagyni.
A YOLOv8 egy valós idejű objektumészlelési algoritmus, amelyet széles körben használnak az objektumészlelés területén. Az Ultralytics által kifejlesztett You Only Look Once (YOLO) sorozat része. Az algoritmus nyomon követi, észleli, szegmentálja a példányokat, megbecsüli a pózt, és osztályozza az objektumokat a képeken és videókon. Célja, hogy gyorsabb és pontosabb legyen, mint elődjei algoritmusai.
A YOLOv8 használata olyan kísérleti adatkészleteken, mint a CIFAR-10 és a CIFAR-100, gyakran egyszerűbb a Proof-of-Concept (POC) projekteknél, mint a testreszabott adatkészleteket igénylő valós adatkészleteknél.
Ez az oktatóanyag végigvezeti a YOLOv8 egyéni adatokra való betanításának lépésein.
A Python környezet beállítása
Kezdje a projekt fejlesztői környezetének telepítésével az alábbi utasításokat követve.
- Menjen a terminálhoz, és hozzon létre egy új könyvtárat yolov8projekt:
mkdir yolov8projekt
- Keresse meg a projektkönyvtárat és hozzon létre egy virtuális környezetet:
cd yolov8projekt
python -m venv env - Ezután aktiválja a virtuális környezetet.
A kód futtatásához telepítenie kell az Ultralyticst, egy objektumészlelési és képszegmentálási könyvtárat. Ez is egy YOLOv8-függőség. Telepítse pip használatával az alábbi parancs futtatásával.# Windows rendszeren
env/Scripts/activate# Linux / macOS rendszeren
forrás env/bin/activatepip install ultralytics
- Ez a parancs telepíti a YOLOv8 előre betanított modelljét, yolov8n.pt. Tesztelje a modellt az alábbi parancsok futtatásával, hogy a YOLOv8 segítségével előre betanított súlyokkal észlelje a kiválasztott képet vagy videót.
Ha minden tökéletesen működik, az eredmények elérhetők lesznek a yolov8projekt könyvtárban a fut/detect/exp alkönyvtárat.#képfelismerés
yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"#videó észlelés
yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"
Egyéni adatkészlet előkészítése
Az egyéni adatkészlet előkészítésének lépései közé tartozik az adatgyűjtés, az adatcímkézés és az adatfelosztás (oktatás, tesztelés, érvényesítés).
Adatgyűjtés
Ez egy olyan képhalmaz összegyűjtésének folyamata, amely tartalmazza az észlelni kívánt objektumokat. Ügyeljen arra, hogy jó minőségű képeket használjon, fókuszban, és a tárgyak jól láthatóak legyenek. Különféle eszközöket használhat a képek gyűjtésére, például a Google Képeket, a Flickr-t vagy a saját kameráját. Ha nem rendelkezik képadatkészlettel, használja a következőből származó adatkészletet nyitott képek adatbázis. Ez a cikk az építkezés biztonsági képét fogja használni adatkészlet a Kaggle-től.
Adatcímkézés
A képek összegyűjtése után címkézni kell őket. Ez azt jelenti, hogy minden egyes képen azonosítani kell az objektumokat és a határolókereteket. Számos eszköz áll rendelkezésre az adatok címkézéséhez, például a LabelImg, CVAT és Roboflow. Ezek az eszközök mind ingyenesen használhatók.
Az adatok felosztása
A gépi tanulási modellek betanításához fel kell osztania az adatokat képzési és tesztkészletekre. Nagy mennyiségű adat használata esetén próbáljon 70–30%-os felosztási arányt használni. Ellenkező esetben ragaszkodjon a 80%-20%-hoz, hogy elkerülje a modell túl- vagy alulszerelését.
Használat osztott mappák, hogy véletlenszerűen ossza fel adatait a vonat-, teszt- és érvényesítési készletekre a kívánt felosztási aránnyal.
A YOLOv8 konfigurálása az adatkészlethez
Az adatok címkézése után folytassa a YOLOv8 konfigurálásával az egyéni adatkészlethez. Ez magában foglalja egy konfigurációs fájl létrehozását, amely a következőket határozza meg:
- Az edzési adatok elérési útja.
- Az érvényesítési adatok elérési útja.
- Az észlelni kívánt osztályok száma.
Hozzon létre egy config.yaml fájlt a konfiguráció tárolásához:
pálya:(adatkészletKönyvtárpálya)
vonat:(vonatadatkészletmappátpálya)
teszt:(tesztadatkészletmappátpálya)
érvényes:(érvényesítésadatkészletmappátpálya)# Osztályok
nc:5# csere az adatkészlet osztályainak száma alapján
# Osztálynevek
# cserélje ki az összes osztálynevet a saját osztályainak nevére
nevek:['class1','class2','class3','class4','osztály 5']
A konfigurációs fájl létrehozása hasznos módja a számítógépes látásmodell létfontosságú paramétereinek felépítésének és tárolásának. Ügyeljen arra, hogy az adatkészlet természetének és szerkezetének megfelelően frissítse a config.yaml fájlt.
Ügyeljen arra, hogy az adatkészletekhez a megfelelő elérési utat használja, mivel a modell betanítása teljes mértékben a konfigurációs fájlra támaszkodik.
A YOLOv8 oktatása az egyéni adatokról
Miután létrehozta a konfigurációs fájlt, kezdje el a YOLOv8 képzését. Használja a YOLOv8 parancssori eszközt a modell betanításához. A parancssori eszköz számos paramétert igényel, például a konfigurációs fájl elérési útját, az epochák számát és a képméretet az alábbiak szerint:
yolo task=detect mode=train model=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640
Ennek a parancsnak több része van.
feladat beállítja a feladat típusát: észlelés, szegmentálás vagy osztályozás. mód műveletet jelent: vonat, előrejelzés, érték, export, nyomon követés vagy benchmark. modell a használandó modell, ebben az esetben a yolov8n.pt. Használhatja a yolov8s/yolov8l/yolov8x fájlt is.
korszakok az edzési körök számát jelenti (10). imgsz a képméretet jelöli (640). A képméretet mindig 32 többszörösére kell beállítani.
Íme egy példa a várható kimenetre:
A képzéshez felhasznált idő az adatkészlet méretétől, a korszakok számától és az észlelni kívánt osztályok számától függ. Amint a betanítási folyamat befejeződött, lesz egy betanított YOLOv8 modelled, amelyet a képeken és videókon lévő tárgyak észlelésére fog használni.
Az edzés befejezése után következtessen az új súlyokkal, best.pt
yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"
Navigáljon a runs/train/exp/weights/best.pt könyvtárat az egyedileg betanított súlyok eléréséhez. A YOLOv8 az előre jelzett képet a következő helyen tárolja fut/detect/exp alkönyvtárat.
A modell teljesítményének értékelése
A YOLOv8 modell teljesítményét a következő paranccsal értékelheti ki, amely a modellt egy tesztképkészleten értékeli:
yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640
A várható eredmények a következők:
Az értékelési folyamat különféle mutatókat generál, mint például a pontosság, a visszahívás és az F1 pontszám. A precíziós metrika a helyesen észlelt objektumok százalékos arányát méri. A visszahívási metrika a YOLOv8 által észlelt objektumok százalékos arányát méri. Az F1 pontszám a pontossági és visszahívási mérőszámok súlyozott átlaga.
Egyéni YOLOv8-modell bevezetése
Tesztelje YOLOv8 modellje teljesítményét.
yolo detect előrejelzés model=path/to/best.pt source='path/to/image.jpg'
A kimenet a következő:
Ezután mentse el a modell súlyait egy fájlba.
yolo export model=path/to/best.pt format=onnx
A fájl segítségével töltse be a modellt az alkalmazásba, és használja az objektumok valós idejű észlelésére. Ha a modellt a felhő szolgáltatás, használja a felhőszolgáltatást a szolgáltatásban található képeken és videókban lévő objektumok észlelésére.
YOLOv8 elvihető
Az Ultralytics csapata folyamatosan fejlesztette a YOLO sorozatú modelleket. Ezzel iparágvezetővé váltak a tárgyfelismerési technológia és a számítógépes látás területén.
A YOLOv8 egy továbbfejlesztett modell, amellyel számos számítógépes látási projektet kezelhet.