Wykrywanie sęków (YOLOv8) na Jetson Orin Nano

Dziś wpis o moim pierwszym wytrenowanym modelu YOLO. To projekt, którym bawiłem się chwilę jakoś w połowie 2024 roku. Skorzystałem wtedy z YOLOv8-mono i uruchomiłem go na Jetson Orin Nano z podłączoną kamerą przemysłową USB. Do eksperymentów zainspirowała mnie wizyta u producenta maszyn do obróbki drewna.

Proces w skrócie wyglądał następująco:
Zacząłem od zgromadzenia bazy zdjęć. Znalazłem ich trochę w Internecie. Przerobiłem je również na mono, bo akurat taką kamerę miałem do dyspozycji:

Następnym krokiem było oznaczenie danych. Wykorzystałem do tego program "LabelImg":


Kolej na trening w chmurze. Wykorzystałem Google Colab do wykonania obliczeń. Efekty:


Na wykresach obserwujemy:

  1. Loss w dół (lewa strona): Model przestaje "strzelać na oślep" i robi coraz mniej prostych błędów.
  2. Precision w górę (prawa strona): Skuteczność rośnie – AI z każdą epoką coraz pewniej trafia w cel.
  3. Płaska linia na końcach: Widać, że pod koniec nic spektakularnego się już nie działo – model osiągnął swoje maksimum i sam przerwał trening, oszczędzając czas.

OK, spinamy w Pythonie w całość i oto efekt końcowy:

Sęki wydrukowane, ale na prawdziwych też działa! Mówię Wam, sprawdzałem (i czasami działa, trzeba tylko dobrze tam poustawiać :P).