Brand-agnostic UVC PTZ Camera Library
Marka-bağımsız UVC PTZ kamera kütüphanesi (klinik operatörler için).
Öne Çıkanlar
- Logitech'e özel bir kamera kontrol kütüphanesini, DirectShow uyumlu herhangi bir PTZ kamerayı destekleyen marka-bağımsız bir UVC implementasyonuna yeniden inşa ettim
- Mutlak konum pan/tilt/zoom, gece görüşü/IR mod geçişi ve kalıcı görüş alanı kalibrasyonu uyguladım
- "Point-and-center" doğruluğu için kalibrasyon sırasında OpenCV özellik tespiti çalıştırarak ekran koordinatlarını kamera hareketlerine eşledim
- Kütüphaneyi, aşağı akış tüketicilere Direct2D kalibrasyon arayüzü, C# wrapper ve Python binding'leri aracılığıyla sundum
- UVC sürümü paritiye ulaştıktan sonra Logitech-özel önceli versiyonu bilinçli olarak durdurdum
Sorun
Önceki kütüphane Logitech’e özeldi ve bu satın almayı kısıtlıyordu: hastaneler tek bir sağlayıcının PTZ kameralarını alabiliyordu ve o sağlayıcı pahalı seçenekti. Yerine, herhangi bir UVC PTZ kameranın takılabildiği — telehealth operatörlerinin güvendiği “ekrana tıkla, kamera o piksele ortalansın” sözleşmesini bozmayan — marka bağımsız bir kütüphane gerekti.
Yaklaşım
Windows’ta birincil yakalama yolu olarak DirectShow hedeflendi — donanım enumerasyonu, format pazarlığı ve frame teslimi DShow filter graph üzerinden gerçekleşiyor. PTZ kontrolü her iki modu da kapsıyor: kalibrasyon adımı bir koordinat haritası ürettiğinde mutlak konumlandırma, operatör canlı sürerken ise göreli delta’lar. Kamera başına kalibrasyon sırasında OpenCV özellik tespiti çalışarak ekran koordinatlarını fiziksel harekete eşliyor. Kütüphane, aşağı akış tüketicilere bir Direct2D kalibrasyon arayüzü, bir C# wrapper ve Python binding’leri sunuyor — böylece aynı marka-bağımsız çekirdek hem operatör araçlarını hem de başsız gözlem boru hattını besliyor.
Sonuç
Üretimde doğrulanmış ve çalışan on farklı UVC PTZ kamera modeli; ABD’deki 50 hastanede ~300 cihaza dağıtılmış durumda. Komut-hareket gecikmesi neredeyse anlık. Yeni bir kamera modelini canlıya almak 1–2 haftalık mühendislik işinden bir günlük kalibrasyon pasına düştü.