Written by 8:09 pm Tutoriale

Jak zbudować YOLOv4 na Windowsie i Ubuntu?

Pokażę Ci jak prosto zbudujesz framework Darknet do algorytmu YOLOv4 na Ubuntu i Windowsie. Istnieje niezerowa szansa, że na innych Unixach Ci się także uda. Na Macu pewnie też, ale bez GPU, bo GPU było tam ostatnio w 2012 roku jakoś, chyba że działa Ci eGPU na USB, wtedy daj znać.

Repozytorium: https://github.com/AlexeyAB/darknet

Budowanie na Linuxie

Może Cię to zaskoczyć, ale to w miarę tyle:

git clone https://github.com/AlexeyAB/darknet.git
cd darknet/build
rm * -rf
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

Oczywiście przy pewnych założeniach:

  • Warto mieć OpenCV
  • Warto mieć CUDA’ę i CUDNN

Jeżeli zainstalujesz OpenCV, albo zbudujesz i zainstalujesz – samo się wykryje i powyższa instrukcja Cię zadowoli. Da się bez OpenCV, wtedy tracisz część funkcjonalności, dlatego polecam z.

Instalując nowe sterowniki CUDA’y możesz stracić możliwość logowania i potrzebować formatu systemu

Ubuntu login loop

Odnośnie CUDA’y – potrzebujesz karty graficznej od Nvidia’i. Jeżeli jest to RTX – to super, będzie się trenować prawie 2x szybciej, o ile jedna flaga będzie obecna w konfiguracji budowania. Mając kartę graficzną – zainstaluj CUDA’ę wg oficjalnej instrukcji Nvidia’i. Następnie musisz pobrać CUDNN dla zainstalowanej wersji CUDA’y – aby to zrobić musisz mieć konto w Nvidii, łatwo je założysz. Kluczowe jest by CUDNN pasowało do Twojej wersji CUDA’y. Odnośnie instalacji – na Ubuntu możesz wykorzystać paczkę .deb lub skorzystać z ogólnej Linuxowej instrukcji z kopiowaniem plików rozpakowanych z tar gz.

Przed uruchomieniem make sprawdź czy w CmakeCache, albo w cmake-gui albo w logach:

  • jest informacja o CUDNN_HALF=True (jeżeli masz RTX)
  • jest CUDA
  • jest OpenCV

To naprawdę wszystko!

Budowanie na Windowsie

Tu nieco trudniej niestety, ach kto by się spodziewał! Dalej możesz to zrobić w konsoli, ale najpewniej przyda Ci się pomoc np. cmake-gui. To jest jeden ze sposobów, na repo znajdziesz także inne – bo w sumie można to różnie pyknąć, jeżeli znasz vcpkg to polecam taką instrukcję. Jest też oczywiście instrukcja PowerShellowa, ale ja w ogóle używam Git basha pod Windowsem i wszystko tam robię. Na pewno potrzebujesz Visual Studio – do C++, czyli nie VS Code, a regularne studio.

git clone https://github.com/AlexeyAB/darknet.git
cd darknet/build
cmake ..
cmake --build . --config Release

Ja potrzebowałem ręcznie dodać OpenCV – można to zrbobić flagą w poleceniu cmake, ale można też w cmake-gui. Chodzi o podanie OpenCV_DIR, najlepiej gdy wskażesz tam katalog build Twojego zbudowanego OpenCV.

Tak to wygląda u mnie – we wskazanym katalogu budowałem OpenCV

Odnośnie CUDA’y – również musisz przejść przez instalację CUDA i CUDNN jak wyżej, ale pod Windowsem, to będzie nieco prostsze i raczej nie trafisz na moment w którym musisz reinstalować system.

Tak wygląda moja konfiguracja dla – już starej wersji – CUDA’y; Jak widzisz nie wszystko musi być by działało

Na Windowsie w tym samym treningu, na takiej samej karcie mieści mi się mniejszy batch

Komentarz Linux vs Windows

Podsumowanie

Wiele treningów już za mną i w wielu miejscach miałem okazję instalować framework Darknet, jeżeli napotykasz jakiś ciekawy błąd, to być może mogę Ci pomóc, daj znać w komentarzu.

Oczywiście jest YOLOv4 w PyTorchu, w TF2 też. Pokazuję tę wersję.

Odnośnie YOLOv5 – jest słabsze niż YOLOv4, powstawało równolegle, Alexey szybciej zajął nazwę v4.

Zobacz też Scaled YOLOv4 oraz YOLOR.

Close