paint-brush
উন্নত ভিডিও অনুসন্ধান তৈরি করা: ফ্রেম অনুসন্ধান বনাম মাল্টি-মোডাল এম্বেডিংদ্বারা@datastax
1,699 পড়া
1,699 পড়া

উন্নত ভিডিও অনুসন্ধান তৈরি করা: ফ্রেম অনুসন্ধান বনাম মাল্টি-মোডাল এম্বেডিং

দ্বারা DataStax10m2024/07/10
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

মাল্টি-মডেল এম্বেডিং এবং ফ্রেম অনুসন্ধানের মধ্যে একটি ডুব, দুটি উন্নত ভিডিও অনুসন্ধান কৌশল
featured image - উন্নত ভিডিও অনুসন্ধান তৈরি করা: ফ্রেম অনুসন্ধান বনাম মাল্টি-মোডাল এম্বেডিং
DataStax HackerNoon profile picture

কল্পনা করুন একজন ডেটা সায়েন্টিস্ট বন্যপ্রাণী আচরণ অধ্যয়ন করছেন, দূরবর্তী বনে ক্যামেরা থেকে শত শত ঘন্টার ভিডিও ফুটেজ বিশ্লেষণ করছেন। অথবা একজন ক্রীড়া প্রশিক্ষক যাকে নতুন কৌশল বিকাশের জন্য পুরো মৌসুমের গেমগুলি থেকে মূল নাটকগুলি সনাক্ত করতে হবে। বিকল্পভাবে, একটি ডকুমেন্টারি একত্রিত করার জন্য একটি বিশাল ভিডিও গ্যালারির মধ্যে নির্দিষ্ট দৃশ্যগুলি অনুসন্ধান করার জন্য একজন চলচ্চিত্র নির্মাতাকে বিবেচনা করুন।


ঐতিহ্যগতভাবে, এই সমস্ত বিশেষজ্ঞরা অন্তহীন ঘন্টার ফুটেজের মাধ্যমে ম্যানুয়ালি সাজানোর সময়সাপেক্ষ, ত্রুটি-প্রবণ এবং অপ্রতিরোধ্য চ্যালেঞ্জের মুখোমুখি হন।


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


OpenOrigins মিডিয়া বিষয়বস্তু প্রমাণ করতে এবং ব্যবহারকারীদের এর সত্যতা নিশ্চিত করতে সক্ষম করার জন্য টুলিং তৈরি করে। এর অফারগুলিকে বাড়ানোর জন্য, যুক্তরাজ্য-ভিত্তিক সংস্থাটি ডিজিটাল মিডিয়া আর্কাইভগুলিতে প্রাসঙ্গিক ভিডিওগুলি দ্রুত এবং দক্ষতার সাথে খুঁজে পাওয়ার জন্য আর্কাইভিস্টদের জন্য একটি প্ল্যাটফর্ম তৈরি করার জন্য প্রস্তুত হয়েছে৷


উদ্দেশ্য ছিল উন্নত অনুসন্ধান ক্ষমতা প্রদান করে গবেষণা প্রক্রিয়াকে সহজ করা, ব্যবহারকারীদের অত্যন্ত বড় ভিডিও ডেটাসেট থেকে নির্দিষ্ট বিষয়বস্তু বা বৈশিষ্ট্য সহ ফুটেজ সনাক্ত করতে সক্ষম করে।


অত্যাধুনিক অনুসন্ধান অ্যালগরিদম এবং একটি ব্যবহারকারী-বান্ধব ইন্টারফেস ব্যবহার করে, OpenOrigins এই সম্প্রদায়ের জন্য প্ল্যাটফর্মটিকে একটি গুরুত্বপূর্ণ হাতিয়ার করে তোলার লক্ষ্য রাখে।


OpenOrigins এই ভিডিও অনুসন্ধান অফার তৈরি করার জন্য দুটি প্রযুক্তিগত পন্থা বিবেচনা করেছে: ইমেজ এম্বেডিং এবং মাল্টিমডাল এম্বেডিং ব্যবহার করে ফ্রেম অনুসন্ধান। এর প্রতিটি বিকল্প কটাক্ষপাত করা যাক.

ভিডিও বিষয়বস্তুর উপর শব্দার্থিক অনুসন্ধান

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

মাল্টিমোডাল এমবেডিং মডেল এবং মাল্টিমোডাল লার্জ ল্যাঙ্গুয়েজ মডেল (এলএলএম) অনুরূপ সমাধান হিসাবে দেখা যেতে পারে। CLIP এবং Google মাল্টিমোডাল এম্বেডিংয়ের মতো মডেলগুলি পাঠ্য, চিত্র এবং ভিডিওর মতো ডেটা প্রকারের জন্য এমবেডিং তৈরি করে, উচ্চ-মাত্রিক ভেক্টর তৈরি করে যা শব্দার্থগত অর্থ ক্যাপচার করে। এটি শব্দার্থিক অনুসন্ধান, বিষয়বস্তু পুনরুদ্ধার এবং মিল সনাক্তকরণের মতো অ্যাপ্লিকেশনগুলিকে সক্ষম করে৷


অন্যদিকে, মাল্টিমোডাল এলএলএম যেমন GPT-4 (মাল্টিমোডাল ক্ষমতা সহ), ফ্ল্যামিঙ্গো এবং জেমিনি বিভিন্ন ধরণের ডেটা জুড়ে বিষয়বস্তু বোঝা এবং তৈরি করার জন্য ডিজাইন করা হয়েছে।


এই মডেলগুলি মাল্টিমোডাল ইনপুট (উদাহরণস্বরূপ টেক্সট এবং ইমেজ) ব্যবহার করে এবং মাল্টিমডাল আউটপুট তৈরি করে কথোপকথনমূলক এআই এবং বিষয়বস্তু তৈরির মতো জটিল কাজগুলির সাথে ভাল কাজ করে, যার ফলে অর্থপূর্ণ এবং প্রাসঙ্গিকভাবে সমৃদ্ধ প্রতিক্রিয়া হয়।


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


মাল্টিমোডাল এমবেডিং মডেল

মাল্টি-মোডাল লার্জ ল্যাঙ্গুয়েজ মডেল (LLMs)

প্রধান উদ্দেশ্য

পাঠ্য এবং চিত্রের মতো বিভিন্ন ডেটা পদ্ধতিতে অনুসন্ধান এবং পুনরুদ্ধার সক্ষম করুন

একাধিক পদ্ধতি জুড়ে বিষয়বস্তু তৈরি এবং বোঝে

কোর ইউজ কেস

শব্দার্থগত অনুসন্ধান, বিষয়বস্তু পুনরুদ্ধার, এবং মিল

কথোপকথনমূলক এআই, বিষয়বস্তু তৈরি এবং সংলাপ সিস্টেম

উদাহরণ মডেল

CLIP, Google মাল্টিমোডাল এমবেডিং মডেল

GPT-4 (মাল্টিমোডাল ক্ষমতা সহ), লাভা, জেমিনি, ফ্ল্যামিঙ্গো, LaMDA

অনুসন্ধান এবং পুনরুদ্ধার

দ্রুত, সঠিক অনুসন্ধান এবং মিলের জন্য অপ্টিমাইজ করা হয়েছে

বিভিন্ন ধরনের ডেটা জুড়ে ব্যাপক বোঝার এবং প্রজন্মের জন্য অপ্টিমাইজ করা হয়েছে।

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

বিষয়বস্তু সংযম, সুপারিশ সিস্টেম, শব্দার্থিক অনুসন্ধান

কথোপকথনমূলক এজেন্ট, বিষয়বস্তু তৈরি, বহু-মডেল মিথস্ক্রিয়া

পদ্ধতি 1: ইমেজ এম্বেডিং সহ ফ্রেম অনুসন্ধান

ওপেনঅরিজিনস প্রথম পদ্ধতি যা ইমেজ এম্বেডিং ব্যবহার করে ভিডিওর ফ্রেম-বাই-ফ্রেম বিশ্লেষণে জড়িত। এই পদ্ধতিটি ভিডিওকে পৃথক ফ্রেমে ভেঙে দেয়, প্রতিটি ব্যবহার করে একটি ভেক্টর এমবেডিংয়ে রূপান্তরিত হয় ক্লিপ এমবেডিং মডেল।



চিত্র 1: অ্যাপ্রোচ ডায়াগ্রামের সারাংশ ("প্রাকৃতিক ভাষা তত্ত্বাবধান থেকে স্থানান্তরযোগ্য ভিজ্যুয়াল মডেল শেখা" থেকে অভিযোজিত)। যদিও স্ট্যান্ডার্ড ইমেজ মডেলগুলি যৌথভাবে একটি ইমেজ ফিচার এক্সট্র্যাক্টর এবং একটি রৈখিক ক্লাসিফায়ারকে কিছু লেবেল ভবিষ্যদ্বাণী করতে প্রশিক্ষণ দেয়, CLIP যৌথভাবে একটি ইমেজ এনকোডার এবং একটি টেক্সট এনকোডারকে প্রশিক্ষণ দেয় যাতে একটি ব্যাচের (ছবি, পাঠ্য) প্রশিক্ষণ উদাহরণগুলির সঠিক জোড়ার পূর্বাভাস দেওয়া হয়। পরীক্ষার সময় শেখা টেক্সট এনকোডার টার্গেট ডেটাসেটের ক্লাসের নাম বা বিবরণ এমবেড করে একটি শূন্য-শট লিনিয়ার ক্লাসিফায়ার সংশ্লেষ করে।


CLIP, OpenAI দ্বারা উন্নত , একটি এআই মডেল যা প্রাকৃতিক ভাষার মাধ্যমে ছবি বুঝতে শেখে, বিশেষভাবে লেবেল করা ছবির উপর নির্ভর করে এমন ঐতিহ্যবাহী মডেলের বিপরীতে।


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


এটি CLIP কে অত্যন্ত অভিযোজনযোগ্য এবং অ্যাপ্লিকেশনগুলির জন্য উপযোগী করে তোলে যার জন্য ছবি এবং ভাষার গভীর বোঝার প্রয়োজন হয়৷


এই এমবেডিংগুলি একটি ভেক্টর ডাটাবেসে সংরক্ষণ করা হয়, যা শব্দার্থগত মিলের উপর ভিত্তি করে টেক্সট থেকে টেক্সট, টেক্সট থেকে ইমেজ বা ইমেজ থেকে ইমেজ মিলিয়ে দ্রুত এবং সঠিক অনুসন্ধান সক্ষম করে।


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


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

পদ্ধতি 2: Google মাল্টি-মডেল এম্বেডিং নোডেলের সাথে মাল্টি-মডেল এম্বেডিং

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

গুগল মাল্টিমোডাল এমবেডিং মডেল: 1048* মাত্রা

ভিডিওর জন্য Google Cloud Vertex AI মাল্টিমোডাল এম্বেডিং

Google Cloud এর Vertex AI অত্যাধুনিক ভিডিও এমবেডিং সহ শক্তিশালী মাল্টিমডাল এম্বেডিং অফার করে যা ভিডিও বিষয়বস্তুকে উচ্চ-মাত্রিক ভেক্টরে রূপান্তর করে। এই 1408-মাত্রিক এম্বেডিংগুলি বিভিন্ন অ্যাপ্লিকেশন যেমন বিষয়বস্তু সংযম, শব্দার্থিক অনুসন্ধান এবং ভিডিও শ্রেণীবিভাগকে সক্ষম করে।


ভিডিওগুলিকে সাংখ্যিকভাবে উপস্থাপন করে, এই এম্বেডিংগুলি উন্নত মেশিন লার্নিং কাজগুলিকে সক্ষম করে, ভিডিও সামগ্রী অনুসন্ধান, বিশ্লেষণ এবং শ্রেণীবদ্ধ করা সহজ করে৷


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


Google এর মাল্টিমোডাল এম্বেডিং এবং CLIP পদ্ধতি প্রতিটি মাল্টিমোডাল ডেটাকে একটি সাধারণ এমবেডিং স্পেসে এম্বেড করে। প্রধান পার্থক্য হল যে Google এর মাল্টিমডাল এম্বেডিং ভিডিও সমর্থন করে, যখন CLIP করে না।

প্রযুক্তিগত ওভারভিউ

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

পদ্ধতি 1: ইমেজ এম্বেডিং সহ ফ্রেম অনুসন্ধান

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


get_single_frame_from_scene ফাংশন ফ্রেম আইডি গণনা করে এবং এই ফ্রেমে ভিডিও ক্যাপচার সেট করে এবং এটি পড়ে:


 def get_single_frame_from_scene(scene, video_capture): frame_id = (scene[1] - scene[0]).frame_num // 2 + scene[0].frame_num video_capture.set(cv2.CAP_PROP_POS_FRAMES, frame_id) _, frame = video_capture.read() return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))


get_frames_from_video ফাংশন একটি ভিডিও প্রক্রিয়া করে, AdaptiveDetector ব্যবহার করে দৃশ্য সনাক্ত করে এবং get_single_frame_from_scene কল করে প্রতিটি দৃশ্য থেকে একটি একক ফ্রেম বের করে, এই ফ্রেমগুলিকে একটি তালিকায় সংরক্ষণ করে:


 def get_frames_from_video(video_path): res = [] video_capture = cv2.VideoCapture(video_path) content_list = detect(video_path, AdaptiveDetector()) for scene in content_list: res.append(get_single_frame_from_scene(scene, video_capture)) return res


get_image_embedding ফাংশন a ব্যবহার করে CLIP মডেল একটি প্রদত্ত চিত্রের জন্য একটি এমবেডিং তৈরি করতে, এটিকে মডেলের মধ্য দিয়ে পাস করে, এবং ফ্লোটগুলির একটি তালিকা হিসাবে ফলস্বরূপ বৈশিষ্ট্য ভেক্টরটি ফেরত দেয়:


 def get_image_embedding(image): inputs = clip_processor(images=image, return_tensors="pt") image_embeddings = model.get_image_features(**inputs) return list(image_embeddings[0].detach().numpy().astype(float))


এই কোডটি একটি Astra DB ডাটাবেসের সাথে সংযোগ করে, ভেক্টর এম্বেডিং সহ JSON অবজেক্টের একটি সংগ্রহ তৈরি করে এবং এই বস্তুগুলিকে ডাটাবেসের "ভিডিও" সংগ্রহে সন্নিবেশিত করে:


 import json from astrapy import DataAPIClient client = DataAPIClient(ASTRA_DB_TOKEN) database = client.get_database(ASTRA_DB_API_ENDPOINT) collectiondb = database.video json_embedding = [ {"id": f"{i+1}", "$vector": values} for i, values in enumerate(image_embeddings) ] response = collectiondb.insert_many(json_embedding)


OpenAI ক্লিপ এম্বেডিং ব্যবহার করে একটি নির্দিষ্ট পাঠ্য অনুসন্ধান করুন:


 query_text = "men with white hair" query_embedding = get_text_embedding(query_text) result = collectiondb.find_one({}, vector=query_embedding)


পদ্ধতি 2: Google মাল্টি-মডেল এমবেডিং মডেলের সাথে মাল্টি-মডেল এম্বেডিং

এখানে, আপনি দেখতে পারেন কিভাবে Google-এর মাল্টিমডাল এম্বেডিং মডেল ব্যবহার করে ভিডিও এম্বেডিং তৈরি করতে হয় এবং সেগুলিকে Astra DB-তে সংরক্ষণ করতে হয়, মেটাডেটা তথ্য যেমন start_offset_sec এবং end_offset_sec (দেখুন GitHub রেপো )


 import vertexai from vertexai.vision_models import MultiModalEmbeddingModel, Video from astrapy import DataAPIClient import streamlit as st # Initialize Vertex AI vertexai.init(project=st.secrets['PROJECT'], location=st.secrets['REGION']) # Initialize the client client = DataAPIClient(st.secrets['ASTRA_TOKEN']) database = client.get_database(st.secrets['ASTRA_API_ENDPOINT']) my_collection = database.create_collection( "videosearch", dimension=1408, metric=astrapy.constants.VectorMetric.COSINE, ) collectiondb = database.videosearch # Load the pre-trained model and video model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding") video = Video.load_from_file(st.secrets['PATH']) # Get embeddings with the specified contextual text embeddings = model.get_embeddings( video=video, contextual_text="Mixed Content", dimension=1408, ) # Video Embeddings are segmented based on the video_segment_config. for video_embedding in embeddings.video_embeddings: # Check if embedding is a numpy array or a tensor and convert accordingly if isinstance(video_embedding.embedding, (list, tuple)): embedding_list = video_embedding.embedding else: embedding_list = video_embedding.embedding.tolist() embedding_data = { "metadata": { "start_offset_sec": video_embedding.start_offset_sec, "end_offset_sec": video_embedding.end_offset_sec }, "$vector": embedding_list # Ensure embedding is in list format } response = collectiondb.insert_one(embedding_data)


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


 import vertexai from vertexai.vision_models import MultiModalEmbeddingModel, Video from vertexai.vision_models import Image as img from astrapy import DataAPIClient import streamlit as st from PIL import Image st.title("Video Search App") user_input_placeholder = st.empty() user_input = user_input_placeholder.text_input( "Describe the content you're looking for:", key="user_input" ) uploaded_file = st.file_uploader("Choose an image file that is similar you're looking for", type="png") if uploaded_file is not None: image = Image.open(uploaded_file) image_path = st.secrets['IMAGE_PATH'] image.save(image_path) saved_image = Image.open(image_path) st.image(saved_image, caption='', use_column_width=True) # Initialize Vertex AI vertexai.init(project=st.secrets['PROJECT'], location=st.secrets['REGION']) # Initialize the client client = DataAPIClient(st.secrets['ASTRA_TOKEN']) database = client.get_database(st.secrets['ASTRA_API_ENDPOINT']) collectiondb = database.videosearch # Load the pre-trained model and video model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding") video = Video.load_from_file(st.secrets['PATH']) # Search action trigger if st.button("Search"): if user_input: embeddings = model.get_embeddings( contextual_text=user_input ) result = collectiondb.find_one({}, vector=embeddings.text_embedding) start_offset_value = result['metadata']['start_offset_sec'] end_offset_value = result['metadata']['end_offset_sec'] st.write("Text input result found between: " + str(start_offset_value) + "-" + str(end_offset_value)) video_file = open(st.secrets['PATH'], 'rb') video_bytes = video_file.read() st.video(video_bytes, start_time=start_offset_value) if uploaded_file is not None: embimage = img.load_from_file(image_path) embeddingsimg = model.get_embeddings( image=embimage ) imgresult = collectiondb.find_one({}, vector=embeddingsimg.image_embedding) start_offset_value = imgresult['metadata']['start_offset_sec'] end_offset_value = imgresult['metadata']['end_offset_sec'] st.write("Image input result found between: " + str(start_offset_value) + "-" + str(end_offset_value)) video_file = open(st.secrets['PATH'], 'rb') video_bytes = video_file.read() st.video(video_bytes, start_time=start_offset_value)


ফলাফলগুলি কেমন দেখায় তা এখানে:

উপসংহার

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


Astra DB ব্যবহার করে, একটি ভিডিও অনুসন্ধান প্ল্যাটফর্ম ব্যবহারকারীদের উন্নত অনুসন্ধান ক্ষমতা প্রদান করতে পারে, বড় ডেটাসেট থেকে নির্দিষ্ট ভিডিও সামগ্রীর সুনির্দিষ্ট এবং দক্ষ পুনরুদ্ধার সক্ষম করে। এটি ভিডিও ডেটা বিশ্লেষণ এবং ব্যাখ্যা করার ক্ষমতাকে উল্লেখযোগ্যভাবে উন্নত করে, যার ফলে দ্রুত এবং আরও সঠিক অন্তর্দৃষ্টি পাওয়া যায়।


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


লিখেছেন ম্যাথিউ পেন্ডলবেরি , হেড অফ ইঞ্জিনিয়ারিং, ওপেনঅরিজিনস, এবং বেতুল ও'রিলি , সলিউশন আর্কিটেক্ট, ডেটাস্ট্যাক্স