ভার্টেক্স এআই ভিশন ট্রাফিক মনিটরিং অ্যাপ

১. উদ্দেশ্যসমূহ

সংক্ষিপ্ত বিবরণ

এই কোডল্যাবটি রিয়েল-টাইম ট্র্যাফিক ভিডিও ফুটেজ নিরীক্ষণের জন্য শুরু থেকে শেষ পর্যন্ত একটি ভার্টেক্স এআই ভিশন অ্যাপ্লিকেশন তৈরির উপর আলোকপাত করবে। আমরা নিম্নলিখিত বিষয়গুলো ক্যাপচার করার জন্য প্রি-ট্রেইনড স্পেশালাইজড মডেল অকুপেন্সি অ্যানালিটিক্স -এর অন্তর্নির্মিত ফিচারগুলো ব্যবহার করব:

  • একটি নির্দিষ্ট রেখা বরাবর রাস্তা পার হওয়া যানবাহন ও ব্যক্তির সংখ্যা গণনা করুন।
  • রাস্তার যেকোনো নির্দিষ্ট অঞ্চলে যানবাহন/ব্যক্তির সংখ্যা গণনা করুন।
  • রাস্তার যেকোনো অংশে যানজট শনাক্ত করা।

আপনি যা শিখবেন

  • স্ট্রিমিংয়ের জন্য ভিডিও ইনজেস্ট করতে কীভাবে একটি ভিএম সেটআপ করবেন
  • Vertex AI Vision-এ কীভাবে একটি অ্যাপ্লিকেশন তৈরি করবেন
  • অকুপেন্সি অ্যানালিটিক্স-এ উপলব্ধ বিভিন্ন বৈশিষ্ট্য এবং সেগুলি কীভাবে ব্যবহার করতে হয়।
  • অ্যাপটি কীভাবে স্থাপন করবেন
  • আপনার স্টোরেজে থাকা Vertex AI Vision-এর Media Warehouse-এ কীভাবে ভিডিও অনুসন্ধান করবেন
  • কীভাবে আউটপুটকে BigQuery-এর সাথে সংযুক্ত করবেন, মডেলের json আউটপুট থেকে তথ্য আহরণের জন্য SQL কোয়েরি লিখবেন এবং Looker Studio-তে রিয়েলটাইমে ফলাফল ভিজ্যুয়ালাইজ করবেন।

২. শুরু করার আগে

  1. গুগল ক্লাউড কনসোলে, প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুনদ্রষ্টব্য : এই পদ্ধতিতে তৈরি করা রিসোর্সগুলো যদি আপনি রাখতে না চান, তবে বিদ্যমান কোনো প্রজেক্ট নির্বাচন করার পরিবর্তে একটি নতুন প্রজেক্ট তৈরি করুন। এই ধাপগুলো শেষ করার পর, আপনি প্রজেক্টটি ডিলিট করতে পারেন, যার ফলে প্রজেক্টটির সাথে যুক্ত সমস্ত রিসোর্স মুছে যাবে। প্রজেক্ট সিলেক্টরে যান।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
  3. কম্পিউট ইঞ্জিন এবং ভিশন এআই এপিআই সক্রিয় করুন। এপিআইগুলো সক্রিয় করুন।

একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন:

  1. Google Cloud কনসোলে, 'Create service account' পেজে যান। 'Create service account'-এ যান।
  2. আপনার প্রকল্পটি নির্বাচন করুন।
  3. সার্ভিস অ্যাকাউন্ট নেম ফিল্ডে একটি নাম লিখুন। গুগল ক্লাউড কনসোল এই নামের উপর ভিত্তি করে সার্ভিস অ্যাকাউন্ট আইডি ফিল্ডটি পূরণ করে দেবে। সার্ভিস অ্যাকাউন্ট ডেসক্রিপশন ফিল্ডে একটি বিবরণ লিখুন। উদাহরণস্বরূপ, কুইকস্টার্টের জন্য সার্ভিস অ্যাকাউন্ট।
  4. তৈরি করুন-এ ক্লিক করুন এবং চালিয়ে যান
  5. আপনার প্রোজেক্টে অ্যাক্সেস দেওয়ার জন্য, আপনার সার্ভিস অ্যাকাউন্টে নিম্নলিখিত রোল(গুলি) মঞ্জুর করুন: ভিশন এআই > ভিশন এআই এডিটর, কম্পিউট ইঞ্জিন > কম্পিউট ইনস্ট্যান্স অ্যাডমিন (বিটা), স্টোরেজ > স্টোরেজ অবজেক্ট ভিউয়ার †'সিলেক্ট এ রোল' তালিকা থেকে একটি রোল নির্বাচন করুন। অতিরিক্ত রোলের জন্য, 'অ্যাড অ্যানাদার রোল'-এ ক্লিক করুন এবং প্রতিটি অতিরিক্ত রোল যোগ করুন। দ্রষ্টব্য : ' রোল' ফিল্ডটি আপনার প্রোজেক্টে আপনার সার্ভিস অ্যাকাউন্ট কোন রিসোর্সগুলো অ্যাক্সেস করতে পারবে তা প্রভাবিত করে। আপনি পরে এই রোলগুলো বাতিল করতে বা অতিরিক্ত রোল মঞ্জুর করতে পারেন। প্রোডাকশন এনভায়রনমেন্টে, ওনার, এডিটর বা ভিউয়ার রোল মঞ্জুর করবেন না। পরিবর্তে, আপনার প্রয়োজন অনুযায়ী একটি প্রিডিফাইন্ড রোল বা কাস্টম রোল মঞ্জুর করুন।
  6. চালিয়ে যান-এ ক্লিক করুন।
  7. সার্ভিস অ্যাকাউন্ট তৈরি করা শেষ করতে 'Done'-এ ক্লিক করুন। আপনার ব্রাউজার উইন্ডোটি বন্ধ করবেন না। পরবর্তী ধাপে আপনি এটি ব্যবহার করবেন।

একটি পরিষেবা অ্যাকাউন্ট কী তৈরি করুন:

  1. গুগল ক্লাউড কনসোলে, আপনার তৈরি করা সার্ভিস অ্যাকাউন্টের ইমেল অ্যাড্রেসটিতে ক্লিক করুন।
  2. কী-গুলো ক্লিক করুন।
  3. Add key-তে ক্লিক করুন, এবং তারপর Create new key-তে ক্লিক করুন।
  4. Create-এ ক্লিক করুন। আপনার কম্পিউটারে একটি JSON কী ফাইল ডাউনলোড হবে।
  5. বন্ধ করুন-এ ক্লিক করুন।
  6. Google Cloud CLI ইনস্টল এবং চালু করুন

† ক্লাউড স্টোরেজ বাকেট থেকে কোনো নমুনা ভিডিও ফাইল কপি করার ক্ষেত্রেই কেবল এই রোলের প্রয়োজন হবে।

৩. ভিডিও স্ট্রিম করার জন্য একটি ভিএম সেট আপ করুন।

অকুপেন্সি অ্যানালিটিক্সে একটি অ্যাপ তৈরি করার আগে, আপনাকে অবশ্যই একটি স্ট্রিম নিবন্ধন করতে হবে যা পরবর্তীতে অ্যাপটি ব্যবহার করতে পারবে।

এই টিউটোরিয়ালে আপনি একটি Compute Engine VM ইনস্ট্যান্স তৈরি করবেন যা একটি ভিডিও হোস্ট করে, এবং সেই VM থেকে স্ট্রিমিং ভিডিও ডেটা পাঠাবেন।

একটি লিনাক্স ভিএম তৈরি করুন

Compute Engine VM ইনস্ট্যান্স থেকে ভিডিও পাঠানোর প্রথম ধাপ হলো VM ইনস্ট্যান্সটি তৈরি করা।

  1. কনসোলে, VM ইনস্ট্যান্স পৃষ্ঠায় যান। VM ইনস্ট্যান্স-এ যান
  2. আপনার প্রজেক্টটি নির্বাচন করুন এবং 'চালিয়ে যান'-এ ক্লিক করুন।
  3. ইনস্ট্যান্স তৈরি করুন -এ ক্লিক করুন।
  4. আপনার ভিএম-এর জন্য একটি নাম নির্দিষ্ট করুন। আরও তথ্যের জন্য, রিসোর্স নামকরণের নিয়মাবলী দেখুন।
  5. ঐচ্ছিক: এই ভিএম-এর জন্য জোন পরিবর্তন করুন। একাধিক জোনের ব্যবহারকে উৎসাহিত করার জন্য কম্পিউট ইঞ্জিন প্রতিটি অঞ্চলের মধ্যে জোনের তালিকা এলোমেলোভাবে সাজায়।
  6. অবশিষ্ট ডিফল্ট অপশনগুলো গ্রহণ করুন। এই অপশনগুলো সম্পর্কে আরও তথ্যের জন্য, “Create and start a VM” দেখুন।
  7. ভিএম তৈরি ও চালু করতে, Create-এ ক্লিক করুন।

ভিএম পরিবেশ সেট আপ করুন

ভিএমটি চালু হয়ে গেলে, আপনি আপনার ব্রাউজার থেকে কনসোল ব্যবহার করে এসএসএইচ (SSH) করতে পারবেন। এরপর, আপনার স্ট্রিমে ভিডিও যুক্ত করার জন্য আপনি vaictl কমান্ড-লাইন টুলটি ডাউনলোড করতে পারেন।

আপনার ভিএম-এ একটি SSH সংযোগ স্থাপন করুন।

  1. কনসোলে, VM ইনস্ট্যান্স পৃষ্ঠায় যান। VM ইনস্ট্যান্স-এ যান
  2. আপনার তৈরি করা ইনস্ট্যান্স লাইনের কানেক্ট (Connect) বিভাগে, SSH- এ ক্লিক করুন। এটি একটি নতুন ব্রাউজার উইন্ডোতে একটি SSH সংযোগ খুলবে। UI-তে SSH বিকল্পটি

vaictl কমান্ড-লাইন টুলটি ডাউনলোড করুন

  1. SSH-ইন-ব্রাউজার উইন্ডোতে, নিম্নলিখিত কমান্ডটি ব্যবহার করে Vertex AI Vision (vaictl) কমান্ড-লাইন টুলটি ডাউনলোড করুন:
wget https://github.com/google/visionai/releases/download/v0.0.4/visionai_0.0-4_amd64.deb
  1. নিম্নলিখিত কমান্ডটি চালিয়ে কমান্ড-লাইন টুলটি ইনস্টল করুন:
sudo apt install ./visionai_0.0-4_amd64.deb
  1. নিম্নলিখিত কমান্ডটি চালিয়ে আপনি ইনস্টলেশনটি পরীক্ষা করতে পারেন:
vaictl --help

৪. স্ট্রিমিংয়ের জন্য একটি ভিডিও ফাইল গ্রহণ করুন

আপনার ভিএম এনভায়রনমেন্ট সেট আপ করার পরে, আপনি একটি নমুনা ভিডিও ফাইল কপি করতে পারেন এবং তারপরে vaictl ব্যবহার করে আপনার অকুপেন্সি অ্যানালিটিক্স অ্যাপে ভিডিও ডেটা স্ট্রিম করতে পারেন।

ক্লাউড কনসোলে ভিশন এআই এপিআই সক্রিয় করার মাধ্যমে শুরু করুন।

একটি নতুন স্ট্রিম নিবন্ধন করুন

  1. Vertex AI Vision-এর বাম প্যানেলে থাকা স্ট্রিমস ট্যাবে ক্লিক করুন।
  2. রেজিস্টার-এ ক্লিক করুন
  3. স্ট্রিম নামের জায়গায় 'traffic-stream' লিখুন।
  4. অঞ্চলে 'us-central1' লিখুন
  5. নিবন্ধন করতে ক্লিক করুন

স্ট্রিমে নিবন্ধন করতে কয়েক মিনিট সময় লাগবে।

আপনার ভিএম-এ একটি নমুনা ভিডিও কপি করুন।

  1. আপনার ভিএম-এর SSH-ইন-ব্রাউজার উইন্ডোতে, নিম্নলিখিত gsutil cp কমান্ড ব্যবহার করে একটি নমুনা ভিডিও কপি করুন। নিম্নলিখিত ভেরিয়েবলটি প্রতিস্থাপন করুন:
  • উৎস: ব্যবহার করার জন্য ভিডিও ফাইলের অবস্থান। আপনি আপনার নিজের ভিডিও ফাইলের উৎস ব্যবহার করতে পারেন (উদাহরণস্বরূপ, gs://BUCKET_NAME/FILENAME.mp4), অথবা নমুনা ভিডিওটি (gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4) ব্যবহার করতে পারেন (মানুষ ও যানবাহন সহ ভিডিও, উৎস )।
export SOURCE=gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4
gsutil cp $SOURCE .

ভিএম থেকে ভিডিও স্ট্রিম করুন এবং আপনার স্ট্রিমে ডেটা অন্তর্ভুক্ত করুন।

  1. এই স্থানীয় ভিডিও ফাইলটি অ্যাপের ইনপুট স্ট্রিমে পাঠাতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন। আপনাকে অবশ্যই নিম্নলিখিত ভেরিয়েবলগুলি প্রতিস্থাপন করতে হবে:
  • PROJECT_ID: আপনার গুগল ক্লাউড প্রজেক্ট আইডি।
  • অবস্থান আইডি: আপনার অবস্থান আইডি। উদাহরণস্বরূপ, us-central1। আরও তথ্যের জন্য, ক্লাউড অবস্থানসমূহ দেখুন।
  • LOCAL_FILE: একটি স্থানীয় ভিডিও ফাইলের ফাইলের নাম। উদাহরণস্বরূপ, street_vehicles_people.mp4।
  • –loop ফ্ল্যাগ: ঐচ্ছিক। স্ট্রিমিং অনুকরণ করতে ফাইলের ডেটা লুপ করে।
export PROJECT_ID=<Your Google Cloud project ID>
export LOCATION_ID=us-central1
export LOCAL_FILE=street_vehicles_people.mp4
  1. এই কমান্ডটি একটি ভিডিও ফাইলকে স্ট্রিমে স্ট্রিম করে। আপনি যদি –loop ফ্ল্যাগটি ব্যবহার করেন, তাহলে কমান্ডটি বন্ধ না করা পর্যন্ত ভিডিওটি স্ট্রিমে লুপ হতে থাকবে। আমরা এই কমান্ডটি একটি ব্যাকগ্রাউন্ড জব হিসেবে চালাব, যাতে ভিএম (VM) সংযোগ বিচ্ছিন্ন হয়ে যাওয়ার পরেও এটি স্ট্রিম হতে থাকে।
  • (ব্যাকগ্রাউন্ডে চালানোর জন্য শুরুতে nohup এবং শেষে '&' যোগ করুন)
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 &

vaictl ইনজেস্ট অপারেশন শুরু হওয়ার পর থেকে ড্যাশবোর্ডে ভিডিওটি প্রদর্শিত হতে প্রায় ১০০ সেকেন্ড সময় লাগতে পারে।

স্ট্রিম ইনজেশন উপলব্ধ হওয়ার পর, আপনি Vertex AI Vision ড্যাশবোর্ডের Streams ট্যাবে ট্র্যাফিক-স্ট্রিমটি নির্বাচন করে ভিডিও ফিডটি দেখতে পারবেন।

স্ট্রিমস ট্যাবে যান

UI-তে লাইভ ভিডিও স্ট্রিমিং-এর দৃশ্য গুগল ক্লাউড কনসোলে স্ট্রিমে ভিডিও যুক্ত হওয়ার সরাসরি দৃশ্য। ভিডিও সৌজন্যে: পিক্সাবে -তে এলিজাবেথ মেভর ( পিক্সেলেশন যোগ করা হয়েছে )।

৫. একটি অ্যাপ্লিকেশন তৈরি করুন

প্রথম ধাপ হলো এমন একটি অ্যাপ তৈরি করা যা আপনার ডেটা প্রসেস করবে। একটি অ্যাপকে এমন একটি স্বয়ংক্রিয় পাইপলাইন হিসেবে ভাবা যেতে পারে যা নিম্নলিখিত বিষয়গুলোকে সংযুক্ত করে:

  • ডেটা ইনজেশন : একটি ভিডিও ফিড স্ট্রিমে ইনজেস্ট করা হয়।
  • ডেটা বিশ্লেষণ : ডেটা গ্রহণের পর একটি এআই (কম্পিউটার ভিশন) মডেল যুক্ত করা যেতে পারে।
  • ডেটা স্টোরেজ : ভিডিও ফিডের দুটি সংস্করণ (মূল স্ট্রিম এবং এআই মডেল দ্বারা প্রক্রিয়াকৃত স্ট্রিম) একটি মিডিয়া ওয়্যারহাউসে সংরক্ষণ করা যেতে পারে।

গুগল ক্লাউড কনসোলে একটি অ্যাপকে গ্রাফ হিসেবে দেখানো হয়।

একটি খালি অ্যাপ তৈরি করুন

অ্যাপ গ্রাফে তথ্য যোগ করার আগে, আপনাকে প্রথমে একটি খালি অ্যাপ তৈরি করতে হবে।

গুগল ক্লাউড কনসোলে একটি অ্যাপ তৈরি করুন।

  1. গুগল ক্লাউড কনসোলে যান।
  2. Vertex AI Vision ড্যাশবোর্ডের অ্যাপ্লিকেশন ট্যাবটি খুলুন।

অ্যাপ্লিকেশন ট্যাবে যান

  1. অ্যাড ক্রিয়েট বাটনটিতে ক্লিক করুন।
  2. অ্যাপের নাম হিসেবে traffic-app লিখুন এবং আপনার অঞ্চল নির্বাচন করুন।
  3. তৈরি করুন- এ ক্লিক করুন।

অ্যাপ কম্পোনেন্ট নোড যোগ করুন

খালি অ্যাপ্লিকেশনটি তৈরি করার পরে, আপনি অ্যাপ গ্রাফে তিনটি নোড যোগ করতে পারেন:

  1. ইনজেশন নোড : এটি সেই স্ট্রিম রিসোর্স যা আপনার তৈরি করা Compute Engine VM ইনস্ট্যান্স থেকে পাঠানো ডেটা গ্রহণ করে।
  2. প্রসেসিং নোড : অকুপেন্সি অ্যানালিটিক্স মডেল যা গৃহীত ডেটার উপর কাজ করে।
  3. স্টোরেজ নোড : এটি হলো মিডিয়া ওয়্যারহাউস যা প্রক্রিয়াকৃত ভিডিও সংরক্ষণ করে এবং মেটাডেটা স্টোর হিসেবে কাজ করে। এই মেটাডেটা স্টোরগুলোতে গৃহীত ভিডিও ডেটা সম্পর্কিত অ্যানালিটিক্স তথ্য এবং এআই মডেল দ্বারা অনুমিত তথ্য অন্তর্ভুক্ত থাকে।

কনসোলে আপনার অ্যাপে কম্পোনেন্ট নোড যোগ করুন।

  1. Vertex AI Vision ড্যাশবোর্ডের অ্যাপ্লিকেশন ট্যাবটি খুলুন। অ্যাপ্লিকেশন ট্যাবে যান
  2. ট্র্যাফিক-অ্যাপ লাইনে, 'ভিউ গ্রাফ' নির্বাচন করুন। এটি আপনাকে প্রসেসিং পাইপলাইনের গ্রাফ ভিজ্যুয়ালাইজেশনে নিয়ে যাবে।

একটি ডেটা ইনজেশন নোড যোগ করুন

  1. একটি ইনপুট স্ট্রিম নোড যোগ করতে, সাইড মেনুর কানেক্টরস সেকশনে থাকা স্ট্রিমস অপশনটি নির্বাচন করুন।
  2. যে স্ট্রিম মেনুটি খুলবে তার সোর্স বিভাগে, অ্যাড স্ট্রিমস নির্বাচন করুন।
  3. Add streams মেনুতে, Register new streams নির্বাচন করুন এবং স্ট্রিমের নাম হিসেবে traffic-stream যোগ করুন।
  4. অ্যাপ গ্রাফে স্ট্রিমটি যোগ করতে, ‘অ্যাড স্ট্রিমস’ এ ক্লিক করুন।

একটি ডেটা প্রসেসিং নোড যোগ করুন

  1. অকুপেন্সি কাউন্ট মডেল নোড যোগ করতে, সাইড মেনুর স্পেশালাইজড মডেলস সেকশন থেকে অকুপেন্সি অ্যানালিটিক্স অপশনটি নির্বাচন করুন।
  2. মানুষ এবং যানবাহন-এর ডিফল্ট নির্বাচন অপরিবর্তিত রাখুন।
  3. লাইন ক্রসিং-এ লাইন যোগ করুন। যেখানে গাড়ি বা মানুষের বের হওয়া বা প্রবেশ শনাক্ত করার প্রয়োজন, সেখানে লাইন আঁকতে মাল্টি-পয়েন্ট লাইন টুল ব্যবহার করুন।
  4. ঐ অঞ্চলের মানুষ/যানবাহন গণনা করার জন্য সক্রিয় অঞ্চলগুলো চিহ্নিত করুন।
  5. একটি সক্রিয় জোন আঁকা হলে যানজট শনাক্ত করার জন্য ডওয়েল টাইমের সেটিংস যোগ করুন।
  • (বর্তমানে সক্রিয় জোন এবং লাইন ক্রসিং উভয়ই একই সাথে সমর্থিত নয়। একবারে শুধুমাত্র একটি বৈশিষ্ট্য ব্যবহার করুন।)

3acdb6f1e8474e07.pngce63449d601995e9.png

194c54d2bbcf7e8a.png

একটি ডেটা স্টোরেজ নোড যোগ করুন

  1. আউটপুট গন্তব্য (স্টোরেজ) নোড যোগ করতে, সাইড মেনুর কানেক্টরস সেকশন থেকে ভার্টেক্স এআই ভিশন-এর মিডিয়া ওয়্যারহাউস অপশনটি নির্বাচন করুন।
  2. Vertex AI Vision-এর Media Warehouse মেনুতে, Connect warehouse-এ ক্লিক করুন।
  3. Connect warehouse মেনুতে, Create new warehouse নির্বাচন করুন। ওয়্যারহাউসটির নাম দিন traffic-warehouse, এবং TTL সময়কাল ১৪ দিন রাখুন।
  4. গুদামটি যোগ করতে Create বাটনে ক্লিক করুন।

৬. আউটপুটকে BigQuery টেবিলের সাথে সংযুক্ত করুন

যখন আপনি আপনার Vertex AI Vision অ্যাপে একটি BigQuery কানেক্টর যোগ করবেন, তখন কানেক্টেড অ্যাপের সমস্ত মডেল আউটপুট টার্গেট টেবিলে অন্তর্ভুক্ত হয়ে যাবে।

আপনি হয় নিজের BigQuery টেবিল তৈরি করে অ্যাপে BigQuery কানেক্টর যোগ করার সময় সেই টেবিলটি নির্দিষ্ট করে দিতে পারেন, অথবা Vertex AI Vision অ্যাপ প্ল্যাটফর্মকে স্বয়ংক্রিয়ভাবে টেবিলটি তৈরি করতে দিতে পারেন।

স্বয়ংক্রিয় টেবিল তৈরি

যদি আপনি Vertex AI Vision অ্যাপ প্ল্যাটফর্মকে স্বয়ংক্রিয়ভাবে টেবিল তৈরি করতে দেন, তাহলে BigQuery কানেক্টর নোড যোগ করার সময় আপনি এই অপশনটি নির্দিষ্ট করতে পারেন।

স্বয়ংক্রিয় টেবিল তৈরি ব্যবহার করতে চাইলে নিম্নলিখিত ডেটাসেট এবং টেবিলের শর্তাবলী প্রযোজ্য হবে:

  • ডেটা সেট: স্বয়ংক্রিয়ভাবে তৈরি হওয়া ডেটা সেটের নাম হলো visionai_dataset।
  • টেবিল: স্বয়ংক্রিয়ভাবে তৈরি হওয়া টেবিলের নাম হলো visionai_dataset.APPLICATION_ID।
  • ত্রুটি ব্যবস্থাপনা:
  • একই ডেটাসেটের অধীনে একই নামের টেবিল বিদ্যমান থাকলে, স্বয়ংক্রিয়ভাবে কোনো টেবিল তৈরি হয় না।
  1. Vertex AI Vision ড্যাশবোর্ডের অ্যাপ্লিকেশন ট্যাবটি খুলুন। অ্যাপ্লিকেশন ট্যাবে যান
  2. তালিকা থেকে আপনার অ্যাপ্লিকেশনের নামের পাশে থাকা ‘ভিউ অ্যাপ’ নির্বাচন করুন।
  3. অ্যাপ্লিকেশন বিল্ডার পেজে কানেক্টর সেকশন থেকে BigQuery নির্বাচন করুন।
  4. BigQuery পাথ ফিল্ডটি খালি রাখুন। ee0b67d4ab2263d.png
  5. স্টোর মেটাডেটা থেকে: শুধুমাত্র 'অকুপেন্সি অ্যানালিটিক্স' নির্বাচন করুন এবং স্ট্রিমগুলো আনচেক করুন।

চূড়ান্ত অ্যাপ গ্রাফটি দেখতে এইরকম হবে:

1787242465fd6da7.png

৭. ব্যবহারের জন্য আপনার অ্যাপটি স্থাপন করুন।

প্রয়োজনীয় সমস্ত উপাদান দিয়ে আপনার এন্ড-টু-এন্ড অ্যাপটি তৈরি করার পর, অ্যাপটি ব্যবহারের শেষ ধাপ হলো এটিকে ডিপ্লয় করা।

  1. Vertex AI Vision ড্যাশবোর্ডের অ্যাপ্লিকেশন ট্যাবটি খুলুন। অ্যাপ্লিকেশন ট্যাবে যান
  2. তালিকায় ট্র্যাফিক-অ্যাপ অ্যাপটির পাশে থাকা 'ভিউ গ্রাফ' নির্বাচন করুন।
  3. অ্যাপ্লিকেশন গ্রাফ বিল্ডার পৃষ্ঠা থেকে, ডিপ্লয় বোতামে ক্লিক করুন।
  4. পরবর্তী নিশ্চিতকরণ ডায়ালগে, 'Deploy' নির্বাচন করুন। ডেপ্লয়মেন্ট প্রক্রিয়াটি সম্পন্ন হতে কয়েক মিনিট সময় লাগতে পারে। ডেপ্লয়মেন্ট শেষ হলে, নোডগুলোর পাশে সবুজ টিক চিহ্ন দেখা যাবে। ee78bbf00e5db898.png

৮. স্টোরেজ ওয়্যারহাউসে ভিডিও কন্টেন্ট অনুসন্ধান করুন।

আপনার প্রসেসিং অ্যাপে ভিডিও ডেটা অন্তর্ভুক্ত করার পর, আপনি বিশ্লেষণ করা ভিডিও ডেটা দেখতে পারবেন এবং অকুপেন্সি অ্যানালিটিক্স তথ্যের ভিত্তিতে ডেটা অনুসন্ধান করতে পারবেন।

  1. Vertex AI Vision ড্যাশবোর্ডের Warehouses ট্যাবটি খুলুন। Warehouses ট্যাবে যান
  2. তালিকায় traffic-warehouse ওয়্যারহাউসটি খুঁজুন এবং View assets-এ ক্লিক করুন।
  3. জনসংখ্যা বা যানবাহন সংখ্যা বিভাগে, সর্বনিম্ন মান ১ এবং সর্বোচ্চ মান ৫ নির্ধারণ করুন।
  4. Vertex AI Vision-এর মিডিয়া ওয়্যারহাউসে সংরক্ষিত প্রক্রিয়াকৃত ভিডিও ডেটা ফিল্টার করতে, সার্চ-এ ক্লিক করুন।

e636361b19738c8d.png

গুগল ক্লাউড কনসোলে অনুসন্ধান শর্তের সাথে মিলে যাওয়া সংরক্ষিত ভিডিও ডেটার একটি দৃশ্য। ভিডিও সৌজন্যে: পিক্সাবে -তে এলিজাবেথ ম্যাভর ( অনুসন্ধান শর্ত প্রয়োগ করা হয়েছে )।

৯. BigQuery টেবিলে আউটপুট বিশ্লেষণ করুন

BigQuery-তে যান

ডেটাসেট নির্বাচন করুন: visionai_dataset

টেবিলটি নির্বাচন করুন: আপনার APPLICATION_ID (এই ক্ষেত্রে traffic-app)

টেবিলের নামের ডানদিকে থাকা তিনটি ডটে ক্লিক করুন এবং কোয়েরিতে ক্লিক করুন।

নিম্নলিখিত কোয়েরিটি লিখুন।

কোয়েরি১: প্রতি মিনিটে প্রতিটি লাইন অতিক্রমকারী যানবাহনের সংখ্যা পরীক্ষা করার জন্য কোয়েরি।

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

কোয়েরি২: প্রতিটি জোনে প্রতি মিনিটে যানবাহনের সংখ্যা পরীক্ষা করার জন্য কোয়েরি

- 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

উপরের কোয়েরিগুলোতে ব্যক্তি গণনা করার জন্য আপনি 'Vehicle'-এর পরিবর্তে 'Person' ব্যবহার করতে পারেন।

এই কোডল্যাবে শুধুমাত্র কোয়েরি ১-এর জন্য নমুনা ডেটা এবং ভিজ্যুয়ালাইজেশন দেখানো হবে। আপনি কোয়েরি ২-এর জন্যও একই প্রক্রিয়া অনুসরণ করতে পারেন।

e6fd891f3a46246.png

ডান পাশের মেনুতে থাকা ‘Explore Data’-তে ক্লিক করুন এবং ‘Explore with Looker Studio’ নির্বাচন করুন।

9e737ddb4d0d25b6.png

'ডাইমেনশন' প্যানে সময় যোগ করুন এবং সময়ের কনফিগারেশনটি ডেট-টাইমে পরিবর্তন করুন। 'ব্রেকডাউন ডাইমেনশন'-এ লাইন_আইডি যোগ করুন। b5da9704ccd8db.png

উপরের গ্রাফটি প্রতি মিনিটে প্রতিটি লাইন অতিক্রমকারী যানবাহন/ব্যক্তির সংখ্যা দেখায়।

গাঢ় নীল এবং হালকা নীল বারগুলো দুটি ভিন্ন লাইন-আইডি নির্দেশ করে।

১০. অভিনন্দন

অভিনন্দন, আপনি ল্যাবটি শেষ করেছেন!

পরিষ্কার করা

এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, হয় রিসোর্সগুলো যে প্রজেক্টে রয়েছে সেটি ডিলিট করে দিন, অথবা প্রজেক্টটি রেখে দিয়ে আলাদা আলাদা রিসোর্সগুলো ডিলিট করে দিন।

প্রকল্পটি মুছে ফেলুন

স্বতন্ত্র সম্পদ মুছে ফেলুন

সম্পদ

https://cloud.google.com/vision-ai/docs/overview

https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial

প্রতিক্রিয়া

মতামত জানাতে এখানে ক্লিক করুন

জরিপ

আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?

শুধু পুরোটা পড়ুন এটি পড়ুন এবং অনুশীলনগুলো সম্পূর্ণ করুন।

এই কোডল্যাবটি কতটা উপকারী ছিল?

খুব দরকারী মাঝারি উপকারী