আমি দুটি চিত্রের মধ্যে মিলটি কীভাবে পরিমাপ করতে পারি? [বন্ধ]


95

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

এমন একটি লাইব্রেরি / সরঞ্জাম রয়েছে যা ইতিমধ্যে তা করে? আপনি কীভাবে এটি বাস্তবায়ন করবেন?


4
এই অন্যান্য অনুরূপ প্রশ্নের কিছু ভাল উত্তর রয়েছে: স্ট্যাকওভারফ্লো
ব্লাক

4
আর এখানে: stackoverflow.com/questions/189943/...
Anoyz

4
মেশিন লার্নিংয়ে সাম্প্রতিক অগ্রগতির আলোকে উত্তরগুলি আপডেট করার সময় এবং আরও নির্দিষ্টভাবে "ডিপ লার্নিং" Time
jldupont

আমার ল্যাব খুব এই সমস্যা সমাধানের জন্য প্রয়োজন, এবং ব্যবহৃত কর্মপ্রবাহ এখানে দেওয়া: douglasduhaime.com/posts/...
duhaime

উত্তর:


75

এটি পুরোপুরি নির্ভর করে আপনি কীভাবে অ্যালগরিদম হতে চান তার উপর নির্ভর করে।

উদাহরণস্বরূপ, এখানে কয়েকটি সমস্যা রয়েছে:

  • ক্রপযুক্ত চিত্রগুলি বনাম একটি ক্রপযুক্ত চিত্র
  • একটি পাঠ্য সহ চিত্রগুলি বনাম অন্য একটি যুক্ত করা হয়েছে
  • মিররড ইমেজ

সবচেয়ে সহজ এবং সরল অ্যালগরিদম আমি এর জন্য দেখেছি প্রতিটি প্রতিচ্ছবিতে নিম্নলিখিত পদক্ষেপগুলি করা:

  1. ছোট্ট কিছুতে স্কেল করুন, যেমন x৪x64৪ বা 32x32, দিক অনুপাতটিকে উপেক্ষা করুন, নিকটস্থ পিক্সেলের পরিবর্তে একটি সংমিশ্রক স্কেলিং অ্যালগরিদম ব্যবহার করুন
  2. রঙের ব্যাপ্তিগুলি স্কেল করুন যাতে গা dark়তম কালো এবং হালকা সাদা হয়
  3. চিত্রটি ঘোরান এবং ফ্লিপ করুন যাতে সর্বাধিক দীর্ঘতম রঙ শীর্ষ বাম দিকে থাকে এবং তারপরে উপরের ডানদিকে আরও গাer় হয়, নীচে-বামটি আরও গাer় হয় (অবশ্যই যতদূর সম্ভব)

একটি সংমিশ্রক স্কেলিং অ্যালগরিদম সম্পাদনা হ'ল 10 পিক্সেল স্কেল করার সময় এটি একটি ফাংশন ব্যবহার করে তা করে যা সমস্ত 10 পিক্সেলের রঙ নেয় এবং সেগুলিকে এক সাথে সংযুক্ত করে। গড়, গড়-মান বা বিউকিউবিক স্প্লাইন্ডের মতো জটিল জটিলগুলির মতো অ্যালগরিদমগুলির সাহায্যে করা যেতে পারে।

তারপরে দুটি চিত্রের মধ্যে গড় দূরত্বের পিক্সেল-বাই-পিক্সেল গণনা করুন।

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

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


14
"স্কেলিং অ্যালগরিদমের সংমিশ্রণ" কী?
গ্রেগ লিন্ড

32

এটির পরিমাপের 'ক্লাসিক' উপায়টি হ'ল চিত্রটিকে কিছু ক্যানোনিকাল সংখ্যায় বিভাগে বিভক্ত করা (10x10 গ্রিড বলুন) এবং তারপরে প্রতিটি কক্ষের অভ্যন্তরে আরজিবি মানগুলির একটি হিস্টগ্রাম গণনা করা এবং সংশ্লিষ্ট হিস্টোগ্রামগুলির তুলনা করা। এই ধরণের অ্যালগরিদম এর সরলতার কারণে এবং এটি স্কেলিং এবং (ছোট!) অনুবাদের সাথে ইনভাররিয়েন্সের কারণে পছন্দ হয়।


6
এটি কি পুরো ইমেজের জন্য একটি একক হিস্টোগ্রাম করার মতো নয়, তবে আয়না এবং ঘোরার ক্ষেত্রে স্থিতিস্থাপক না হওয়ার অতিরিক্ত ত্রুটিগুলি রয়েছে?
dodgy_coder

চিত্রের 2 টি অর্ধেক থেকে 2 টি হিস্টোগ্রামে পুরো 1 টি হিস্টোগ্রামের চেয়ে ভাল মিলের যথার্থতা থাকতে পারে। যদিও এতে আপনার উল্লেখ করা ত্রুটি রয়েছে, তবে এটি নির্ভর করে যে আপনি কোন সমস্যার সমাধান করছেন।
psycho brm

25

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

মূলত একটি রঙের হিস্টগ্রাম চিত্রের রঙ বিতরণ ক্যাপচার করবে। এর পরে রঙ বিতরণ মেলে কিনা তা দেখতে এটি অন্য চিত্রের সাথে তুলনা করা যেতে পারে।

এই ধরণের মিলটি স্কেলিংয়ের জন্য বেশ স্থিতিস্থাপক (একবারে হিস্টোগ্রামটি স্বাভাবিক করা হয়), এবং আবর্তন / স্থানান্তর / আন্দোলন ইত্যাদি etc.

পিক্সেল বাই পিক্সেল তুলনা এড়িয়ে চলুন যেন চিত্রটি কিছুটা ঘোরানো / সরানো হয় তবে এটি বড় পার্থক্যের কারণ হিসাবে চিহ্নিত হতে পারে।

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


14

এমপিইগির মতো ভিডিও এনকোডিং অ্যালগরিদমগুলি কোনও ভিডিওর প্রতিটি ফ্রেমের মধ্যে পার্থক্য গণনা করে যাতে তারা কেবল ব-দ্বীপটিকে এনকোড করতে পারে? আপনি কীভাবে ভিডিও এনকোডিং অ্যালগরিদমগুলি frame ফ্রেমের পার্থক্য গণনা করতে পারেন তা দেখতে পারেন।

এই ওপেন সোর্স ইমেজ অনুসন্ধান অ্যাপ্লিকেশনটি দেখুন http://www.semanticmetadata.net/lire/ । এটি বেশ কয়েকটি চিত্রের অনুরূপ অ্যালগরিজমগুলি বর্ণনা করে, যার মধ্যে তিনটি এমপিইজি -7 স্ট্যান্ডার্ড থেকে রয়েছে: স্কেলেবল কালার, রঙিন লেআউট, এজ হিস্টোগ্রাম এবং অটো রঙের কর্লেলগ্রাম।


4
এটি এখানে প্রশ্নের উত্তর দেবে না। প্রশ্নটি পিক্সেল তুলনা প্রতি পিক্সেল সম্পর্কে নয়।
কাউশা

@ কুশা সত্য, তবে এখনও ভাবনার আকর্ষণীয় দিক।
অর্থ-বিষয়গুলি

13

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

যাইহোক, ধারণাটি হ'ল দুটি ম্যাট্রিকের নরমালাইজড ডট-প্রোডাক্ট। C = sum(Pij*Qij)^2/(sum(Pij^2)*sum(Qij^2))

এই সূত্রটি আসলে ম্যাট্রিক্স (উইয়ার্ড) এর মধ্যবর্তী কোণের "কোসাইন"। বৃহত্তর সাদৃশ্যটি (বলুন Pij=Qij), সি হবে 1, এবং যদি সেগুলি সম্পূর্ণ আলাদা হয় তবে প্রত্যেকটির জন্য বলি i,j Qij = 1(শূন্য-বিভাজন এড়ানো) Pij = 255, তবে আকারের জন্য nxn, বৃহত্তর nহবে, আমরা শূন্যের আরও কাছাকাছি করব পাওয়া. (মোটামুটি গণনা দ্বারা C=1/n^2:)।


8

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


7

একটি রুবি সমাধান এখানে পাওয়া যাবে

রিডমি থেকে:

ফ্যাশনটি হ'ল পিএইচ লাইব্রেরির আশেপাশের একটি রুবি মোড়ক, "পার্সেপুচুয়াল হ্যাশ", যা সদৃশ এবং ডুপ্লিকেট মাল্টিমিডিয়া ফাইলগুলি সনাক্ত করে


5

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

কারণ এই জাতীয়তা ব্যবস্থাগুলি সময় সাপেক্ষে অনেক বেশি ব্যয় হয়, এগুলি এই ব্যবস্থাগুলি প্রয়োগ করার আগে চিত্রগুলি কমিয়ে দেওয়ার পরামর্শ দেওয়া হয়।


4

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

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

সম্ভবত একটি আদর্শ পরীক্ষা নয়, এবং সম্ভবত প্রয়োজনের তুলনায় খুব ধীরে ধীরে এটি তাত্পর্যপূর্ণ এবং নোংরা বাস্তবায়ন হিসাবে কাজ করতে পারে।


90 ডিগ্রি ঘোরানোর বিষয়ে চিন্তা করুন; চিত্রগুলি এখনও একই রকম।
অর্থ-বিষয়

3

আপনি ওপেন সোর্স সরঞ্জাম ফাইন্ডিম্যাডআপগুলির কোড দেখতে পারেন , যদিও এটি লেখা হয়েছে বলে মনে হয়, সুতরাং পার্স করা কত সহজ হবে তা আমি বলতে পারি না ...

আমার পছন্দ করা ফাইন্ডেজেডআপস পৃষ্ঠাটি পড়ছি, আমি দেখতে পাচ্ছি যে একই অ্যালগোরিদমের সি ++ বাস্তবায়ন রয়েছে । সম্ভবত এটি বুঝতে সহজ হবে।

এবং এটি প্রদর্শিত হয় আপনি gqview ব্যবহার করতে পারেন


2

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

আমি ভাবছি তাদের ব্লগে কোনও উপলব্ধ গ্রন্থাগার বা কোড স্নিপেট রয়েছে কিনা।


4
এই প্রযুক্তি। বন্ধ করা হয়েছে.
জোসেফ রসন


2

সামগ্রী-ভিত্তিক চিত্র পুনরুদ্ধারের জন্য একটি সফ্টওয়্যার রয়েছে, যা আপনার যা প্রয়োজন তা (আংশিকভাবে) করে। সমস্ত তথ্যসূত্র এবং ব্যাখ্যা প্রকল্পের সাইট থেকে সংযুক্ত এবং একটি ছোট পাঠ্য পুস্তক (কিন্ডল) রয়েছে: LIRE


1

এই টিউটোরিয়ালটি অনুসরণ করে দুটি চিত্র একই বা পৃথক কিনা তা দেখতে আপনি সিয়ামিজ নেটওয়ার্কটি ব্যবহার করতে পারেন । এই টিউটোরিয়ালটি একই চিত্রগুলিকে ক্লাস্টার করে যেখানে আপনি L2দুটি চিত্রের সাদৃশ্য পরিমাপ করতে দূরত্ব ব্যবহার করতে পারেন ।


0

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


আর একটি সরঞ্জাম যা এই ধরণের পার্থক্যকে খুব সহজ করে তোলে কালিডোস্কোপ.কম
মাইকেল ওসোফস্কি

0

তুলনা ছাড়িয়ে চিত্রগুলির জন্য পিক্সেল বাই পিক্সেল তুলনা রয়েছে, উদাহরণস্বরূপ,

এখানে চিত্র বর্ণনা লিখুন


@xilpex, ওপ জিজ্ঞাসা করেছে: এমন কোনও গ্রন্থাগার / সরঞ্জাম আছে যা ইতিমধ্যে তা করে ? আমার উত্তরে এই জাতীয় লাইব্রেরি / সরঞ্জামের লিঙ্ক অন্তর্ভুক্ত রয়েছে।
ইলমোভ

-1

ভাল ব্যবহারের জন্য একটি বেস-লেভেল পদ্ধতিটি প্রতিটি পিক্সেলের রঙের মধ্য দিয়ে যেতে পারে এবং এটি দ্বিতীয় চিত্রের সাথে সম্পর্কিত পিক্সেলের রঙের সাথে তুলনা করতে পারে - তবে এটি সম্ভবত খুব ধীর সমাধান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.