YOLOv5 اور PyTorch PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ Python میں آبجیکٹ کا پتہ لگانے کا اندازہ۔ عمودی تلاش۔ عی

YOLOv5 اور PyTorch کے ساتھ ازگر میں آبجیکٹ کا پتہ لگانے کا اندازہ

تعارف

آبجیکٹ کا پتہ لگانا کمپیوٹر ویژن کا ایک بڑا میدان ہے، اور کمپیوٹر ویژن کی "جنگلی میں" ایک اہم ترین ایپلی کیشن ہے۔ ایک طرف، اسے خود مختار نظام بنانے کے لیے استعمال کیا جا سکتا ہے جو ایجنٹوں کو ماحول کے ذریعے نیویگیٹ کرتے ہیں - چاہے وہ روبوٹ کام انجام دے رہے ہوں یا خود چلانے والی کاریں، لیکن اس کے لیے دوسرے شعبوں کے ساتھ تقاطع کی ضرورت ہے۔ تاہم، بے ضابطگی کا پتہ لگانا (جیسے لائن پر خراب مصنوعات)، تصاویر کے اندر اشیاء کا پتہ لگانا، چہرے کا پتہ لگانا اور آبجیکٹ کی کھوج کی مختلف دیگر ایپلی کیشنز کو دوسرے شعبوں کو ایک دوسرے کو کاٹتے ہوئے بغیر کیا جا سکتا ہے۔

آبجیکٹ کا پتہ لگانا تصویر کی درجہ بندی کی طرح معیاری نہیں ہے، بنیادی طور پر اس لیے کہ زیادہ تر نئی پیشرفتیں بڑی لائبریریوں اور فریم ورک کے بجائے انفرادی محققین، دیکھ بھال کرنے والوں اور ڈویلپرز کے ذریعے کی جاتی ہیں۔ TensorFlow یا PyTorch جیسے فریم ورک میں ضروری یوٹیلیٹی اسکرپٹس کو پیک کرنا اور API کے رہنما خطوط کو برقرار رکھنا مشکل ہے جو اب تک ترقی کی رہنمائی کرتے ہیں۔

یہ آبجیکٹ کا پتہ لگانے کو کچھ زیادہ پیچیدہ بناتا ہے، عام طور پر زیادہ لفظی (لیکن ہمیشہ نہیں)، اور تصویر کی درجہ بندی سے کم قابل رسائی۔ ماحولیاتی نظام میں رہنے کا ایک بڑا فائدہ یہ ہے کہ یہ آپ کو اچھے طریقوں، اوزاروں اور استعمال کے طریقوں کے بارے میں مفید معلومات کی تلاش نہ کرنے کا ایک طریقہ فراہم کرتا ہے۔ آبجیکٹ کا پتہ لگانے کے ساتھ - زیادہ تر لوگوں کو اچھی گرفت حاصل کرنے کے لیے میدان کے منظر نامے پر مزید تحقیق کرنی پڑتی ہے۔

خوش قسمتی سے عوام کے لیے - Ultralytics نے اپنے YOLOv5 کے نفاذ کے ارد گرد ایک سادہ، بہت طاقتور اور خوبصورت آبجیکٹ کا پتہ لگانے والا API تیار کیا ہے۔

اس مختصر گائیڈ میں، ہم MS COCO پر تربیت یافتہ پہلے سے تربیت یافتہ وزنوں کے ایک سیٹ کا استعمال کرتے ہوئے Python میں آبجیکٹ کا پتہ لگانے کا کام انجام دیں گے۔

YOLOv5

یولو (آپ صرف ایک بار دیکھیں) ایک طریقہ کار ہے، اور ساتھ ہی آبجیکٹ کا پتہ لگانے کے لیے بنائے گئے ماڈلز کا خاندان۔ 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() طریقہ، جو دوبارہ تخلیق کرتا ہے a 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],

آپ آؤٹ پٹ فائل کے ڈھانچے کی بھی تصدیق کر سکتے ہیں:

بہترین طرز عمل، صنعت کے لیے منظور شدہ معیارات، اور چیٹ شیٹ کے ساتھ Git سیکھنے کے لیے ہمارے ہینڈ آن، عملی گائیڈ کو دیکھیں۔ گوگلنگ گٹ کمانڈز کو روکیں اور اصل میں سیکھ یہ!

! 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

متبادل طور پر، آپ ایک یو آر ایل، ویڈیو فائل، متعدد فائلوں والی ڈائریکٹری کا راستہ، صرف مخصوص فائلوں سے ملنے کے لیے ایک گلوب، یوٹیوب لنک یا کوئی اور HTTP سلسلہ فراہم کر سکتے ہیں۔ نتائج کو میں محفوظ کیا جاتا ہے۔ runs/detect ڈائریکٹری.

مزید جانا - کمپیوٹر وژن کے لیے عملی گہری تعلیم

آپ کی جستجو کرنے والی فطرت آپ کو مزید آگے بڑھنا چاہتی ہے؟ ہم اپنے کو چیک کرنے کی تجویز کرتے ہیں۔ کورس: "Python کے ساتھ کمپیوٹر وژن کے لیے عملی گہری تعلیم".

YOLOv5 اور PyTorch PlatoBlockchain ڈیٹا انٹیلی جنس کے ساتھ Python میں آبجیکٹ کا پتہ لگانے کا اندازہ۔ عمودی تلاش۔ عی

ایک اور کمپیوٹر وژن کورس؟

ہم MNIST ہندسوں یا MNIST فیشن کی درجہ بندی نہیں کریں گے۔ انہوں نے بہت پہلے اپنے حصے کی خدمت کی۔ بہت سارے سیکھنے کے وسائل بنیادی ڈیٹاسیٹس اور بنیادی فن تعمیرات پر توجہ مرکوز کر رہے ہیں اس سے پہلے کہ جدید بلیک باکس فن تعمیر کو کارکردگی کا بوجھ اٹھانے دیا جائے۔

ہم توجہ مرکوز کرنا چاہتے ہیں۔ demystification, عملیی, افہام و تفہیم, انترجشتھان اور حقیقی منصوبوں. سیکھنا چاہتے ہیں۔ کس طرح کیا آپ فرق کر سکتے ہیں؟ ہم آپ کو ایک سفر پر لے جائیں گے جس طرح سے ہمارے دماغ چھاتی کے کینسر کے لیے ایک ریسرچ گریڈ ڈیپ لرننگ کلاسیفائر لکھنے سے لے کر گہرے سیکھنے کے نیٹ ورکس تک لے جائیں گے جو کہ "فریب" کرتے ہیں، عملی کام کے ذریعے آپ کو اصول اور تھیوری سکھاتے ہیں، کمپیوٹر وژن کو حل کرنے کے لیے گہری سیکھنے کا اطلاق کرنے میں ماہر بننے کا طریقہ اور اوزار۔

اندر کیاہے؟

  • بصارت کے پہلے اصول اور کمپیوٹر کو "دیکھنا" کیسے سکھایا جا سکتا ہے۔
  • کمپیوٹر وژن کے مختلف کام اور ایپلی کیشنز
  • تجارت کے اوزار جو آپ کے کام کو آسان بنائیں گے۔
  • کمپیوٹر وژن کے لیے ڈیٹاسیٹس کی تلاش، تخلیق اور استعمال
  • Convolutional Neural Networks کا نظریہ اور اطلاق
  • ڈیٹا سیٹس میں ڈومین شفٹ، شریک ہونے اور دیگر تعصبات کو ہینڈل کرنا
  • سیکھنے کو منتقل کریں اور دوسروں کے تربیتی وقت اور کمپیوٹیشنل وسائل کو اپنے فائدے کے لیے استعمال کریں۔
  • ایک جدید ترین چھاتی کے کینسر کی درجہ بندی کرنے والے کی تعمیر اور تربیت
  • مرکزی دھارے کے خیالات پر شکوک و شبہات کی صحت مند خوراک کو کیسے لاگو کیا جائے اور وسیع پیمانے پر اختیار کی جانے والی تکنیکوں کے مضمرات کو کیسے سمجھا جائے
  • T-SNE اور PCA کا استعمال کرتے ہوئے ConvNet کی "تصور کی جگہ" کا تصور کرنا
  • کیس اسٹڈیز کہ کمپنیاں بہتر نتائج حاصل کرنے کے لیے کمپیوٹر ویژن تکنیک کا استعمال کیسے کرتی ہیں۔
  • ماڈل کی مناسب تشخیص، اویکت جگہ کا تصور اور ماڈل کی توجہ کی نشاندہی کرنا
  • ڈومین ریسرچ کرنا، آپ کے اپنے ڈیٹا سیٹس پر کارروائی کرنا اور ماڈل ٹیسٹ قائم کرنا
  • جدید فن تعمیر، خیالات کی ترقی، انہیں کیا منفرد بناتا ہے اور انہیں کیسے نافذ کیا جائے
  • KerasCV – جدید ترین پائپ لائنز اور ماڈل بنانے کے لیے ایک WIP لائبریری
  • پیپرز کو کیسے پارس کریں اور پڑھیں اور خود ان پر عمل کریں۔
  • آپ کی درخواست پر منحصر ماڈلز کا انتخاب
  • آخر سے آخر تک مشین لرننگ پائپ لائن بنانا
  • تیز تر R-CNNs، RetinaNets، SSDs اور YOLO کے ساتھ آبجیکٹ کا پتہ لگانے پر زمین کی تزئین اور بصیرت
  • مثال اور سیمنٹک سیگمنٹیشن
  • YOLOv5 کے ساتھ ریئل ٹائم آبجیکٹ کی شناخت
  • YOLOv5 آبجیکٹ ڈیٹیکٹر کی تربیت
  • KerasNLP (صنعت کی طاقت WIP لائبریری) کا استعمال کرتے ہوئے ٹرانسفارمرز کے ساتھ کام کرنا
  • تصاویر کے کیپشن بنانے کے لیے ConvNets کے ساتھ ٹرانسفارمرز کو مربوط کرنا
  • DeepDream

نتیجہ

اس مختصر گائیڈ میں، ہم نے اس پر ایک نظر ڈالی ہے کہ آپ PyTorch کا استعمال کرتے ہوئے YOLOv5 کے ساتھ آبجیکٹ کا پتہ لگانے کا طریقہ کیسے انجام دے سکتے ہیں۔

ٹائم اسٹیمپ:

سے زیادہ Stackabuse