1. Hedefler
Genel Bakış
Bu codelab'de, gerçek zamanlı trafik video görüntülerini izlemek için uçtan uca Vertex AI Vision uygulaması oluşturmaya odaklanacağız. Önceden eğitilmiş Özel model Doluluk analizi'ni kullanırız. yerleşik özellikleri vardır:
- Belirli bir çizgide yoldan geçen araç sayısını ve kişileri sayın.
- Yolun herhangi bir sabit bölgesindeki araç/kişi sayısını sayın.
- Yolun herhangi bir yerindeki tıkanıklığı tespit etme.
Neler öğreneceksiniz?
- Akış için video aktarmak üzere bir sanal makine ayarlama
- Vertex AI Vision'da uygulama oluşturma
- Doluluk Analizi'nde bulunan farklı özellikler ve bunların nasıl kullanılacağı
- Uygulamayı dağıtma
- Vertex AI Vision'ın Media Warehouse'ta depolama alanınızda video arama
- Çıkışı BigQuery'ye bağlama, modelin json çıkışından analizler çıkarmak için SQL sorgusu yazma ve sonucu Looker Studio'da gerçek zamanlı olarak görselleştirme.
2. Başlamadan Önce
- Google Cloud konsolunun proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun. Not: Bu prosedürde oluşturduğunuz kaynakları tutmayı düşünmüyorsanız mevcut bir projeyi seçmek yerine bir proje oluşturun. Bu adımları tamamladıktan sonra projeyi silerek projeyle ilişkili tüm kaynakları kaldırabilirsiniz. Proje seçiciye git
- Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin.
- Compute Engine ve Vision AI API'lerini etkinleştirin. API'leri etkinleştirme
Bir hizmet hesabı oluşturun:
- Google Cloud Console'da Hizmet hesabı oluştur sayfasına gidin. Hizmet hesabı oluştur'a gidin
- Projenizi seçin.
- Hizmet hesabı adı alanına bir ad girin. Google Cloud Console, Hizmet hesabı kimliği alanını bu ada göre doldurur. Hizmet hesabı açıklaması alanına bir açıklama girin. Örneğin, hızlı başlangıç için hizmet hesabı.
- Oluştur ve devam et'i tıklayın.
- Projenize erişim sağlamak için hizmet hesabınıza şu rolleri verin: Vision AI > Vision AI Düzenleyici, Compute Engine > Compute Örnek Yöneticisi (beta), Depolama > Storage Nesne Görüntüleyici † . Rol seçin listesinden bir rol seçin. Ek roller için Başka bir rol ekle'yi tıklayın ve her bir rolü ekleyin. Not: Rol alanı, hizmet hesabınızın projenizde hangi kaynaklara erişebileceğini etkiler. Daha sonra bu rolleri iptal edebilir veya başka roller verebilirsiniz. Üretim ortamlarında Sahip, Düzenleyici veya Görüntüleyici rollerine izin vermeyin. Bunun yerine, ihtiyaçlarınıza uygun önceden tanımlanmış bir rol veya özel bir rol atayabilirsiniz.
- Devam'ı tıklayın.
- Hizmet hesabını oluşturmayı tamamlamak için Bitti'yi tıklayın. Tarayıcı pencerenizi kapatmayın. Sonraki adımda bu adı kullanacaksınız.
Bir hizmet hesabı anahtarı oluşturun:
- Google Cloud konsolunda, oluşturduğunuz hizmet hesabının e-posta adresini tıklayın.
- Anahtarlar'ı tıklayın.
- Anahtar ekle'yi, ardından Yeni anahtar oluştur'u tıklayın.
- Oluştur'u tıklayın. Bilgisayarınıza bir JSON anahtar dosyası indirilir.
- Kapat'ı tıklayın.
- Google Cloud KSA'yı yükleyin ve başlatın.
† Yalnızca bir Cloud Storage paketinden örnek video dosyası kopyalarsanız rol gereklidir.
3. Video akışı için sanal makine kurma
Occupancy Analytics'te Uygulama oluşturmadan önce, daha sonra Uygulama tarafından kullanılabilecek bir akış kaydetmeniz gerekir.
Bu eğiticide, video barındıran bir Compute Engine sanal makine örneği oluşturacaksınız ve bu video akışı verilerini sanal makineden göndereceksiniz.
Linux sanal makinesi oluşturma
Compute Engine sanal makine örneğinden video göndermenin ilk adımı, sanal makine örneğini oluşturmaktır.
- Konsolda Sanal makine örnekleri sayfasına gidin. Sanal makine örneklerine git
- Projenizi seçin ve Continue (Devam) düğmesini tıklayın.
- Create instance'ı (Örnek oluştur) tıklayın.
- Sanal makineniz için bir Ad belirtin. Daha fazla bilgi için Kaynak adlandırma kuralı başlıklı makaleyi inceleyin.
- İsteğe bağlı: Bu sanal makinenin Alt bölgesini değiştirin. Compute Engine, birden çok alt bölgede kullanımı teşvik etmek için her bölgedeki alt bölgelerin listesini rastgele hale getirir.
- Kalan varsayılan seçenekleri kabul edin. Bu seçenekler hakkında daha fazla bilgi için Sanal makine oluşturma ve başlatma bölümünü inceleyin.
- Sanal makine oluşturup başlatmak için Create'i (Oluştur) tıklayın.
Sanal makine ortamını ayarlama
Sanal makine başlatıldıktan sonra, tarayıcınızdan sanal makineye SSH üzerinden SSH uygulamak için konsolu kullanabilirsiniz. Ardından, videoları akışınıza aktarmak için vaictl komut satırı aracını indirebilirsiniz.
Sanal makinenizle SSH bağlantısı oluşturun
- Konsolda Sanal makine örnekleri sayfasına gidin. Sanal makine örneklerine git
- Oluşturduğunuz örnek satırının Connect (Bağlan) bölümünde SSH'yi tıklayın. Bu işlem, SSH bağlantısını yeni bir tarayıcı penceresinde açar.
.
vaictl komut satırı aracını indirin
- SSH-in-browser penceresinde, aşağıdaki komutu kullanarak Vertex AI Vision (vaictl) komut satırı aracını indirin:
wget https://github.com/google/visionai/releases/download/v0.0.4/visionai_0.0-4_amd64.deb
- Aşağıdaki komutu çalıştırarak komut satırı aracını yükleyin:
sudo apt install ./visionai_0.0-4_amd64.deb
- Aşağıdaki komutu çalıştırarak yükleme işlemini test edebilirsiniz:
vaictl --help
4. Video dosyasını akış için alma
Sanal makine ortamınızı kurduktan sonra örnek bir video dosyasını kopyalayabilir ve video verilerini doluluk analizi uygulamanıza aktarmak için vaictl'i kullanabilirsiniz.
Cloud Console'da Vision AI API'yi etkinleştirerek başlayın
Yeni yayın kaydetme
- Vertex AI Vision'ın sol panelindeki yayınlar sekmesini tıklayın.
- Kaydol'u tıklayın
- Akış adına "traffic-stream" yazın
- Bölgeye "us-central1" yazın
- Kayıt düğmesini tıklayın
Akışın kaydedilmesi birkaç dakika sürer.
Örnek videoyu sanal makinenize kopyalama
- Sanal makinenizin SSH-in-browser penceresinde, aşağıdaki gsutil cp komutunu kullanarak örnek bir video kopyalayın. Aşağıdaki değişkeni değiştirin:
- KAYNAK: Kullanılacak video dosyasının konumu. Kendi video dosyası kaynağınızı (örneğin, gs://BUCKET_NAME/FILENAME.mp4) veya örnek videoyu (gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 )(kişilerin ve araçların bulunduğu video, kaynak) kullanabilirsiniz
export SOURCE=gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 gsutil cp $SOURCE .
Sanal makineden video akışı gerçekleştirip verileri akışınıza aktarma
- Bu yerel video dosyasını uygulama giriş akışına göndermek için aşağıdaki komutu kullanın. Aşağıdaki değişken değişikliklerini yapmanız gerekir:
- PROJECT_ID: Google Cloud projenizin kimliği.
- LOCATION_ID: Konum kimliğiniz. Örneğin, us-central1. Daha fazla bilgi için Bulut konumları başlıklı makaleyi inceleyin.
- LOCAL_FILE: Yerel bir video dosyasının dosya adı. Örneğin, street_vehicles_people.mp4.
- –loop flag: İsteğe bağlı. Akışı simüle etmek için dosya verilerini döngüye alır.
export PROJECT_ID=<Your Google Cloud project ID> export LOCATION_ID=us-central1 export LOCAL_FILE=street_vehicles_people.mp4
- Bu komut, video dosyasını akışa aktarır. –loop işaretini kullanırsanız video, siz komutu durdurana kadar akışa tekrar dahil edilir. Bu komutu, sanal makinenin bağlantısı kesildikten sonra bile akışın devam etmesi için arka plan işi olarak çalıştıracağız.
- ( arka plan işi yapmak için başına nohup, sonuna '&' ekleyin)
nohup vaictl -p $PROJECT_ID \ -l $LOCATION_ID \ -c application-cluster-0 \ --service-endpoint visionai.googleapis.com \ send video-file to streams 'traffic-stream' --file-path $LOCAL_FILE --loop &
Valictl besleme işleminin başlatılması ve videonun kontrol panelinde gösterilmesi yaklaşık 100 saniye sürebilir.
Yayın besleme kullanılabilir hale geldikten sonra Vertex AI Vision kontrol panelinin Akışlar sekmesinde trafik akışı akışını seçerek video feed'ini görebilirsiniz.
Google Cloud Console'daki akışa aktarılan videonun canlı görünümü. Video kredisi: Elizabeth Mavor, Pixabay'da (pikselleme eklendi).
5. Uygulama oluşturma
İlk adım, verilerinizi işleyen bir uygulama oluşturmaktır. Uygulama, aşağıdakileri birbirine bağlayan otomatik bir ardışık düzen olarak düşünülebilir:
- Veri besleme: Video feed'i bir akışa beslenir.
- Veri analizi: Beslemeden sonra yapay zeka(Bilgisayar Görüşü) modeli eklenebilir.
- Veri depolama: Video feed'inin iki sürümü (orijinal akış ve yapay zeka modeli tarafından işlenen akış), medya ambarında depolanabilir.
Google Cloud konsolunda uygulamalar bir grafik olarak gösterilir.
Boş uygulama oluşturma
Uygulama grafiğini doldurmadan önce boş bir uygulama oluşturmanız gerekir.
Google Cloud Console'da uygulama oluşturun.
- Google Cloud konsoluna gidin.
- Vertex AI Vision kontrol panelinin Uygulamalar sekmesini açın.
- Oluştur ekle düğmesini tıklayın.
- Uygulama adı olarak traffic-app yazın ve bölgenizi seçin.
- Oluştur'u tıklayın.
Uygulama bileşeni düğümleri ekleme
Boş uygulamayı oluşturduktan sonra üç düğümü uygulama grafiğine ekleyebilirsiniz:
- Besleme düğümü: Oluşturduğunuz bir Compute Engine sanal makine örneğinden gönderilen verileri alan akış kaynağı.
- İşleme düğümü: Beslenen veriler üzerinde işlem yapan doluluk analizi modeli.
- Depolama düğümü: İşlenen videoları depolayan ve meta veri deposu olarak hizmet veren medya ambarı. Meta veri depoları, beslenen video verileriyle ilgili analiz bilgilerini ve yapay zeka modellerinden elde edilen çıkarımları içerir.
Konsolda uygulamanıza bileşen düğümleri ekleyin.
- Vertex AI Vision kontrol panelinin Uygulamalar sekmesini açın. Uygulamalar sekmesine gidin
- Trafik uygulaması satırında Grafiği görüntüle'yi seçin. Bu işlem, sizi işleme ardışık düzeninin grafik görselleştirmesine yönlendirir.
Veri kullanımı düğümü ekleme
- Bir giriş akışı düğümü eklemek için yan menünün Bağlayıcılar bölümündeki Akışlar'ı seçin.
- Açılan Akış menüsünün Kaynak bölümünde Akış ekle'yi seçin.
- Akış ekle menüsünde Yeni yayınlar kaydet'i seçin ve akış adı olarak trafik akışı ekleyin.
- Akışı uygulama grafiğine eklemek için Akış ekle'yi tıklayın.
Veri işleme düğümü ekleme
- Doluluk sayısı modeli düğümünü eklemek için yan menünün Özel modeller bölümünde doluluk analizi seçeneğini belirleyin.
- Kişiler ve Araçlar varsayılan seçimlerini değiştirmeden bırakın.
- Çizgi geçişi'ne Çizgi ekleyin. Ayrılan veya giren arabaları ya da kişileri algılamanız gereken çizgiler çizmek için çok noktalı çizgi aracını kullanın.
- Bölgedeki kişileri/araçları saymak için aktif bölgeleri çizin.
- Aktif bir bölge çizilmişse tıkanıklığı tespit etmek için bekleme süresi ayarları ekleyin.
- (Şu anda etkin alt bölge ve çizgi geçişi aynı anda desteklenmemektedir.) Aynı anda yalnızca bir özellik kullanın.)
Veri depolama düğümü ekleme
- Çıkış hedefi (depolama alanı) düğümünü eklemek için yan menünün Bağlayıcılar bölümünde Vertex AI Vision's Media Warehouse seçeneğini belirleyin.
- Vertex AI Vision's Media Warehouse menüsünden Connect domain'i (Depoyu bağla) tıklayın.
- Depo bağla menüsünde Yeni depo oluştur'u seçin. Depo trafik deposuna bir ad verin ve TTL süresini 14 gün olarak bırakın.
- Depoyu eklemek için Oluştur düğmesini tıklayın.
6. Çıkışı BigQuery Tablosuna Bağlama
Vertex AI Vision uygulamanıza bir BigQuery bağlayıcısı eklediğinizde, tüm bağlı uygulama modeli çıkışları hedef tabloya aktarılır.
Kendi BigQuery tablonuzu oluşturup uygulamaya bir BigQuery bağlayıcısı eklediğinizde bu tabloyu belirtebilirsiniz veya Vertex AI Vision uygulama platformunun tabloyu otomatik olarak oluşturmasına izin verebilirsiniz.
Otomatik tablo oluşturma
Vertex AI Vision uygulama platformunun tabloyu otomatik olarak oluşturmasına izin verirseniz BigQuery bağlayıcı düğümünü eklerken bu seçeneği belirtebilirsiniz.
Otomatik tablo oluşturma özelliğini kullanmak istiyorsanız aşağıdaki veri kümesi ve tablo koşulları geçerlidir:
- Veri kümesi: Otomatik olarak oluşturulan veri kümesi adı visionai_dataset şeklindedir.
- Tablo: Otomatik olarak oluşturulan tablo adı visionai_dataset.APPLICATION_ID şeklindedir.
- Hata işleme:
- Aynı veri kümesi altında aynı ada sahip bir tablo varsa otomatik oluşturma işlemi gerçekleşmez.
- Vertex AI Vision kontrol panelinin Uygulamalar sekmesini açın. Uygulamalar sekmesine gidin
- Listede uygulamanızın adının yanında bulunan Uygulamayı görüntüle'yi seçin.
- Uygulama oluşturucu sayfasında Bağlayıcılar bölümünden BigQuery'yi seçin.
- BigQuery yolu alanını boş bırakın.
- Mağaza meta verileri kaynağı: bölümünde yalnızca "doluluk Analytics"i seçin. ve akışların işaretini kaldırın.
Uygulama grafiğinin son hali aşağıdaki gibi görünmelidir:
7. Uygulamanızı kullanıma sunma
Uçtan uca uygulamanızı gerekli tüm bileşenlerle derledikten sonra, uygulamayı kullanmanın son adımı uygulamayı dağıtmaktır.
- Vertex AI Vision kontrol panelinin Uygulamalar sekmesini açın. Uygulamalar sekmesine gidin
- Listede, uygulama trafiği uygulamasının yanında Grafiği görüntüle'yi seçin.
- Uygulama grafiği oluşturucu sayfasında Dağıt düğmesini tıklayın.
- Aşağıdaki onay iletişim kutusunda Dağıt'ı seçin. Dağıtma işleminin tamamlanması birkaç dakika sürebilir. Dağıtım tamamlandıktan sonra, düğümlerin yanında yeşil onay işaretleri görünür.
.
8. Depolama deposunda video içeriği arayın
Video verilerini işleme uygulamanıza besledikten sonra analiz edilen video verilerini görüntüleyebilir ve doluluk analizi bilgilerine göre verilerde arama yapabilirsiniz.
- Vertex AI Vision kontrol panelinin Warehouses sekmesini açın. Atölyeler sekmesine git
- Listede trafik deposu deposunu bulun ve Öğeleri görüntüle'yi tıklayın.
- Kişi sayısı veya Araç sayısı bölümünde Min. değerini 1 ve Maks. değerini 5 olarak ayarlayın.
- Vertex AI Vision'ın Media Warehouse'ta depolanan işlenmiş video verilerini filtrelemek için Search'ü (Ara) tıklayın.
Google Cloud Console'daki arama ölçütleriyle eşleşen depolanan video verilerinin görünümü. Video yazarı: Elizabeth Mavor, Pixabay'da (arama ölçütleri uygulandı).
9. BigQuery Tablosunda Çıkışı Analiz Etme
BigQuery'ye git
Veri kümesini seçin: visionai_dataset
Tabloyu seçin: APPLICATION_ID (bu örnekte traffic-app)
Tablo adının sağındaki üç noktayı ve Sorgu'yu tıklayın
Aşağıdaki sorguyu yazın
Sorgu 1: Dakikada her satırdan geçen araç sayısını kontrol etmek için sorgu
abc.sql
—- Get list of active marked lines for each timeframe
WITH line_array AS (
SELECT
t.ingestion_time AS ingestion_time,
JSON_QUERY_ARRAY(t.annotation.stats["crossingLineCounts"]) AS lines
FROM
`PROJ_ID.visionai_dataset.APP_ID` AS t
),
—- Flatten active lines to get individual entities details
flattened AS (
SELECT
line_array.ingestion_time,
JSON_VALUE(line.annotation.id) as line_id,
JSON_QUERY_ARRAY(line["positiveDirectionCounts"]) AS entities
FROM line_array, unnest(line_array.lines) as line
)
—- Generate aggregate vehicle count per zone w.r.t time
SELECT
STRING(TIMESTAMP_TRUNC(ingestion_time, MINUTE) ) AS time, line_id,
SUM(INT64(entity["count"])) as vehicle_count
FROM
flattened, UNNEST(flattened.entities) AS entity
WHERE JSON_VALUE(entity['entity']['labelString']) = 'Vehicle'
GROUP BY time, line_id
2. Sorgu: Her bölgede dakika başına araç sayısını kontrol etme sorgusu
—- Get list of active zones for each timeframe
WITH zone_array AS (
SELECT
t.ingestion_time AS ingestion_time,
JSON_QUERY_ARRAY(t.annotation.stats["activeZoneCounts"]) AS zones
FROM
`PROJ_ID.visionai_dataset.APP_ID` AS t
),
—- Flatten active zones to get individual entities details
flattened AS (
SELECT zone_array.ingestion_time, JSON_VALUE(zone.annotation.id) as zone_id,
JSON_QUERY_ARRAY(zone["counts"]) AS entities
FROM zone_array, unnest(zone_array.zones) as zone
)
—- Generate aggregate vehicle count per zone w.r.t time
SELECT
STRING(TIMESTAMP_TRUNC(ingestion_time, MINUTE) ) AS time,
zone_id,
SUM(INT64(entity["count"])) as vehicle_count
FROM flattened, UNNEST(flattened.entities) AS entity
WHERE JSON_VALUE(entity['entity']['labelString']) = 'Vehicle'
GROUP BY time, zone_id
Yukarıdaki sorgularda "Araç" ayarını değiştirebilirsiniz "Kişi" olarak sayacağım.
Bu codelab'de yalnızca Sorgu1 için örnek veriler ve görselleştirme gösterilecektir. Sorgu2 için de benzer süreci uygulayabilirsiniz.
Sağ taraftaki menüden Verileri Keşfet'i tıklayıp Looker Studio ile keşfet'i seçin
"Boyut" saat ekle bölmesindeki saat yapılandırmasını tarih-saat olarak değiştirin. "Döküm boyutu" bölümünde line_id ekleyin. .
Yukarıdaki grafikte, dakikada her bir çizgiden geçen araç/kişi sayısı gösterilmektedir.
Koyu mavi ve açık mavi çubuklar, iki farklı satır kimliğini gösterir.
10. Tebrikler
Tebrikler, laboratuvarı tamamladınız.
Temizleme
Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız kaynakları içeren projeyi silin veya projeyi tutup tek tek kaynakları silin.
Projeyi silme
Kaynakları tek tek silme
Kaynaklar
https://cloud.google.com/vision-ai/docs/overview
https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial
Geri bildirim
Geri bildirim göndermek için burayı tıklayın