کمپیوٹر وژن کی آبجیکٹ کا پتہ لگانے کی ٹیکنالوجی متعدد ایپلی کیشنز کے لیے ضروری ہے۔ ہم اسے روبوٹکس، نگرانی کے آلات، خود چلانے والی آٹوموبائل، اور بہت سے شعبوں میں استعمال کرتے ہیں۔ لہذا، ہمیں تصویر یا ویڈیو میں کچھ چیزوں کو تلاش اور پہچاننا پڑتا ہے۔
سب سے معروف آبجیکٹ کی شناخت الگورتھم YOLO ہے۔ (آپ صرف ایک بار دیکھیں) ماڈلز کا سیٹ۔ یہ ماڈلز کی طرف سے بنائے گئے ہیں Ultralytics LLC.
اس سیریز کا تازہ ترین ورژن YOLOv5 ہے۔ اور، یہ مارکیٹ میں آبجیکٹ کی شناخت کا تیز ترین اور سب سے زیادہ درست ماڈل ہے۔ نئے ڈیٹا کو عام کرنے کے لیے ماڈل کی صلاحیت کو بہت بہتر کیا گیا ہے۔ نیز، اس میں بہت سی خصوصیات ہیں جو اسے پہلے کی تکرار سے بہتر کارکردگی کا مظاہرہ کرتی ہیں۔
YOLOv5 ریئل ٹائم ایپلی کیشنز کے لیے بہت اچھا ہے کیونکہ یہ ایک GPU پر 1000 فریم فی سیکنڈ کی شرح سے تصویروں پر کارروائی کر سکتا ہے۔
اس مضمون میں، ہم YOLOv5 کو متعارف کرائیں گے اور اس کے اطلاق کے شعبوں کی تفصیلات دیکھیں گے۔
YOLO کا سفر: YOLO سے YOLOv5 تک
جوزف ریڈمون وغیرہ۔ اصل میں YOLO، آبجیکٹ شناختی ماڈلز کا ایک سیٹ، 2016 میں متعارف کرایا گیا۔ ابتدائی YOLO ماڈل حقیقی وقت میں اشیاء کی شناخت کر سکتا ہے۔ تاہم، اس وقت کے دیگر ماڈلز کے مقابلے میں اس کی درستگی کم تھی۔
YOLO کے کئی اپ گریڈ شدہ ورژن پورے سالوں میں جاری کیے گئے۔ اور آخر کار، Ultralytics LLC نے YOLO سیریز، YOLOv5 کا تازہ ترین ایڈیشن تخلیق کیا۔
YOLOv5 اس وقت دستیاب سب سے درست اور تیز ترین آبجیکٹ کی شناخت کا ماڈل ہے۔
اہم خصوصیات
لنگر خانہ
YOLOv5 لنگر خانوں کا استعمال کرتے ہوئے تصویر میں اشیاء کے لیے باؤنڈنگ بکس کی پیش گوئی کرتا ہے۔ ماڈل پیشین گوئی کرتا ہے کہ بہت سے پہلے سے طے شدہ خانوں میں سے کون سے مختلف پہلوؤں کے تناسب کے ساتھ اینکر بکس کا استعمال کرتے ہوئے تصویر میں موجود آئٹم سے بہترین میل کھاتا ہے۔ یہ پہلے سے طے شدہ خانے ہیں۔
اور، وہ YOLOv5 کو درستگی کے ساتھ تصویر میں آئٹمز کو پہچاننے اور تلاش کرنے کے قابل بناتے ہیں۔
موزیک ڈیٹا کو بڑھانا
تربیت کے دوران، YOLOv5 ایک طریقہ استعمال کرتا ہے جسے موزیک کہا جاتا ہے۔ ڈیٹا میں اضافہ. تازہ تربیتی تصاویر تیار کرنے کے لیے، ہمارا ماڈل تصادفی طور پر کئی تصاویر کے پیچ کو یکجا کرتا ہے۔ نتیجے کے طور پر، ماڈل زیادہ لچکدار اور قابل اعتماد ہو جاتا ہے. لہذا، یہ نئے ڈیٹا کو عام کرتا ہے اور اوور فٹنگ کو کم کرتا ہے۔
ایک منفرد ٹریننگ پائپ لائن
ایک منفرد ٹریننگ پائپ لائن جو زیر نگرانی اور ملاتی ہے۔ غیر زیر نگرانی تعلیم استعمال کیا جاتا ہے.
اس طرح، ماڈل چھوٹے نمونے سے سیکھتا ہے اور بغیر لیبل والے ان پٹ کو مؤثر طریقے سے استعمال کرتا ہے۔ یہ ماڈل کی کارکردگی کو بڑھاتا ہے اور نئے ان پٹ کو عام کرنے کی صلاحیت کو بڑھاتا ہے۔
پرتیں جو بقایا اور غیر بقایا ہیں۔
YOLOv5 کا فن تعمیر ان تہوں کو یکجا کرتا ہے جو بقایا اور غیر بقایا ہیں۔ گریڈینٹ کو تہوں میں بہنے کی اجازت دے کر، بقایا پرتیں مشکل خصوصیات کو سیکھنے میں ماڈل کی مدد کرتی ہیں۔ نیز، غیر بقایا پرتیں ماڈل کو ان پٹ تصویر کی زیادہ جامع گرفت فراہم کرتی ہیں۔ نتیجے کے طور پر، YOLOv5 زیادہ درست اور مؤثر طریقے سے کام کر سکتا ہے۔
YOLOv5 کا استعمال کیسے کریں۔
تنصیب
YOLOv5 کی تنصیب پائپ کا استعمال کرتے ہوئے تیزی سے مکمل کی جا سکتی ہے۔ Pip ایک Python پیکیج مینیجر ہے۔ YOLOv5 کو انسٹال کرنے کے عمومی طریقہ کار درج ذیل ہیں:
1- PyTorch انسٹال کریں: چونکہ YOLOv5 PyTorch فریم ورک پر مبنی ہے، آپ کو پہلے PyTorch انسٹال کرنا ہوگا۔
pip install torch torchvision
2. CUDA انسٹال کریں: اگر آپ GPU پر YOLOv5 چلانے کا ارادہ رکھتے ہیں تو آپ کو CUDA انسٹال کرنا چاہیے۔
3. YOLOv5 انسٹال کریں: PyTorch اور CUDA ترتیب دینے کے بعد، YOLOv5 ڈاؤن لوڈ کرنے کے لیے درج ذیل کمانڈ کا استعمال کریں۔
pip install yolov5
4-YOLOv5 کی تنصیب کے بعد، آپ کو پہلے سے تربیت یافتہ وزن ڈاؤن لوڈ کرنا چاہیے۔ پہلے سے تربیت یافتہ وزن Ultralytics GitHub ریپو میں دستیاب ہیں۔
نیچے سکرول کرکے ویب سائٹ کے "وزن" حصے پر جائیں۔ آپ اس فہرست سے پہلے سے تربیت یافتہ وزن ڈاؤن لوڈ کر سکتے ہیں جسے آپ یہاں حاصل کر سکتے ہیں۔
5. وہ وزن منتخب کریں جو پہلے سے تربیت یافتہ ہیں اور آپ کے استعمال کے معاملے میں بہترین ہیں۔ ڈیٹا سیٹ یا مخصوص YOLOv5 ورژن جس کا وزن سیکھا گیا تھا فہرست کو کم کرنے کے لیے استعمال کیا جا سکتا ہے۔
6- مناسب وزن کا انتخاب کرنے کے بعد، اس کے ساتھ موجود "ڈاؤن لوڈ" بٹن پر کلک کر کے وزن کا انتخاب کریں۔ وزن اس طرح ڈاؤن لوڈ کے لیے دستیاب ہوگا۔ pt فائلیں.
7- ڈاؤن لوڈ کردہ وزن کو ڈائرکٹری میں منتقل کریں۔ یہ وہ جگہ ہے جہاں آپ کا پتہ لگانے کا اسکرپٹ کام کرے گا۔
8- اس مقام پر، آپ اپنے پتہ لگانے کے اسکرپٹ میں پہلے سے تربیت یافتہ وزن کا استعمال کرتے ہوئے اپنی تصاویر یا ویڈیوز پر آبجیکٹ کا پتہ لگا سکتے ہیں۔
ڈیٹا تیار کریں۔
YOLOv5 کے ساتھ استعمال کے لیے ڈیٹا تیار کرنے کے لیے آپ کو درج ذیل اقدامات کرنے ہوں گے۔
1. ڈیٹا اکٹھا کریں: پہلا قدم تصویر یا ویڈیو ڈیٹا اکٹھا کرنا ہے جس کی آپ کو ضرورت ہوگی۔ آبجیکٹ کا پتہ لگانا. جن چیزوں کا آپ پتہ لگانا چاہتے ہیں وہ تصاویر یا ویڈیوز میں موجود ہونا چاہیے۔
2- ڈیٹا کو فارمیٹ کریں: اگر آپ ان کو استعمال کر رہے ہیں تو آپ صرف اپنی اسکرپٹ میں تصاویر درآمد کر سکتے ہیں۔ اگر آپ اسے استعمال کرنے کا ارادہ رکھتے ہیں تو آپ کو ایک ویڈیو کو تصاویر کی ایک سیریز میں تبدیل کرنا ہوگا۔ آپ اوپن سی وی جیسی لائبریری کا استعمال کرتے ہوئے فلم سے فریم نکال سکتے ہیں۔
import cv2
img = cv2.imread('path/to/image')
OpenCV لائبریری کے ساتھ، آپ ویڈیو کو تصاویر کی ایک سیریز میں تبدیل کرنے کے لیے درج ذیل کمانڈ کا استعمال کر سکتے ہیں۔
import cv2
cap = cv2.VideoCapture('path/to/video')
while True:
ret, frame = cap.read()
if not ret:
break
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
3. ڈیٹا کو لیبل کریں: اگر آپ اپنا ڈیٹا سیٹ استعمال کر رہے ہیں تو آپ کو ڈیٹا پر لیبل لگانا چاہیے۔ تصویر کے ہر فریم میں ان آئٹمز کے ارد گرد باؤنڈنگ بکس ڈرائنگ کریں جن کی آپ شناخت کرنا چاہتے ہیں۔ یہ ڈیٹا کو لیبل لگانے کا عمل ہے۔ آپ اس آپریشن میں مدد کے لیے کئی ٹولز استعمال کر سکتے ہیں، بشمول LabelImg اور RectLabel۔
4- ٹیگ کرنے کے بعد آپ کو ڈیٹا کو ٹریننگ اور ٹیسٹنگ سیٹ میں تقسیم کرنا چاہیے۔ یہ اس بات کا اندازہ لگانے کے لیے اہم ہے کہ آپ کا ماڈل کتنی اچھی کارکردگی کا مظاہرہ کرتا ہے۔
5. آخر میں، آپ کو تربیت یا جانچ سے پہلے ڈیٹا کو پہلے سے پروسیس کرنے کی ضرورت پڑ سکتی ہے۔ اس میں تصویروں یا ویڈیوز کی پیمائش کرنا، پکسل کی قدروں کو معیاری بنانا، یا ڈیٹا کو بڑھانے کے طریقے استعمال کرنا شامل ہیں۔
ان مراحل کو مکمل کرنے کے بعد، آپ کا ڈیٹا تیار ہے۔
پتہ لگانے کا اسکرپٹ چلائیں۔
یہاں ایک پتہ لگانے کے اسکرپٹ کی ایک مثال ہے جو تصویر کا تجزیہ کرتی ہے اور اشیاء کو تلاش کرتی ہے۔
import yolov5
import cv2
# Pre-trained weights should be loaded.
weights = 'path/to/weights.pt'
# Set the detection confidence level
conf_thres = 0.5
# Set the Non-Maxima Suppression (NMS) threshold
nms_thres = 0.5
# Create the detector object
detector = yolov5.YOLOv5(weights, conf_thres, nms_thres)
# Load the image
img = cv2.imread('path/to/image')
# Perform object detection
detections = detector.detect(img)
# Print the detections
for x1, y1, x2, y2, conf, cls_conf, cls_pred in detections:
print("Object:", classes[int(cls_pred)])
print("Confidence:", conf)
print("Bounding box:", (x1, y1, x2, y2))
پروسیسنگ
غیر زیادہ سے زیادہ دبانا سب سے زیادہ بار بار پوسٹ پروسیسنگ تکنیکوں میں سے ایک ہے جو آبجیکٹ کا پتہ لگانے (NMS) میں استعمال ہوتا ہے۔ ہم ایک ہی شے کے لیے اوورلیپنگ باؤنڈنگ بکس کو ختم کرنے کے لیے NMS کا استعمال کرتے ہیں۔ پتہ لگانے پر NMS کو انجام دینے کے لیے، ہم OpenCV لائبریری کا cv2.dnn.NMSBoxes() طریقہ استعمال کر سکتے ہیں۔
یہاں ایک مثال ہے کہ NMS کا استعمال کرتے ہوئے پوسٹ پروسیس کا پتہ لگانے کا طریقہ۔
import cv2
# Perform Non-Maxima Suppression (NMS)
انڈیکس = cv2.dnn.NMSBoxes(پہچان، اعتماد، conf_thres، nms_thres)
تصور
ویژولائزیشن کی صورت میں، ہم دوبارہ اوپن سی وی جیسی لائبریری کا استعمال کر سکتے ہیں۔ ہم ماخذ کی تصویر یا ویڈیو پر دریافت شدہ اشیاء کے ارد گرد باؤنڈنگ بکس دکھا سکتے ہیں۔ تصویر کے باؤنڈنگ باکسز کو کھینچنے کے لیے، cv2.rectangle() طریقہ استعمال کریں۔ اصل تصویر پر پتہ لگانے کا طریقہ یہاں ہے:
درآمد cv2
# Draw the bounding boxes on the image
انڈیکس میں I کے لیے:
i = i[0]
x1, y1, x2, y2 = detections[i][0], detections[i][1], detections[i][2], detections[i][3]
cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)
cv2.putText(img, classes[class_ids[i]], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# Show the image
cv2.imshow("Object Detection", img)
cv2
درخواستیں
YOLOv5 ایک مضبوط آبجیکٹ شناختی ماڈل ہے۔ لہذا، ہم اسے حقیقی دنیا کے بہت سے منظرناموں میں استعمال کر سکتے ہیں۔ سب سے نمایاں استعمال خود چلانے والی کاروں میں ہے۔ YOLOv5 ریئل ٹائم میں اشیاء کی شناخت کر سکتا ہے جیسے آٹوموبائل اور ٹریفک لائٹس۔
نگرانی کے نظام میں، ہم لائیو ویڈیو اسٹریمز میں اشیاء کو پہچاننے اور ٹریک کرنے کے لیے YOLOv5 کا استعمال کر سکتے ہیں۔ مزید برآں، YOLOv5 روبوٹکس میں ایک بہترین اثاثہ ہو سکتا ہے۔ یہ روبوٹ کو اپنے گردونواح کا پتہ لگانے اور سمجھنے میں مدد کر سکتا ہے۔ یہ نیویگیشن اور ہیرا پھیری جیسی سرگرمیوں کے لیے انتہائی اہم ہے۔
YOLOv5 کسی بھی صنعت میں بھی استعمال کیا جا سکتا ہے جس میں آبجیکٹ کا پتہ لگانے کی ضرورت ہوتی ہے، جیسے کہ خوردہ، کھیل، طبی اور سیکورٹی۔
نتیجہ
آخر میں، YOLOv5 YOLO خاندان کا سب سے حالیہ اور جدید ترین ورژن ہے۔ آبجیکٹ کا پتہ لگانا ماڈل
. نیز، یہ کہنا مناسب ہے کہ یہ آبجیکٹ کا پتہ لگانے کا سب سے درست ماڈل دستیاب ہے۔ اس کی اعلی درستگی اور رفتار کی بدولت، آپ اسے اپنے آبجیکٹ کا پتہ لگانے کے منصوبوں کے لیے محفوظ طریقے سے منتخب کر سکتے ہیں۔
ریسکی اگس
میں yolov5 کے ساتھ پتہ لگانے والی گاڑی کے بارے میں پہلا جریدہ بناتا ہوں اور یہ ویب اس کے بارے میں معلومات تلاش کرنے میں مدد کرتا ہوں۔
مجھے AI کے بارے میں بہت دلچسپی ہے۔
اگر آپ کر سکتے ہیں تو میرے پاس AI کے بارے میں بہت سارے سوالات ہیں شاید آپ میری مدد کر سکتے ہیں۔
لئے Thankyou