পাইথনে চিত্রের নিষ্কাশন


18

আমার ক্লাসে আমাকে একটি চিত্রের কোনও বস্তু ফিলাম পোরিফেরা (সমুদ্র স্পঞ্জ) বা অন্য কোনও বস্তুর উদাহরণ কিনা তা নির্ধারণ করতে দুটি শ্রেণিবদ্ধ ব্যবহার করে একটি অ্যাপ্লিকেশন তৈরি করতে হবে।

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

কেউ আমাকে অর্থবহ ডকুমেন্টেশন বা পড়ার দিকে বা দিক বিবেচনা করার জন্য পরামর্শ দিতে পারে?


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

আমি আশা করি কেবল পাইথন এবং ওপেন সোর্স প্যাকেজ ব্যবহার করব। আমার নিজস্ব উত্স কোড লেখা নিরুৎসাহিত করা হয়েছে, এমনকি। এটি মাস্টার্স লেভেল কোর্স। ক্লাসটি একটি প্রাথমিক তথ্য বিজ্ঞান কোর্স। আমরা আলোচিত জিনিসটি বৈশিষ্ট্য নির্বাচন, যদিও প্রায় সমস্ত আলোচনার বিষয়টি টেক্সট ডেটা সম্পর্কে। নির্ভুলতার বাইরে কোনও পারফরম্যান্সের প্রয়োজনীয়তা নেই ~ 70%
জেরেমি বার্নেস

উত্তর:


11

চিত্রগুলিতে, বৈশিষ্ট্য নিষ্কাশনের জন্য প্রায়শই ব্যবহৃত কিছু কৌশল বাইনারিাইজিং এবং অস্পষ্ট

বিনারিজিং: চিত্রের অ্যারেটিকে 1 ও 0 এর মধ্যে রূপান্তর করে। চিত্রটি 2D চিত্রে রূপান্তর করার সময় এটি করা হয়। এমনকি ধূসর-স্কেলিংও ব্যবহার করা যেতে পারে। এটি আপনাকে চিত্রটির একটি সংখ্যাসূচক ম্যাট্রিক্স দেয়। গ্রেডস্কেল ডিস্কে সঞ্চিত থাকাকালীন অনেক কম স্থান নেয়।

পাইথনে এটি আপনি এভাবেই করেন:

from PIL import Image

%matplotlib inline  

#Import an image
image = Image.open("xyz.jpg")

image

উদাহরণ চিত্র:

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

এখন, ধূসর আকারে রূপান্তর করুন:

im = image.convert('L')

im

আপনাকে এই চিত্রটি ফিরিয়ে দেবে:

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

এবং ম্যাট্রিক্স এটি চালিয়ে দেখা যায়:

array(im)

অ্যারে দেখতে এমন কিছু লাগবে:

array([[213, 213, 213, ..., 176, 176, 176],
       [213, 213, 213, ..., 176, 176, 176],
       [213, 213, 213, ..., 175, 175, 175],
       ..., 
       [173, 173, 173, ..., 204, 204, 204],
       [173, 173, 173, ..., 205, 205, 204],
       [173, 173, 173, ..., 205, 205, 205]], dtype=uint8)

এখন, চিত্রের বৈশিষ্ট্যগুলি দেখার জন্য একটি হিস্টোগ্রাম প্লট এবং / অথবা একটি কনট্যুর প্লট ব্যবহার করুন:

from pylab import *

# create a new figure
figure()
gray()
# show contours with origin upper left corner
contour(im, origin='image')
axis('equal')
axis('off')


figure()


hist(im_array.flatten(), 128)

show()

এটি আপনাকে এমন একটি প্লট ফিরিয়ে দেবে, যা দেখতে এরকম কিছু দেখাচ্ছে:

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

অস্পষ্টতা: অস্পষ্ট অ্যালগরিদম প্রতি পিক্সেলের আশেপাশের রঙগুলিকে সংযুক্ত করতে প্রতিবেশী পিক্সেলের ওয়েট গড় গ্রহণ করে। এটি কনট্যুরগুলি আরও উন্নত করে এবং বৈশিষ্ট্যগুলি এবং তাদের গুরুত্ব আরও ভালভাবে বুঝতে সহায়তা করে।

এবং আপনি পাইথনে এটিই করেন:

from PIL import *


figure()
p = image.convert("L").filter(ImageFilter.GaussianBlur(radius = 2))
p.show()

অস্পষ্ট চিত্রটি হ'ল:

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

সুতরাং, এই কয়েকটি উপায় যা আপনি বৈশিষ্ট্য ইঞ্জিনিয়ারিং করতে পারেন। এবং উন্নত পদ্ধতির জন্য আপনাকে কম্পিউটার ভিশন এবং নিউরাল নেটওয়ার্কগুলির বেসিকগুলি এবং বিভিন্ন ধরণের ফিল্টার এবং তাদের তাত্পর্য এবং তাদের পিছনে গণিতটি বুঝতে হবে।


1
তোমাকে অনেক ধন্যবাদ. আমি কয়েকটি স্থানে এটি সম্পর্কে পোস্ট করেছি এবং আপনার ছিল সবচেয়ে তথ্যপূর্ণ উত্তর। আমি বুঝতে পেরেছিলাম যে চিত্রগুলির বৈশিষ্ট্য নিষ্কাশনটি কীভাবে ধারণাগতভাবে কাজ করে I
জেরেমি বার্নেস

ভাল লাগছে যে আমার উত্তরটি আপনাকে :) সাহায্য
Dawny33

8

এই দুর্দান্ত টিউটোরিয়ালটি কনভোলশনাল নিউরালটাক্সগুলির মূল বিষয়গুলি অন্তর্ভুক্ত করে, যা বর্তমানে বেশিরভাগ দর্শনের কাজগুলিতে শিল্পের সম্পাদনার অবস্থা অর্জন করে:

http://deeplearning.net/tutorial/lenet.html

পাইথনে সিএনএনগুলির জন্য প্রচুর অপশন রয়েছে যার মধ্যে থায়ানো এবং এর উপরে নির্মিত লাইব্রেরিগুলি রয়েছে (আমি কেরাকে সহজেই ব্যবহারযোগ্য বলে খুঁজে পেয়েছি)।

আপনি যদি গভীর শিক্ষণ এড়াতে পছন্দ করেন তবে আপনি ওপেনসিভিতে সন্ধান করতে পারেন যা অন্যান্য অনেক ধরণের বৈশিষ্ট্য, লাইন হ্যার ক্যাসকেড এবং এসআইএফটি বৈশিষ্ট্যগুলি শিখতে পারে।

http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.html


1

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

কনভোলশন নিউরাল নেটওয়ার্ক সম্পর্কে জানার জন্য এটি একটি ভাল টিউটোরিয়াল। আপনি কোডটি ডাউনলোড করতে পারেন এবং আপনার সমস্যার সংজ্ঞা অনুসারে পরিবর্তন করতে পারেন। তবে আপনাকে প্রক্রিয়াজাতকরণের জন্য পাইথন এবং থিয়েওন লাইব্রেরি শিখতে হবে এবং এটির জন্য আপনি ভাল টিউটোরিয়ালও পাবেন

http://deeplearning.net/tutorial/lenet.html

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