update upstaged changes
This commit is contained in:
parent
830c3a0571
commit
41e1571c4d
12
aug.py
12
aug.py
@ -23,14 +23,18 @@ tagt_path = '../videos/total-exp'
|
|||||||
p = 1
|
p = 1
|
||||||
|
|
||||||
t = a.Compose([
|
t = a.Compose([
|
||||||
|
a.SafeRotate(limit=80, p=0.8),
|
||||||
a.BBoxSafeRandomCrop(),
|
a.BBoxSafeRandomCrop(),
|
||||||
a.HorizontalFlip(p=0.5),
|
a.HorizontalFlip(p=0.5),
|
||||||
a.RandomBrightnessContrast(p=0.2)
|
a.VerticalFlip(p=0.5),
|
||||||
|
a.RandomBrightnessContrast(p=0.9, brightness_limit = (-0.2, 0.7), contrast_limit = (-0.6, 0.4)),
|
||||||
|
a.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1, p=0.8),
|
||||||
|
a.ChromaticAberration(p=0.2),
|
||||||
], bbox_params=a.BboxParams(format='yolo', label_fields=['class_labels']))
|
], bbox_params=a.BboxParams(format='yolo', label_fields=['class_labels']))
|
||||||
|
|
||||||
fs = set([i.rsplit(".", 1)[0] for i in ls(base_path) if i != "classes.txt"])
|
fs = set([i.rsplit(".", 1)[0] for i in ls(base_path) if i != "classes.txt"])
|
||||||
|
|
||||||
for i in list(fs)[:1]:
|
for i in list(fs):
|
||||||
img = cv.cvtColor(cv.imread(f"{base_path}/{i}.jpg"), cv.COLOR_BGR2RGB)
|
img = cv.cvtColor(cv.imread(f"{base_path}/{i}.jpg"), cv.COLOR_BGR2RGB)
|
||||||
box = [tuple(map(float, j.split()[1:])) for j in open(f"{base_path}/{i}.txt").read().split("\n") if j]
|
box = [tuple(map(float, j.split()[1:])) for j in open(f"{base_path}/{i}.txt").read().split("\n") if j]
|
||||||
|
|
||||||
@ -44,9 +48,9 @@ for i in list(fs)[:1]:
|
|||||||
out_box = r['bboxes']
|
out_box = r['bboxes']
|
||||||
out_lbl = r['class_labels']
|
out_lbl = r['class_labels']
|
||||||
|
|
||||||
#print(f"open({tagt_path}/{p}-{i}-{k}.xml)")
|
print(f"open({tagt_path}/{p}-{i}-{k}.txt)")
|
||||||
#print("\n".join([" ".join(list(map(str, ['0'] + list(y)))) for y in out_box]) + "\n")
|
#print("\n".join([" ".join(list(map(str, ['0'] + list(y)))) for y in out_box]) + "\n")
|
||||||
open(f"{tagt_path}/{p}-{i}-{k}.xml", 'w').write("\n".join([" ".join(list(map(str, ['0'] + list(y)))) for y in out_box]) + "\n")
|
open(f"{tagt_path}/{p}-{i}-{k}.txt", 'w').write("\n".join([" ".join(list(map(str, ['0'] + list(y)))) for y in out_box]) + "\n")
|
||||||
cv.imwrite(f"{tagt_path}/{p}-{i}-{k}.jpg", cv.cvtColor(out_img, cv.COLOR_RGB2BGR))
|
cv.imwrite(f"{tagt_path}/{p}-{i}-{k}.jpg", cv.cvtColor(out_img, cv.COLOR_RGB2BGR))
|
||||||
|
|
||||||
#sq(out_img, out_box)
|
#sq(out_img, out_box)
|
||||||
|
|||||||
10
detect.py
Normal file
10
detect.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
from ultralytics import YOLO
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
|
||||||
|
m = YOLO("best.pt")
|
||||||
|
|
||||||
|
res = m("../dataset/images/train/1-1-0000001-1.jpg")
|
||||||
|
res[0].show()
|
||||||
|
#print(res)
|
||||||
|
#plt.imshow(res)
|
||||||
|
#plt.show()
|
||||||
24
live.py
Normal file
24
live.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from ultralytics import YOLO
|
||||||
|
import json
|
||||||
|
import cv2 as cv
|
||||||
|
|
||||||
|
m = YOLO("best.pt")
|
||||||
|
|
||||||
|
c = cv.VideoCapture(0)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
_, frame = c.read()
|
||||||
|
|
||||||
|
res = m(frame)
|
||||||
|
for i in json.loads(res[0].to_json()):
|
||||||
|
i = i['box']
|
||||||
|
cv.rectangle(frame, (round(i['x1']), round(i['y1'])), (round(i['x2']), round(i['y2'])), (0, 0, 255), 3)
|
||||||
|
#print(i)
|
||||||
|
|
||||||
|
cv.imshow('frame', frame)
|
||||||
|
|
||||||
|
if cv.waitKey(1) == ord('q'):
|
||||||
|
break
|
||||||
|
|
||||||
|
c.release()
|
||||||
|
cv.destroyAllWindows()
|
||||||
33
show-box.py
Normal file
33
show-box.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import albumentations as a
|
||||||
|
import numpy as np
|
||||||
|
from os import listdir as ls
|
||||||
|
import cv2 as cv
|
||||||
|
from sys import argv, exit
|
||||||
|
|
||||||
|
if len(argv) != 2:
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
def b_c(b, s = (1920, 1080)):
|
||||||
|
return [
|
||||||
|
round(b[0] * s[0] - b[2] * s[0] / 2),
|
||||||
|
round(b[0] * s[0] + b[2] * s[0] / 2),
|
||||||
|
round(b[1] * s[1] - b[3] * s[1] / 2),
|
||||||
|
round(b[1] * s[1] + b[3] * s[1] / 2),
|
||||||
|
]
|
||||||
|
|
||||||
|
def sq(img, bbox):
|
||||||
|
for i in bbox:
|
||||||
|
b = b_c(i, s = (img.shape[1], img.shape[0]))
|
||||||
|
#print(b)
|
||||||
|
cv.rectangle(img, (b[0], b[2]), (b[1], b[3]), (255, 0, 0), 2)
|
||||||
|
|
||||||
|
img = cv.cvtColor(cv.imread(f"{argv[1]}.jpg"), cv.COLOR_BGR2RGB)
|
||||||
|
box = [tuple(map(float, j.split()[1:])) for j in open(f"{argv[1]}.txt").read().split("\n") if j]
|
||||||
|
|
||||||
|
box = np.array(box)
|
||||||
|
|
||||||
|
sq(img, box)
|
||||||
|
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
plt.imshow(img)
|
||||||
|
plt.show()
|
||||||
4
train.py
Normal file
4
train.py
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
from ultralytics import YOLO
|
||||||
|
|
||||||
|
m = YOLO("m.yaml")
|
||||||
|
m.train(data = "../dataset/d.yaml", epochs = 100, imgsz = 300)
|
||||||
31
video-cruncher.py
Normal file
31
video-cruncher.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
from ultralytics import YOLO
|
||||||
|
import json
|
||||||
|
import cv2 as cv
|
||||||
|
from sys import argv, exit
|
||||||
|
|
||||||
|
if len(argv) != 2:
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
m = YOLO("best.pt")
|
||||||
|
|
||||||
|
ci = cv.VideoCapture(argv[1])
|
||||||
|
target_dir = argv[1].rsplit(".", 1)[0] + "-p"
|
||||||
|
|
||||||
|
k = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
ret, frame = ci.read()
|
||||||
|
|
||||||
|
if not ret:
|
||||||
|
break
|
||||||
|
|
||||||
|
res = m(frame)
|
||||||
|
|
||||||
|
for i in json.loads(res[0].to_json()):
|
||||||
|
i = i['box']
|
||||||
|
cv.rectangle(frame, (round(i['x1']), round(i['y1'])), (round(i['x2']), round(i['y2'])), (0, 0, 255), 3)
|
||||||
|
|
||||||
|
cv.imwrite(f"{target_dir}/{k:07d}.jpg", frame)
|
||||||
|
k += 1
|
||||||
|
|
||||||
|
ci.release()
|
||||||
Loading…
x
Reference in New Issue
Block a user