рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдбреЙрдХрд░ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП Ultralytics

Ultralytics рдбреЙрдХрд░ рдкреИрдХреЗрдЬ рд╡рд┐рдЬреБрдЕрд▓

рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ Ultralytics рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВред рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ, рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдлрд╛рдпрджреЗрдордВрдж рд╣реИ рдХрд┐ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╣рдореЗрд╢рд╛ рдПрдХ рдЬреИрд╕рд╛ рдЪрд▓реЗрдЧрд╛, рднрд▓реЗ рд╣реА рд╡рд╣ рдХрд╣реАрдВ рднреА рддреИрдирд╛рдд рд╣реЛред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдкрд░ рдЬрд╛рдПрдБ Ultralytics Docker рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА on Docker Hub.

рдбреЙрдХрд░ рдЫрд╡рд┐ рд╕рдВрд╕реНрдХрд░рдг рдбреЙрдХрд░ рдкреБрд▓

рдЖрдк рдХреНрдпрд╛ рд╕реАрдЦреЗрдВрдЧреЗ

  • рдХреЗ рд╕рд╛рде рдбреЙрдХрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ NVIDIA рдЬреАрд╡рд┐рдХрд╛
  • рд╕реНрдерд╛рдкрд┐рдд Ultralytics рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ
  • рднрд╛рдЧрдирд╛ Ultralytics рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ CPU рдирд╣реАрдВ рддреЛ GPU рдЬреАрд╡рд┐рдХрд╛
  • рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Ultralytics рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо
  • рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ Docker рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдбреЙрдХрд░ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ NVIDIA GPU рдФрд░ NVIDIA рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред

рдХреЗ рд╕рд╛рде рдбреЙрдХрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ NVIDIA рдЬреАрд╡рд┐рдХрд╛

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ NVIDIA рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЪрд▓рд╛рдХрд░ рдареАрдХ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

nvidia-smi

рд╕реНрдерд╛рдкрд┐рдд NVIDIA рдбреЙрдХрд░ рд░рдирдЯрд╛рдЗрдо

рдЕрдм, рдЖрдЗрдП NVIDIA рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рд░рдирдЯрд╛рдЗрдо GPU рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╕рдорд░реНрдерди:

# Add NVIDIA package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(lsb_release -cs)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# Install NVIDIA Docker runtime
sudo apt-get update
sudo apt-get install -y nvidia-docker2

# Restart Docker service to apply changes
sudo systemctl restart docker

рдЬрд╛рдБрдЪрдирд╛ NVIDIA рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рд░рдирдЯрд╛рдЗрдо

рдЪрд▓рд╛рдирд╛ docker info | grep -i runtime рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ nvidia рд░рдирдЯрд╛рдЗрдо рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:

docker info | grep -i runtime

рд╕реНрдерд╛рдкрд┐рдд Ultralytics рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдБ

Ultralytics рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрдИ рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • рдбреЙрдХрд░рдлрд╛рдЗрд▓: GPU рдЫрд╡рд┐, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ред
  • рдбреЙрдХрд░рдлрд╛рдЗрд▓-рдЖрд░реНрдо64: ARM64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрддред
  • рдбреЙрдХрд░рдлрд╛рдЗрд▓-cpu: CPUрдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЧреИрд░-GPU рд╡рд╛рддрд╛рд╡рд░рдгред
  • Dockerfile-jetson: рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд NVIDIA рдЬреЗрдЯрд╕рди рдбрд┐рд╡рд╛рдЗрд╕ред
  • рдбреЙрдХрд░рдлрд╛рдЗрд▓-python: рдиреНрдпреВрдирддрдо Python рд╣рд▓реНрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдгред
  • Dockerfile-conda: Miniconda3 рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ Ultralytics рдкреИрдХреЗрдЬ рдХреЛрдВрдбрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдирд╡реАрдирддрдо рдЫрд╡рд┐ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП:

# Set image name as a variable
t=ultralytics/ultralytics:latest

# Pull the latest Ultralytics image from Docker Hub
sudo docker pull $t

рднрд╛рдЧрдирд╛ Ultralytics in рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ Ultralytics рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░:

рдХреЗрд╡рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ CPU

# Run with all GPUs
sudo docker run -it --ipc=host $t

GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

# Run with all GPUs
sudo docker run -it --ipc=host --gpus all $t

# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t

рд╡рд╣реА -it рдлреНрд▓реИрдЧ рдПрдХ рдЫрджреНрдо TTY рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ рдФрд░ STDIN рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣реА --ipc=host рдлреНрд▓реИрдЧ рд╣реЛрд╕реНрдЯ рдХреЗ рдЖрдИрдкреАрд╕реА рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореЗрдореЛрд░реА рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡рд╣реА --gpus рдзреНрд╡рдЬ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╣реЛрд╕реНрдЯ рдХреЗ рдЬреАрдкреАрдпреВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рднрд╛рдЧрдирд╛ Ultralytics in рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ Ultralytics рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░:

рдХреЗрд╡рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ CPU

# Run with all GPUs
sudo docker run -it --ipc=host $t

GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

# Run with all GPUs
sudo docker run -it --ipc=host --gpus all $t

# Run specifying which GPUs to use
sudo docker run -it --ipc=host --gpus '"device=2,3"' $t

рд╡рд╣реА -it рдлреНрд▓реИрдЧ рдПрдХ рдЫрджреНрдо TTY рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ рдФрд░ STDIN рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣реА --ipc=host рдлреНрд▓реИрдЧ рд╣реЛрд╕реНрдЯ рдХреЗ рдЖрдИрдкреАрд╕реА рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореЗрдореЛрд░реА рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡рд╣реА --gpus рдзреНрд╡рдЬ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╣реЛрд╕реНрдЯ рдХреЗ рдЬреАрдкреАрдпреВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рдЕрднрд┐рдЧрдореНрдпрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ

рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Docker рд╡реЙрд▓реНрдпреВрдо:

# Mount a local directory into the container
sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container $t

рдмрджрд▓реЗрдВ /path/on/host рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рдХреЗ рд╕рд╛рде рдФрд░ /path/in/container рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрде рдХреЗ рд╕рд╛рдеред

рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (GUI) рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓рд╛рдПрдБ

рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рднреА рдЬреЛрдЦрд┐рдо рдорд╛рдирддрд╛ рд╣реИ

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИрдВред X11 рд╕реЙрдХреЗрдЯ рдХреЛ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╡рд▓ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ xhost(1)(2).

рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ CLI рдкреНрд░реЛрдЧреНрд░рд╛рдо, рд▓реЗрдХрд┐рди рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рднреА рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рджреЛ рдореБрдЦреНрдп рдЧреНрд░рд╛рдлрд┐рдХ рд╕рд░реНрд╡рд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ: рдПрдХреНрд╕ 11 (рдПрдХреНрд╕ рд╡рд┐рдВрдбреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рд╡реЗрд▓реИрдВрдбред рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд┐рд╕ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдПрдВ:

env | grep -E -i 'x11|xorg|wayland'

X11 рдпрд╛ Wayland рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рд╕реЗрдЯрдЕрдк рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рдЖрджреЗрд╢ рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

GUI рдХреЗ рд╕рд╛рде Docker рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдирд╛

рдЙрджрд╛рд╣рд░рдг

GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
If you're using [GPUs](#using-gpus), you can add the `--gpus all` flag to the command.

рдпрджрд┐ рдЖрдк X11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ X11 рд╕реЙрдХреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-it --ipc=host $t

рдпрд╣ рдХрдорд╛рдВрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ DISPLAY рд╣реЛрд╕реНрдЯ рдХреЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░, X11 рд╕реЙрдХреЗрдЯ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдк рдХрд░рддрд╛ рд╣реИ .Xauthority рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ред рд╡рд╣реА xhost +local:docker рдХрдорд╛рдВрдб рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ X11 рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╡рд╛рдпрд▓реИрдВрдб рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
--net=host -it --ipc=host $t

рдпрд╣ рдХрдорд╛рдВрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ DISPLAY рдореЗрдЬрдмрд╛рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░, рд╡реЗрд▓реИрдВрдб рд╕реЙрдХреЗрдЯ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╡реЗрд▓реИрдВрдб рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

GUI рдХреЗ рд╕рд╛рде рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЕрдВрджрд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Docker рдХрдВрдЯреЗрдирд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ CLI рд╕реЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢YOLOv8 рдирдореВрдирд╛:

yolo predict model=yolov8n.pt show=True
рдкрд░реАрдХреНрд╖рдг

рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рд╕рдореВрд╣ рдХреЗ рдкрд╛рд╕ X11 рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЬреАрдпреВрдЖрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рд╣реИ рдЬреИрд╕реЗ xclock рдирд╣реАрдВ рддреЛ xeyes. рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЗрди рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ Ultralytics рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдЖрдкрдХреЗ GNU-Linux рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕рд░реНрд╡рд░ рдХреЗ X11 рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ -e QT_DEBUG_PLUGINS=1. рдЗрд╕ рдкрд░рд┐рд╡реЗрд╢ рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдбреАрдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдбреЙрдХрд░ рдЬреАрдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛

рдкрд╣реБрдВрдЪ рд░рджреНрдж рдХрд░реЗрдВ

рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реЗ рдкрд╣реБрдВрдЪ рд░рджреНрдж рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ Docker рдЬрдм рдЖрдк рдХрд░ рд▓реЗрдВ рд╕рдореВрд╣ред

xhost -local:docker
рд╕реАрдзреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЫрд╡рд┐ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рджреЗрдЦреЗрдВ


рдмрдзрд╛рдЗрдпрд╛рдБ! рдЕрдм рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИрдВ Ultralytics рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рдФрд░ рдЗрд╕рдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдмреЗрдЭрд┐рдЭрдХ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░реЗрдВ Ultralytics рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рдиред

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди

рдореИрдВ рдХреИрд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░реВрдБ Ultralytics рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде?

рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ultralytics рд╕рд╛рде Docker, рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдбреЙрдХрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ NVIDIA GPU, рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ NVIDIA рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рд░рдирдЯрд╛рдЗрдо GPU рдЬреАрд╡рд┐рдХрд╛ред рдлрд┐рд░, рдирд╡реАрдирддрдо рдЦреАрдВрдЪреЗрдВ Ultralytics рд╕реЗ Docker рдЫрд╡рд┐ Docker рд╣рдм рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:

sudo docker pull ultralytics/ultralytics:latest

рд╡рд┐рд╕реНрддреГрдд рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдбреЙрдХрд░ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдЧрд╛рдЗрдб рдХреЛ рджреЗрдЦреЗрдВред

рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВ Ultralytics рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ?

рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Ultralytics рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдореЗрдВ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╡рд╛рддрд╛рд╡рд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИрдВ, рдПрдХ рд╣реА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдирдХрд▓ рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдЯреАрдореЛрдВ рдореЗрдВ рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ, рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдореЙрдбрд▓ рдЪрд▓рд╛рдиреЗ рдФрд░ рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред рдХреЗ рд▓рд┐рдП GPU-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд╢рд┐рдХреНрд╖рдг, Ultralytics рдЕрдиреБрдХреВрд▓рд┐рдд рдбреЙрдХрд░ рдЫрд╡рд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ Dockerfile рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд▓рд┐рдП GPU рдЙрдкрдпреЛрдЧ рдФрд░ Dockerfile-jetson рдХреЗ рд▓рд┐рдП NVIDIA рдЬреЗрдЯрд╕рди рдбрд┐рд╡рд╛рдЗрд╕ред рдкрддрд╛ рд▓рдЧрд╛рдирд╛ Ultralytics рдбреЙрдХрд░ рд╣рдм рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдПред

рдореИрдВ рдХреИрд╕реЗ рджреМрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдБ Ultralytics YOLO рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ GPU рдЬреАрд╡рд┐рдХрд╛?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ NVIDIA рдбреЙрдХрд░ рд░рдирдЯрд╛рдЗрдо рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд░, рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ Ultralytics YOLO рдХреЗ рд╕рд╛рде GPU рдЬреАрд╡рд┐рдХрд╛:

sudo docker run -it --ipc=host --gpus all ultralytics/ultralytics:latest

рдпрд╣ рдХрдорд╛рдВрдб рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ GPU рдкреНрд░рд╡реЗрд╢ред рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЙрдХрд░ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВред

рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХрд░реВрдВ YOLO рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкрд░рд┐рдгрд╛рдо?

рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП YOLO рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЬреАрдпреВрдЖрдИ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдбреЙрдХрд░ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред X11 рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рд╣реИ:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/root/.Xauthority \
-it --ipc=host ultralytics/ultralytics:latest

рд╡рд╛рдпрд▓реИрдВрдб рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

xhost +local:docker && docker run -e DISPLAY=$DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
--net=host -it --ipc=host ultralytics/ultralytics:latest

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (GUI) рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдПрдБ рдореЗрдВ рдПрдХ Docker рдХрдВрдЯреЗрдирд░ рдЕрдиреБрднрд╛рдЧред

рдХреНрдпрд╛ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ Ultralytics рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░?

рд╣рд╛рдВ, рдЖрдк рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ Ultralytics рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ -v рдЭрдВрдбрд╛:

sudo docker run -it --ipc=host --gpus all -v /path/on/host:/path/in/container ultralytics/ultralytics:latest

рдмрджрд▓реЗрдВ /path/on/host рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдФрд░ /path/in/container рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрде рдХреЗ рд╕рд╛рдеред рдпрд╣ рд╕реЗрдЯрдЕрдк рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ рдмрдврд╝рддреЗ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ.



рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2023-11-12, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-07-05
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (7), рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1), jpedrofonseca_94@hotmail.com (1)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ