Компьютерийн харааны объект илрүүлэх технологи нь олон төрлийн хэрэглээнд зайлшгүй шаардлагатай. Бид үүнийг робот техник, хяналтын төхөөрөмж, өөрөө жолооддог автомашин болон бусад олон салбарт ашигладаг. Тиймээс бид зураг эсвэл видеоноос тодорхой зүйлийг олж, таних болно.
Хамгийн алдартай хүмүүсийн нэг объект таних алгоритм нь YOLO юм (Та зөвхөн нэг удаа хараарай) загваруудын багц. Эдгээр загваруудыг бүтээсэн Ultralytics ХХК.
Энэ цувралын хамгийн сүүлийн хувилбар нь YOLOv5 юм. Мөн энэ нь зах зээл дээрх хамгийн хурдан бөгөөд нарийн объект таних загвар юм. Загварын шинэ өгөгдөлд нэгтгэх чадвар ихээхэн сайжирсан. Түүнчлэн, энэ нь өмнөх давталтуудаас илүү сайн гүйцэтгэлтэй болгодог олон функцийг агуулдаг.
YOLOv5 нь нэг GPU дээр секундэд 1000 фрэймийн хурдтай зураг боловсруулах чадвартай тул бодит цагийн хэрэглээнд тохиромжтой.
Энэ нийтлэлд бид YOLOv5-ийг танилцуулж, түүний хэрэглээний талбаруудыг нарийвчлан авч үзэх болно.
YOLO-ийн аялал: YOLO-оос YOLOv5 хүртэл
Жозеф Редмон нар. анх 2016 онд объект таних загваруудын багц YOLO-г танилцуулсан. Анхны YOLO загвар нь объектыг бодит цаг хугацаанд таньж чаддаг байв. Гэсэн хэдий ч тэр үеийн бусад загваруудтай харьцуулахад нарийвчлал багатай байсан.
Жилийн туршид YOLO-ийн хэд хэдэн сайжруулсан хувилбарууд гарсан. Эцэст нь Ultralytics ХХК нь 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- Өгөгдлийг форматлах: Хэрэв та ашиглаж байгаа бол зурагнуудаа скриптдээ оруулж болно. Хэрэв та ашиглахаар төлөвлөж байгаа бол видеог цуврал зураг болгон хувиргах ёстой. Та OpenCV гэх мэт номын санг ашиглан киноноос жааз гаргаж болно.
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)
Үзүүлэн
Дүрслэх тохиолдолд бид OpenCV шиг номын санг дахин ашиглаж болно. Бид эх зураг эсвэл видеон дээр илрүүлсэн объектын эргэн тойронд хязгаарлах хайрцагуудыг харуулах боломжтой. Зургийн хязгаарлах хайрцгийг зурахдаа 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-тай тээврийн хэрэгслийн илрүүлэлтийн тухай анхны тэмдэглэл хийдэг бөгөөд энэ вэб нь энэ талаар мэдээлэл хайхад тусалдаг.
Би хиймэл оюун ухааныг их сонирхдог.
Хэрэв та чадах юм бол надад хиймэл оюун ухааны талаар олон асуулт байгаа бол та надад тусалж магадгүй юм
Баярлалаа