2 puan yazan GN⁺ 2026-03-26 | 1 yorum | WhatsApp'ta paylaş
  • Araç kamerası gibi video dosyalarında doğal dille sahne arayıp ilgili bölümü otomatik olarak kesen anlamsal arama sistemi
  • Google Gemini Embedding 2 modeliyle videonun kendisini vektör olarak gömüyor ve ChromaDB'de saklayarak metin sorgularıyla doğrudan karşılaştırıyor
  • ffmpeg ile videoyu örtüşen parçalar halinde bölüp gömüyor; arama sırasında en benzer bölümü saniyenin altı hızda döndürüyor
  • Ön işleme ve durağan kare atlama özellikleriyle API çağrı maliyetini düşürüyor; 1 saatlik videoyu indeksleme maliyeti yaklaşık $2.84
  • Gemini Embedding 2'nin videoyu doğrudan gömme özelliği sayesinde altyazı üretmeden de saatlerce süren videolarda hızlı anlamsal arama yapılabiliyor

Genel bakış

  • SentrySearch, araç kamerası görüntülerinde anlamsal arama (semantic search) yapan bir araçtır; kullanıcı doğal dilde bir sorgu girdiğinde ilgili sahneyi içeren kesilmiş klibi (trimmed clip) döndürür
  • Google Gemini Embedding 2 modeliyle videonun kendisini vektör olarak gömer ve bunu ChromaDB yerel veritabanında saklar
  • Metin sorgusu da aynı vektör uzayına gömülerek en benzer video parçası bulunur
  • Arama sonucu orijinal dosyadan otomatik olarak kesilip kaydedilir ve saniyenin altı (sub-second) arama hızı sunar

Nasıl çalışır

  • Video, örtüşen bölümler (overlapping chunks) halinde parçalanır ve her bölüm Gemini Embedding modeliyle doğrudan gömülür
  • Her gömme vektörü ChromaDB'ye kaydedilir; arama sırasında metin sorgusu aynı vektör uzayına dönüştürülerek eşleştirilir
  • En yüksek benzerlik skoruna sahip bölüm, orijinal videodan otomatik olarak kesilerek klip olarak kaydedilir
  • Video bölme ve kırpma için ffmpeg kullanılır; sistemde kurulu değilse imageio-ffmpeg otomatik olarak devreye girer

Kurulum ve ilk yapılandırma

  • Python 3.10 ve üzeri ortamda şu komutlarla kurulabilir
    • git clone ardından pip install -e .
  • sentrysearch init komutuyla Gemini API anahtarı ayarlanır ve .env dosyasına kaydedilir
    • Anahtarın geçerliliğini doğrulamak için test gömmesi yapılır
  • Elle yapılandırmada .env.example kopyalanıp API anahtarı doğrudan eklenebilir

Temel komutlar ve seçenekler

  • index

    • Belirtilen klasördeki .mp4 dosyalarını özyinelemeli olarak tarayıp indeksler
    • Her dosya birden çok chunk'a bölünerek gömülür
    • Seçenekler
      • --chunk-duration : parça uzunluğu (saniye)
      • --overlap : parçalar arası örtüşme uzunluğu
      • --no-preprocess : küçültme ve kare azaltmayı atlar
      • --target-resolution : ön işlemede hedef çözünürlük (varsayılan 480p)
      • --target-fps : ön işlemede hedef kare hızı (varsayılan 5fps)
      • --no-skip-still : durağan kare bölümlerini de tamamen göm
  • search

    • Örnek: sentrysearch search "red truck running a stop sign"
    • Sonuçlar benzerlik skoru ile birlikte gösterilir; en iyi sonuç otomatik olarak kesilip kaydedilir
    • Benzerlik skoru varsayılan eşik değerinin (0.35) altındaysa bir onay istemi gösterilir
    • Seçenekler
      • --results N : gösterilecek sonuç sayısı
      • --output-dir DIR : klip kayıt yolu
      • --no-trim : otomatik kırpmayı devre dışı bırakır
      • --threshold : benzerlik eşik değerini ayarlar
  • stats

    • İndekslenen toplam parça sayısını ve kaynak dosya sayısını gösterir
  • --verbose

    • Gömme boyutu, API yanıt süresi, benzerlik skoru gibi hata ayıklama bilgilerini çıktı verir

Teknik arka plan

  • Gemini Embedding 2, videoyu doğrudan gömebilir ve metin sorgularıyla aynı 768 boyutlu vektör uzayında karşılaştırılabilir
  • Ayrı bir altyazı üretme veya kare açıklaması oluşturma süreci gerekmez
  • Örneğin “red truck at a stop sign” metin sorgusu, 30 saniyelik bir video kliple doğrudan karşılaştırılabilir
  • Bu özellik sayesinde saatlerce süren videolarda bile saniyenin altında anlamsal arama mümkün olur

Maliyet yapısı

  • Varsayılan ayarlarda (30 saniyelik parçalar, 5 saniye örtüşme) 1 saatlik video indeksleme maliyeti yaklaşık $2.84
    • Gemini API, yüklenen videodan saniyede yalnızca 1 kare işler
    • Ön işleme, 480p ve 5fps'e küçültme yaparak aktarım hızını optimize etmeyi ve zaman aşımını önlemeyi amaçlar
  • Maliyet azaltma optimizasyonları

    • Ön işleme (preprocessing) : yükleme boyutunu ve aktarım süresini azaltır
    • Durağan kare atlama (still-frame skipping) : görsel değişim olmayan bölümlerin gömülmesini atlar
      • Park halindeki uzun kayıt videolarında etkilidir
    • Arama sorguları yalnızca metin gömmesi yaptığından maliyet neredeyse yoktur
    • Ek ayar seçenekleri
    • --chunk-duration, --overlap : API çağrısı sayısını ayarlar
    • --no-skip-still : tüm parçaları göm
    • --target-resolution, --target-fps : ön işleme kalitesini ayarlar
    • --no-preprocess : orijinal parçaları olduğu gibi gönderir

Sınırlamalar ve gelecekteki geliştirmeler

  • Durağan kare tespiti, JPEG dosya boyutu karşılaştırmasına dayalı sezgisel bir yöntemdir; küçük hareketleri kaçırabilir veya durağan olmayan bölümleri yanlışlıkla dahil edebilir
  • Arama kalitesi parça sınırlarına bağlıdır; olay iki parçaya yayılıyorsa mükemmel şekilde yakalanamayabilir
    • Gelecekte sahne tespiti (scene detection) tabanlı parça bölme ile iyileştirilebilir
  • Gemini Embedding 2 şu anda önizleme aşamasındadır; API davranışı ve fiyatlandırma değişebilir

Uyumluluk ve gereksinimler

  • .mp4 biçimindeki tüm video dosyalarında çalışır; yalnızca Tesla Sentry Mode görüntüleriyle sınırlı değildir
  • Klasör yapısından bağımsız olarak tüm .mp4 dosyalarını özyinelemeli biçimde tarar
  • Gereksinimler
    • Python 3.10 veya üzeri
    • ffmpeg kurulumu gerekli (veya imageio-ffmpeg otomatik kullanılır)
    • Gemini API anahtarı gerekli (ücretsiz anahtar alınabilir: aistudio.google.com/apikey)

1 yorum

 
GN⁺ 2026-03-26
Hacker News yorumları
  • Bu uygulama yaklaşımı gerçekten çok havalı görünüyor. Embedding'ler hâlâ biraz sihir gibi geliyor
    Ama en çok endişelendiren şey, bu tür bir teknolojinin gerçek hayatta gözetim toplumuna dönüşme ihtimali
    Şu anda sayısız kamera var ama gerçekte tüm görüntüleri insanların tek tek izlemesi imkânsız olduğu için belli ölçüde anonimlik ve mahremiyet korunuyor
    Ancak yapay zeka tüm görüntüleri gerçek zamanlı analiz edip belirli kişileri ya da davranışları doğal dille tespit edebilir hâle gelirse, tam gözetim (panopticon) gerçeğe dönüşebilir
    Suç tespiti ya da düşme algılama gibi olumlu kullanım alanları olacaktır, ama düzenleme olmazsa sonucu çok tehlikeli olabilir

    • Bu aslında şu anda gerçekten uygulanıyor. Şehir konseyi toplantısında ALPR kamera sözleşmesini tartıştıklarını duydum ve orada Fusus adlı bir dashboard ürününü öğrendim
      Çeşitli kamera sistemlerini, ALPR'yi ve alarmları birleştiriyor ve görüntüler üzerinde doğal dille sorgulama yapılabildiği söyleniyor
      İleride vatandaşların kurduğu kameralar da entegre edilecekmiş. Sonunda bu Citizen uygulaması gibi servislerle bağlanırsa, komşunun kamerasının doğrudan polis sistemine bağlı olduğu bir dünyaya varabiliriz
      Gerçekten kaygı verici bir yön
    • Şu anda maliyet ($2.50/saat) ve gecikme (latency) yüzünden gerçek zamanlı indeksleme zor, ama yakında mümkün olacaktır
      Bu yüzden bence böyle şeyleri yerel modellerle işlemek, görüntülerin dışarı çıkmamasını sağlamak açısından önemli
      Ama teknolojinin genel yönü üzerine dikkatle düşünmek gerekiyor
    • Kameraların çoğuna tek bir kurum tamamen erişemiyor ve hükümetin görebilmesi için mahkeme celbi (subpoena) gerekiyor
      Sorun, Flock ya da Ring gibi sistemler çok geniş ölçekte dağıtıldığında veya tek bir şirket tüm görüntülere erişebildiğinde ortaya çıkıyor
    • Teknik olarak tam gözetim sistemi zaten mümkün. Şimdilik sadece pahalı
    • Bu tür görsel algılama modülleri düşük güçlü ASIC'lerde de çalışır hâle gelirse, dronlar korkunç silahlara dönüşebilir
  • Multimodal AI'ın reklam tespiti ile reklam yerleştirme arasında bir silahlanma yarışı başlatacağını düşünüyorum
    Daha önce Gemini'nin önceki modeliyle yapay zeka destekli reklam kaldırmayı denemiştim; bu teknoloji ise çok daha güçlü görünüyor, reklamları anında tanıyıp sessize alabilir ya da kaldırabilir gibi
    İlgili deneyi burada özetledim

    • İlginç bir yazıydı. Birisi yapay zeka tabanlı web aramasının geleceğini tasvir etmişti ama sonuç pek iç açıcı değildi
      Sonuçta reklamlar ortadan kalkmayacak. Yapay zeka sağlayıcıları reklam beyaz listeleri alabilir ya da daha kötüsü, yapay zeka doğrudan reklam ürünlerini tanıtabilir
  • Birkaç ay önce bir Rexing dashcam aldım ama görüntülere erişmek o kadar zahmetli ki kendi sistemimi kurmayı düşünüyorum
    SD kartı çıkarmadan görüntüleri gezip indirebilmeyi sağlamaya çalışıyorum
    Kayıtları kaydırırken, “Keşke bu sahneyi doğal dille arayabilsem” diye düşündüm; bu projeyi görünce hemen uygulamak istedim
    Paylaştığın için teşekkürler

  • Bunun video düzenleme yazılımlarına uygulanıp uygulanamayacağını merak ediyorum
    Mesela bir Premiere eklentisinde “Kedinin göründüğü tüm sahneleri kaldır” dediğinde otomatik olarak bir EDL (Edit Decision List) oluşturması gibi

    • Güzel fikir. Ben de bunu bir sonraki adım olarak düşünüyordum
      SentrySearch zaten doğal dil sorguları için doğru in/out zaman damgaları döndürüyor ve ffmpeg ile otomatik kırpma yapıyor
      Bunu EDL'ye ya da bir Premiere eklentisine genişletmek doğal bir evrim olur
      Premiere konusunda uzman değilim ama biri EDL dışa aktarıcı ya da eklenti denemek isterse, PR inceleme ve birleştirme konusunda yardımcı olmaya hazırım
      Başlarsanız GitHub issue üzerinden haber vermeniz güzel olur
  • Bunun yerel modellerde de çalışıp çalışamayacağını merak ediyorum

  • Bu, dashcam yerine ev izleme amacıyla da ilginç olurdu

    • Ev izleme sistemlerinin çoğu zaten yalnızca hareket algılandığında kayıt yaptığı için arama alanı büyük ölçüde daralıyor
      İleri geri hızlıca sararak kapıya birinin yaklaştığı 30 saniyelik bölümü kolayca bulabilirsiniz
    • Bence bu tür bir özellik yakında tüm ev güvenlik sistemleri için zorunlu bir özellik olacak
      Eskiden kedinin kapı açıldığında dışarı çıkıp çıkmadığını görmek için saatlerce görüntü izlemiştim, ama aslında evin içinde saklanıyormuş
  • Ben de bir embedding projesi üzerinde çalışıyorum ama hâlâ prototip aşamasında
    Benim durumumda Gemini değil, oyun için reverse connections bulmacaları yapıyorum
    İlgili şeylere buradan bakabilirsiniz

  • “Video parçalarının çoğunun hareketsiz kare olup olmadığını kontrol etme” kodunu gördüm; ffmpeg'in select ve scene parametrelerini birleştirerek bunun otomatik yapılabileceğini düşünüyorum

  • Ben içerik/video zekâsı alanında çalışıyorum
    Gemini bu tür kullanım senaryoları için gerçekten çok uygun bir araç

  • Demoda “Arkamda bisiklet taşıyıcısı olan bir arabanın gece önüme kırdığı anı” aratmalarına güldüm
    Muhtemelen o arabayı bulmak, bu projeyi yapmanın asıl motivasyonuydu

    • Çok da yanlış sayılmaz