ভার্টেক্স এআই ভিশন মোশন ফিল্টার

ভার্টেক্স এআই ভিশন মোশন ফিল্টার

এই কোডল্যাব সম্পর্কে

subjectএপ্রি ২৮, ২০২৩-এ শেষবার আপডেট করা হয়েছে
account_circleCindy Fan Chiang-এর লেখা

1. উদ্দেশ্য

এই কোডল্যাবটি মোশন ফিল্টারিং বৈশিষ্ট্য সহ ভিডিও পাঠানোর প্রদর্শনের জন্য একটি এন্ড-টু-এন্ড ভার্টেক্স এআই ভিশন অ্যাপ্লিকেশন তৈরির উপর দৃষ্টি নিবদ্ধ করে। এই টিউটোরিয়ালে, আমরা মোশন ফিল্টার কনফিগারেশনের বিভিন্ন প্যারামিটারের মধ্য দিয়ে যাব:

  • গতি সনাক্তকরণ সংবেদনশীলতা
  • ন্যূনতম ইভেন্ট দৈর্ঘ্য
  • ফিরে দেখুন জানালা
  • শীতল-ডাউন সময়
  • মোশন ডিটেকশন জোন

আপনি কি শিখবেন

  • স্ট্রিমিংয়ের জন্য কীভাবে ভিডিওগুলি ইনজেস্ট করবেন
  • মোশন ফিল্টারে উপলব্ধ বিভিন্ন বৈশিষ্ট্য এবং সেগুলি কীভাবে ব্যবহার করবেন
  • যেখানে মোশন ফিল্টারের পরিসংখ্যান চেক করতে হবে
  • কীভাবে আপনার ভিডিওর উপর ভিত্তি করে সেটিং সামঞ্জস্য করবেন

2. আপনি শুরু করার আগে

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

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

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

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

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

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

3. মোশন ফিল্টার

মোশন ফিল্টার ক্যাপচার মোশন এবং পণ্য ভিডিও সেগমেন্ট যা মোশন ইভেন্ট ধারণ করে। গতি সংবেদনশীলতা, ন্যূনতম ইভেন্টের দৈর্ঘ্য, লুকব্যাক উইন্ডো, কুল ডাউন পিরিয়ড এবং গতি সনাক্তকরণ অঞ্চল সামঞ্জস্য করে, ব্যবহারকারী তাদের নিজস্ব প্রয়োজনে ফিল্টার বেস কনফিগার করতে পারে।

মোশন ফিল্টার কনফিগারেশন

কাস্টমাইজেশনের জন্য মোশন ফিল্টারে 5টি কনফিগারেশন উপলব্ধ।

  1. গতি সংবেদনশীলতা: গতি কতটা সংবেদনশীল হওয়া উচিত।
  2. ন্যূনতম ইভেন্টের দৈর্ঘ্য: একটি মোশন ইভেন্টের সর্বনিম্ন দৈর্ঘ্য ক্যাপচার করা হবে।
  3. লুকব্যাক উইন্ডো: একটি মোশন ইভেন্ট সনাক্ত করার আগে কতক্ষণ ভিডিও রেকর্ডিং শুরু করা উচিত।
  4. কুল ডাউন পিরিয়ড: একটি মোশন ইভেন্ট শেষ হওয়ার পরে, নির্দিষ্ট সময়কাল সহ একটি কুলডাউন ঘটবে। কুল ডাউন সময়কালে, গতি ঘটনা ট্রিগার করা হবে না।
  5. মোশন ডিটেকশন জোন: যেখানে মোশন ডিটেকশন চালানো উচিত তা নির্দিষ্ট করতে ব্যবহারকারী কনফিগার করা জোন। (পরবর্তী বিভাগে বিস্তারিত বলা হবে)

গতি সংবেদনশীলতা

vaictl কমান্ডে ফ্ল্যাগ motion_detection_sensitivity ব্যবহার করুন।
স্ট্রিং ডিফল্ট মাধ্যম। নিম্ন, মাঝারি, বা উচ্চ থেকে চয়ন করতে পারেন.

গতি সনাক্তকরণের সংবেদনশীলতা যত বেশি, এটি শব্দ এবং ছোট নড়াচড়ার প্রতি তত বেশি সংবেদনশীল। এই সেটিংটি এমন সেটিংসের জন্য সুপারিশ করা হয় যেখানে ছোট চলমান বস্তু (যেমন দূর থেকে মানুষ) এবং স্থিতিশীল আলো রয়েছে।

অন্যদিকে, কম সংবেদনশীলতা আলোর হস্তক্ষেপের জন্য কম সংবেদনশীল। এই সেটিংটি যখন বাইরের পরিবেশের মতো বেশি আলোর হস্তক্ষেপের জন্য এবং কম ভিডিও মানের জন্য যেখানে বেশি শব্দ হতে পারে তার জন্য উপযুক্ত। যেহেতু এই সেটিংটি সবচেয়ে আক্রমনাত্মক ফিল্টারিং, তাই এটি ছোট বস্তুর গতিবিধি উপেক্ষা করতে পারে।

ন্যূনতম ইভেন্ট দৈর্ঘ্য

vaictl কমান্ডে ফ্ল্যাগ min_event_length_in_seconds ব্যবহার করুন।
পূর্ণসংখ্যা। ডিফল্ট 10 সেকেন্ড। ব্যাপ্তি 0 সেকেন্ড থেকে 3600 সেকেন্ড।

মোশন ইভেন্ট ভিডিওগুলির সর্বনিম্ন সময়কাল যা ফ্রেমে একটি মোশন ইভেন্ট সেগমেন্ট সনাক্ত করা হলে পার্স করা হবে৷

লুকব্যাক উইন্ডো

vaictl কমান্ডে পতাকা look_back_window_in_seconds ব্যবহার করুন।
পূর্ণসংখ্যা। ডিফল্ট 3 সেকেন্ড। ব্যাপ্তি 0 সেকেন্ড থেকে 3600 সেকেন্ড।

লুকব্যাক উইন্ডো হল একটি মোশন ইভেন্ট সনাক্ত করার আগে ক্যাশে করা সময়কাল। মোশন ইভেন্টগুলি সনাক্ত করার কয়েক সেকেন্ড আগে আমরা ফ্রেমে কী ঘটে তা দেখতে আগ্রহী হলে এটি কার্যকর।

কুল ডাউন পিরিয়ড

vaictl কমান্ডে ফ্ল্যাগ cool_down_period_in_seconds ব্যবহার করুন।
পূর্ণসংখ্যা। ডিফল্ট 300 সেকেন্ড। ব্যাপ্তি 0 সেকেন্ড থেকে 3600 সেকেন্ড।

কুল ডাউন পিরিয়ড হল একটি মোশন ইভেন্ট ক্যাপচার করার পরে গতি সনাক্তকরণ কতক্ষণ বিরতি দেওয়া হবে। কুল ডাউন সময়কালে, গতি শনাক্ত করার জন্য কোন গণনা চালানো হবে না।

4. বেসিক মোশন ফিল্টারের উদাহরণ

Vaictl SDK ম্যানুয়াল

মোশন ফিল্টার সহ ইনপুট স্ট্রিমের জন্য vaictl ম্যানুয়াল পরীক্ষা করতে, নীচের কমান্ডটি ব্যবহার করুন।

vaictl send video-file applying motion-filter -h

একটি নমুনা ভিডিও প্রস্তুত করুন

  1. আপনি নিম্নলিখিত 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 .

পরিবেশের ভেরিয়েবল প্রস্তুত করুন

প্রদত্ত কমান্ড টেমপ্লেট ব্যবহার করতে পরিবেশগত ভেরিয়েবল নীচে সেট করুন।

vaictl ভেরিয়েবল

  • PROJECT_ID: আপনার Google ক্লাউড প্রকল্প আইডি।
  • LOCATION_ID: আপনার অবস্থান আইডি। উদাহরণস্বরূপ, us-central1. আরও তথ্যের জন্য, ক্লাউড অবস্থানগুলি দেখুন।
  • LOCAL_FILE: একটি স্থানীয় ভিডিও ফাইলের ফাইলের নাম৷ উদাহরণস্বরূপ, রাস্তার_বাহন_লোক.mp4.
  • -লুপ পতাকা: ঐচ্ছিক। স্ট্রিমিং অনুকরণ করতে ফাইল ডেটা লুপ করে।
export PROJECT_ID=<Your Google Cloud project ID>
export LOCATION_ID=us-central1

মোশন ফিল্টার ভেরিয়েবল

  • MOTION_SENSITIVITY: গতি সনাক্তকরণ কতটা সংবেদনশীল হবে।
  • MIN_EVENT_LENGTH: মোশন ইভেন্টের ন্যূনতম দৈর্ঘ্য।
  • LOOK_BACK_WINDOW: একটি মোশন ইভেন্টে প্রথম মোশনের আগে ক্যাপচার করার সময়কাল।
  • COOL_DOWN_PERIOD: সময়কাল যেখানে একটি মোশন ইভেন্ট ক্যাপচার করার পরে গতি সনাক্তকরণ বিরাম হবে৷
export MOTION_SENSITIVITY=<low or medium or high>
export MIN_EVENT_LENGTH=<0-3600>
export LOOK_BACK_WINDOW=<0-3600>
export COOL_DOWN_PERIOD=<0-3600>

মোশন ফিল্টার কমান্ড প্রস্তুত করুন

ইনপুট স্ট্রিম সহ মোশন ফিল্টার ব্যবহার করার জন্য দুটি বিকল্প রয়েছে। প্রথম বিকল্পটি হ'ল ক্লাউড কনসোলের একটি স্ট্রীমে মোশন ইভেন্টগুলি প্রেরণ করা। দ্বিতীয় বিকল্প হল স্থানীয় স্টোরেজে মোশন ইভেন্টগুলি পাঠানো।

ক্লাউড কনসোলে ফলাফল পাঠানো হচ্ছে

আপনি ক্লাউড কনসোলে আউটপুট ভিডিও ডেটা স্ট্রিম করতে vaictl ব্যবহার করতে পারেন। ক্লাউড কনসোলে Vision AI API সক্রিয় করে শুরু করুন।

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

  1. Vertex AI Vision- এর বাম প্যানেলে স্ট্রিম ট্যাবে ক্লিক করুন।
  2. Register এ ক্লিক করুন
  3. স্ট্রীমের নামে motion-detection-stream লিখুন
  4. অঞ্চলে us-central1 লিখুন
  5. নিবন্ধন ক্লিক করুন

স্ট্রীমে ফলাফল পাঠানো হচ্ছে

এই কমান্ডটি একটি ভিডিও ফাইলকে একটি স্ট্রীমে স্ট্রিম করে। আপনি যদি –loop পতাকা ব্যবহার করেন, আপনি কমান্ড বন্ধ না করা পর্যন্ত ভিডিওটি স্ট্রীমে লুপ করা হবে। আমরা এই কমান্ডটিকে একটি ব্যাকগ্রাউন্ড কাজ হিসাবে চালাব যাতে এটি স্ট্রিমিং অব্যাহত থাকে।

ব্যাকগ্রাউন্ড কাজ করতে শুরুতে & শেষে nohup যোগ করুন।

INPUT_VIDEO=street_vehicles_people.mp4

vaictl -p $PROJECT \
       -l $LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
  to streams motion-detection-stream --loop

vaictl ইনজেস্ট অপারেশন শুরু করা এবং ভিডিও ড্যাশবোর্ডে প্রদর্শিত হতে ~100 সেকেন্ড সময় লাগতে পারে৷

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

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

স্থানীয় স্টোরেজে ফলাফল পাঠানো হচ্ছে

এই কমান্ডটি একটি ভিডিও ফাইলকে একটি স্ট্রীমে স্ট্রিম করে।

ব্যাকগ্রাউন্ড কাজ করতে শুরুতে & শেষে nohup যোগ করুন।

INPUT_VIDEO=street_vehicles_people.mp4
OUTPUT_PATH=<path_to_store_motion_events_on_local_disk>

nohup vaictl -p $PROJECT \
             -l $LOCATION_ID \
             -c application-cluster-0 \
             --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
  to mp4file --mp4-file-path=$OUTPUT_PATH --loop

5. মোশন ডিটেকশন জোন

এই বিভাগে আমরা গতি শনাক্তকরণ অঞ্চলের ব্যবহার এবং এটি কীভাবে কনফিগার করতে হয় তা নিয়ে আলোচনা করব। আপনি আগ্রহী নন এমন এলাকা থেকে আগত গতিকে মুখোশ করে মোশন শনাক্তকরণকে উন্নত করার জন্য জোনটির উদ্দেশ্য।

গতি শনাক্তকরণ অঞ্চলের দুটি প্রকার রয়েছে, (1) ধনাত্মক অঞ্চল যেখানে গতি সনাক্তকরণ শুধুমাত্র টীকাযুক্ত এলাকায় চলে; (2) নেতিবাচক অঞ্চল যেখানে গতি শনাক্তকরণ টীকাকৃত এলাকায় কোনো আন্দোলন উপেক্ষা করে।

জোন টীকা

জোন বহুভুজের জন্য স্থানাঙ্ক ইনপুট করতে vaictl কমান্ডে পতাকা zone_annotation ব্যবহার করুন।
স্ট্রিং জোন টীকা জন্য ডিফল্ট খালি.

জোন টীকাটি ব্যবহারকারীর কাছ থেকে একটি স্ট্রিং ইনপুট হবে, ফ্রেমের জোনগুলিকে নির্দেশ করে যা ব্যবহারকারী লুকাতে বা ফোকাস করতে চান৷ জোন টীকা করতে, ব্যবহারকারীকে জোনের প্রতিটি নোডের জন্য x এবং y অক্ষের চিত্র স্থানাঙ্ক নির্দিষ্ট করতে হবে। বহুভুজ গঠনের জন্য একটি জোনের তিনটি বা ততোধিক নোড থাকতে হবে। একটি ফ্রেমে একাধিক জোন থাকতে পারে। যদি অঞ্চলগুলি একে অপরের সাথে ওভারল্যাপ করে তবে উভয় অঞ্চল দ্বারা আচ্ছাদিত এলাকাটি এখনও আচ্ছাদিত হবে।

জোন টীকা অনুসরণ করার জন্য একটি নির্দিষ্ট ইনপুট সিনট্যাক্স আছে।

  • একটি একক নোড বোঝাতে, একটি চিত্র সমন্বয়ের x এবং y অক্ষ সংযোগ করতে : ব্যবহার করুন। উদাহরণস্বরূপ উপরের বাম কোণে (0,0) এর একটি নোডকে 0:0 হিসাবে চিহ্নিত করা হবে।
  • একটি একক জোনে সমস্ত নোড বোঝাতে, ব্যবহার করুন ; নোড সংযোগ করতে। উদাহরণস্বরূপ, (0,0) , (100,0) , (100,100) , এবং (0, 100) নোড সহ একটি অঞ্চলের জন্য, জোনটিকে 0:0;100:0;100:100;0:100 সর্বদা নোডগুলিকে একে অপরের পাশে সংযোগকারী নোড হিসাবে ইনপুট করুন, অর্ডারটি ঘড়ির কাঁটার দিকে বা ঘড়ির কাঁটার বিপরীত দিকে হতে পারে।

গতি সনাক্তকরণ অঞ্চল - বর্গক্ষেত্র *চারটি নোড সহ একটি বর্গক্ষেত্র।

গতি সনাক্তকরণ অঞ্চল - ত্রিভুজ *তিনটি নোড সহ একটি ত্রিভুজ অঞ্চল।

  • একক ফ্রেমে একাধিক জোন বোঝাতে, ব্যবহার করুন - বিভিন্ন জোন সংযোগ করতে। উদাহরণস্বরূপ, যদি আমরা (0,0) , (100,0) , (100,100) , (0,100) এবং (120,120) , (110,150) , (200,160) উভয়ই ইনপুট করতে চাই, তাহলে ইনপুট জোন টীকা হবে 0:0;100:0;100:100;0:100-120:120;110:150;200:160

মোশন ডিটেকশন জোন - দুটি জোন সহ একটি ফ্রেম *একটি ফ্রেমের মধ্যে দুটি জোন।

চিত্র থেকে স্থানাঙ্কগুলি পাওয়ার জন্য, স্থানাঙ্কগুলি পেতে সহায়তা করার জন্য অনলাইনে কিছু সরঞ্জাম উপলব্ধ রয়েছে। উদাহরণস্বরূপ, Wolfram দেখুন - চিত্র থেকে স্থানাঙ্ক পান

টীকাযুক্ত অঞ্চল বাদ দিন

জোনে বা জোনের বাইরে ডিটেক্ট মোশন কনফিগার করতে vaictl কমান্ডে পতাকা exclude_annotated_zone ব্যবহার করুন।
বুলিয়ান। ডিফল্ট মিথ্যা.

অ্যানোটেটেড জোন বাদ দিন হল ব্যবহারকারীর কাছ থেকে একটি বুলিয়ান ইনপুট, ব্যবহারকারী গতি সনাক্তকরণে টীকাযুক্ত অঞ্চলটি বাদ দিতে চান কিনা তা নির্দেশ করে।

  • true সেট করা হলে, টীকাকৃত অঞ্চলটি একটি নেতিবাচক অঞ্চল হিসাবে কাজ করবে। টীকাযুক্ত অঞ্চলে গতি সনাক্ত করা হবে না।

মোশন ডিটেকশন জোন - বিকল্প বাদ দিন *শুধুমাত্র ইনপুট জোনের বাইরে গতি সনাক্তকরণ চালান।

  • মিথ্যাতে সেট করা হলে, জোনটি একটি ইতিবাচক অঞ্চল হিসাবে কাজ করবে, যেখানে গতি সনাক্তকরণ ফোকাস করবে।

মোশন ডিটেকশন জোন - বিকল্প অন্তর্ভুক্ত করুন *শুধুমাত্র ইনপুট জোনে গতি সনাক্তকরণ চালান।

6. মোশন ডিটেকশন জোনের উদাহরণ সহ মোশন ফিল্টার

এই উদাহরণে, আমরা উদাহরণ হিসাবে একটি ভিডিও ব্যবহার করব যাতে একটি গাছ ক্রমাগত অগ্রভাগে চলে। নিয়মিত মোশন ফিল্টার সেটিংয়ে, ভিডিওটি শুধুমাত্র একটি মোশন ইভেন্ট তৈরি করবে যার মূল ভিডিওর সময়কাল রয়েছে কারণ মোশন ফিল্টারটি চলমান গাছটিকে "পুরো ভিডিও জুড়ে ক্রমাগত চলমান" হিসাবে নিবন্ধিত করে। যাইহোক, গতি সনাক্তকরণ অঞ্চলের সাহায্যে, আমরা গাছ থেকে গতিকে সঠিকভাবে মাস্ক করতে পারি এবং গাড়ি এবং পথচারীদের গতির উপর ফোকাস করতে পারি।

ভিডিও প্রস্তুতি

নমুনা ভিডিও (gs://cloud-samples-data/vertex-ai-vision/dynamic-background-fall.mp4 ) www.changedetection.net থেকে গাছ এবং গাড়ি এবং পথচারীদের রয়েছে৷

ভিডিও ক্রেডিট: N. Goyette, P.-M. Jodoin, F. Porikli, J. Konrad, এবং P. Ishwar, changeetection.net: একটি নতুন পরিবর্তন সনাক্তকরণ বেঞ্চমার্ক ডেটাসেট , Proc. CVPR-2012, প্রভিডেন্স, RI, 16-21 জুন, 2012-এ IEEE ওয়ার্কশপ অন চেঞ্জ ডিটেকশন (CDW-2012)

পরিবেশ পরিবর্তনশীল প্রস্তুতি

গুগল ক্লাউড প্রজেক্ট ভেরিয়েবল।

export PROJECT_ID=<Your Google Cloud project ID>
export LOCATION_ID=us-central1
export LOCAL_FILE=street_vehicles_people.mp4

বেসিক মোশন ফিল্টার কনফিগারেশন।

export MOTION_SENSITIVITY=<low or medium or high>
export MIN_EVENT_LENGTH=<0-3600>
export LOOK_BACK_WINDOW=<0-3600>
export COOL_DOWN_PERIOD=<0-3600>

মোশন ডিটেকশন জোন কনফিগারেশন।

গতি সনাক্তকরণ অঞ্চলের জন্য বিভিন্ন ধরণের ব্যবহার দেখতে নীচে থেকে বেছে নিন।

গতি সনাক্তকরণের জন্য গাছটি বাদ দিন।

export ZONE_ANNOTATION="0:0;680:0;660:70;380:320;100:150"
export EXCLUDE_ANNOTATED_ZONE=true

মোশন সনাক্তকরণ অঞ্চল - উদাহরণ ভিডিওতে টীকাযুক্ত অঞ্চল থেকে গতি সনাক্তকরণ বাদ দিন *শুধুমাত্র ইনপুট জোনের বাইরে গতি সনাক্তকরণ চালান।

রাস্তায় ফোকাস গতি সনাক্তকরণ.

export ZONE_ANNOTATION="0:300;780:300;780:480;0:480"
export EXCLUDE_ANNOTATED_ZONE=false

মোশন ডিটেকশন জোন - উদাহরণ ভিডিওতে টীকা করা জোন থেকে মোশন ডিটেকশন চালান *শুধুমাত্র ইনপুট জোনের বাইরে গতি সনাক্তকরণ চালান।

মোশন ফিল্টার সহ ভিডিও স্ট্রিম পাঠান

ক্লাউড কনসোলে মোশন ইভেন্টগুলি পাঠান

আপনি ক্লাউড কনসোলে আউটপুট ভিডিও ডেটা স্ট্রিম করতে vaictl ব্যবহার করতে পারেন। ক্লাউড কনসোলে Vision AI API সক্রিয় করে শুরু করুন।

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

  1. Vertex AI Vision- এর বাম প্যানেলে স্ট্রিম ট্যাবে ক্লিক করুন।
  2. Register এ ক্লিক করুন
  3. স্ট্রীমের নামে motion-detection-stream লিখুন
  4. অঞ্চলে us-central1 লিখুন
  5. নিবন্ধন ক্লিক করুন

স্ট্রীমে ফলাফল পাঠানো হচ্ছে

এই কমান্ডটি একটি ভিডিও ফাইলকে একটি স্ট্রীমে স্ট্রিম করে। আপনি যদি –loop পতাকা ব্যবহার করেন, আপনি কমান্ড বন্ধ না করা পর্যন্ত ভিডিওটি স্ট্রীমে লুপ করা হবে। আমরা এই কমান্ডটিকে একটি ব্যাকগ্রাউন্ড কাজ হিসাবে চালাব যাতে এটি স্ট্রিমিং অব্যাহত থাকে।

ব্যাকগ্রাউন্ড কাজ করতে শুরুতে & শেষে nohup যোগ করুন।

vaictl -p $PROJECT \
       -l $LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
         --zone_annotation=ZONE_ANNOTATION \
         --exclude_annotated_zone=$EXCLUDE_ANNOTATED_ZONE \
  to streams motion-detection-stream --loop

vaictl ইনজেস্ট অপারেশন শুরু করা এবং ভিডিও ড্যাশবোর্ডে প্রদর্শিত হতে ~100 সেকেন্ড সময় লাগতে পারে৷

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

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

স্থানীয় স্টোরেজে ফলাফল পাঠানো হচ্ছে

এই কমান্ডটি একটি ভিডিও ফাইলকে একটি স্ট্রীমে স্ট্রিম করে। আপনি যদি –loop পতাকা ব্যবহার করেন, আপনি কমান্ড বন্ধ না করা পর্যন্ত ভিডিওটি স্ট্রীমে লুপ করা হবে। আমরা এই কমান্ডটিকে একটি ব্যাকগ্রাউন্ড কাজ হিসাবে চালাব যাতে এটি স্ট্রিমিং অব্যাহত থাকে।

ব্যাকগ্রাউন্ড কাজ করতে শুরুতে & শেষে nohup যোগ করুন।

OUTPUT_PATH=<path_to_store_motion_events>

vaictl -p $PROJECT \
       -l $LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
  send video-file  --file-path $INPUT_VIDEO \
  applying motion-filter
         --motion-sensitivity=$MOTION_SENSITIVITY \
         --min-event-length=$MIN_EVENT_LENGTH \
         --lookback-length=$LOOK_BACK_WINDOW \
         --cooldown-length=$COOL_DOWN_PERIOD \
         --zone_annotation=$ZONE_ANNOTATION \
         --exclude_annotated_zone=$EXCLUDE_ANNOTATED_ZONE \
  to mp4file --mp4-file-path=$OUTPUT_PATH --loop

7. অভিনন্দন

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

পরিষ্কার করুন

এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, ctrl + z দিয়ে কমান্ড-লাইনের মাধ্যমে vaictl SDK অপারেশনটি শেষ করুন।

সম্পদ

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

https://cloud.google.com/vision-ai/docs/motion-filtering-model

https://cloud.google.com/vision-ai/docs/create-manage-streams

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

প্রতিক্রিয়া প্রদান করতে এখানে ক্লিক করুন

সমীক্ষা

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

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