বিগত কয়েক বছরে আমি সবচেয়ে আকর্ষণীয় প্রকল্পে কাজ করেছি যা ছিল ইমেজ প্রসেসিং সম্পর্কিত একটি প্রকল্প । লক্ষ্যটি ছিল কোকা-কোলা 'ক্যান' সনাক্ত করতে সক্ষম করার জন্য একটি সিস্টেম বিকাশ করা (নোট করুন যে আমি 'ক্যান' শব্দের উপর জোর দিচ্ছি, আপনি কেন এক মিনিটের মধ্যে দেখতে পাবেন)। আপনি নীচে একটি নমুনা দেখতে পাচ্ছেন, স্কেল এবং আবর্তনের সাথে সবুজ আয়তক্ষেত্রে স্বীকৃত can
প্রকল্পে কিছু বাধা:
- পটভূমি খুব গোলমাল হতে পারে।
- করতে পারেন কোন থাকতে পারে স্কেল বা ঘূর্ণন বা এমনকি অভিযোজন (যুক্তিসঙ্গত সীমার মধ্যে)।
- চিত্রটির কিছুটা অস্পষ্টতা থাকতে পারে (রূপগুলি পুরোপুরি সোজা নাও হতে পারে)।
- ছবিতে কোকা-কোলার বোতল থাকতে পারে এবং অ্যালগরিদমটি কেবল ক্যানটি সনাক্ত করতে পারে !
- চিত্রটির উজ্জ্বলতা অনেক বেশি পরিবর্তিত হতে পারে (যাতে আপনি রঙ সনাক্তকরণের উপর "খুব বেশি" নির্ভর করতে পারবেন না)।
- করতে পারেন আংশিকভাবে পক্ষের বা মধ্যম লুকানো হতে পারে এবং সম্ভবত আংশিকভাবে এক বোতল পিছনে লুকানো।
- কোন কিছু হতে পারে করতে পারেন ছবিতে এ সব, যে ক্ষেত্রে আপনি কিছুই খুঁজে পেতে এবং তাই বলে বার্তা লিখতে ছিল।
সুতরাং আপনি এই জাতীয় কৌতুকপূর্ণ জিনিসগুলি শেষ করতে পারেন (যা এই ক্ষেত্রে আমার অ্যালগরিদম পুরোপুরি ব্যর্থ হয়েছিল):
আমি এই প্রকল্পটি কিছুক্ষণ আগে করেছি এবং এটি করতে অনেক মজা পেয়েছি এবং আমি একটি সুন্দর বাস্তবায়ন করেছি। আমার বাস্তবায়ন সম্পর্কে এখানে কিছু বিশদ রয়েছে:
ভাষা : ওপেনসিভি লাইব্রেরি ব্যবহার করে সি ++ সম্পন্ন ।
প্রাক-প্রক্রিয়াজাতকরণ : চিত্রের প্রাক-প্রসেসিংয়ের জন্য, অর্থাৎ অ্যালগোরিদমকে দেওয়ার জন্য চিত্রটিকে আরও কাঁচা রূপে রূপান্তর করতে, আমি 2 টি পদ্ধতি ব্যবহার করেছি:
- আরজিবি থেকে এইচএসভিতে রঙের ডোমেন পরিবর্তন করা এবং "লাল" রঙের উপর ভিত্তি করে ফিল্টারিং, কমলা জাতীয় রঙ এড়াতে নির্দিষ্ট প্রান্তিকের উপরে স্যাচুরেশন এবং গা dark় সুরগুলি এড়ানোর জন্য নিম্ন মানের ফিল্টারিং। শেষ ফলাফলটি ছিল একটি বাইনারি কালো এবং সাদা চিত্র, যেখানে সমস্ত সাদা পিক্সেল এই প্রান্তিকের সাথে মেলে এমন পিক্সেলগুলিকে উপস্থাপন করবে। স্পষ্টতই চিত্রটিতে এখনও প্রচুর বকাবকি রয়েছে, তবে এটি আপনাকে যে পরিমাপের সাথে কাজ করতে হবে তা হ্রাস করে।
- গোলমাল কমানোর জন্য মিডিয়াল ফিল্টারিং (সমস্ত প্রতিবেশীর মাঝারি পিক্সেলের মান নেওয়া এবং এই মান দ্বারা পিক্সেলটি প্রতিস্থাপন করুন) ব্যবহার করে শব্দের ফিল্টারিং।
- 2 পূর্ববর্তী পদক্ষেপের পরে সমস্ত আইটেমের সংশ্লেষ পেতে ক্যানি এজ সনাক্তকরণ ফিল্টার ব্যবহার করে ।
অ্যালগরিদম : অ্যালগরিদম নিজেই আমি এই কাজের জন্য বেছে নেওয়া হয়েছে থেকে নিয়ে যাওয়া হয় এই বৈশিষ্ট্য নিষ্কাশন সন্ত্রস্ত বই এবং বলা জেনারেলাইজড Hough ট্রান্সফর্ম (চমত্কার নিয়মিত Hough থেকে ট্রান্সফর্ম বিভিন্ন)। এটি মূলত কয়েকটি জিনিস বলে:
- বিশ্লেষণী সমীকরণ না জেনে আপনি মহাকাশে কোনও বস্তুর বর্ণনা দিতে পারেন (যা এখানে ঘটনা।
- এটি স্কেলিং এবং রোটেশনের মতো চিত্রের বৈকল্পিকতাগুলির সাথে প্রতিরোধী, কারণ এটি স্কেল ফ্যাক্টর এবং রোটেশন ফ্যাক্টরের প্রতিটি সংমিশ্রনের জন্য মূলত আপনার চিত্রটিকে পরীক্ষা করবে।
- এটি একটি বেস মডেল (একটি টেম্পলেট) ব্যবহার করে যা অ্যালগরিদম "শিখবে"।
- কনট্যুর ইমেজে থাকা প্রতিটি পিক্সেল অন্য পিক্সেলের পক্ষে ভোট দেবে যা মডেলটি থেকে যা শিখেছে তার উপর ভিত্তি করে এটি আপনার পজিশনের কেন্দ্র (মহাকর্ষের বিবেচনায়) হবে supposed
শেষ পর্যন্ত, আপনি ভোটের উত্তাপের মানচিত্রটি দিয়ে শেষ করেছেন, উদাহরণস্বরূপ এখানে কনট্যুরের সমস্ত পিক্সেল তার মাধ্যাকর্ষণ কেন্দ্রের পক্ষে ভোট দিতে পারে, সুতরাং আপনার একই পিক্সেলের সাথে অনেকগুলি ভোট হবে কেন্দ্র এবং নীচের হিসাবে তাপ মানচিত্রে একটি শিখর দেখতে পাবেন:
আপনার কাছে একবার হয়ে গেলে, একটি সাধারণ প্রান্তিকতা ভিত্তিক হিউরিস্টিক আপনাকে কেন্দ্রের পিক্সেলের অবস্থান দিতে পারে, যেখান থেকে আপনি স্কেল এবং ঘূর্ণন অর্জন করতে পারেন এবং তারপরে আপনার ছোট্ট আয়তক্ষেত্রটি প্লট করতে পারেন (চূড়ান্ত স্কেল এবং রোটেশন ফ্যাক্টর স্পষ্টত আপনার সম্পর্কিত হবে) মূল টেম্পলেট)। তত্ত্বের ক্ষেত্রে কমপক্ষে ...
ফলাফল : এখন, যদিও এই পদ্ধতির প্রাথমিক ক্ষেত্রে কাজ করা হয়েছিল, কিছু ক্ষেত্রে এটির মারাত্মক অভাব ছিল:
- এটা অত্যন্ত ধীর ! আমি এটাকে যথেষ্ট চাপ দিচ্ছি না। 30 টি পরীক্ষা চিত্রগুলি প্রক্রিয়া করার জন্য প্রায় পুরো দিন প্রয়োজন ছিল, সম্ভবত আমার ঘূর্ণন এবং অনুবাদ করার জন্য খুব উচ্চতর স্কেলিং ফ্যাক্টর ছিল, যেহেতু কয়েকটি ক্যান খুব ছোট ছিল।
- ইমেজটিতে বোতলগুলি থাকা অবস্থায় এটি সম্পূর্ণরূপে হারিয়ে যায় এবং কোনও কারণে প্রায়শই ক্যানের পরিবর্তে বোতলটি পাওয়া যায় (সম্ভবত বোতলগুলি বড় ছিল, সুতরাং আরও পিক্সেল ছিল, সুতরাং আরও বেশি ভোট ছিল)
- अस्पष्ट চিত্রগুলিও ভাল ছিল না, যেহেতু ভোটটি পিক্সেলটিতে কেন্দ্রের আশেপাশের এলোমেলো স্থানে শেষ হয়েছিল, এইভাবে খুব শোরগোলের উত্তাপের মানচিত্র দিয়ে শেষ হয়েছে।
- অনুবাদ এবং রোটেশনের মধ্যে ভিন্নতা অর্জন করা হয়েছিল, তবে অরিয়েন্টেশন নয়, এর অর্থ এমন একটি ক্যান যা সরাসরি ক্যামেরার উদ্দেশ্যটির মুখোমুখি ছিল না তা স্বীকৃত হয়নি।
উল্লিখিত চারটি সুনির্দিষ্ট সমস্যা সমাধানের জন্য আপনি কেবলমাত্র ওপেনসিভি বৈশিষ্ট্য ব্যবহার করে আমার নির্দিষ্ট অ্যালগরিদম উন্নত করতে আমাকে সহায়তা করতে পারেন ?
আমি আশা করি কিছু লোক এগুলি থেকেও কিছু শিখতে পারে, সর্বোপরি আমি মনে করি যে কেবল প্রশ্ন জিজ্ঞাসা করা লোকেদেরও শেখা উচিত নয়। :)