HOG features গুলি বস্তু সনাক্তকরণের জন্য ব্যাপকভাবে ব্যবহৃত হয়।HOG decomposes একটি চিত্রকে small squared cells বিভক্ত করে, each cell oriented gradients-র একটি histogram গণনা করে, একটি block-wise pattern/ব্লক-ভিত্তিক প্যাটার্ন ব্যবহার করে ফলাফলকে স্বাভাবিক করে তোলে, এবং each cell-র জন্য একটি descriptor/বর্ণনাকারী ফিরিয়ে দেয়।
বর্গক্ষেত্রের চিত্র অঞ্চলে কক্ষগুলি একত্রিত করা করা অবজেক্ট সনাক্তকরণের জন্য image window descriptor/চিত্র উইন্ডো বর্ণনাকারী হিসাবে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ কোনও SVM এর মাধ্যমে
এই টিউটোরিয়ালটি দেখায় যে কীভাবে বিভিন্ন প্রকারের HOG features গুলি গণনা করতে এবং সেগুলি পরিচালনা করতে VLFeat function vl_hog ব্যবহার করতে হয়।
Basic HOG computation
We start by considering an example input image:
HOG is computed by calling the
vl_hog
function:cellSize = 8 ; hog = vl_hog(im, cellSize, 'verbose') ;same function টির featuresগুলির pictorial rendition/ চিত্রণমূলক উপস্থাপনা তৈরি করতেও ব্যবহার করা যেতে পারে, যদিও এটি unavoidably destroys/অনিবার্যভাবে বৈশিষ্ট্যের মধ্যে থাকা কিছু তথ্য নষ্ট করে দেয়। এই লক্ষ্যে, render command/রেন্ডার কমান্ডটি ব্যবহার করুন:
imhog = vl_hog('render', hog, 'verbose') ; clf ; imagesc(imhog) ; colormap gray ;
This should produce the following image:
HOG হ'ল cell-র একটি array/অ্যারে, third dimension spanning feature componentsগুলি সহ:
> size(hog) ans = 16 16 31এই ক্ষেত্রে, feature টির 31 dimensions রয়েছে। HOG অনেকগুলি রূপে বিদ্যমান। VLFeat দুটি সমর্থন করে:
UoCTTI variant (used by default) and the original Dalal-Triggs variant/ UoCTTI পরিবর্তনশীল (ডিফল্টরূপে ব্যবহৃত) এবং মূল দালাল-ট্রিগস পরিবর্তনশীল (normalization-র জন্য 2×2 square HOG ব্লক সহ)।মূল পার্থক্যটি হ'ল UoCTTI variant computes bot directed এবং undirected gradients/পুনর্নির্দেশিত গ্রেডিয়েন্ট গুলির পাশাপাশি একটিfour dimensional texture-energy feature, কিন্তু ফলাফলটি 31 টি মাত্রায় নেমে আসে।ডালাল-ট্রিগগুলি কেবল পুনর্নির্দেশিত গ্রেডিয়েন্টগুলির সাথে কাজ করে এবং কোনও compression করে না, মোট 36 টি মাত্রার জন্য। দালাল-ট্রিগস রূপটি গণনা করা যায়
% Dalal-Triggs variant cellSize = 8 ; hog = vl_hog(im, cellSize, 'verbose', 'variant', 'dalaltriggs') ; imhog = vl_hog('render', hog, 'verbose', 'variant', 'dalaltriggs') ;
The result is visually very similar:
Flipping HOG from left to right
প্রায়শই বাম থেকে ডানে HOG বৈশিষ্ট্যগুলি ফ্লিপ করা প্রয়োজন (উদাহরণস্বরূপ একটি axis symmetric object/অক্ষ প্রতিসাম্য বস্তুর মডেল করার জন্য)। হিস্টোগ্রামের মাত্রাগুলি যথাযথভাবে অনুমোদনের মাধ্যমে এটি বৈশিষ্ট্য থেকে analytically/বিশ্লেষণাত্মকভাবে পাওয়া যেতে পারে। নিম্নরূপে অনুক্রমটি প্রাপ্ত হয়:% Get permutation to flip a HOG cell from left to right perm = vl_hog('permutation') ;তারপরে এই দুটি উদাহরণ অভিন্ন ফলাফল উত্পন্ন করে (এই শর্তে যে কোষের সঠিক সংখ্যা রয়েছে:
imHog = vl_hog('render', hog) ; imHogFromFlippedImage = vl_hog('render', hogFromFlippedImage) ; imFlippedHog = vl_hog('render', flippedHog) ;
This is shown in the figure:
Other HOG parameters
vl_hog অন্যান্য parameters গুলিকেও সমর্থন করে। উদাহরণস্বরূপ, কেউ হিস্টোগ্রামে orientationsগুলির সংখ্যা সংখ্যাযুক্ত বিকল্প numOrientations দ্বারা নির্দিষ্ট করতে পারেন:% Specify the number of orientations hog = vl_hog(im, cellSize, 'verbose', 'numOrientations', o) ; imhog = vl_hog('render', hog, 'verbose', 'numOrientations', o) ;
Changing the number of orientations changes the features quite significantly:
% Specify the number of orientations hog = vl_hog(im,cellSize,'numOrientations', 4) ; imhog = vl_hog('render', hog, 'numOrientations', 4) ;
resulting in
SIFT (Scale-invariant feature transform) and HOG (Histogram of Oriented Gradient) অধ্যয়ন করছি। সুতরাং যখন আমরা কোনও ক্রিয়াকলাপের frames র sequence (i.e. standing) এর ক্রম থেকে বৈশিষ্ট্যগুলি বের করতে হয় তখন আমি HOG- র তুলনায় SIFT এর সুবিধাগুলি জানতে চাই। এখন অবধি আমি যা বুঝতে পেরেছি:
1) SIFT এ gaussian smoothing DOG (difference of gaussian) গণনা করার জন্য প্রয়োগ করা হয়। তারপরে Scale Extrema Detection performing/সম্পাদন করে আপনি feature pointsগুলি সনাক্ত করতে পারবেন। আপনার এই feature pointsগুলি একবার হয়ে গেলে আপনার প্রতিটি feature/বৈশিষ্ট্যের জন্য HOG গণনা করতে হবে। যেহেতু এটি 16x16 neighbourhood নেয় ফলাফলটি 128 length descriptor হবে। যদিও HOG compute একটি সম্পূর্ণ চিত্রের edge gradient/প্রান্তের গ্রেডিয়েন্ট এবং প্রতিটি পিক্সেলের ওরিয়েন্টেশন সন্ধান করে যাতে এটি একটি histogram/বারলেখ তৈরি করতে পারে।
২) HOG বিশ্বব্যাপী বৈশিষ্ট্য আহরণের জন্য ব্যবহৃত হয় যেখানে স্থানীয় বৈশিষ্ট্যগুলি আহরণের জন্য SIFT ব্যবহার করা হয়।
3) SIFT টি scale and rotation অবিভক্ত যেখানে HOG অবিভক্তকারী নয়।
সুবিধাদি:
SIFT descriptor/বর্ণনাকারী একটি classic approach/ক্লাসিক পদ্ধতি, পরে প্রস্তাবিত বেশিরভাগ বর্ণনাকারীর জন্য "original" inspiration/"মূল" অনুপ্রেরণাও।এটি অন্য যে কোনও বর্ণনাকারীর চেয়ে সঠিক।এটি Rotation and scale invariant/পরিবর্তিত।
অসুবিধা:
অসুবিধাটি হ'ল এটি mathematically complicated and computationally heavy。।SIFT গ্রেডিয়েন্টের হিস্টোগ্রামের উপর ভিত্তি করে। থিসিস, প্যাচের প্রতিটি পিক্সেলের গ্রেডিয়েন্টগুলি গণনা করা দরকার এবং এই গণনার সময় ব্যয় হয়।এটি স্বল্প শক্তিযুক্ত ডিভাইসগুলির জন্য কার্যকর নয়।
দ্রষ্টব্য: SIFT পেটেন্ট সুরক্ষিত।
সুবিধাদি:
- ভাল স্মরণ হার (যথার্থতা)
- OpenCV library লাইব্রেরিতে অন্তর্ভুক্ত
- বৈশিষ্ট্যগুলি অবসান এবং বিশৃঙ্খলা থেকে মজবুত
- পুরানো অ্যালগরিদমের তুলনায় তুলনামূলকভাবে দক্ষ
অসুবিধা:
- এখনও বেশ ধীর (SURF দ্রুত চালানোর সময় অনুরূপ কর্মক্ষমতা সরবরাহ করে)
- সাধারণত আলো পরিবর্তন এবং অস্পষ্টতার সাথে ভাল কাজ করে না
0 comments:
Post a Comment