કમ્પ્યુટર વિઝનની ઑબ્જેક્ટ ડિટેક્શન ટેક્નોલોજી અસંખ્ય એપ્લિકેશનો માટે આવશ્યક છે. અમે તેનો ઉપયોગ રોબોટિક્સ, સર્વેલન્સ સાધનો, સ્વ-ડ્રાઈવિંગ ઓટોમોબાઈલ અને ઘણા વધુ ક્ષેત્રોમાં કરીએ છીએ. તેથી, આપણે ચિત્ર અથવા વિડિયોમાં અમુક વસ્તુઓ શોધી અને ઓળખી શકીએ છીએ.
સૌથી વધુ જાણીતા પૈકી એક ઑબ્જેક્ટ ઓળખ અલ્ગોરિધમ્સ એ YOLO છે (તમે ફક્ત એકવાર જુઓ) મોડેલોનો સમૂહ. આ મોડેલો દ્વારા બનાવવામાં આવે છે અલ્ટ્રાલિટીક્સ એલએલસી.
આ શ્રેણીનું સૌથી તાજેતરનું સંસ્કરણ YOLOv5 છે. અને, તે બજારમાં સૌથી ઝડપી અને સૌથી સચોટ ઑબ્જેક્ટ ઓળખ મોડલ છે. નવા ડેટાને સામાન્ય બનાવવાની મોડેલની ક્ષમતામાં ઘણો સુધારો કરવામાં આવ્યો છે. ઉપરાંત, તેમાં ઘણી વિશેષતાઓ છે જે તેને અગાઉના પુનરાવર્તનો કરતાં વધુ સારી કામગીરી બજાવે છે.
YOLOv5 રીઅલ-ટાઇમ એપ્લિકેશન્સ માટે સરસ છે કારણ કે તે એક જ GPU પર 1000 ફ્રેમ પ્રતિ સેકન્ડ સુધીના દરે ચિત્રો પર પ્રક્રિયા કરી શકે છે.
આ લેખમાં, અમે YOLOv5 રજૂ કરીશું અને તેના એપ્લિકેશનના ક્ષેત્રોની વિગતો પર જઈશું.
YOLO ની સફર: YOLO થી YOLOv5 સુધી
જોસેફ રેડમોન એટ અલ. મૂળ 2016 માં YOLO, ઑબ્જેક્ટ આઇડેન્ટિફિકેશન મોડલનો સમૂહ રજૂ કર્યો હતો. પ્રારંભિક 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 ના ઇન્સ્ટોલેશન પછી, તમારે પહેલાથી પ્રશિક્ષિત વજન ડાઉનલોડ કરવું આવશ્યક છે. પૂર્વ પ્રશિક્ષિત વજન અલ્ટ્રાલિટિક્સ ગિટહબ રેપોમાં ઉપલબ્ધ છે.
નીચે સ્ક્રોલ કરીને વેબસાઇટના "વજન" ભાગ પર જાઓ. તમે અહીં શોધી શકો છો તે સૂચિમાંથી તમે પૂર્વ પ્રશિક્ષિત વજન ડાઉનલોડ કરી શકો છો.
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() પદ્ધતિનો ઉપયોગ કરો. મૂળ ઇમેજ પર શોધ કેવી રીતે જોવી તે અહીં છે:
સીવી 2 આયાત કરો
# 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 કુટુંબનું સૌથી તાજેતરનું અને અત્યાધુનિક સંસ્કરણ છે ઑબ્જેક્ટ શોધ મોડેલો
. ઉપરાંત, તે કહેવું યોગ્ય છે કે તે ઉપલબ્ધ સૌથી સચોટ ઑબ્જેક્ટ શોધ મોડલ છે. તેની ઉચ્ચ ચોકસાઈ અને ઝડપ માટે આભાર, તમે તેને તમારા ઑબ્જેક્ટ શોધ પ્રોજેક્ટ્સ માટે સુરક્ષિત રીતે પસંદ કરી શકો છો.
Resky Agus
હું yolov5 સાથે ડિટેક્શન વાહન વિશે પ્રથમ જર્નલ બનાવું છું અને આ વેબ મને તે વિશેની માહિતી શોધવામાં મદદ કરે છે.
મને AI વિશે ખૂબ જ રસ છે.
જો તમે કરી શકો તો મારી પાસે AI વિશે ઘણા પ્રશ્નો છે કદાચ તમે મને મદદ કરી શકો
આભાર