গাউসিয়ান ব্লার কীভাবে কার্যকর করা হয়?


42

আমি পড়েছি যে অস্পষ্টটি একটি অক্ষের উপর এবং তারপরে অন্যটিতে করে রিয়েল টাইম গ্রাফিকগুলিতে করা হয়।

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

যে কোনও চিত্রের 2D গাউসিয়ান ব্লার কীভাবে করা হয় তা কি সরল ভাষায় ব্যাখ্যা করতে পারেন?

আমি আরও শুনেছি যে অস্পষ্টতার ব্যাসার্ধ কার্যক্ষমতাকে প্রভাবিত করতে পারে। এটি কি আরও বৃহত্তর সমঝোতা করার কারণে রয়েছে?

উত্তর:


48

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

বিশেষত, গাউসিয়ান কর্নেল (গাউসিয়ান অস্পষ্টতার জন্য ব্যবহৃত) পিক্সেলের একটি বর্গাকার অ্যারে যেখানে পিক্সেল মানগুলি গাউসিয়ান বক্রাকার (2 ডি-তে) এর মানের সাথে মিলে যায়।

Http://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm থেকে চিত্র লিঙ্ক করা

চিত্রের প্রতিটি পিক্সেল গাউসীয় কর্নেল দ্বারা গুণিত হয়। এটি চিত্রের পিক্সেলের উপর কার্নেলের কেন্দ্রের পিক্সেল স্থাপন করে এবং ওভারল্যাপ করে থাকা কার্নেলের পিক্সেলগুলির সাথে মূল চিত্রের মানগুলি গুণ করে। এই গুণগুলি থেকে প্রাপ্ত মানগুলি যোগ করা হয় এবং ফলাফলটি গন্তব্য পিক্সেলের মানটির জন্য ব্যবহৃত হয়। চিত্রটি দেখে আপনি ইনপুট অ্যারেতে (0,0) এ কার্নেল অ্যারেতে (i) মান দ্বারা ইনপুট অ্যারেতে (1,0) এ মানটি (এইচ) এর মান দ্বারা গুণিত করতে পারেন ) কার্নেল অ্যারেতে এবং অন্যান্য। এবং তারপরে আউটপুট চিত্রটিতে (1,1) এর মান পেতে এই সমস্ত মান যুক্ত করুন।

চিত্রটি http://www.songho.ca/dsp/convolution/convolution.html থেকে লিঙ্ক হয়েছে

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

আপনার প্রথম প্রশ্নের উত্তর দেওয়ার জন্য, যেমন উপরে বর্ণিত হয়েছে, সমাপ্তি কার্নেলের সাথে প্রতিটি ইনপুট পিক্সেলকে গুণ করে কনভলিউশন করা যায়। তবে, কার্নেলটি যদি প্রতিসম হয় (যা গাউসিয়ান কার্নেল হয়) তবে আপনি প্রতিটি অক্ষকে (x এবং y) স্বতন্ত্রভাবেও গুণ করতে পারেন যা মোট গুণনের সংখ্যা হ্রাস করবে। সঠিক গাণিতিক ভাষায়, যদি কোনও ম্যাট্রিক্স পৃথক হয় তবে এটি (এম × 1) এবং (1 × N) ম্যাট্রিকগুলিতে বিভক্ত হতে পারে। উপরে গাউসিয়ান কার্নেলের জন্য এর অর্থ আপনি নিম্নলিখিত কার্নেলগুলিও ব্যবহার করতে পারেন:

1256[1464141624164624362464162416414641]=1256[14641][14641]

আপনি এখন উভয় কার্নেল দিয়ে ইনপুট চিত্রের প্রতিটি পিক্সেলকে গুণিত করবেন এবং ফলাফলের মানগুলিকে আউটপুট পিক্সেলের মান পেতে যোগ করবেন।

কার্নেলটি পৃথকযোগ্য কিনা তা সম্পর্কে আরও তথ্যের জন্য, এই লিঙ্কটি অনুসরণ করুন

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

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


1
দুটি পৃথক 5 বাই 5 কার্নেলের সামান্য ভিন্ন সংখ্যা কেন রয়েছে তার ব্যাখ্যা করার জন্য আপনি একটি সংক্ষিপ্ত নোট যুক্ত করতে পারেন (একটি সংখ্যার 273, অন্যটি 256 তে যোগফল)? এটি নতুন কারও পক্ষে সম্ভাব্য বিভ্রান্তির মতো বলে মনে হচ্ছে।
ট্রাইকোপলাক্স

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

সঠিক ফলাফলের জন্য লিনিয়ার রঙের জায়গাতে কাজ করতে ভুলবেন না।
v.oddou

16

আমি এই বিষয়েটি পড়েছি সেরা নিবন্ধটি: লিনিয়ার নমুনা সহ দক্ষ গাউসিয়ান অস্পষ্টতা । এটি আপনার সমস্ত প্রশ্নের ঠিকানা দেয় এবং সত্যই অ্যাক্সেসযোগ্য।

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

এন×এনহে(এন2)2×এনহে(এন) ) তবে এটি সুসংবাদ: কম ট্যাপ কম সস্তা কারণ একটি টেক্সচার আনার জন্য একটি ব্যয় রয়েছে।

এনএন


13

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

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

আমাদের স্বতন্ত্র প্রসঙ্গে আমরা প্রতিটি সংশ্লিষ্ট নমুনা কেবলমাত্র গুণ করে আমাদের দুটি সংকেতকে গুণ করতে পারি। অবিচ্ছেদ্য বিচ্ছিন্নভাবে করা সহজ, আমরা কেবলমাত্র প্রতিটি নমুনাটি ব্যবধানে যুক্ত করি যা আমরা সংহত করছি। একটি সাধারণ বিচ্ছিন্ন সমঝোতা একটি চলমান গড় গণনা হয়। যদি আপনি চলমান গড় 10 টি নমুনা নিতে চান তবে এটি 10 ​​টি লম্বা এবং 0.1 টি লম্বা বিতরণ দ্বারা আপনার সিগন্যালকে কনভলভ করা হিসাবে বিবেচনা করা যেতে পারে, উইন্ডোটির প্রতিটি নমুনা প্রথমে 0.1 দ্বারা গুণিত হয়, তারপরে সমস্ত 10 একসাথে যোগ করার জন্য উত্পাদন করা হয় গড়। এটি একটি আকর্ষণীয় এবং গুরুত্বপূর্ণ পার্থক্যটিও প্রকাশ করে, যখন আপনি কোনও দৃolution়বিশ্বাস নিয়ে ঝাপসা হয়ে যাচ্ছেন, আপনি যে বিতরণটি ব্যবহার করেন তার সমস্ত নমুনার তুলনায় ১.০ হওয়া উচিত, অন্যথায় এটি প্রয়োগ করার সময় এটি চিত্রের সামগ্রিক উজ্জ্বলতা বৃদ্ধি বা হ্রাস করবে।

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

r

-এক্স2/22π

হে(এন2)হে(এন)


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

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

11

হে(এন2)হে(এন)

তবে প্রকৃত বাস্তবায়নে আপনি আরও দুটি কৌশল বিবেচনা করতে চাইতে পারেন:

ফিল্টারটির একটি নির্দিষ্ট ব্যাসার্ধ রয়েছে এবং এটির কারণে খুব সীমানায় আপনাকে পিক্সেল দিয়ে গণনা করতে হবে যা চিত্রের বাইরে পড়ে fall যেমন ক্ষেত্রে, আপনাকে নিম্নলিখিত এক চেষ্টা করে দেখতে পারেন: বাহিরে পিক্সেল জন্য আপনি কেবল গত সম্ভব মান (অর্থাত পিক্সেল খুব সীমান্তে, হিসাবে নিতে max(x, 0)অথবা আপনি (বাহিরে প্রতি চিত্র "প্রতিফলিত" হিসেবে পারে। x < 0 ? -x : x)। অথবা আপনি কেবল সীমান্তে থামতে পারেন তবে তারপরে আপনার কনভলিউশন ফিল্টারে ডিনোমিনেটরটি সামঞ্জস্য করতে হবে যাতে এটি 1 এর সমষ্টি হয় example উদাহরণস্বরূপ:

সমষ্টি1256[1464141624164624362464162416414641]=সমষ্টি1225[0000001624160024361600162416000000]=1।
     1
    1 1
   1 2 1
  1 3 3 1
[1 4 6 4 1]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.