Preskočiť na hlavný obsah

Detekcia objektov s OpenCV a CUDA

Tento návod pokrýva nastavenie schopností detekcie objektov na vašom FEI JetRacer pomocou OpenCV s CUDA akceleráciou a YOLOv4-Tiny pre výkon v reálnom čase.

Prehľad

Použijeme:

  • OpenCV s CUDA: Pre akcelerované operácie počítačového videnia
  • YOLOv4-Tiny: Ľahký model detekcie objektov optimalizovaný pre embedded zariadenia
  • cuDNN: NVIDIA knižnica pre akceleráciu hlbokého učenia

Poznámka

Ak používate náš predkonfigurovaný JetRacer image, časť tohto nastavenia je už kompletná!

Môžete preskočiť kroky inštalácie OpenCV s podporou CUDA nižšie a prejsť priamo na Overenie inštalácie.

Manuálna inštalácia

Krok 1: Inštalácia OpenCV s podporou CUDA

Použijeme inštalačný skript Qengineering, ktorý automatizuje komplexný proces buildovania OpenCV s podporou CUDA a cuDNN.

Stiahnutie inštalačného skriptu

cd ~
git clone https://github.com/Qengineering/Install-OpenCV-Jetson-Nano.git
cd Install-OpenCV-Jetson-Nano

Príprava vášho systému

Pred spustením inštalačného skriptu sa uistite, že je váš systém pripravený:

sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y

Uvoľnite miesto na disku a zvýšte swap:

sudo systemctl disable nvzramconfig
sudo fallocate -l 4G /var/swapfile
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
sudo swapon -s

Spustenie inštalačného skriptu

Upozornenie: Tento proces môže trvať 2-4 hodiny. Uistite sa o stabilnom napájaní a neprerušujte proces.

chmod +x ./OpenCV-4-11-0.sh
./OpenCV-4-11-0.sh

Skript bude:

  • Inštalovať všetky potrebné závislosti
  • Stiahnuť zdrojový kód OpenCV
  • Konfigurovať build s podporou CUDA
  • Kompilovať OpenCV (toto trvá najdlhšie)
  • Inštalovať skompilované knižnice

Overenie inštalácie

Po dokončení inštalácie overte OpenCV s podporou CUDA:

python3 -c "import cv2; print('OpenCV version:', cv2.__version__); print('CUDA devices:', cv2.cuda.getCudaEnabledDeviceCount())"

Mali by ste vidieť výstup podobný tomuto:

OpenCV version: 4.11.1
CUDA devices: 1

Krok 2: Konfigurácia prostredia

Uistite sa, že je inštalácia OpenCV správne nakonfigurovaná vo vašom DonkeyCar prostredí:

source ~/env/bin/activate
cd ~/mycar

Otestujte OpenCV vo vašom virtuálnom prostredí:

python3 -c "import cv2; print('OpenCV loaded successfully with version:', cv2.__version__)"

Krok 3: Nastavenie YOLOv4-Tiny

Teraz pridáme model detekcie objektov YOLOv4-Tiny do vášho DonkeyCar nastavenia.

Vytvorenie adresára modelov

cd ~/mycar
mkdir -p models
cd models

Stiahnutie súborov YOLOv4-Tiny

Stiahnite predtrénované súbory modelu YOLOv4-Tiny:

wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4-tiny.weights
wget https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4-tiny.cfg
wget https://raw.githubusercontent.com/AlexeyAB/darknet/master/data/coco.names

Overenie súborov modelu

Skontrolujte, či sú všetky požadované súbory prítomné:

ls -la ~/mycar/models/

Mali by ste vidieť:

  • yolov4-tiny.weights (približne 23MB)
  • yolov4-tiny.cfg (konfiguračný súbor)
  • coco.names (súbor so štítkami tried)

Test detekcie objektov

Otestujte spustením webového rozhrania DonkeyCar:

cd ~/mycar
python manage.py drive

Mali by ste vidieť detekciu objektov v kamerovom feed-e vo webovom rozhraní.

Tipy na výkon

Optimalizácia pre výkon v reálnom čase

  1. Ladenie rozlíšenia: Vyvážte presnosť a rýchlosť úpravou vstupného rozlíšenia

  2. Frekvencia detekcie: Spúšťajte detekciu každých niekoľko snímok namiesto každej snímky

  3. Spracovanie ROI: Spracovávajte len oblasti záujmu v obrázku

Riešenie problémov

Problémy s inštaláciou OpenCV

Ak inštalačný skript zlyhá:

  1. Nedostatočné úložisko: Uistite sa, že máte aspoň 16GB voľného miesta
  2. Problémy s pamäťou: Zvýšte veľkosť swap súboru
  3. Problémy s napájaním: Použite adekvátne napájanie

CUDA nefunguje

Ak CUDA akcelerácia nefunguje:

# Skontrolujte inštaláciu CUDA
nvcc --version
# Overte cuDNN
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

Chyby načítania modelu

Ak sa YOLO modely nedajú načítať:

  1. Overte integritu súborov:

    md5sum ~/mycar/models/yolov4-tiny.weights
  2. Skontrolujte oprávnenia súborov:

    chmod 644 ~/mycar/models/*

Referencie