Technologie detekce objektů počítačového vidění je nezbytná pro řadu aplikací. Používáme jej v robotice, sledovacích zařízeních, samořídících automobilech a mnoha dalších oblastech. Můžeme tedy najít a rozpoznat určité věci na obrázku nebo videu.
Jeden z nejznámějších Algoritmus identifikace objektů je YOLO (You Only Look Once) sada modelů. Tyto modely jsou vytvořeny Ultralytics LLC.
Nejnovější verze této série je YOLOv5. A je to nejrychlejší a nejpřesnější model identifikace objektů na trhu. Schopnost modelu zobecňovat na nová data se výrazně zlepšila. Obsahuje také mnoho funkcí, díky kterým funguje lépe než dřívější iterace.
YOLOv5 je skvělý pro aplikace v reálném čase, protože dokáže zpracovávat obrázky rychlostí až 1000 snímků za sekundu na jednom GPU.
V tomto článku představíme YOLOv5 a projdeme si podrobnosti o oblastech jeho použití.
Journey of YOLO: Od YOLO k YOLOv5
Joseph Redmon a kol. původně představil YOLO, sadu modelů identifikace objektů, v roce 2016. Počáteční model YOLO dokázal identifikovat objekty v reálném čase. Ve srovnání s jinými modely v té době však měl nízkou přesnost.
V průběhu let bylo vydáno několik upgradovaných verzí YOLO. A nakonec společnost Ultralytics LLC vytvořila nejnovější vydání série YOLO, YOLOv5.
YOLOv5 je v současné době nejpřesnější a nejrychlejší model identifikace objektů.
Důležité funkce
Kotevní krabice
YOLOv5 předpovídá ohraničovací rámečky pro objekty v obrázku pomocí kotevních rámečků. Model pomocí kotevních rámečků předpovídá, který z mnoha předdefinovaných rámečků s různými poměry stran nejlépe odpovídá předmětu na obrázku. Jedná se o předem definované boxy.
A umožňují YOLOv5 přesně rozpoznat a najít položky na obrázku.
Rozšíření mozaikových dat
Při tréninku YOLOv5 využívá metodu známou jako mozaika augmentace dat. Abychom vytvořili nové tréninkové obrázky, náš model náhodně kombinuje záplaty několika fotografií. Díky tomu se model stává odolnějším a spolehlivějším. Proto se zobecňuje na nová data a snižuje nadměrné vybavení.
Jedinečný tréninkový kanál
Jedinečný tréninkový kanál, který míchá pod dohledem a učení bez dozoru se používá.
Model se tedy učí z menšího vzorku a efektivně využívá neoznačený vstup. To zvyšuje výkon modelu a zvyšuje jeho schopnost zobecnit nové vstupy.
Vrstvy, které jsou zbytkové a nezbytkové
Architektura YOLOv5 kombinuje vrstvy, které jsou zbytkové a nezbytkové. Tím, že umožňují přechody protékat vrstvami, zbytkové vrstvy pomáhají modelu učit se obtížné funkce. Nezbytné vrstvy také poskytují modelu komplexnější uchopení vstupního obrázku. Díky tomu může YOLOv5 fungovat přesněji a efektivněji.
Jak používat YOLOv5
Instalace
Instalaci YOLOv5 lze rychle dokončit pomocí pip. Pip je správce balíčků Pythonu. Obecné postupy pro instalaci YOLOv5 jsou následující:
1- Nainstalujte PyTorch: Protože YOLOv5 je založen na frameworku PyTorch, musíte nejprve nainstalovat PyTorch.
pip install torch torchvision
2. Instalace CUDA: Pokud chcete spustit YOLOv5 na GPU, musíte nainstalovat CUDA.
3. Nainstalujte YOLOv5: Po nastavení PyTorch a CUDA použijte následující příkaz ke stažení YOLOv5.
pip install yolov5
4-Po instalaci YOLOv5 si musíte stáhnout předem natrénovaná závaží. Předtrénovaná závaží jsou k dispozici v úložišti Ultralytics GitHub.
Přejděte na stránku „závaží“ posunutím dolů. Předtrénované váhy si můžete stáhnout ze seznamu, který najdete zde.
5. Vyberte závaží, která jsou již natrénovaná a nejlépe vyhovují vašemu případu použití. K zúžení seznamu lze použít datovou sadu nebo konkrétní verzi YOLOv5, ze které byly váhy naučeny.
6- Po výběru správných závaží vyberte závaží kliknutím na tlačítko „Stáhnout“ vedle ní. Závaží budou k dispozici ke stažení jako. pt soubory.
7- Přeneste stažené váhy do adresáře. Zde bude fungovat váš detekční skript.
8- V tomto okamžiku můžete spustit detekci objektů na vašich fotografiích nebo videích pomocí předem trénovaných vah ve vašem detekčním skriptu.
Připravte Data
Chcete-li připravit data k použití s YOLOv5, musíte provést následující akce:
1. Shromážděte data: Prvním krokem je shromáždit data obrázku nebo videa, která budete potřebovat detekce objektu. Věci, které chcete detekovat, by měly být na fotografiích nebo videích.
2- Formátování dat: Do skriptu můžete importovat pouze fotografie, pokud je používáte. Chcete-li video použít, musíte jej proměnit v sérii fotografií. Snímky z filmu můžete extrahovat pomocí knihovny, jako je OpenCV.
import cv2
img = cv2.imread('path/to/image')
Pomocí knihovny OpenCV můžete pomocí následujícího příkazu převést video na sérii obrázků:
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. Označte data: Pokud používáte svou datovou sadu, musíte data označit. Nakreslete ohraničující rámečky kolem položek, které chcete identifikovat v každém snímku obrazu. Je to proces označování dat. Můžete použít několik nástrojů, které vám pomohou s touto operací, včetně LabelImg a RectLabel.
4- Po označení musíte data rozdělit do tréninkových a testovacích sad. To je zásadní pro posouzení toho, jak dobře váš model funguje.
5. Nakonec možná budete muset před trénováním nebo testováním předběžně zpracovat data. To může zahrnovat škálování obrázků nebo videí, standardizaci hodnot pixelů nebo použití metod pro rozšiřování dat.
Po dokončení těchto kroků jsou vaše data připravena.
Spusťte detekční skript
Zde je ilustrace detekčního skriptu, který analyzuje obrázek a nachází objekty.
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))
Následné zpracování
Nemaximální potlačení je jednou z nejčastějších technik následného zpracování používaných při detekci objektů (NMS). NMS používáme k odstranění překrývajících se ohraničujících rámečků pro stejný objekt. Pro spuštění NMS na detekcích můžeme použít metodu cv2.dnn.NMSBoxes() knihovny OpenCV.
Zde je příklad, jak následně zpracovat detekce pomocí NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indexy = cv2.dnn.NMSBoxes(detekce, spolehlivosti, conf_thres, nms_thres)
Vizualizace
V případě vizualizace můžeme opět využít knihovnu jako OpenCV. Můžeme zobrazit ohraničující rámečky kolem objevených objektů na zdrojovém obrázku nebo videu. Chcete-li nakreslit ohraničující rámečky obrázku, použijte metodu cv2.rectangle(). Zde je návod, jak zobrazit detekce na původním obrázku:
import cv2
# Draw the bounding boxes on the image
pro I v indexech:
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
Aplikace
YOLOv5 je silný model identifikace objektů. Můžeme jej tedy využít v mnoha scénářích reálného světa. Jedno z nejvýraznějších použití je v samořídících autech. YOLOv5 dokáže identifikovat položky v reálném čase, jako jsou automobily a semafory.
V monitorovacích systémech můžeme použít YOLOv5 k rozpoznání a sledování objektů v živých video streamech. Kromě toho může být YOLOv5 velkým přínosem v robotice. Může pomoci robotům detekovat a pochopit své okolí. To je nesmírně důležité pro činnosti, jako je navigace a manipulace.
YOLOv5 lze také použít v jakémkoli odvětví, které vyžaduje detekci objektů, jako je maloobchod, sport, lékařství a zabezpečení.
Proč investovat do čističky vzduchu?
Konečně, YOLOv5 je nejnovější a sofistikovaná verze rodiny YOLO detekce objektu modely
. Je také fér říci, že je to nejpřesnější dostupný model detekce objektů. Díky vysoké přesnosti a rychlosti si jej můžete bezpečně vybrat pro své projekty detekce objektů.
Resky Agus
Dělám první deník o detekčním vozidle s yolov5 a tento web mi pomáhá hledat informace o tom.
Velmi mě zajímá AI.
pokud můžete, mám mnoho otázek ohledně AI, možná mi můžete pomoci
Děkuji