Python ΡΠ°ΠΌΠΊΠ°ΡΠ° Savant 0.2.7 Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° 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. ΠΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Prometheus ΠΈ Grafana Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Ρ Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
- ΠΡΡΠ΅ΡΠ΅Π½ Π°Π΄Π°ΠΏΡΠ΅Ρ - ΠΠ½Π΅Π΄ΡΡΠ²Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ Π±ΡΡΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊ Π·Π° Π΄Π°Π½Π½ΠΈ, Π΄Π²ΠΈΠΆΠ΅ΡΠΈ ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π‘ Π½Π΅Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Ρ ΡΠ΅ΡΡΡΡΠΈ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΈ ΠΈΠ·Π΄ΡΡΠΆΠ°Ρ Π½Π° ΠΈΠ·Π±Π»ΠΈΡΠΈ Π½Π° ΡΡΠ°ΡΠΈΠΊ. ΠΠ΄Π°ΠΏΡΠ΅ΡΡΡ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΠΌ Prometheus.
- Π Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° ΠΌΠΎΠ΄Π΅Π». ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² TensorRT, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ.
- ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΡΡΠ±ΠΈΡΠΈΠ΅ Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° PyFunc. Π’ΠΎΠ·ΠΈ Π½ΠΎΠ² API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄Π° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π³ΡΠ°ΡΠΈΠΎΠ·Π½ΠΎ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΠΉΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΡΠ²Π°ΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, ΡΠ΅ ΡΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ Π½Π°ΡΡΡΠΏΠΈΠ»ΠΎ.
- Π€ΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ°Π΄ΡΠΈ Π½Π° Π²Ρ ΠΎΠ΄ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΈΡΠΊΠΈ ΠΊΠ°Π΄ΡΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π°Π½Π½ΠΈ. Π‘ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°.
- ΠΠΎΡΡΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° GPU. Π‘ Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ΅Π½Π·ΠΎΡΠΈ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ GPU ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π±Π΅Π· Π΄Π° Π³ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ Π² CPU ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° CuPy, TorchVision ΠΈΠ»ΠΈ OpenCV CUDA.
- Π€ΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° GPU. Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅ΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ OpenCV GpuMat, PyTorch GPU ΡΠ΅Π½Π·ΠΎΡΠΈ ΠΈ CuPy ΡΠ΅Π½Π·ΠΎΡΠΈ.
- API Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ½ΠΈ ΠΎΠΏΠ°ΡΠΊΠΈ. Savant Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΠ°ΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ PyFuncs, Π·Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π±ΡΡΠ΅ΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈΡΡ API Π΄Π°Π²Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠΏΠ°ΡΠΊΠΈΡΠ΅, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄Π°, ΠΈ ΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ°Π²ΡΡ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
Π ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ (0.3.7) ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ DeepStream 6.4 Π±Π΅Π· ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°. ΠΠ΄Π΅ΡΡΠ° Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ 0.2.7, Π½ΠΎ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° DeepStream 6.4 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, Π½ΠΎ Π±Π΅Π· Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠ°Π²Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ API.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru