YOLOv5 এবং PyTorch PlatoBlockchain ডেটা ইন্টেলিজেন্স সহ পাইথনে অবজেক্ট ডিটেকশন ইনফারেন্স। উল্লম্ব অনুসন্ধান. আ.

YOLOv5 এবং PyTorch সহ পাইথনে অবজেক্ট ডিটেকশন ইনফারেন্স

ভূমিকা

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

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

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

সৌভাগ্যবশত জনসাধারণের জন্য - Ultralytics তাদের YOLOv5 বাস্তবায়নের চারপাশে একটি সহজ, খুব শক্তিশালী এবং সুন্দর বস্তু সনাক্তকরণ API তৈরি করেছে।

এই সংক্ষিপ্ত গাইডে, আমরা পাইথনে অবজেক্ট ডিটেকশন সম্পাদন করব, PyTorch-এ Ultralytics দ্বারা নির্মিত YOLOv5 সহ, MS COCO-তে প্রশিক্ষিত প্রাক-প্রশিক্ষিত ওজনের একটি সেট ব্যবহার করে।

YOLOv5

YOLO (আপনি শুধুমাত্র একবার দেখুন) একটি পদ্ধতি, সেইসাথে বস্তু সনাক্তকরণের জন্য নির্মিত মডেলের পরিবার। 2015 সালে সূচনা হওয়ার পর থেকে, YOLOv1, YOLOv2 (YOLO9000) এবং YOLOv3 একই লেখক(রা) দ্বারা প্রস্তাবিত হয়েছে – এবং গভীর শিক্ষার সম্প্রদায় অব্যাহত বছরগুলিতে ওপেন সোর্সড অগ্রগতি অব্যাহত রেখেছে।

Ultralytics' YOLOv5 PyTorch-এ YOLO-এর প্রথম বড় আকারের বাস্তবায়ন, যা এটিকে আগের চেয়ে আরও বেশি অ্যাক্সেসযোগ্য করে তুলেছে, কিন্তু YOLOv5-এর এমন একটি পা রাখার প্রধান কারণ হল এর চারপাশে নির্মিত সুন্দর সহজ এবং শক্তিশালী API। প্রকল্পটি অপ্রয়োজনীয় বিশদগুলিকে বিমূর্ত করে, কাস্টমাইজ করার অনুমতি দেয়, কার্যত সমস্ত ব্যবহারযোগ্য রপ্তানি বিন্যাস, এবং আশ্চর্যজনক অনুশীলনগুলি নিয়োগ করে যা সমগ্র প্রকল্পটিকে দক্ষ এবং যতটা হতে পারে ততটা অনুকূল করে তোলে। সত্যই, এটি ওপেন সোর্স সফ্টওয়্যার বাস্তবায়নের সৌন্দর্যের একটি উদাহরণ, এবং এটি কীভাবে আমরা বাস করি সেই বিশ্বকে শক্তি দেয়৷

প্রজেক্টটি MS COCO-তে প্রাক-প্রশিক্ষিত ওজন প্রদান করে, যা প্রেক্ষাপটে অবজেক্টের উপর একটি প্রধান ডেটাসেট, যা বেঞ্চমার্ক এবং সাধারণ অবজেক্ট ডিটেকশন সিস্টেম উভয়ের জন্যই ব্যবহার করা যেতে পারে – তবে সবচেয়ে গুরুত্বপূর্ণ, কাস্টম-এ প্রেক্ষাপটে বস্তুর সাধারণ জ্ঞান স্থানান্তর করতে ব্যবহার করা যেতে পারে। ডেটাসেট

YOLOv5 দিয়ে অবজেক্ট ডিটেকশন

এগিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনার আছে torch এবং torchvision ইনস্টল করা:

! python -m pip install torch torchvision

YOLOv5 এর বিস্তারিত, নো-ননসেন্স ডকুমেন্টেশন এবং একটি সুন্দর সহজ API, যেমনটি রেপোতে দেখানো হয়েছে এবং নিম্নলিখিত উদাহরণে:

import torch

model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
img = 'https://i.ytimg.com/vi/q71MCWAEfL8/maxresdefault.jpg'  
results = model(img)
fig, ax = plt.subplots(figsize=(16, 12))
ax.imshow(results.render()[0])
plt.show()

এর দ্বিতীয় যুক্তি hub.load() পদ্ধতি আমরা যে ওজন ব্যবহার করতে চাই তা নির্দিষ্ট করে। এর মধ্যে যেকোনো জায়গা বেছে নিয়ে yolov5n থেকে yolov5l6 - আমরা MS COCO প্রাক-প্রশিক্ষিত ওজনে লোড করছি। কাস্টম মডেলের জন্য:

model = torch.hub.load('ultralytics/yolov5', 'custom', path='path_to_weights.pt')

যাই হোক না কেন - একবার আপনি মডেলের মাধ্যমে ইনপুট পাস করলে, ফিরে আসা বস্তুতে ফলাফল ব্যাখ্যা করার জন্য সহায়ক পদ্ধতি অন্তর্ভুক্ত থাকে এবং আমরা এটি বেছে নিয়েছি render() তাদের, যা একটি NumPy অ্যারে প্রদান করে যা আমরা একটিতে চক করতে পারি imshow() কল এটি একটি সুন্দর বিন্যাসে পরিণত হয়:

ফাইল হিসাবে ফলাফল সংরক্ষণ

আপনি একটি ফাইল হিসাবে অনুমান ফলাফল সংরক্ষণ করতে পারেন, ব্যবহার করে results.save() পদ্ধতি:

results.save(save_dir='results')

এটি একটি নতুন ডিরেক্টরি তৈরি করবে যদি এটি ইতিমধ্যে উপস্থিত না থাকে এবং একই চিত্রটি সংরক্ষণ করবে যা আমরা একটি ফাইল হিসাবে প্লট করেছি৷

বস্তু ক্রপ আউট

আপনি পৃথক ফাইল হিসাবে সনাক্ত করা বস্তুগুলিকে ক্রপ করার সিদ্ধান্ত নিতে পারেন। আমাদের ক্ষেত্রে, সনাক্ত করা প্রতিটি লেবেলের জন্য, বেশ কয়েকটি ছবি বের করা যেতে পারে। এই মাধ্যমে সহজেই অর্জন করা হয় results.crop() পদ্ধতি, যা একটি পুনরায় তৈরি করে runs/detect/ ডিরেক্টরি, সহ expN/crops (যেখানে প্রতিটি রানের জন্য N বৃদ্ধি পায়), যেখানে প্রতিটি লেবেলের জন্য ক্রপ করা চিত্র সহ একটি ডিরেক্টরি তৈরি করা হয়:

results.crop()
Saved 1 image to runs/detect/exp2
Saved results to runs/detect/exp2

[{'box': [tensor(295.09409),
   tensor(277.03699),
   tensor(514.16113),
   tensor(494.83691)],
  'conf': tensor(0.25112),
  'cls': tensor(0.),
  'label': 'person 0.25',
  'im': array([[[167, 186, 165],
          [174, 184, 167],
          [173, 184, 164],

আপনি এর সাথে আউটপুট ফাইল কাঠামো যাচাই করতে পারেন:

সেরা-অভ্যাস, শিল্প-স্বীকৃত মান এবং অন্তর্ভুক্ত চিট শীট সহ গিট শেখার জন্য আমাদের হ্যান্ডস-অন, ব্যবহারিক গাইড দেখুন। গুগলিং গিট কমান্ড এবং আসলে বন্ধ করুন শেখা এটা!

! ls runs/detect/exp2/crops


! ls runs/detect/exp2/crops

অবজেক্ট কাউন্টিং

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

print(results)

এর ফলে:

image 1/1: 720x1280 14 persons, 1 car, 3 buss, 6 traffic lights, 1 backpack, 1 umbrella, 1 handbag
Speed: 35.0ms pre-process, 256.2ms inference, 0.7ms NMS per image at shape (1, 3, 384, 640)

স্ক্রিপ্ট সহ অনুমান

বিকল্পভাবে, আপনি সনাক্তকরণ স্ক্রিপ্ট চালাতে পারেন, detect.py, YOLOv5 সংগ্রহস্থল ক্লোন করে:

$ git clone https://github.com/ultralytics/yolov5 
$ cd yolov5
$ pip install -r requirements.txt

এবং তারপর চলমান:

$ python detect.py --source img.jpg

বিকল্পভাবে, আপনি একটি URL, ভিডিও ফাইল, একাধিক ফাইল সহ একটি ডিরেক্টরির পাথ, শুধুমাত্র নির্দিষ্ট ফাইলগুলির জন্য মেলে একটি পাথে একটি গ্লোব, একটি YouTube লিঙ্ক বা অন্য কোনো HTTP স্ট্রিম প্রদান করতে পারেন। ফলাফল সংরক্ষিত হয় runs/detect ডিরেক্টরি.

আরও এগিয়ে যাওয়া - কম্পিউটার ভিশনের জন্য ব্যবহারিক গভীর শিক্ষা

আপনার অনুসন্ধিৎসু প্রকৃতি আপনাকে আরও যেতে চায়? আমরা আমাদের চেক আউট সুপারিশ পথ: "পাইথনের সাথে কম্পিউটার ভিশনের জন্য ব্যবহারিক গভীর শিক্ষা".

YOLOv5 এবং PyTorch PlatoBlockchain ডেটা ইন্টেলিজেন্স সহ পাইথনে অবজেক্ট ডিটেকশন ইনফারেন্স। উল্লম্ব অনুসন্ধান. আ.

আরেকটি কম্পিউটার ভিশন কোর্স?

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

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

ভিতরে কি?

  • দৃষ্টির প্রথম নীতি এবং কীভাবে কম্পিউটারকে "দেখতে" শেখানো যায়
  • কম্পিউটার ভিশনের বিভিন্ন কাজ এবং অ্যাপ্লিকেশন
  • ট্রেডের টুল যা আপনার কাজকে সহজ করে তুলবে
  • কম্পিউটার ভিশনের জন্য ডেটাসেট খোঁজা, তৈরি এবং ব্যবহার করা
  • কনভোল্যুশনাল নিউরাল নেটওয়ার্কের তত্ত্ব এবং প্রয়োগ
  • ডেটাসেটে ডোমেন শিফট, সহ-ঘটনা এবং অন্যান্য পক্ষপাতগুলি পরিচালনা করা
  • আপনার সুবিধার জন্য শেখার স্থানান্তর এবং অন্যদের প্রশিক্ষণের সময় এবং গণনামূলক সংস্থানগুলি ব্যবহার করুন
  • একটি অত্যাধুনিক স্তন ক্যান্সারের শ্রেণীবিভাগ তৈরি এবং প্রশিক্ষণ
  • কীভাবে মূলধারার ধারণাগুলিতে সংশয়বাদের একটি স্বাস্থ্যকর ডোজ প্রয়োগ করা যায় এবং ব্যাপকভাবে গৃহীত কৌশলগুলির প্রভাব বোঝা যায়
  • T-SNE এবং PCA ব্যবহার করে একটি ConvNet-এর "ধারণা স্থান" ভিজ্যুয়ালাইজ করা
  • কোম্পানিগুলি কীভাবে ভাল ফলাফল অর্জন করতে কম্পিউটার দৃষ্টি কৌশল ব্যবহার করে তার কেস স্টাডি
  • সঠিক মডেল মূল্যায়ন, সুপ্ত স্থান ভিজ্যুয়ালাইজেশন এবং মডেলের মনোযোগ সনাক্তকরণ
  • ডোমেন গবেষণা সম্পাদন করা, আপনার নিজস্ব ডেটাসেট প্রক্রিয়াকরণ এবং মডেল পরীক্ষা স্থাপন করা
  • অত্যাধুনিক স্থাপত্য, ধারণাগুলির অগ্রগতি, কী সেগুলিকে অনন্য করে তোলে এবং কীভাবে সেগুলি বাস্তবায়ন করা যায়
  • KerasCV – একটি আধুনিক পাইপলাইন এবং মডেল তৈরি করার জন্য একটি WIP লাইব্রেরি
  • কিভাবে পার্স এবং পেপার পড়ুন এবং সেগুলি নিজেই প্রয়োগ করুন
  • আপনার আবেদনের উপর নির্ভর করে মডেল নির্বাচন করুন
  • এন্ড-টু-এন্ড মেশিন লার্নিং পাইপলাইন তৈরি করা
  • দ্রুত আর-সিএনএন, রেটিনানেট, এসএসডি এবং ইওলোর সাহায্যে অবজেক্ট সনাক্তকরণের উপর ল্যান্ডস্কেপ এবং অন্তর্দৃষ্টি
  • উদাহরণ এবং শব্দার্থিক বিভাজন
  • YOLOv5 এর সাথে রিয়েল-টাইম অবজেক্ট রিকগনিশন
  • YOLOv5 অবজেক্ট ডিটেক্টর প্রশিক্ষণ
  • KerasNLP ব্যবহার করে ট্রান্সফরমারের সাথে কাজ করা (শিল্প-শক্তি WIP লাইব্রেরি)
  • চিত্রের ক্যাপশন তৈরি করতে ConvNets-এর সাথে ট্রান্সফরমার একীভূত করা
  • ডিপড্রিম

উপসংহার

এই সংক্ষিপ্ত নির্দেশিকাতে, আমরা PyTorch ব্যবহার করে নির্মিত YOLOv5 এর সাহায্যে আপনি কীভাবে অবজেক্ট ডিটেকশন করতে পারেন তা দেখেছি।

সময় স্ট্যাম্প:

থেকে আরো Stackabuse