ছবি থেকে তথ্য সংগ্রহ করার ক্ষমতার গভীর ব্যবসায়িক সম্ভাবনা রয়েছে। এবং, ভাল, এটা শুধু মজা হতে পারে. এই নিবন্ধে, আমি রূপরেখা করব কিভাবে আমরা ব্যবহার করেছি
সহজ কথায়, ইমেজ অবজেক্ট ডিটেকশন হল একটি প্রদত্ত ইমেজে সত্তা সম্পর্কে তথ্য শনাক্ত এবং বের করার প্রক্রিয়া। এর মধ্যে বস্তু, কার্যকলাপ, স্থান, প্রাণী, পণ্য ইত্যাদি সনাক্ত করা জড়িত।
ইমেজ অবজেক্ট ডিটেকশনের বিভিন্ন শিল্প জুড়ে বিস্তৃত ব্যবহারের ক্ষেত্রে রয়েছে। প্রধান সেক্টর যেমন ব্যাঙ্ক, বীমা, সোশ্যাল মিডিয়া, ডেটিং অ্যাপস, নিউজ এজেন্সি এবং ফিনটেক কোনো না কোনো আকারে অবজেক্ট ডিটেকশন ব্যবহার করে।
সম্প্রতি, আমাদের একটি সোশ্যাল মিডিয়া স্টার্টআপের জন্য একটি চিত্র অবজেক্ট সনাক্তকরণ বৈশিষ্ট্য তৈরি করার দায়িত্ব দেওয়া হয়েছিল। ব্যবহারের ক্ষেত্রে সহজ ছিল - ব্যবহারকারীদের তাদের প্রিয় কিছু ফটো নির্বাচন করতে এবং স্টার্টআপের সোশ্যাল মিডিয়া পৃষ্ঠাগুলির একটিতে বৈশিষ্ট্যযুক্ত করার জন্য জমা দিতে সক্ষম হওয়া উচিত।
সোশ্যাল মিডিয়া মার্কেটিং টিমের কিছু নির্দিষ্ট থিমের জন্য ইমেজ জমা দিয়ে অনুসন্ধান করার একটি উপায় দরকার ছিল — যেমন সমুদ্রের ছবি, জনপ্রিয় ল্যান্ডমার্ক, প্রাণী, সঙ্গীত কনসার্ট ইত্যাদি।
চিত্র বিশ্লেষণ করা এবং চিত্রের মধ্যে দৃশ্যাবলী এবং বস্তুর উপর ভিত্তি করে তাদের শ্রেণীবদ্ধ করা কোন সহজ কাজ নয়। মানুষের দৃষ্টিশক্তি অসাধারণ কিছু নয়, এবং এমন একটি অ্যাপ্লিকেশন তৈরি করা যা মস্তিষ্কের বস্তু শনাক্ত করার ক্ষমতার প্রতিলিপি তৈরি করতে সক্ষম। একটি সম্পূর্ণ কম্পিউটার ভিশন ইন্ডাস্ট্রি আছে যা করতে নিবেদিত।
স্ক্র্যাচ থেকে বস্তু সনাক্তকরণ সম্পাদন করা সাধারণত একটি বহু-পদক্ষেপ প্রক্রিয়া যা অন্তর্ভুক্ত করে:
এই বৈশিষ্ট্যটির জন্য আমাদের লক্ষ্য, প্রকল্পের অন্য সকলের মতো, এটিকে দ্রুত তৈরি করা এবং যত তাড়াতাড়ি সম্ভব একটি উত্পাদন পরিবেশে এর কার্যকারিতা পরীক্ষা করা। তদুপরি, আমরা যখন বিদ্যমান ক্লাউড পরিষেবাগুলিকে কাজে লাগাতে পারি তখন আমরা গ্রাউন্ড আপ থেকে একটি সমাধান তৈরি করতে উন্নয়ন সংস্থানগুলিকে উত্সর্গ করতে চাইনি।
কিউ সার্ভারলেস — স্টার্টআপের পুরো ব্যাকএন্ড সম্পূর্ণ সার্ভারহীন এবং ইভেন্ট-চালিত। এই আর্কিটেকচারের সাহায্যে, আমরা এমন ডেভেলপারদের দল পেতে পারি যেগুলিকে শুধুমাত্র সেই বৈশিষ্ট্যগুলিতে ফোকাস করতে হবে যা অন্যদের থেকে সোশ্যাল মিডিয়া অ্যাপকে আলাদা করে । সার্ভারলেস আমাদেরকে উচ্চ মাত্রার পরিমাপযোগ্য পরিষেবাগুলি তৈরি করতেও সক্ষম করে যখন আমরা যা ব্যবহার করি তার জন্য অর্থ প্রদান করে - একটি স্কেলিং স্টার্টআপের জন্য একটি গুরুত্বপূর্ণ বিবেচনা।
তাই এই বৈশিষ্ট্যটি অর্জন করতে, আমরা Amazon Recognition ব্যবহার করেছি - একটি সম্পূর্ণ সার্ভারহীন চিত্র এবং ভিডিও বিশ্লেষণ পরিষেবা৷ স্বীকৃতি ব্যবহার করে, আমরা কয়েক ঘন্টার মধ্যে এই জটিল এবং সমালোচনামূলক কর্মপ্রবাহটি বিকাশ করতে সক্ষম হয়েছি। এর মধ্যে ডুব দেওয়া যাক.
Amazon Recognition হল একটি AWS সার্ভারহীন অফার যা ইমেজ এবং ভিডিও বিশ্লেষণ করতে গভীর শিক্ষা ব্যবহার করে। সম্পূর্ণরূপে সার্ভারহীন হওয়ার অর্থ হল স্বীকৃতির সাথে আমাদের অন্তর্নিহিত অবকাঠামোর জটিলতা নিয়ে চিন্তা করার দরকার নেই; আমরা যা ব্যবহার করি তার জন্যই আমরা অর্থ প্রদান করি এবং এটি আমাদের ইমেজ এবং ভিডিও বিশ্লেষণের কাজগুলির জন্য পূর্ব-লিখিত সফ্টওয়্যার সরবরাহ করে। স্বীকৃতি ইমেজ লেবেল সনাক্তকরণ, মুখ সনাক্তকরণ, সেলিব্রিটি সনাক্তকরণ, বিষয়বস্তু সংযম এবং পাঠ্য সনাক্তকরণ সহ বৈশিষ্ট্যগুলির একটি পরিসর সরবরাহ করে।
প্রধান অংশ? স্বীকৃতি বিল্ডিং, প্রশিক্ষণ, এবং গভীর শিক্ষার মডেল বিশ্লেষণের ভারী উত্তোলনকে বিমূর্ত করে। ইমেজ এবং ভিডিও বিশ্লেষণ দ্রুত এবং সহজ, ন্যূনতম সেট-আপ প্রয়োজনীয়। আমাদের নিজস্ব ডেটাসেট তৈরি এবং প্রশিক্ষণ এবং সার্ভারের ক্ষমতার ব্যবস্থা করার বিষয়ে আমাদের চিন্তা করার দরকার নেই যাতে আমাদের পরিষেবা স্কেল হয়। আমাদের যা চিন্তা করার দরকার ছিল তা হল সংহত করা।
স্থাপত্য সহজবোধ্য। আমাদের মোবাইল অ্যাপ ব্যবহারকারীদের ফোন থেকে একটি S3 বালতিতে ছবি আপলোড করে। S3 তে আপলোড করার পরে একটি Lambda ফাংশন ট্রিগার করে যা রেকগনিশন এপিআই কল করে এবং অনুসন্ধানের জন্য ফলাফলগুলি ডায়নামোডিবিতে সংরক্ষণ করে।
AWS ব্যবহার করে সার্ভারহীন ইমেজ অবজেক্ট ডিটেকশন আর্কিটেকচার ডায়াগ্রাম
কোড লেখা মজার, তাই না? ঠিক আছে, কম কোড লেখা আরও মজাদার।
স্বীকৃতি একটি API-এর একটি সেট প্রকাশ করে যা আপনি চিত্র ডেটা পাঠান যা বিশ্লেষণ সম্পাদন করে এবং ফলাফল ফেরত দেয়। আমাদের ব্যবহারের ক্ষেত্রে, আমরা ব্যবহার করেছি
কোড ফাইল হিসাবে আমাদের সার্ভারলেস ফ্রেমওয়ার্ক অবকাঠামোর একটি সরলীকৃত সংস্করণ দেখতে এইরকম:
//serverless.yamlfunctions: imageLabelDetection: handler: image-label-detection.handler events: - s3: bucket: my-image-bucket event: s3:ObjectCreated:* existing: true iamRoleStatements: - Effect: Allow Action: rekognition:DetectLabels Resource: "*" - Effect: Allow Action: s3:GetObject Resource: arn:aws:s3:::my-image-bucket
আমাদের Lambda কোডটি কেবল Recognition API কল করে এবং ফলাফলগুলি DynamoDB-তে সঞ্চয় করে, কিন্তু আপনি আপনার ব্যবহারের ক্ষেত্রে যা কিছু অর্থপূর্ণ তা ব্যবহার করতে পারেন। আমরা S3 ইভেন্ট থেকে S3 বালতির নাম এবং ছবির অবজেক্টের নাম পাই এবং সেগুলিকে ডিটেক্ট লেবেল ফাংশনে পাস করি
আত্মবিশ্বাসের স্তরের থ্রেশহোল্ড এবং আমরা ফেরত দিতে চাই এমন সর্বোচ্চ সংখ্যক লেবেল নির্দিষ্ট করতে আমরা দুটি ঐচ্ছিক প্যারামিটার (ম্যাক্সলেবেল এবং মিন কনফিডেন্স) পাস করি। নীচের উদাহরণে, আমরা প্রতিক্রিয়াতে শুধুমাত্র 20টি লেবেল পাব এবং সমস্ত লেবেলের আত্মবিশ্বাসের মাত্রা 80%-এর বেশি হবে৷
//image-label-detecion.jsconst AWS = require("aws-sdk");const rekognition = new AWS.Rekognition();exports.handler = async (event) => { const imageDetails = event.Records[0].s3; const bucketName = imageDetails.bucket.name; const objectKey = imageDetails.object.key; const rekognitionResp = await rekognition .detectLabels({ Image: { S3Object: { Bucket: bucketName, Name: objectKey, }, }, MaxLabels: 20, MinConfidence: 80, }) .promise(); // Send to data store, eg DynamoDB // ... };
কুকুরের ছবি কে না ভালোবাসে? নীচে আমরা আমাদের S3 বালতিতে আপলোড করা একটি চিত্রের প্রতিক্রিয়া। আপনি দেখতে পাচ্ছেন, স্বীকৃতি সঠিকভাবে নির্ধারণ করে যে এটি একটি বহিরঙ্গন, নুড়ি পথের একটি কুকুরের একটি চিত্র (এবং আমাদের বলে যে ছবিতে কুকুরটি কোথায় আছে!)।
স্বীকৃতি প্রতিক্রিয়া (বাম), আপলোড করা ছবি (ডান)।
তো, কয়েক মাস ধরে প্রোডাকশনে রেকগনিশন ব্যবহার করার পর আমার চিন্তা কি? এখানে মূল টেকওয়ের একটি তালিকা রয়েছে:
TLDR: স্বীকৃতি আমাদেরকে দ্রুত একটি চিত্র অবজেক্ট সনাক্তকরণ বৈশিষ্ট্য তৈরি করতে সক্ষম করেছে যা সঠিক, দ্রুত এবং মাপযোগ্য।