ΠΠ±ΡΠ°Π²Π΅Π½Π° Π΅ ΡΠ°ΠΌΠΊΠ°ΡΠ° Savant 0.2.7 Python, ΡΡΠΎ Π³ΠΎ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° NVIDIA DeepStream Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΌΠ°ΡΠΈΠ½ΡΠΊΠΎΡΠΎ ΡΡΠ΅ΡΠ΅. Π Π°ΠΌΠΊΠ°ΡΠ° ΡΠ΅ Π³ΡΠΈΠΆΠΈ Π·Π° ΡΠ΅Π»ΠΎΡΠΎ ΠΊΡΠ΅Π²Π°ΡΠ΅ Π½Π° ΡΠ΅ΡΠΊΠΈ ΡΠΎΠ²Π°ΡΠΈ ΡΠΎ GStreamer ΠΈΠ»ΠΈ FFmpeg, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΡΠΈ Π²ΠΈ Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ·Π»Π΅Π·Π½ΠΈ ΡΠ΅Π²ΠΊΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° (YAML) ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Python. Savant Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΈ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π½Π° Π°ΠΊΡΠ΅Π»Π΅ΡΠ°ΡΠΎΡΠΈ Π²ΠΎ ΡΠ΅Π½ΡΠ°ΡΠΎΡ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ (NVIDIA Turing, Ampere, Hopper) ΠΈ Π½Π° ΡΠ°Π±Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΈ (NVIDIA Jetson NX, AGX Xavier, Orin NX, AGX Orin, New Nano). Π‘ΠΎ Savant, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡΠ΅Π½ΠΎΡΠΈ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΠΈ Π±ΡΠ·ΠΎ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠ΅Π²ΠΊΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ NVIDIA TensorRT. ΠΡΠΎΠ΅ΠΊΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Apache 2.0.
Savant 0.2.7 Π΅ Π½Π°ΡΠ½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π²ΠΎ Π³ΡΠ°Π½ΠΊΠ°ΡΠ° 0.2.X. ΠΠ΄Π½ΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π²ΠΎ Π³ΡΠ°Π½ΠΊΠ°ΡΠ° 0.2.X ΡΠ΅ Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΡΠ°ΠΌΠΎ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ. Π Π°Π·Π²ΠΎΡΠΎΡ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ ΡΠ΅ Π²ΡΡΠΈ Π²ΠΎ Π³ΡΠ°Π½ΠΊΠ°ΡΠ° 0.3.X, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° DeepStream 6.4. ΠΠ²Π°Π° Π³ΡΠ°Π½ΠΊΠ° Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ΅ΠΌΠ΅ΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΡΠ΅Π΄ΠΈ Jetson Xavier Π±ΠΈΠ΄Π΅ΡΡΠΈ NVIDIA Π½Π΅ Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π²ΠΎ DS 6.4.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- ΠΠΎΠ²ΠΈ ΡΠ»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°:
- ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΌΠΎΠ΄Π΅Π» Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΎΡΠΎΡ RT-DETR;
- CUDA ΠΏΠΎΡΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎ CuPy Π·Π° YOLOV8-Seg;
- ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π½Π° PyTorch CUDA Π²ΠΎ Π³Π°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ Savant;
- ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ.
- ΠΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ. ΠΠ°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²Π΅Π·ΡΠ²Π° ΠΌΠ΅ΡΡΠΈΠΊΠ° Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π²ΠΎ Prometheus ΠΈ Grafana Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΏΡΠΈΡΠ°Π²Π°Ρ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π΅Π½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²Π΅Π·ΡΠ²Π°Π°Ρ Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
- ΠΠ°ΡΠ΅Ρ Π°Π΄Π°ΠΏΡΠ΅Ρ - ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΠΎΡΡΠΎΡΠ°Π½ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠΊΠΈ Π±Π°ΡΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠΎΡ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΡΠΎ ΡΠ΅ Π΄Π²ΠΈΠΆΠ°Ρ ΠΏΠΎΠΌΠ΅ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π‘ΠΎ Π½Π΅Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π²ΠΈΠ΅ΡΠ΅ Π²ΠΈΡΠΎΠΊΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΈ ΠΊΠΎΠΈ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²ΠΎ ΡΡΠΎΡΠ°Ρ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΈΠ·Π΄ΡΠΆΡΠ²Π°Π°Ρ ΠΈΠ·Π»ΠΈΠ² Π½Π° ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ. ΠΠ΄Π°ΠΏΡΠ΅ΡΠΎΡ Π³ΠΈ ΠΈΠ·Π²Π΅Π·ΡΠ²Π° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΎΡ ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΡΠΎΠΌΠ΅ΡΠ΅Ρ.
- Π Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π». ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎ TensorRT Π±Π΅Π· Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° Π³Π°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ.
- Π Π°ΠΊΡΠ²Π°Ρ ΡΠΎ Π½Π°ΡΡΠ°Π½ΠΈ Π·Π° ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π° PyFunc. ΠΠ²ΠΎΡ Π½ΠΎΠ² API ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎ ΡΠ°ΠΊΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΡΠ°ΡΠ° Π½Π° Π³Π°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ, ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΡΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΈΠ·Π²Π΅ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° ΡΡΠ΅ΡΠΈ Π»ΠΈΡΠ° Π΄Π΅ΠΊΠ° ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈΠ»ΠΎ.
- Π€ΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΊΠ° Π½Π° Π²Π»Π΅Π· ΠΈ ΠΈΠ·Π»Π΅Π·. Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ, ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ Π³ΠΈ ΠΏΡΠΈΡΠ°ΡΠ° ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΊΠΈ ΡΡΠΎ ΡΠΎΠ΄ΡΠΆΠ°Ρ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. Π‘ΠΎ ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π²Π»Π΅Π· ΠΈ ΠΈΠ·Π»Π΅Π·, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π·Π° Π΄Π° ΡΠΏΡΠ΅ΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°.
- ΠΠΎΡΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π½Π° Π³ΡΠ°ΡΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. Π‘ΠΎ Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠ°Ρ Π΄ΠΎ ΠΈΠ·Π»Π΅Π·Π½ΠΈΡΠ΅ ΡΠ΅Π½Π·ΠΎΡΠΈ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π±Π΅Π· Π΄Π° Π³ΠΈ Π²ΡΠΈΡΡΠ²Π°Π°Ρ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈ Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° CuPy, TorchVision ΠΈΠ»ΠΈ OpenCV CUDA.
- Π€ΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠΊΠΈΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ. ΠΠΎ ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΠ²ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈ Π±Π°ΡΠ΅ΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ OpenCV GpuMat, PyTorch GPU ΡΠ΅Π½Π·ΠΎΡΠΈ ΠΈ CuPy ΡΠ΅Π½Π·ΠΎΡΠΈ.
- API Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΈΡΠΈ Π·Π° Π³Π°ΡΠΎΠ²ΠΎΠ΄ΠΎΡ. Savant Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ PyFuncs Π·Π° Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π±Π°ΡΠ΅Ρ. ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎΡΠΎ API ΠΈΠΌ Π΄Π°Π²Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠ΅Π΄ΠΈΡΠΈΡΠ΅ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΡΠ΅Π²ΠΊΠΎΠ²ΠΎΠ΄ΠΎΡ ΠΈ ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΡΠ° ΠΏΠΎΠ±Π°ΡΠ°Π°Ρ Π½ΠΈΠ²Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°.
ΠΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (0.3.7) ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈ Π½Π° DeepStream 6.4 Π±Π΅Π· ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ°. ΠΠ΄Π΅ΡΠ°ΡΠ° Π΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΅ Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎ ΡΠΎ 0.2.7, Π½ΠΎ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° DeepStream 6.4 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°, Π½ΠΎ Π±Π΅Π· ΠΏΡΠ΅ΠΊΠΈΠ½ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° API.
ΠΠ·Π²ΠΎΡ: opennet.ru