সুচিপত্র:
- ধাপ 1: প্রয়োজনীয়তা
- ধাপ 2: ভিপিএস সেটআপ
- ধাপ 3: প্রক্রিয়া
- ধাপ 4: নেতিবাচক এবং ইতিবাচক
- ধাপ 5: স্টেলারিয়াম নিয়ন্ত্রণ
- ধাপ 6: রকেট ম্যান
- ধাপ 7: Fiducial চিহ্নিতকারী
- ধাপ 8: ক্যাসকেড ব্যবহার করা
- ধাপ 9: মিথ্যা ইতিবাচক সম্পর্কে কীভাবে ইতিবাচক থাকবেন
- ধাপ 10: আলোচনা
- ধাপ 11: শেষ শব্দ
ভিডিও: কম্পিউটার ভিশন (ওপেনসিভি) ব্যবহার করে তারকা স্বীকৃতি: 11 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:58
এই নির্দেশনাটি আপনাকে বর্ণনা করবে কিভাবে একটি কম্পিউটারের ভিশন প্রোগ্রাম তৈরি করতে হয় যাতে একটি ছবিতে স্বয়ংক্রিয়ভাবে তারকা নিদর্শন সনাক্ত করা যায়। পদ্ধতিটি ওপেনসিভি (ওপেন-সোর্স কম্পিউটার ভিশন) লাইব্রেরি ব্যবহার করে প্রশিক্ষিত এইচএএআর ক্যাসকেডগুলির একটি সেট তৈরি করে যা নির্দিষ্ট তারকা নিদর্শনগুলি সনাক্ত করতে ব্যবহার করা যেতে পারে। যদিও এই নির্দেশিকাটি তারকা প্যাটার্ন স্বীকৃতি প্রসঙ্গে, আমি যে ওপেনসিভি প্রক্রিয়াটি বর্ণনা করেছি তা অন্যান্য অ্যাপ্লিকেশনগুলিতেও প্রয়োগ করা যেতে পারে - তাই এটি আশা করা যায় যে এটি কার্যকর হবে!
এই ভিডিওতে প্রকল্পটি সংক্ষিপ্ত করা হয়েছে:
আমি কেন এই নির্দেশযোগ্য লিখলাম?
- আমি যে স্টার প্যাটার্ন আইডেন্টিফিকেশন পদ্ধতিটি ডেভেলপ করছি আমি বিশ্বাস করি অপেশাদার জ্যোতির্বিদ্যা প্রকল্পের বিস্তৃত পরিসরে প্রয়োগ করার সম্ভাবনা আছে - সেটা টেলিস্কোপ ওরিয়েন্টেশন, অটোমেটিক ইমেজ ক্লাসিফিকেশন, অথবা শেষ পর্যন্ত একটি ওপেন সোর্স বা অপেশাদার কিউবস্যাটের স্টার সেন্সর।
- এখানে অনেক ভাল ওপেনসিভি ইন্সট্রাকটেবল আছে, কিন্তু তবুও আমি প্রাথমিকভাবে এটি শিখতে খুব কঠিন একটি প্রক্রিয়া পেয়েছি, তাই আমি আশা করি যে এই গাইডটি ওপেনসিভির জন্য এইচএএআর ক্লাসিফায়ার প্রশিক্ষণের জন্য অন্যদের জন্য একটি ভাল রেফারেন্স হবে। জ্যোতির্বিজ্ঞান হয়তো!)।
- আমি নিজে একজন প্রশিক্ষিত প্রোগ্রামার নই, তাই এই প্রকল্পটি সত্যিই আমার বোঝার দিকে ঠেলে দিয়েছে। আশা করি এই নির্দেশযোগ্য অন্যান্য, আরো অভিজ্ঞ, নির্মাতারা এই ধারণার উপর কাজ করার জন্য অনুপ্রাণিত হবে এবং এই পৃষ্ঠায় মন্তব্যের মাধ্যমে গিটহাব এবং এই নির্দেশাবলীতে অবদান রাখবে।
- অপেশাদার জ্যোতির্বিদ্যা এবং অভিযোজন পদ্ধতি আমার একটি বড় আগ্রহ, আমার আগের নির্দেশাবলী দেখুন টেলিস্কোপের জন্য একটি Arduino স্টার-ফাইন্ডার।
এই ইন্সট্রাকটেবল এর কভার ফটো হল 3U CubeSat ডিজাইনের একটি কনসেপ্ট যা আমি ডিজাইনে অংশগ্রহণ করেছি। আমি এই নির্দেশনাটি ব্যাখ্যা করার জন্য এটি ব্যবহার করেছি কারণ কম্পিউটার ভিশন স্টার রিকগনিশন সিস্টেমের আসল অ্যাপ্লিকেশনটি ছিল রাস্পবেরি পাই ভি 2 ক্যামেরা ব্যবহার করে অপেশাদার তৈরি কিউবস্যাটের জন্য একটি ওরিয়েন্টেশন সেন্সরের জন্য। কম্পিউটার ভিশন স্টার রিকগনিশনের আরো অনেক সম্ভাব্য অ্যাপ্লিকেশন আছে আমি বিশ্বাস করি, কিন্তু আমি মনে করি এটি সবচেয়ে চমৎকার!
একটি ছোট শব্দকোষ:
কম্পিউটার ভিশন সম্পর্কে শেখা মূid় পরিমাণে ব্যবহৃত বিশেষজ্ঞ শর্তাবলীর দ্বারা ধীর হয়ে যায়, তাই আমি এখানে আমাদের জন্য কিছু সংজ্ঞায়িত করব:
ক্যাসকেড - একটি নির্দিষ্ট লক্ষ্য বস্তু চিহ্নিত করার জন্য প্রশিক্ষিত একটি শ্রেণীবদ্ধকারী।
Fiducial মার্কার - একটি ইমেজ ভিজ্যুয়াল রেফারেন্স একটি বিন্দু যোগ একটি চিহ্নিতকারী।
হার - হার -এর মতো বৈশিষ্ট্য হল শ্রেণীবদ্ধ প্রশিক্ষণের জন্য ব্যবহৃত এক ধরনের ইমেজ বৈশিষ্ট্য।
ওপেনসিভি - ওপেন সোর্স কম্পিউটার ভিশন, কম্পিউটার ভিশন সরঞ্জামগুলির একটি লাইব্রেরি।
স্টেলারিয়াম - ওপেন সোর্স জ্যোতির্বিজ্ঞান সফ্টওয়্যার।
ধাপ 1: প্রয়োজনীয়তা
ওপেনসিভি একটি লিনাক্স ভিত্তিক লাইব্রেরি, তাই যদিও এটি উইন্ডোজে ভালভাবে পরিচালনা করা অনুমিতভাবে সম্ভব, তবে এটি একটি লিনাক্স পরিবেশে চালানোর জন্য আপনার কাছে অনেক সহজ সময় থাকবে (এটি আমার কাছ থেকে নিন এবং এটি সম্পূর্ণভাবে কাজ করার জন্য অনেক দিন চেষ্টা করুন উইন্ডোজ!)। একটি পরীক্ষা হিসাবে, আমি আমার রাস্পবেরি পাই 3 বি+তে ওপেনসিভি ডাউনলোড করে চালালাম, যা সফল ছিল, যদিও ক্লাসিফায়ার প্রশিক্ষণ একটি খুব র্যাম নিবিড় প্রক্রিয়া, তাই যদি আপনি এটি যেকোন গতিতে করতে চান, তাহলে প্রস্তাবিত রুট হল একটি লিনাক্স ভার্চুয়াল সার্ভার ভাড়া করা (যা প্রকৃতপক্ষে আশ্চর্যজনকভাবে সস্তা হতে পারে) কয়েক দিন/সপ্তাহ/মাসের জন্য এবং এটি একটি ডেডিকেটেড পরিবেশ হিসেবে ব্যবহার করুন যাতে ক্লাসিফায়ার প্রশিক্ষণ চালানো হয়। আপনি একটি SSH ক্লায়েন্ট যেমন Putty ব্যবহার করে একটি উইন্ডোজ পিসি থেকে সার্ভার নিয়ন্ত্রণ করতে সক্ষম হবেন। একবার ভিপিএস ব্যবহার করে ক্যাসকেডগুলি প্রশিক্ষিত হয়ে গেলে, সেগুলি আপনার উইন্ডোজ পিসিতে ডাউনলোড করা যেতে পারে এবং উইন্ডোজ পরিবেশে চিত্র স্বীকৃতি প্রোগ্রাম চালানোর জন্য পাইথন ব্যবহার করা যেতে পারে।
লিনাক্স ভার্চুয়াল সার্ভার:
HAAR ক্যাসকেড প্রশিক্ষণ প্রক্রিয়া সম্পাদনের জন্য একটি লিনাক্স ভার্চুয়াল সার্ভার (VPS) প্রয়োজন। প্রাথমিকভাবে আমি 8GB র্যাম এবং উবুন্টু 16.04.6 (LTS) x64 সহ একটি সার্ভার ভাড়া করেছিলাম, এবং পরবর্তীতে আমি যে হারে ক্যাসকেড প্রশিক্ষণ দিতে পারতাম তার দ্বিগুণ করার জন্য, যদিও আপনার কেবলমাত্র একটি সর্বনিম্ন প্রয়োজন হবে।
সফটওয়্যার:
- স্টেলারিয়াম - এটি ভার্চুয়াল প্ল্যানেটারিয়াম/জ্যোতির্বিজ্ঞান সফ্টওয়্যার, অবাধে উপলব্ধ। এটি পরীক্ষায় ব্যবহারের জন্য সিমুলেটেড স্টার ইমেজ সংগ্রহ করতে ব্যবহৃত হবে।
- পুটি - এটি একটি এসএসএইচ ক্লায়েন্ট যা কমান্ড লাইনের মাধ্যমে ভিপিএস নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
- WinSCP - এটি উইন্ডোজ পিসি থেকে ফাইল ট্রান্সফার করতে ব্যবহৃত হয়।
ধাপ 2: ভিপিএস সেটআপ
ভিপিএস চালু এবং চালু করার জন্য একটি ছোট সেটআপ প্রক্রিয়া রয়েছে। প্রথমবার এটি আপনার জন্য একটু সময় নিতে পারে, কিন্তু আপনি যদি পদক্ষেপগুলি ঘনিষ্ঠভাবে অনুসরণ করেন তবে এটি খুব জটিল নয়। এই টিউটোরিয়ালটি আমার জন্য একটি দুর্দান্ত রেফারেন্স ছিল, আমি আপনাকে এই নির্দেশের মাধ্যমে কাজ করার সময় এটি পড়ার পরামর্শ দিই। এটি লাইন অনুসারে লিনাক্স কমান্ডের সুনির্দিষ্ট বিবরণ জুড়েছে, যা চিঠিটি অনুসরণ করা প্রয়োজন।
মোটামুটি, প্রক্রিয়া জড়িত:
- সঠিক উবুন্টু সংস্করণ সহ লিনাক্স সার্ভার তৈরি করা।
- সার্ভারের আপগ্রেডিং এবং আপডেট করা।
- একটি ওয়ার্কস্পেস ডিরেক্টরি তৈরি করা, যেখানে OpenCV ইনস্টল করা আছে।
- কিছু অপরিহার্য, যেমন একটি কম্পাইলার, বিভিন্ন লাইব্রেরি এবং পাইথন বাইন্ডিং ইনস্টল করা।
এই পর্যায়ের পরে, আপনি প্রশিক্ষণ প্রক্রিয়ার জন্য প্রস্তুতি শুরু করতে প্রস্তুত।
ধাপ 3: প্রক্রিয়া
HAAR ক্যাসকেড ব্যবহার করে কম্পিউটার ভিশনের পুরো প্রক্রিয়াটি প্রথমে বেশ বিভ্রান্তিকর, তাই এই ধাপটি যুক্তিকে একটু বিস্তারিতভাবে বর্ণনা করে:
মৌলিক প্রক্রিয়া
- একটি নেগেটিভ ইমেজ ডেটাসেট বিদ্যমান, যার মধ্যে রয়েছে কয়েক হাজার ইমেজ যা আগ্রহের বস্তু ধারণ করে না। এটি VPS- এ আপলোড করতে হবে।
- একটি একক ইতিবাচক চিত্র তৈরি করা হয় যার মধ্যে আগ্রহের বস্তু থাকে। এটি VPS- এ আপলোড করতে হবে।
- একক ইতিবাচক চিত্রটি বিকৃত, বিকৃত, ঘোরানো, ইত্যাদি, নির্বাচিত পরামিতিগুলির একটি সেট দ্বারা এবং নেতিবাচক চিত্রগুলির একটি নির্বাচন দ্বারা আবৃত। এটি একটি একক চিত্র থেকে একটি বড় ইতিবাচক ডেটাসেট তৈরির একটি কৃত্রিম উপায়। (অন্যান্য বাস্তব জগতের অ্যাপ্লিকেশনের জন্য, যেমন একটি বিড়াল শনাক্ত করার জন্য, আপনি কেবল বিড়ালের কয়েক হাজার ছবি ব্যবহার করতে পারেন, কিন্তু আপনার কাছে ইতিবাচক চিত্রের এত বড় সেট না থাকলে এই পদ্ধতিটি সবসময় উপযুক্ত নয়। এখানে ব্যবহৃত কৃত্রিম পদ্ধতি কম কার্যকরী হবে, কিন্তু এটি একটি ব্যবহারের ক্ষেত্রে যেমন একমাত্র বিকল্প)
- একটি প্রশিক্ষণ প্রক্রিয়া চালানো হয়, যা পর্যায়ক্রমে কাজ করে। প্রতিটি পর্যায় একটি ক্যাসকেড প্রশিক্ষণ দেবে যাতে ইমেজসেটের মধ্যে HAAR- এর বিভিন্ন বৈশিষ্ট্য চিহ্নিত করা যায়। প্রতিটি পর্যায় সম্পন্ন হতে দ্রুতগতিতে বেশি সময় নেয় এবং প্রতিবার ক্লাসিফায়ারের কার্যকারিতা বৃদ্ধি পায় (এটি আপনার প্রশিক্ষণের জন্য ওভার ট্রেন করাও সম্ভব!)।
- একটি একক প্রশিক্ষিত ক্যাসকেড একটি একক লক্ষ্য বস্তুর সন্ধান করতে সক্ষম হবে। আপনি যদি একাধিক অনন্য বস্তু সনাক্ত করতে চান তবে আপনার প্রত্যেকের জন্য একটি প্রশিক্ষিত ক্যাসকেড প্রয়োজন হবে। এই ক্ষেত্রে, আমি অনন্য তারকা প্যাটারদের জন্য প্রায় 50 টি ভিন্ন ক্যাসকেড প্রশিক্ষণ দিয়েছিলাম, একটি সেট তৈরি করার জন্য যা উত্তর স্বর্গীয় গোলার্ধকে আবৃত করতে পারে।
- সবশেষে, একটি সনাক্তকরণ প্রোগ্রাম ব্যবহার করা হয় যা একটি ইনপুট ইমেজের বিপরীতে একটি সেটের প্রতিটি ক্যাসকেড চালায়। ক্যাসকেড ইনপুট ছবির মধ্যে তার প্রদত্ত লক্ষ্য বস্তুর সন্ধান করবে।
- সফল হলে, লক্ষ্য বস্তুটি ইনপুট চিত্রের মধ্যে চিহ্নিত করা হবে।
n.b. উদাহরণস্বরূপ যদি স্যাটেলাইট ওরিয়েন্টেশন প্রসঙ্গে ব্যবহার করা হয়, অনবোর্ড ক্যামেরা ব্যবহার করে একটি ছবি ধরা হবে। সেই চিত্রের উজ্জ্বল নক্ষত্রগুলি চিহ্নিত করা হবে, এবং সেই অবস্থানগুলিতে চিহ্নিতকারী চিহ্নিত করা হবে। এই ছবিটি তারপর প্রশিক্ষিত ক্যাসকেডের সেটে উপস্থাপন করা হয়, যা ইনপুট ইমেজটিতে লক্ষ্য বস্তুগুলির মধ্যে কোনটি আছে কিনা তা পরীক্ষা করবে। যদি সত্যিকারের ধনাত্মক সনাক্ত করা হয়, তাহলে স্যাটেলাইট বডির অক্ষের তুলনায় একটি পরিচিত নক্ষত্রের কৌণিক অবস্থান আবিষ্কৃত হয়।
ধাপ 4: নেতিবাচক এবং ইতিবাচক
নেতিবাচক
ক্যাসকেড প্রশিক্ষণের একটি সত্যিই মূল দিক হল যতটা সম্ভব নেতিবাচক চিত্রের একটি বড় ডেটাসেট থাকা। আমরা হাজার হাজার কথা বলছি, আদর্শভাবে হাজার হাজার ছবি। তাদের মধ্যে কি আছে তা আসলে কোন ব্যাপার না, লক্ষ্য শুধু ভিজ্যুয়াল তথ্য প্রদান করা। ক্লাসিফায়ার ট্রেনিং ফোল্ডারে বিভিন্ন ধরনের নেগেটিভ ইমেজ ডেটাসেট রয়েছে যা আমি সংকলিত করেছি। প্রাথমিকভাবে এগুলি কেবল স্টেলারিয়াম থেকে সংগ্রহ করা সিমুলেটেড স্টার ফিল্ড ইমেজের সমন্বয়ে গঠিত ছিল, কিন্তু পরে আমি যতগুলি র্যান্ডমাইজড ইমেজ পেয়েছি তার সাথে ডেটাসেটটি বাড়িয়েছি (হ্যাঁ, আমার ছুটির ছবি সহ …)। সবচেয়ে বড় ডেটাসেটে প্রায় 9000 ইমেজ রয়েছে, যা আমি এ পর্যন্ত তৈরি করা সবচেয়ে বড়। এটি ব্যবহার করে এটি আপনার নিজের কম্পাইল সংরক্ষণ করবে।
ইতিবাচক
ধনাত্মক চিত্র (যেটি টার্গেট স্টার প্যাটার্ন যা ক্যাসকেডকে চিনতে প্রশিক্ষণ দেওয়া হবে) স্টেলারিয়ামে একটি স্টার প্যাটার্নের স্ক্রিনশট হিসাবে শুরু হয়। একটি পাইথন প্রোগ্রাম তারপর ছবির উজ্জ্বল নক্ষত্রগুলিকে চিহ্নিত করে এবং এই তারকা অবস্থানে মার্কারগুলি (এই নির্দেশের পরে ব্যাখ্যা করা হয়েছে) ওভারলে করে। এই ছবিটি তারপর 50x50 পিক্সেল সঙ্কুচিত হয়। এটি ছোট, কিন্তু ক্যাসকেডের জন্য প্রয়োজনীয় প্রশিক্ষণের সময় এই আকার বাড়ার সাথে সাথে দ্রুত বৃদ্ধি পাবে, এবং তাই এটি গুণমান এবং সময়ের মধ্যে একটি ভাল সমঝোতা।
ধাপ 5: স্টেলারিয়াম নিয়ন্ত্রণ
গিটহাব রিপোজিটরির স্টেলারিয়াম স্ক্রিপ্টস ফোল্ডারে স্টেলারিয়ামের ব্যবহার নিয়ন্ত্রণের জন্য আমার লেখা তিনটি প্রোগ্রাম রয়েছে। সেগুলি ব্যবহার করতে, সেগুলি আপনার স্টেলারিয়াম ইনস্টল ফোল্ডারের স্ক্রিপ্ট ফোল্ডারে রাখুন। সেগুলি চালানোর জন্য, আপনি স্টেলারিয়াম মেনু থেকে স্ক্রিপ্ট উইন্ডো খুলতে পারেন, অথবা স্ক্রিপ্ট ফোল্ডারে প্রোগ্রামে ডাবল ক্লিক করে, যা স্টেলারিয়াম চালু করবে এবং অবিলম্বে নির্বাচিত প্রোগ্রামটি চালাবে।
থিসিস_4 এবং থিসিস_5 যথাক্রমে উত্তর এবং দক্ষিণে প্রায় 2000 টি ছবি ক্যাপচার করে, স্বর্গীয় গোলার্ধ। এগুলি ইতিবাচক চিত্রের বিরুদ্ধে প্রশিক্ষণের জন্য নেতিবাচক চিত্রের ডেটাবেস তৈরি করতে ব্যবহৃত হয়েছিল। দক্ষিণ এবং স্বর্গীয় গোলার্ধের ইমেজ ডেটাসেটের বিপরীতে উত্তর গোলার্ধের নক্ষত্রের নিদর্শনকে প্রশিক্ষণ দিয়ে লক্ষ্য (ধনাত্মক) তারকা প্যাটার্ন নেতিবাচক ডেটাসেটে উপস্থিত থাকবে না তা নিশ্চিত করার একটি সহজ উপায় ছিল উত্তর এবং দক্ষিণের মধ্যে পার্থক্য। (যদি নেতিবাচক ইমেজ ডেটাসেটের মধ্যে একটি ইতিবাচক চিত্র উপস্থিত থাকে তবে এটি শ্রেণীবদ্ধকের গুণমানকে প্রভাবিত করবে)।
thesis_setup এছাড়াও দরকারী - এটি স্টেলারিয়াম সেট করে যা ছবিগুলি ক্যাপচার করার জন্য উপযুক্ত হয় - যে ছবিগুলি মহাকাশ থেকে একটি দৃশ্য অনুকরণ করতে ব্যবহৃত হয়। এটি মেনু, গ্রিডলাইন, লেবেল ইত্যাদিকে স্বয়ংক্রিয়ভাবে লুকিয়ে রাখার মতো কাজ করে যাতে আপনি যখনই একটি ছবি দখল করতে চান তখন আপনার প্রয়োজন সংরক্ষণ করতে পারেন।
ধাপ 6: রকেট ম্যান
আমি প্রশিক্ষিত প্রথম ক্যাসকেড কোন তারকা নিদর্শন সঠিকভাবে সনাক্ত করতে অক্ষম ছিল। তারা খুব অবিশ্বস্ত ছিল এবং মিথ্যা ইতিবাচকতার জন্য খুব প্রবণ ছিল। আমার অনুমান ছিল যে কার্যকরীভাবে স্টেলারিয়াম থেকে তারকা ক্ষেত্রের চিত্রগুলি (মূলত একটি কালো পটভূমিতে সাদা বিন্দু) সফল শ্রেণীবিভাগের প্রশিক্ষণের জন্য যথেষ্ট HAAR- টাইপ বৈশিষ্ট্য ধারণ করার জন্য যথেষ্ট ভিজ্যুয়াল তথ্য ছিল না। আমি মনে করি এটি গভীর রাত ছিল, কিন্তু আমি একটি তারকা ক্ষেত্রের ছবিতে প্রতিটি উজ্জ্বল নক্ষত্রের অবস্থানের উপর স্বয়ংক্রিয়ভাবে একটি ছোট থাম্বনেইল চিত্র স্থাপন করার জন্য একটি প্রোগ্রাম লেখার ধারণাটি চেষ্টা করার সিদ্ধান্ত নিয়েছি।
এলটন
এটি একটি নির্বোধ পরীক্ষা ছিল, কিন্তু প্রতিটি উজ্জ্বল নক্ষত্রের স্থানে এলটন জন এর মুখের একটি ছোট ছবি যোগ করে, এই ইতিবাচক চিত্রের বিরুদ্ধে শ্রেণীবদ্ধকারীকে প্রশিক্ষণ দেওয়া এবং তারপর মূল চিত্রের বিপরীতে ক্যাসকেড চালানো, এটি সঠিকভাবে খুঁজে পেতে অনেক বেশি কার্যকর ছিল সঠিক প্যাটার্ন। আমি জানতাম আমি কিছু একটা করছি!
ধাপ 7: Fiducial চিহ্নিতকারী
যদিও 'এল্টনস' তত্ত্বটি প্রমাণ করেছে, আমার এমন একটি মার্কারের প্রয়োজন ছিল যার সম্পূর্ণ ঘূর্ণন প্রতিসাম্যতা ছিল, যাতে তারকা প্যাটার্নটি একই দৃষ্টিভঙ্গিতে উপস্থাপিত হোক না কেন। আমি মার্কার প্রকারের একটি পরিসীমা পরীক্ষা করেছি, এবং দেখতে পেয়েছি যে নীচে ডানদিকে টাইপটি সবচেয়ে কার্যকর ছিল, বিপরীত কালো এবং সাদা রিংগুলির সাথে। গিটহাব রেপোর ইতিবাচক ফোল্ডারে উপস্থাপিত পাইথন প্রোগ্রামটি দেখায় যে কীভাবে প্রদত্ত ছবিতে সবচেয়ে উজ্জ্বল নক্ষত্রগুলি চিহ্নিত করা হয় এবং এই চিহ্নগুলি স্বয়ংক্রিয়ভাবে সেই অবস্থানে আচ্ছাদিত হয়। আমরা এখন মূল তারকা নিদর্শনগুলির একটি প্রতিনিধিত্ব তৈরি করেছি যার বিরুদ্ধে প্রশিক্ষণ দেওয়া যেতে পারে।
ধাপ 8: ক্যাসকেড ব্যবহার করা
যখন আপনি ক্যাসকেডগুলির একটি সেট প্রশিক্ষণ নিয়েছেন, তখন আপনাকে জানতে হবে যে কোন ছবিতে কোন বস্তু শনাক্ত করার জন্য সেগুলি কীভাবে ব্যবহার করতে হয়!
GitHub এর স্টার আইডেন্টিফিকেশন ফোল্ডারটি দেখুন, যেখানে আপনি cascade_test19.py প্রোগ্রামটি পাবেন। এই আকর্ষণীয় নামযুক্ত প্রোগ্রামটি একটি প্রদত্ত ফোল্ডার থেকে ক্যাসকেডগুলির একটি সেট নেয়, এবং সেগুলি একটি ইনপুট চিত্রের বিরুদ্ধে চালায় এবং তৈরি করা সনাক্তকরণের প্রতিবেদন দেয়। 'DetectMultiScale' ফাংশন এর মূল, এবং এটি বিভিন্ন যুক্তি নেয় যা সনাক্তকরণ প্রক্রিয়াকে সংজ্ঞায়িত করে। এইগুলিকে পরিবর্তন করা ক্যাসকেড ক্লাসিফায়ারের পারফরম্যান্সের জন্য সমালোচনামূলক, এবং এই বিষয়ে আরও আলোচনা নিম্নলিখিত ধাপে পাওয়া যাবে, যেখানে আমরা কীভাবে মিথ্যা ইতিবাচকতা দূর করতে পারি তা দেখুন।
এটি একটি স্যাটেলাইট ওরিয়েন্টেশন সিস্টেমে আবদ্ধ বাক্সের কেন্দ্রে থাকা পিক্সেল মানটিকে চিহ্নিত রাশি/ডিসেম্বরের স্বর্গীয় স্থানাঙ্ককে চিহ্নিত স্টার প্যাটারের সাথে সংযুক্ত করে প্রয়োগ করা যেতে পারে, এবং তারপর এটিকে ছবির কেন্দ্র থেকে কৌণিক স্থানচ্যুতি (ক্যামেরা অক্ষ)। এর থেকে, লেন্স বিকৃতি (একটি gnomonic অভিক্ষেপ আনুমানিক) একটি বোঝার ব্যবহার করে, উপগ্রহের কোণ মাত্র দুটি ইতিবাচক সনাক্তকরণ থেকে পাওয়া যাবে।
ধাপ 9: মিথ্যা ইতিবাচক সম্পর্কে কীভাবে ইতিবাচক থাকবেন
এই দুটি ছবি একটি অভিন্ন চিত্রের বিপরীতে ক্যাসকেড সেট পরীক্ষার ফলাফল দেখায়, কিন্তু বিভিন্ন পরামিতি সহ। স্পষ্টতই, প্রথম ছবিতে সত্যিকারের শনাক্তকরণ রয়েছে, তবে বিপুল সংখ্যক মিথ্যা ইতিবাচক রয়েছে, যেখানে দ্বিতীয় চিত্রটিতে কেবল সঠিক সনাক্তকরণ রয়েছে।
GitHub রেপোর স্টার আইডেন্টিফিকেশন ফোল্ডারের মধ্যে cascade_test19.py প্রোগ্রাম ফলাফল সাজানোর জন্য দুটি পদ্ধতি ব্যবহার করে। প্রথমত, detectMultiScale functon একটি Miminum সেট করে এবং ফলাফলের সর্বাধিক আকার পাওয়া যায়, যা বুদ্ধিমান, উইন্ডোর মধ্যে টার্গেট স্টার প্যাটার্নের আনুমানিক আকার হিসাবে (প্রদত্ত লেন্স এবং ম্যাগনিফিকেশনের জন্য - আমার সিমুলেটেড স্টেলারিয়াম ইমেজ এর বৈশিষ্ট্য ব্যবহার করে রাস্পবেরি পাই ভি 2 ক্যামেরা) পরিচিত। দ্বিতীয়ত, কোডটি সবচেয়ে বড় বাউন্ডিং বক্স (আগের সীমার মধ্যে) দিয়ে ফলাফল নির্বাচন করবে। পরীক্ষায়, এটি সত্যিকারের ইতিবাচক বলে প্রমাণিত হয়েছিল। তৃতীয়ত, প্রোগ্রামটি একটি ন্যূনতম 'লেভেলওয়েটস' (কার্যকরভাবে 'কনফিডেন্স ভ্যালু') সেট করে যা এই আইডিকে সত্যিকারের ইতিবাচক হিসেবে বিবেচনা করার জন্য প্রয়োজনীয়। এই পদ্ধতি দ্বারা, ক্যাসকেডগুলি সঠিক ফলাফল খুঁজে পেতে কার্যকর ছিল।
তারকা ক্ষেত্রের ছবিগুলির পাশাপাশি, আমি এটি আমার ডেস্কের ছবিগুলির বিরুদ্ধেও পরীক্ষা করেছি, উদাহরণস্বরূপ, আমার নোটবুক, মগ ইত্যাদি সনাক্ত করার জন্য ক্যাসকেড প্রশিক্ষণ, মিথ্যা ইতিবাচকতা দূর করার অভ্যাস। উপরের পদ্ধতিগুলি সব পরিস্থিতিতে ভাল কাজ করেছে যা উৎসাহজনক ছিল।
ধাপ 10: আলোচনা
উন্নতির জন্য এলাকাসমূহ
এটি আমার জন্য একটি জটিল প্রকল্প, এবং সত্যিই বিষয় সম্পর্কে আমার বোঝার ধাক্কা। প্রকল্পটি এই মুহুর্তে পৌঁছানোর জন্য এটি প্রায় কয়েক মাস পূর্ণকালীন কাজ জড়িত, যখন আমি এটি আপনার সাথে ভাগ করতে পারি, কিন্তু পদ্ধতির কার্যকারিতা উন্নত করার জন্য আরও অনেক কাজ করতে হবে। এটি দাঁড়িয়ে আছে, এটি নির্দিষ্ট সীমাবদ্ধতার মধ্যে ভালভাবে কাজ করতে পারে। কোন কোন এলাকায় অতিরিক্ত কাজের প্রয়োজন আছে তা চিহ্নিত করার জন্য আমি কাজ করেছি এবং আশা করছি আগামী মাসগুলোতে এগুলো সমাধানে সময় ব্যয় করতে পারব। তারা হল:
এঙ্গেল - এটি একটি জটিল ক্ষেত্র, এই ধারণা যে শ্রেণীবদ্ধকারীদের ফলাফলগুলি আবর্তনশীলভাবে অপরিবর্তনীয় হতে হবে, অর্থাৎ, এটি নির্ভরযোগ্যভাবে টার্গেট স্টার প্যাটার্নকে চিহ্নিত করতে হবে, যে কোণে এটি টার্গেট স্টার প্যাটার ধারণকারী ছবিটি উপস্থাপন করে। একটি একক অভিমুখে একটি ইনপুট ইমেজ ব্যবহার করে প্রশিক্ষিত একটি ক্যাসকেড এলোমেলোভাবে ওরিয়েন্টেশনে সেই চিত্রটি সনাক্ত করতে সক্ষম হবে না, তাই প্রশিক্ষণ প্রক্রিয়ায় ইতিবাচক চিত্র কোণের বৈচিত্র্য আনতে হবে যা ক্যাসকেডগুলিকে প্রশিক্ষণ দিতে পারে যা ইনপুট কোণে একটি পরিসীমা গ্রহণ করতে পারে। ক্যাসকেড প্রশিক্ষণ কমান্ডের প্যারামিটার 'ম্যাক্সজ্যাঙ্গেল' রেডিয়ানে একটি যুক্তি গ্রহণ করে, যা কোণটির একটি সীমা নিয়ন্ত্রণ করে যে ইনপুট পজিটিভ ইমেজ প্রদত্ত নেতিবাচক ইমেজগুলির উপর আচ্ছাদিত হবে, তাই ফলস্বরূপ ইতিবাচক ইমেজ সেটের মধ্যে একটি পরিসীমা থাকবে ইতিবাচক চিত্র। যাইহোক, এই ম্যাক্সজ্যাঙ্গেল বাড়ার সাথে সাথে, ক্যাসকেডের গ্রহণযোগ্যতা অনুপাত (ব্যাপকভাবে বলতে গেলে, গুণমান) দ্রুত হ্রাস পাবে। আমি বিশ্বাস করি সমাধানটি হল নেতিবাচক চিত্রগুলির উল্লেখযোগ্যভাবে বৃহত্তর ডাটাবেস ব্যবহার করে ক্যাসকেডগুলি প্রশিক্ষণ দেওয়া যা আমি ব্যবহার করছিলাম তা নিশ্চিত করার জন্য যে একটি ভাল মানের ক্যাসকেড ক্লাসিফায়ার তৈরি করা যেতে পারে এমনকি একটি বৃহত ওরিয়েন্টেশন স্প্রেড অন্তর্ভুক্ত করে।
আরেকটি সম্ভাব্য সমাধান হবে একটি নির্দিষ্ট লক্ষ্যের জন্য বেশ কয়েকটি ক্যাসকেড প্রশিক্ষণ দেওয়া, প্রতিটি ক্যাসকেড একটি সম্পূর্ণ degree০ ডিগ্রি ঘূর্ণনের একটি নির্দিষ্ট অংশ পরিচালনা করে। এইভাবে প্রতিটি ক্যাসকেডের গুণমান উচ্চ স্তরে বজায় রাখা যায়, কিন্তু অন্যদিকে এর ফলে অনেক বেশি ক্যাসকেড হবে, এবং তাই সনাক্তকরণ প্রক্রিয়া ধীর হবে।
প্যারামিটার 'লেভেলওয়েট', যা 'detectMultiScale' ফাংশন দ্বারা প্রদত্ত একটি মান, যা সনাক্ত করা হয়েছে তাতে আত্মবিশ্বাসের মান অনুরূপ। এটি অধ্যয়ন করে, উপরের গ্রাফটি তৈরি করা হয়েছিল, যা দেখায় যে কীভাবে ইতিবাচক সনাক্তকরণের আত্মবিশ্বাস দ্রুত হ্রাস পায় কারণ চিত্রের দিকনির্দেশনা উভয় দিকে বৃদ্ধি পায়, এটি নিশ্চিত করে যে এটি একটি দুর্বল-পয়েন্ট।
পিক্সেল প্লেসমেন্ট - একটি খুব সহজ, কিন্তু সমস্যাযুক্ত পয়েন্ট হল পিক্সেল বসানো, যা নিচের দুটি ছবি দ্বারা দেখানো হয়েছে, একটি স্টার ইমেজের বর্ধিত দৃশ্য দেখায়, যাতে দুই তারার পৃথক পিক্সেল স্পষ্টভাবে দেখা যায়। সমান উজ্জ্বলতা থাকা সত্ত্বেও ছবি থেকে উজ্জ্বল নক্ষত্র বাদে সকলকে আঁচড়ানোর জন্য প্রোগ্রামে ব্যবহৃত ক্ষয় প্রক্রিয়াটি প্রথম নক্ষত্রকে রাখবে এবং দ্বিতীয়টিকে বাতিল করবে। এর কারণ হল প্রথম নক্ষত্রটি একটি পিক্সেল কেন্দ্রিক, যেখানে দ্বিতীয়টি তেমন নয়। ক্ষয় ফাংশন একটি দলের কেন্দ্রীয় পিক্সেলের চারপাশে থেকে পিক্সেলের ঘনীভূত রিংগুলিকে ছিঁড়ে ফেলে, এবং তাই প্রথম নক্ষত্রটির কেন্দ্রীয় পিক্সেল ক্ষয়কারী ফাংশন থেকে বেঁচে থাকবে, কিন্তু দ্বিতীয় তারকাটি ছবি থেকে পুরোপুরি সরিয়ে ফেলা হবে। অতএব বিশ্বাসী চিহ্নিতকারী শুধুমাত্র প্রথম নক্ষত্রের উপর স্থাপন করা হবে, দ্বিতীয়টি নয়। এটি প্রদত্ত তারকা ক্ষেত্রের কোন উজ্জ্বল নক্ষত্রগুলি মার্কার গ্রহণ করবে (এবং সেইজন্য প্রশিক্ষিত শ্রেণীবিভাগের সাথে তুলনা করা হবে) সম্পর্কিত অসঙ্গতি সৃষ্টি করবে - তাই এটি সম্ভব যে একটি সঠিক ইতিবাচক পর্যবেক্ষণ সম্ভব হবে না।
ধাপ 11: শেষ শব্দ
আমার নির্দেশযোগ্য পড়ার জন্য আপনাকে ধন্যবাদ, আমি আশা করি আপনি এই প্রকল্পটি আকর্ষণীয় পেয়েছেন। এটি একটি খুব আকর্ষণীয় প্রক্রিয়া যা এটিতে কাজ করছে, আমি এই ধারণার উপর কাজ শুরু করার পর এক বছরেরও বেশি সময় হয়ে গেছে, এবং আমি এই পর্যায়ে ফলাফল দ্বারা উত্সাহিত। আমি যে সাহিত্যটি পড়েছি তা থেকে, এটি একটি বেশ মূল ধারণা, এবং আরও বিকাশের সাথে অবশ্যই অপেশাদার জ্যোতির্বিজ্ঞান বা আরও অনেক কিছুতে প্রয়োগ করা যেতে পারে।
এই প্রকল্পটি আমার জন্য একটি খাঁটি শেখার বক্র ছিল, এবং তাই আমি আশা করি যে আরো প্রোগ্রামিং অভিজ্ঞতা সহ কিছু পাঠক গিটহাব পৃষ্ঠার মাধ্যমে প্রকল্পের ধারাবাহিকতায় অবদান রাখতে অনুপ্রাণিত হতে পারে, এবং আমরা এই ওপেন সোর্স টুলটি বিকাশ চালিয়ে যেতে পারি। আমি আপনার যেকোনো মন্তব্য পড়ার জন্য উন্মুখ, কিন্তু দয়া করে খুব বেশি কঠিন প্রশ্ন করবেন না!
স্পেস চ্যালেঞ্জে রানার আপ
প্রস্তাবিত:
HuskyLens ব্যবহার করে কৃত্রিম বুদ্ধিমত্তা এবং চিত্র স্বীকৃতি: 6 টি ধাপ (ছবি সহ)
HuskyLens ব্যবহার করে কৃত্রিম বুদ্ধিমত্তা এবং চিত্র স্বীকৃতি: আরে, কি হচ্ছে, বন্ধুরা! এখানে CETech থেকে আর্ক। এটি একটি এআই-চালিত ক্যামেরা মডিউল যা বিভিন্ন কৃত্রিম বুদ্ধিমত্তা অপারেশন যেমন ফেস রিকগনিটিও করতে সক্ষম
অ্যান্ড্রয়েড স্মার্টফোন ব্যবহার করে কম্পিউটার ভিশন যোগ করতে হেক্সবাগ স্পাইডার এক্সএল হ্যাক করা: 9 টি ধাপ (ছবি সহ)
অ্যান্ড্রয়েড স্মার্টফোন ব্যবহার করে কম্পিউটার ভিশন যোগ করার জন্য হেক্সবাগ স্পাইডার এক্সএল হ্যাক করা: আমি মূল হেক্সবাগ ও ট্রেডের বড় ভক্ত; মাকড়সা। আমি এক ডজনেরও বেশি মালিকানাধীন এবং তাদের সবাইকে হ্যাক করেছি। যে কোন সময় আমার এক ছেলে বন্ধুর কাছে যায় ’ জন্মদিনের পার্টি, বন্ধু একটি Hexbug পায় &বাণিজ্য; উপহার হিসেবে মাকড়সা। আমি হ্যাক করেছি বা
ওপেনসিভি মুখ সনাক্তকরণ, প্রশিক্ষণ এবং স্বীকৃতি: 3 টি ধাপ
ওপেনসিভি ফেস ডিটেকশন, ট্রেনিং এবং রিকগনিশন: ওপেনসিভি একটি ওপেন সোর্স কম্পিউটার ভিশন লাইব্রেরি যা অস্পষ্টতা, ইমেজ ব্লেন্ডিং, ইমেজ বাড়ানোর পাশাপাশি ভিডিও কোয়ালিটি, থ্রেশহোল্ডিং ইত্যাদি ইমেজ প্রসেসিং কাজ সম্পাদনের জন্য খুবই জনপ্রিয়। এটা প্রমাণিত
রাস্পবেরি পাই এবং ওপেনসিভি ব্যবহার করে স্বায়ত্তশাসিত লেন-কিপিং গাড়ি: 7 টি ধাপ (ছবি সহ)
রাস্পবেরি পাই এবং ওপেনসিভি ব্যবহার করে স্বায়ত্তশাসিত লেন-কিপিং গাড়ি: এই নির্দেশাবলীতে একটি স্বায়ত্তশাসিত লেন কিপিং রোবট বাস্তবায়িত হবে এবং নিম্নলিখিত ধাপগুলি অতিক্রম করবে: যন্ত্রাংশ সংগ্রহ করা সফ্টওয়্যার পূর্বশর্ত হার্ডওয়্যার সমাবেশ প্রথম পরীক্ষা লেন লাইন সনাক্তকরণ এবং নির্দেশিকা প্রদর্শন
কম্পিউটার ভিশন ব্যবহার করে রিয়েল ওয়ার্কিং হ্যারি পটার ভান্ড: Ste টি ধাপ (ছবি সহ)
কম্পিউটার ভিশন ব্যবহার করে রিয়েল ওয়ার্কিং হ্যারি পটার ভান্ড: " যথাযথভাবে উন্নত যেকোন প্রযুক্তি ম্যাজিক থেকে আলাদা করা যায় না " - আর্থার সি ক্লার্ক কয়েক মাস আগে আমার ভাই জাপান সফর করেছিলেন এবং ইউনিভার্সাল স্টুডিওতে হ্যারি পটারের উইজার্ডিং ওয়ার্ল্ডে সত্যিকারের উইজার্ডিং অভিজ্ঞতা পেয়েছিলেন