ভূমিকা
এটি ক্রিমিনিসি , পি। পেরেজ (কেমব্রিজ মাইক্রোসফ্ট রিসার্চ লিমিটেড) এবং কে। তোয়ামা (মাইক্রোসফ্ট) [এক্স] দ্বারা বর্নিত উদাহরণমূলক ভিত্তিক ইনপেইন্টিং অ্যালগরিদম দ্বারা অবজেক্ট রিমুভালের একটি বাস্তবায়ন । এই অ্যালগরিদমটি উচ্চ-তথ্য চিত্রগুলিতে (এবং ভিডিও ফ্রেমগুলি) লক্ষ্যবস্তু এবং লক্ষ্যগত কাঠামোগত পুনর্গঠন এবং জৈব পুনর্গঠনের মধ্যে ভারসাম্য হ'ল। এই উত্তরটিকে আরও স্ব-অন্তর্ভুক্ত করার জন্য এই উত্তরের অনুচ্ছেদে মূল কাগজটির পুরো পাঠ্য উদ্ধৃতি রয়েছে (যেহেতু এটি আর সরকারীভাবে উপলব্ধ নেই)।
অ্যালগরিদম
লক্ষ্য : একটি নির্বাচিত ( মুখোশধারী ) অঞ্চল (সাধারণত একটি দৃষ্টি বিচ্ছিন্ন অগ্রভাগ অবজেক্ট) ভিজ্যুয়াল প্লাজেবল ব্যাকগ্রাউন্ডের সাথে প্রতিস্থাপন করুন ।
পূর্ববর্তী রচনায় বেশ কয়েকটি গবেষক টেক্সচার সংশ্লেষণকে বৃহত্তর চিত্র অঞ্চলগুলিকে "খাঁটি" টেক্সচার দিয়ে পূর্ণ করার উপায় হিসাবে বিবেচনা করেছেন - মাঝারি স্টোচাস্টিকটির সাথে পুনরাবৃত্তিযুক্ত দ্বি-মাত্রিক টেক্সারাল ধরণগুলি। এটি টেক্সচার-সংশ্লেষণ গবেষণার একটি বৃহত সংখ্যার উপর ভিত্তি করে তৈরি করা হয়েছে, যা খাঁটি অঙ্গবিন্যাসের একটি ছোট উত্সের নমুনা প্রদত্ত টেক্সচার অ্যাড ইনফিনিটামের প্রতিরূপ তৈরি করতে চায় [1] [8] [9] [10] [১১] [১২] [১৪] [15] [16] [19] [22] ।
এই কৌশলগুলি যেমন সামঞ্জস্যপূর্ণ জমিনের প্রতিরূপকরণে কার্যকর, ততই বাস্তব-বিশ্বের দৃশ্যের ফটোগ্রাফগুলিতে তাদের গর্ত পূরণ করতে অসুবিধা হয়, যা প্রায়শই রৈখিক কাঠামো এবং সংমিশ্রণ টেক্সচার সমন্বয়ে গঠিত - একাধিক টেক্সচার স্থানিকভাবে ইন্টারঅ্যাক্ট করে [23] । প্রধান সমস্যাটি হ'ল চিত্র অঞ্চলের মধ্যে সীমাগুলি বিভিন্ন টেক্সচারের মধ্যে পারস্পরিক প্রভাবগুলির একটি জটিল পণ্য। খাঁটি অঙ্গবিন্যাসের দ্বি-মাত্রিক প্রকৃতির বিপরীতে, এই সীমানাগুলি এমনটি গঠন করে যা আরও এক-মাত্রিক বা লিনিয়ার, চিত্র কাঠামো হিসাবে বিবেচিত হতে পারে।
ভাবমূর্তি inpainting কৌশল রৈখিক স্ট্রাকচার (যাকে বলা হয় বিস্তৃত হয়ে চিত্র গর্ত ভরাট isophotes মধ্যে inpainting আশ্লেষ মাধ্যমে সাহিত্য) লক্ষ্য অঞ্চলের মধ্যে। এগুলি শারীরিক তাপ প্রবাহের আংশিক ডিফারেনশিয়াল সমীকরণ দ্বারা অনুপ্রাণিত হয় এবং পুনরুদ্ধারের অ্যালগরিদম হিসাবে দৃinc়তার সাথে কাজ করে। তাদের ত্রুটিটি হ'ল প্রসারণ প্রক্রিয়াটি কিছু অস্পষ্টতার পরিচয় দেয়, যা লক্ষণীয়।
অঞ্চলটি পূরণ করা হবে, অর্থাত্, লক্ষ্য অঞ্চলটি by দ্বারা নির্দেশিত, এবং এর কনট্যুরকে চিহ্নিত করা হয়েছে δΩ কনট্যুরটি অ্যালগরিদমের অগ্রগতির সাথে সাথে অভ্যন্তরীণভাবে বিকশিত হয় এবং তাই আমরা এটিকে "ফিল ফ্রন্ট" হিসাবেও উল্লেখ করি। উত্স অঞ্চল, Φ, যা আলগোরিদিম জুড়ে স্থির থাকে, ফিলিং প্রক্রিয়াতে ব্যবহৃত নমুনা সরবরাহ করে। উদাহরণস্বরূপ-ভিত্তিক সংশ্লেষণ দ্বারা কাঠামো এবং টেক্সচারটি কীভাবে পর্যাপ্তভাবে পরিচালিত হয় তা দেখানোর জন্য আমরা এখন অ্যালগরিদমের একক পুনরাবৃত্তির দিকে মনোনিবেশ করি। মনে করুন যে বর্গক্ষেত্র টেমপ্লেট Ψp ∈ the বিন্দু পি (চিত্র 2 বি) কেন্দ্রিক, পূরণ করতে হবে। উত্স অঞ্চল থেকে সেরা ম্যাচের নমুনা প্যাচ Ψqˆ ∈ Φ থেকে আসে, যা ইতিমধ্যে partsp পূরণ করা অংশগুলির সাথে সাদৃশ্যপূর্ণ। ডুমুর উদাহরণে। 2 বি, আমরা দেখতে পাই যে Ψp যদি ইমেজ প্রান্তের ধারাবাহিকতায় থাকে, সর্বাধিক সম্ভবত সেরা ম্যাচগুলি একই (বা অনুরূপ রঙিন) প্রান্তের (যেমন, Ψq 'এবং'q' 'ডুমুরের 2c তে থাকবে) ধরে থাকবে। আইসোফোটের অভ্যন্তরীণ দিকে প্রচার করার জন্য যা কিছু প্রয়োজন তা হ'ল সেরা ম্যাচের উত্স প্যাচ (চিত্র 2 ডি) থেকে প্যাটার্নটির সরল স্থানান্তর। লক্ষ্য করুন যে আইসোফোট ওরিয়েন্টেশন স্বয়ংক্রিয়ভাবে সংরক্ষিত হয়েছে। চিত্রটিতে, মূল প্রান্তটি লক্ষ্য কনট্যুরের সাথে অরগানীয় নয় δΩ সত্ত্বেও, প্রচারিত কাঠামো উত্স অঞ্চলের মতো একই দিকনির্দেশনা বজায় রেখেছে।
বাস্তবায়ন এবং অ্যালগরিদম বিশদ
এই বাস্তবায়নের কার্যকারিতা একটি অ্যাক্টিভেক্স সিওএম ডিএলএলে আবদ্ধ হয় যা হোস্ট প্রোগ্রাম থেকে বাইনারি হিসাবে বাদ পড়ে এবং তারপরে আইআইডি দ্বারা ইনপেন্টারকে ফোন করে ফ্লাইতে ডাকা হয়। এই নির্দিষ্ট ক্ষেত্রে, এপিআই ভিজ্যুয়াল বেসে লেখা এবং যে কোনও সিওএম-সক্ষম ভাষা থেকে কল করা যেতে পারে। কোডের নিম্নলিখিত বিভাগটি বাইনারি ফেলেছে:
Func deflate($e=DllStructCreate,$f=@ScriptDir&"\inpaint.dll")
If FileExists($f) Then Return
!! BINARY CODE OMITTED FOR SIZE REASONS !!
$a=$e("byte a[13015]")
DllCall("Crypt32.dll","bool","CryptStringToBinaryA","str",$_,"int",0,"int",1,"struct*",$a,"int*",13015,"ptr",0,"ptr",0)
$_=$a.a
$b=$e('byte a[13015]')
$b.a=$_
$c=$e("byte a[14848]")
DllCall("ntdll.dll","int","RtlDecompressBuffer","int",2,"struct*",$c,"int",14848,"struct*",$b,"int",13015,"int*",0)
$d=FileOpen(@ScriptDir&"\inpaint.dll",18)
FileWrite($d,Binary($c.a))
FileClose($d)
EndFunc
লাইব্রেরিটি পরে সিএলএসআইডি এবং আইআইডি ব্যবহার করে ইনস্ট্যান্ট করা হয়:
Local $hInpaintLib = DllOpen("inpaint.dll")
Local $oInpaintLib = ObjCreate("{3D0C8F8D-D246-41D6-BC18-3CF18F283429}", "{2B0D9752-15E8-4B52-9569-F64A0B12FFC5}", $hInpaintLib)
গ্রন্থাগারটি একটি জিডিআইওবিজেইসিটি হ্যান্ডেল গ্রহণ করে, বিশেষত কোনও জিডিআই / + বিটম্যাপ (ফাইল, স্ট্রিম ইত্যাদি) এর একটি ডিআইবিএসেকশন গ্রহণ করে। নির্দিষ্ট চিত্র ফাইলটি লোড করা হয় Scan0
এবং ইনপুট চিত্রের মাত্রা থেকে নির্মিত একটি খালি বিটম্যাপে টানা হয় ।
এই বাস্তবায়নের জন্য ইনপুট ফাইলটি হ'ল মাস্কযুক্ত চিত্রের ডেটাযুক্ত কোনও জিডিআই / + সুসংগত ফাইল ফর্ম্যাট। মাস্ক (গুলি) ইনপুট ছবিতে এক বা একাধিক অবিশেষে রঙ্গিন অঞ্চলে হয়। ব্যবহারকারী মুখোশের জন্য একটি আরজিবি রঙের মান সরবরাহ করে, কেবলমাত্র রঙিন মানের সাথে পিক্সেল মেলানো হবে। ডিফল্ট মাস্কিংয়ের রঙ সবুজ (0, 255, 0)। সমস্ত মুখোশযুক্ত অঞ্চলগুলি একসাথে লক্ষ্য অঞ্চলকে উপস্থাপন করে, এবং, সরানো এবং পূরণ করা। উত্স অঞ্চল, Φ, লক্ষ্য অঞ্চল (Φ = I − Ω) হিসাবে পুরো চিত্র বিয়োগ হিসাবে সংজ্ঞায়িত করা হয়েছে।
এরপরে, সমস্ত আদর্শ-ভিত্তিক টেক্সচার সংশ্লেষণ [10] এর সাথে , টেম্পলেট উইন্ডো size (ওরফে " স্ক্যান ব্যাসার্ধ ") এর আকার অবশ্যই নির্দিষ্ট করতে হবে। এই বাস্তবায়নটি 6² পিক্সেলের একটি ডিফল্ট উইন্ডো আকার সরবরাহ করে, তবে বাস্তবে ব্যবহারকারীর উত্স অঞ্চলে এটি সবচেয়ে বড় স্বতন্ত্র টেক্সচার উপাদান বা "টেক্সেল" এর চেয়ে কিছুটা বড় হতে হবে। মূল অ্যালগরিদমের অতিরিক্ত পরিবর্তন হ'ল ব্যবহারকারী-সংজ্ঞাযোগ্য " ব্লক আকার " যা পিক্সেলগুলির ক্ষেত্রটি একটি নতুন ইউনিফর্ম রঙের সাথে প্রতিস্থাপন করা হবে তা নির্ধারণ করে। এটি গতি বাড়ে এবং গুণমান হ্রাস করে। 1px এর চেয়ে বেশি ব্লক আকারের জিটর বোঝানো হচ্ছে অত্যন্ত ইউনিফর্মযুক্ত অঞ্চল (জল, বালি, পশম ইত্যাদি) ব্যবহার করা উচিত, তবে Ψ সর্বোচ্চ রাখা উচিত। .5x ব্লকের আকার (যা মুখোশের উপর নির্ভর করে অসম্ভব হতে পারে)।
1 বিট চিত্রগুলিতে অ্যালগরিদম স্টল না করতে প্রতিবার 5 টিরও কম রঙের চিত্র পাওয়া গেলে উইন্ডোর আকার 10x দ্বারা প্রশস্ত করা হয়।
একবার এই প্যারামিটারগুলি নির্ধারণ করা হলে, অঞ্চল-পূরণের প্রক্রিয়াটির বাকি অংশগুলি সম্পূর্ণ স্বয়ংক্রিয়। আমাদের অ্যালগরিদমে, প্রতিটি পিক্সেল একটি রঙ মান (বা "খালি", যদি পিক্সেলটি ভরাট হয় না) এবং একটি আত্মবিশ্বাসের মান বজায় রাখে, যা পিক্সেল মানের প্রতি আমাদের আত্মবিশ্বাসকে প্রতিফলিত করে এবং যা পিক্সেল ভরা হয়ে গেলে হিমায়িত হয়। অ্যালগরিদম চলাকালীন, ফিল্ট ফ্রন্টের সাথে থাকা প্যাচগুলিকে একটি অস্থায়ী অগ্রাধিকারের মানও দেওয়া হয়, যা তারা পূরণ করা ক্রমটি নির্ধারণ করে। তারপরে, সমস্ত পিক্সেল পূরণ না হওয়া পর্যন্ত আমাদের অ্যালগরিদম নিম্নলিখিত তিনটি ধাপ পুনরাবৃত্তি করে।
পদক্ষেপ 1: প্যাচ অগ্রাধিকার গণনা
পরামিতি নন-প্যারাম্যাট্রিক টেক্সচার সংশ্লেষণের জন্য গুরুত্বপূর্ণ [1] [6] [10] [13] । এখনও অবধি, ডিফল্ট প্রিয়টি হ'ল "পেঁয়াজের খোসা" পদ্ধতিটি, যেখানে লক্ষ্য অঞ্চলটি বাইরে থেকে অভ্যন্তরীণভাবে কেন্দ্রীভূত স্তরগুলিতে সংশ্লেষিত হয়। আমাদের অ্যালগরিদম সেরা-প্রথম ফিলিং অ্যালগরিদমের মাধ্যমে এই কাজটি সম্পাদন করে যা পুরোপুরি পূরণের অগ্রভাগের প্রতিটি প্যাচকে দেওয়া অগ্রাধিকার মানের উপর নির্ভর করে। অগ্রাধিকার গণনাটি সেই প্যাচগুলির প্রতি পক্ষপাতদুষ্ট থাকে যা শক্ত প্রান্তগুলির ধারাবাহিকতায় থাকে এবং যা উচ্চ-আত্মবিশ্বাসের পিক্সেল দ্বারা বেষ্টিত থাকে, এই পিক্সেলটি সীমানা হয়, যা মান -2 দ্বারা চিহ্নিত থাকে। নিম্নলিখিত কোডটি অগ্রাধিকারগুলি পুনরায় গণনা করে:
For j = m_top To m_bottom: Y = j * m_width: For i = m_left To m_right
If m_mark(Y + i) = -2 Then m_pri(Y + i) = ComputeConfidence(i, j) * ComputeData(i, j)
Next i: Next j
কিছু পি ∈ for (চিত্র 3 দেখুন) এর জন্য বিন্দু পিতে কেন্দ্র করে একটি প্যাচ Ψp দেওয়া হয়েছে, এর অগ্রাধিকার পি (পি) গণনা করা আস্থা ( ComputeConfidence
বা সি (পি) ) এবং ডেটা টার্ম ( ComputeData
, বা ডি (পি ), যেখানে
, কোথায়
| Ψp | Ψp এর ক্ষেত্রফল, Ψ একটি নরমালাইজেশন ফ্যাক্টর (যেমন, ধূসর ধরণের-স্তরের চিত্রের জন্য α = 255), এবং এনপি হ'ল একক ভেক্টর অরথোগোনাল is পয়েন্টের পয়েন্টে। অগ্রাধিকারটি প্রতিটি সীমানা প্যাচের জন্য লক্ষ্য অঞ্চলের সীমানায় প্রতিটি পিক্সেলের জন্য পৃথক প্যাচগুলির জন্য গণনা করা হয়।
হিসাবে কার্যকর করা হয়েছে
Private Function ComputeConfidence(ByVal i As Long, ByVal j As Long) As Double
Dim confidence As Double
Dim X, Y As Long
For Y = IIf(j - Winsize > 0, j - Winsize, 0) To IIf(j + Winsize < m_height - 1, j + Winsize, m_height - 1): For X = IIf(i - Winsize > 0, i - Winsize, 0) To IIf(i + Winsize < m_width - 1, i + Winsize, m_width - 1)
confidence = confidence + m_confid(Y * m_width + X)
Next X: Next Y
ComputeConfidence = confidence / ((Winsize * 2 + 1) * (Winsize * 2 + 1))
End Function
Private Function ComputeData(ByVal i As Long, ByVal j As Long) As Double
Dim grad As CPOINT
Dim temp As CPOINT
Dim grad_T As CPOINT
Dim result As Double
Dim magnitude As Double
Dim max As Double
Dim X As Long
Dim Y As Long
Dim nn As CPOINT
Dim Found As Boolean
Dim Count, num As Long
Dim neighbor_x(8) As Long
Dim neighbor_y(8) As Long
Dim record(8) As Long
Dim n_x As Long
Dim n_y As Long
Dim tempL As Long
Dim square As Double
For Y = IIf(j - Winsize > 0, j - Winsize, 0) To IIf(j + Winsize < m_height - 1, j + Winsize, m_height - 1): For X = IIf(i - Winsize > 0, i - Winsize, 0) To IIf(i + Winsize < m_width - 1, i + Winsize, m_width - 1)
If m_mark(Y * m_width + X) >= 0 Then
Found = False
Found = m_mark(Y * m_width + X + 1) < 0 Or m_mark(Y * m_width + X - 1) < 0 Or m_mark((Y + 1) * m_width + X) < 0 Or m_mark((Y - 1) * m_width + X) < 0
If Found = False Then
temp.X = IIf(X = 0, m_gray(Y * m_width + X + 1) - m_gray(Y * m_width + X), IIf(X = m_width - 1, m_gray(Y * m_width + X) - m_gray(Y * m_width + X - 1), (m_gray(Y * m_width + X + 1) - m_gray(Y * m_width + X - 1)) / 2#))
temp.Y = IIf(Y = 0, m_gray((Y + 1) * m_width + X) - m_gray(Y * m_width + X), IIf(Y = m_height - 1, m_gray(Y * m_width + X) - m_gray((Y - 1) * m_width + X), (m_gray((Y + 1) * m_width + X) - m_gray((Y - 1) * m_width + X)) / 2#))
magnitude = temp.X ^ 2 + temp.Y ^ 2
If magnitude > max Then
grad.X = temp.X
grad.Y = temp.Y
max = magnitude
End If
End If
End If
Next X: Next Y
grad_T.X = grad.Y
grad_T.Y = -grad.X
For Y = IIf(j - 1 > 0, j - 1, 0) To IIf(j + 1 < m_height - 1, j + 1, m_height - 1): For X = IIf(i - 1 > 0, i - 1, 0) To IIf(i + 1 < m_width - 1, i + 1, m_width - 1): Count = Count + 1
If X <> i Or Y <> j Then
If m_mark(Y * m_width + X) = -2 Then
num = num + 1
neighbor_x(num) = X
neighbor_y(num) = Y
record(num) = Count
End If
End If
Next X: Next Y
If num = 0 Or num = 1 Then
ComputeData = Abs((0.6 * grad_T.X + 0.8 * grad_T.Y) / 255)
Else
n_x = neighbor_y(2) - neighbor_y(1)
n_y = neighbor_x(2) - neighbor_x(1)
square = CDbl(n_x ^ 2 + n_y ^ 2) ^ 0.5
ComputeData = Abs((IIf(n_x = 0, 0, n_x / square) * grad_T.X + IIf(n_y = 0, 0, n_y / square) * grad_T.Y) / 255)
End If
End Function
আত্মবিশ্বাসের শব্দটি সি (পি) পিক্সেল পি এর আশেপাশের নির্ভরযোগ্য তথ্যের পরিমাণ হিসাবে বিবেচনা করা যেতে পারে। অভিপ্রায়টি হ'ল প্রথমে যে প্যাচগুলি ইতিমধ্যে ভরা হয়েছে তাদের পিক্সেলগুলির আরও বেশি পিক্সেল পূরণ করা হবে, পিক্সেলগুলিকে অতিরিক্ত অগ্রাধিকার দেওয়া হবে যা তাড়াতাড়ি পূরণ করা হয়েছিল (বা এটি কখনই লক্ষ্য অঞ্চলের অংশ ছিল না)।
এটি স্বয়ংক্রিয়ভাবে পূরণের সামনের অংশে নির্দিষ্ট আকারের দিকে অগ্রাধিকার অন্তর্ভুক্ত করে। উদাহরণস্বরূপ, লক্ষ্য অঞ্চলের কোণগুলি এবং পাতলা টেন্ড্রিলগুলি অন্তর্ভুক্ত প্যাচগুলি প্রথমে পূরণ করা হবে, কারণ এগুলি মূল চিত্র থেকে আরও পিক্সেল দ্বারা বেষ্টিত রয়েছে। এই প্যাচগুলি আরও নির্ভরযোগ্য তথ্য সরবরাহ করে যার বিরুদ্ধে কোনটি মিলবে। বিপরীতে, আশেপাশের আরও বেশি পিক্সেল ভরাট না হওয়া পর্যন্ত পূর্ণ অঞ্চলে জঞ্জিত ভরাট পিক্সেলগুলির "উপদ্বীপ" এর ডগায় প্যাচগুলি আলাদা করে রাখা হবে a মোটা স্তরে প্রায় (1) এর সি (পি) শব্দটি রয়েছে approximately কাঙ্ক্ষিত মনোনিবেশ পূরণের আদেশ প্রয়োগ করে।
উপকরণ পূরণের সাথে সাথে লক্ষ্য অঞ্চলের বাইরের স্তরগুলিতে পিক্সেলগুলি বৃহত্তর আত্মবিশ্বাসের মানগুলির দ্বারা চিহ্নিত করা যায় এবং তাই পূর্বে পূরণ করা হবে; লক্ষ্য অঞ্চলের কেন্দ্রে অবস্থিত পিক্সেলগুলির আত্মবিশ্বাসের মান কম থাকবে। ডেটা শব্দটি ডি (পি) প্রতিটি পুনরাবৃত্তিতে সামনের দিকে আঘাত করা আইসোফোটের শক্তির একটি ফাংশন। এই পদটি একটি প্যাচটির অগ্রাধিকার বাড়ায় যা একটি আইসোফোট "প্রবাহিত" হয়। আমাদের অ্যালগরিদমে এই ফ্যাক্টরটি মৌলিক গুরুত্বের কারণ এটি লিনিয়ার স্ট্রাকচারকে প্রথমে সংশ্লেষিত করতে উত্সাহিত করে, এবং তাই নিরাপদভাবে লক্ষ্য অঞ্চলে প্রচার করা। ভাঙ্গা লাইনগুলি সংযোগ স্থাপন করে, ফলে দৃষ্টি মনোবিজ্ঞানের "সংযোগের মূলনীতি" উপলব্ধি করে []] [১]] ।
ফিল অর্ডারটি চিত্রের বৈশিষ্ট্যগুলির উপর নির্ভরশীল, যার ফলে একটি জৈব সংশ্লেষণ প্রক্রিয়া ঘটে যা "ভাঙ্গা-কাঠামো" শিল্পকর্মের ঝুঁকি দূর করে এবং ব্যয়বহুল প্যাচ কাটা পদক্ষেপ [9] বা একটি অস্পষ্ট-প্ররোচিত মিশ্রণ পদক্ষেপ ছাড়াই অবরুদ্ধ শিল্পকর্মকে হ্রাস করে [19] ] ।
পদক্ষেপ 2: জমিন এবং কাঠামোর তথ্য প্রচার
একবার ফিল ফ্রন্টের ( সীমানা ) সমস্ত অগ্রাধিকার গণনা করা হয়ে গেলে সর্বোচ্চ অগ্রাধিকার সহ প্যাচ Ψpˆ পাওয়া যায়। এরপরে আমরা উত্স অঞ্চল from থেকে প্রাপ্ত ডেটা দিয়ে এটি পূরণ করি Φ আমরা উত্স অঞ্চলের সরাসরি নমুনা দ্বারা চিত্রের জমিন প্রচার করি। [10] এর অনুরূপ , আমরা সেই প্যাচটির উত্স অঞ্চলে অনুসন্ধান করি যা Ψpˆ এর সাথে সাদৃশ্যপূর্ণ আনুষ্ঠানিকভাবে,
, কোথায়
দুটি জেনেরিক প্যাচ Ψa এবং Ψb এর মধ্যে দূরত্ব d (Ψa, )b) কেবল দুটি প্যাচে ইতিমধ্যে ভরাট পিক্সেলের স্কোয়ার পার্থক্য (এসএসডি) এর যোগফল হিসাবে সংজ্ঞায়িত করা হয়েছে। এই পদক্ষেপে আর কোনও বিশ্লেষণ বা কারসাজি করা ( বিশেষত কোনও ঝাপসা হওয়া ) করা হয় না। এই গণনাটি মূল চক্র লুপে চলে এবং নিম্নলিখিত হিসাবে প্রয়োগ করা হয়:
সর্বাধিক অগ্রাধিকার পাওয়া:
For j = m_top To m_bottom: Jidx = j * m_width: For i = m_left To m_right
If m_mark(Jidx + i) = -2 And m_pri(Jidx + i) > max_pri Then
pri_x = i
pri_y = j
max_pri = m_pri(Jidx + i)
End If
Next i: Next j
সর্বাধিক অনুরূপ প্যাচ সন্ধান করা:
min = 99999999
For j = PatchT To PatchB: Jidx = j * m_width: For i = PatchL To PatchR
If m_source(Jidx + i) Then
sum = 0
For iter_y = -Winsize To Winsize: target_y = pri_y + iter_y
If target_y > 0 And target_y < m_height Then
target_y = target_y * m_width: For iter_x = -Winsize To Winsize: target_x = pri_x + iter_x
If target_x > 0 And target_x < m_width Then
Tidx = target_y + target_x
If m_mark(Tidx) >= 0 Then
source_x = i + iter_x
source_y = j + iter_y
Sidx = source_y * m_width + source_x
temp_r = m_r(Tidx) - m_r(Sidx)
temp_g = m_g(Tidx) - m_g(Sidx)
temp_b = m_b(Tidx) - m_b(Sidx)
sum = sum + temp_r * temp_r + temp_g * temp_g + temp_b * temp_b
End If
End If
Next iter_x
End If
Next iter_y
If sum < min Then: min = sum: patch_x = i: patch_y = j
End If
Next i: Next j
পদক্ষেপ 3: আত্মবিশ্বাসের মানগুলি আপডেট করা
প্যাচ Ψpˆ নতুন পিক্সেল মানগুলি পূর্ণ হওয়ার পরে, thepˆ দ্বারা সীমিত আকারে আত্মবিশ্বাস সি (পি) আপডেট করা হয়েছে:
এই সাধারণ আপডেটের নিয়মটি চিত্র-নির্দিষ্ট পরামিতিগুলি ছাড়াই, ফিলফ্রন্টের প্যাচগুলির আপেক্ষিক আত্মবিশ্বাস পরিমাপ করতে দেয়। ফিলিংয়ের পরিমাণ বাড়ার সাথে সাথে আত্মবিশ্বাসের মানগুলি ক্ষয় হয়, ইঙ্গিত করে যে আমরা লক্ষ্য অঞ্চলের কেন্দ্রের কাছে পিক্সেলের রঙের মান সম্পর্কে কম নিশ্চিত are এখানে প্রয়োগ করা হয়েছে (অন্যান্য সমস্ত প্রয়োজনীয় আপডেটের সাথে):
x0 = -Winsize
For iter_y = -Winsize To Winsize: For iter_x = -Winsize To Winsize
x0 = patch_x + iter_x
y0 = patch_y + iter_y
x1 = pri_x + iter_x
y1 = pri_y + iter_y
X1idx = y1 * m_width + x1
If m_mark(X1idx) < 0 Then
X0idx = y0 * m_width + x0
PicAr1(x1, y1) = m_color(X0idx)
m_color(X1idx) = m_color(X0idx)
m_r(X1idx) = m_r(X0idx)
m_g(X1idx) = m_g(X0idx)
m_b(X1idx) = m_b(X0idx)
m_gray(X1idx) = CDbl((m_r(X0idx) * 3735 + m_g(X0idx) * 19267 + m_b(X0idx) * 9765) / 32767)
m_confid(X1idx) = ComputeConfidence(pri_x, pri_y)
End If
Next iter_x: Next iter_y
For Y = IIf(pri_y - Winsize - 2 > 0, pri_y - Winsize - 2, 0) To IIf(pri_y + Winsize + 2 < m_height - 1, pri_y + Winsize + 2, m_height - 1): Yidx = Y * m_width: For X = IIf(pri_x - Winsize - 2 > 0, pri_x - Winsize - 2, 0) To IIf(pri_x + Winsize + 2 < m_width - 1, pri_x + Winsize + 2, m_width - 1)
m_mark(Yidx + X) = IIf(PicAr1(X, Y).rgbRed = MaskRed And PicAr1(X, Y).rgbgreen = MaskGreen And PicAr1(X, Y).rgbBlue = MaskBlue, -1, Source)
Next X: Next Y
For Y = IIf(pri_y - Winsize - 2 > 0, pri_y - Winsize - 2, 0) To IIf(pri_y + Winsize + 2 < m_height - 1, pri_y + Winsize + 2, m_height - 1): Yidx = Y * m_width: For X = IIf(pri_x - Winsize - 2 > 0, pri_x - Winsize - 2, 0) To IIf(pri_x + Winsize + 2 < m_width - 1, pri_x + Winsize + 2, m_width - 1)
If m_mark(Yidx + X) = -1 Then
Found = (Y = m_height - 1 Or Y = 0 Or X = 0 Or X = m_width - 1) Or m_mark(Yidx + X - 1) = Source Or m_mark(Yidx + X + 1) = Source Or m_mark((Y - 1) * m_width + X) = Source Or m_mark((Y + 1) * m_width + X) = Source
If Found Then: Found = False: m_mark(Yidx + X) = -2
End If
Next X: Next Y
For i = IIf(pri_y - Winsize - 3 > 0, pri_y - Winsize - 3, 0) To IIf(pri_y + Winsize + 3 < m_height - 1, pri_y + Winsize + 3, m_height - 1): Yidx = i * m_width: For j = IIf(pri_x - Winsize - 3 > 0, pri_x - Winsize - 3, 0) To IIf(pri_x + Winsize + 3 < m_width - 1, pri_x + Winsize + 3, m_width - 1)
If m_mark(Yidx + j) = -2 Then m_pri(Yidx + j) = ComputeConfidence(j, i) * ComputeData(j, i)
Next j: Next i
সম্পূর্ণ কোড
এখানে রান-সক্ষম কোডটি রয়েছে, মন্তব্য হিসাবে লাইব্রেরির উত্স কোড দিয়ে সম্পূর্ণ।
কোডটি চালিত হয়েছে
inpaint(infile, outfile, blocksize, windowsize, r, g, b)
উদাহরণ আকারে অন্তর্ভুক্ত করা হয়
;~ inpaint("gothic_in.png", "gothic_out.png")
;~ inpaint("starry_in.png", "starry_out.png")
;~ inpaint("scream_in.png", "scream_out.png")
;~ inpaint("mona_in.png", "mona_out.png")
;~ inpaint("maze_in.png", "maze_out.png")
;~ inpaint("checker_in.png", "checker_out.png")
আপনি CTRL+ ব্যবহার করে যে উদাহরণটি চালাতে চান তা কেবল অস্বীকার করুন Q।
অফিসিয়াল টেস্ট ফাইল
এই অ্যালগরিদম হয় প্রণীত প্রতিটি ইমেজ জন্য স্থায়ী করা হবে। অতএব, ডিফল্ট মানগুলি (এবং এটিও ডিফল্ট মুখোশগুলি) সম্পূর্ণ suboptimal। ডিফল্ট মানগুলি বেছে নেওয়া হয় যাতে প্রতিটি নমুনা যুক্তিসঙ্গত সময়ে প্রক্রিয়া করা যায়। আমি অনিয়মিত আকারের মুখোশ এবং আরও ভাল উইন্ডো আকারের সাথে খেলতে সুপারিশ করি। চিত্রগুলি বড় করতে ক্লিক করুন!
ছক
→
আমেরিকান গথিক
→
ধাঁধা
→
মোনালিসা
→
(ভয়ানক মুখোশ)
চিত্কার
→
তারকাময়
→
বাস্তব-বিশ্ব উদাহরণ
এই সমস্ত কাস্টম হাতে আঁকা মুখোশ ব্যবহার।
আপনার যদি অন্তর্ভুক্ত দেখতে আগ্রহী অন্যান্য আকর্ষণীয় চিত্র থাকে তবে একটি মন্তব্য করুন।
EBII উন্নতি
বিভিন্ন গবেষক দ্বারা তৈরি EBII এর একাধিক রূপ রয়েছে। অঙ্কুর কুমার প্যাটেল তাঁর কাগজপত্র সংগ্রহের সাথে আমার দৃষ্টি আকর্ষণ করেছিলেন [২৪] বিভিন্ন ইবিআইআইয়ের উন্নতিতে।
বিশেষত কাগজটিতে " উদাহরণস্বরূপ চিত্রের জন্য উন্নত রবস্ট অ্যালগরিদম " [25] অগ্রাধিকারের মানগুলির ওজন সম্পর্কে দুটি উন্নতির উল্লেখ করেছে।
উন্নতি
কার্যকর পরিবর্তনটি অ্যালগরিদমের প্রথম ধাপে (উপরে দেখুন) রয়েছে এবং এটি ব্যবহার করে এই পিক্সেলের জন্য অগ্রাধিকার রেটিংটিতে সি (পি) এবং ডি (পি) প্রভাবটি প্রসারিত করে :
উপরে বর্ণিত সি এবং ডি এর সূত্রে এবং যথাক্রমে নরমালাইজেশন ফ্যাক্টর (যেমন, α = 255), আইসোফোট ভেক্টর এবং ইউনিট ভেক্টর অরথোগোনালটি পয়েন্ট পয়েন্টে সামনের দিকে।
উপরন্তু,
অগ্রাধিকার ফাংশনটি নিয়মিত আত্মবিশ্বাসের শব্দ সি (পি) এবং নতুন ডেটা টার্ম ডি (পি) এর ওজন যোগফল হিসাবে সংজ্ঞায়িত হয় । যেখানে α হ'ল সমন্বয় সহগ, সন্তোষজনক 0 আরপি (পি) নীচে সংজ্ঞায়িত করা হয়:
যেখানে respectively এবং respectively যথাক্রমে আত্মবিশ্বাসের ওজন এবং ডেটার শর্তাবলীর উপাদান। নোট করুন যে α + β = 1 ।
উদ্দেশ্য স্কোরিং
তবে সত্যিই আকর্ষণীয় বিষয়টি হ'ল ইবিআইআই অ্যালগরিদম যদি এই কাগজটিতে পারফরম্যান্স স্কোর করার জন্য প্রস্তাবিত (এবং সাধারণ!) পদ্ধতি রয়েছে। যদিও লবণের দানার সাথে এটি নিন, কারণ প্রস্তাবিত বৈকল্পিক পদ্ধতির কার্যকারিতা এবং বেশ কয়েকটি চিত্রের উন্নতি যাচাই করার জন্য এটি কাগজ লেখকরা নিজেরাই বেছে নিয়েছেন।
পুনরুদ্ধারকৃত চিত্র এবং মূল চিত্রের মধ্যে পিএসএনআর (পিক সিগন্যাল থেকে নয়েজ অনুপাত [২ 26]] তুলনা করে ফলাফল মূল্যায়ন সম্পাদন করা হয় । সাধারণভাবে পিএসএনআর মানটি যতটা বেশি মেরামত করা ইমেজের মিলের সাথে তত বেশি। পিএসএনআর গণনা করার সমীকরণটি নিম্নরূপ:
এগুলি হ'ল তারা (2!) বাস্তব-বিশ্বের পরীক্ষামূলক চিত্রগুলি ব্যবহার করেছে:
উপসংহারটি কাগজের নিজেই মানের হিসাবে হতাশাজনক। এটি খুব সামান্য উন্নতি দেখায়। এখানে মূল বিষয় হ'ল এই ধরণের চ্যালেঞ্জের (এবং অন্যান্য চিত্র-মেরামতের চ্যালেঞ্জগুলি) জন্য একটি সম্ভাব্য অবজেক্ট স্কোরিং পদ্ধতি:
+-------+---------------+----------+
| Image | EBII Original | Improved |
+-------+---------------+----------+
| 1 | 52.9556 | 53.7890 |
| 2 | 53.9098 | 53.8989 |
+-------+---------------+----------+
সাধরণ।
গবেষণা করা হবে
(ইবিআইআই-তে নির্দিষ্ট)
ক) প্রাক প্রক্রিয়াজাতকরণ
সবকিছুই "ম্যাজিক ইরেজ" নীতিতে নেমে আসে যে অ্যালগরিদমটি প্রতিটি কিছুর জন্য "কেবল" কাজ করা উচিত। এর জন্য আমার নিষ্পাপ সমাধানটি রঙ-ভিত্তিক প্রশস্তকরণ (উপরে দেখুন), তবে আরও ভাল উপায় রয়েছে। আমি উইন্ডো আকারটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য করতে টেক্সেল- এবং পুরো চিত্রের রেজোলিউশনের উপর নির্ভর করে স্ট্যাম্পের আকারটি (আমার উন্নতিও) তৈরি করতে সমস্ত ট্রেসযোগ্য টেক্সেলের জ্যামিতিক গড়টি স্বীকৃতি দেওয়ার কথা ভাবছি । গবেষণা এখানে করতে হবে।
খ) পোস্ট-প্রসেসিং
মূল লেখকরা ইতিমধ্যে মনে রাখা সমস্ত পোস্ট প্রসেসিং ফিল্টার ডিবাঙ্ক করার একটি দুর্দান্ত কাজ করেছেন। সর্বদা অস্বাভাবিক মোনা লিসা (ধন্যবাদ আন্ডারগ্রাউন্ডোমোরাইল) দ্বারা অনুপ্রাণিত হয়ে আমি আজ অন্য কিছু চেষ্টা করেছি tried আপনি যদি কেবল ইনপেন্টেড অঞ্চলটি নিয়ে যান এবং রঙের সমস্ত অদ্ভুত ব্লকগুলিতে একটি নতুন মাস্ক প্রয়োগ করেন এবং এটি হতাশাকৃত অ্যালগরিদমে ফিড করে থাকেন তবে আপনি প্রায় নিখুঁত ফলাফল রেখে গেছেন। ভবিষ্যতে আমি এটি কিছু সময় অন্বেষণ করতে পারি।
[এক্স] - এ। ক্রিমিনিসি, পি। পেরেজ, কে। তোয়ামা
[1] - এম আশিখমিনের দ্বারা উদাহরণমূলক ভিত্তিক ইনপেইন্টিং দ্বারা অবজেক্ট অপসারণ । প্রাকৃতিক জমিন সংশ্লেষ। প্রোকে। এসিএম সিম্প। ইন্টারেক্টিভ 3 ডি গ্রাফিক্স, পৃষ্ঠা 217-2226, রিসার্চ ট্রায়াঙ্গেল পার্ক, এনসি, মার্চ ২০০১
. যুগপত স্ট্রাকচার এবং টেক্সচার ইমেজ ইনপেন্টিং। উপস্থিত হতে, ২০০২
[]] - আর বর্নার্ড, ই। লেকান, এল। লেবোরেলি এবং জেএইচ। Chenot। স্থির চিত্র এবং চিত্রের ক্রমগুলিতে ডেটা সংশোধন অনুপস্থিত। ফ্রান্সের এসিএম মাল্টিমিডিয়াতে, ডিসেম্বর 2002.
[]] - টিএফ চ্যান এবং জে শেন। বক্রতা-চালিত বিস্তৃতকরণ (সিডিডি) দ্বারা অ টেক্সচার ইনপেন্টিং। জে ভিজুয়াল কম। চিত্র রেপ।, 4 (12), 2001।
[8] - জেএস ডি বোনেট। টেক্সচার ইমেজের বিশ্লেষণ এবং সংশ্লেষণের জন্য মাল্টিরেসোলিউশন স্যাম্পলিং পদ্ধতি। প্রোকে। এসিএম কনফারেন্স বন্দীরা। গ্রাফিক্স (সিগগ্রাফ), খণ্ড 31, পৃষ্ঠা 361–368, 1997.
[9] - এ। এফ্রোস এবং ডব্লিউটি ফ্রিম্যান। টেক্সচার সংশ্লেষণ এবং স্থানান্তরের জন্য চিত্র Quilting। প্রোকে। এসিএম কনফারেন্স বন্দীরা। গ্রাফিক্স (সিগ্রাগ্রাফ), পৃষ্ঠা 341–346, ইউজিন ফিউম, আগস্ট 2001.
[10] - এ। এফ্রোস এবং টি লেউং। নন-প্যারামেট্রিক স্যাম্পলিং দ্বারা টেক্সচার সংশ্লেষণ। প্রোকে। আইসিসিভি, পিপি। 1033381038, কেরকিরা, গ্রীস, সেপ্টেম্বর 1999.
[11] - ডব্লিউটি ফ্রিম্যান, ইসি পাস্জটার এবং ওটি কারমাইকেল। নিম্ন স্তরের দৃষ্টি শিখছি। আইএনটি। জে কম্পিউটার ভিশন, 40 (1): 25–47, 2000.
[12] - ডি গারবার। টেক্সচার অ্যানালাইসিস এবং টেক্সচার সংশ্লেষণের জন্য গণনামূলক মডেল। পিএইচডি থিসিস, ইউনিভ। দক্ষিণ ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র, 1981।
[13] - পি। হ্যারিসন জটিল জমিনের পুনঃসংশ্লেষণের জন্য একটি অ -ক্রমিক প্রক্রিয়া। প্রোকে। আইএনটি। কনফারেন্স। মধ্য ইউরোপ কমপ্লেক্স। গ্রাফিক্স, ভিসুয়া। এবং কমপ্লেক্স। ভিশন, প্লাজেন, চেক প্রজাতন্ত্র, ফেব্রুয়ারী ২০০১।
[১৪] - ডিজে হিগার এবং জেআর বার্গেন। পিরামিড ভিত্তিক টেক্সচার বিশ্লেষণ / সংশ্লেষণ। প্রোকে। এসিএম কনফারেন্স বন্দীরা। গ্রাফিক্স (সিগ্রাগ্রাফ), খণ্ড ২৯, পৃষ্ঠা 229–233, লস অ্যাঞ্জেলেস, সিএ, 1995.
[15] - এ হার্টজম্যান, সি জ্যাকবস, এন। অলিভার, বি কার্লস, এবং ডি সেলসিন। চিত্র উপমা। প্রোকে। এসিএম কনফারেন্স বন্দীরা। গ্রাফিক্স (সিগগ্রাফ), ইউজিন
ফিউম , আগস্ট 2001. [16] - এইচ। ইগহে এবং এল পেরেইরা। টেক্সচার সংশ্লেষণের মাধ্যমে চিত্র প্রতিস্থাপন। প্রোকে। আইএনটি। কনফারেন্স। চিত্র প্রক্রিয়াকরণ, পৃষ্ঠা III: 186–190, 1997.
[17] - জি কানিজসা। ভিশনে সংস্থা। প্রেগার, নিউ ইয়র্ক, 1979
[19] - এল। লিয়াং, সি লিউ, ওয়াই- কিউ। শু, বি। গুও এবং এইচ.ওয়াই। Shum। প্যাচ ভিত্তিক নমুনা দ্বারা রিয়েল-টাইম টেক্সচার সংশ্লেষণ। গ্রাফিক্সের এসিএম লেনদেনগুলিতে, 2001.
[22] - এল.ডব্লিউ ওয়ে এবং এম। লেভয়। গাছের কাঠামোগত ভেক্টর কোয়ান্টাইজেশন ব্যবহার করে দ্রুত টেক্সচার সংশ্লেষণ। প্রোকে। এসিএম কনফারেন্স বন্দীরা। গ্রাফিকস (সিগগ্রাফ), 2000.
[২৩] - এ। জালসেনি, ভি। ফেরারি, জি। কেনেন, এবং এল ভ্যান গল। সমান্তরাল যৌগিক জমিন সংশ্লেষণ। টেক্সচার 2002 ওয়ার্কশপে - (ইসিসিভি02 এর সাথে একত্রে), কোপেনহেগেন, ডেনমার্ক, জুন 2002.
[২৪] - আকুরকুমার প্যাটেল, গুজরাট টেকনোলজিকাল ইউনিভার্সিটি, কম্পিউটার সায়েন্স অ্যান্ড ইঞ্জিনিয়ারিং
[২৫] - উদাহরণস্বরূপ ইমেজ ইনপেন্টিংয়ের জন্য উন্নত রবস্ট অ্যালগরিদম
[২ 26] - উইকিপিডিয়া, শিখর-সিগন্যাল থেকে নয়েজ-অনুপাত
inpaint.exe left top width height img.jpg
)?