From 0c41868cc815cd4b15fbbbd8aed9156e49a0627a Mon Sep 17 00:00:00 2001
From: Edmond Yoo <hj3yoo@uwaterloo.ca>
Date: Fri, 14 Sep 2018 16:36:35 +0000
Subject: [PATCH] config changes
---
.gitignore | 1
cfg/yolov3-custom.cfg | 6 +-
data/coco.data | 0
data/obj.names | 0
data/obj.data | 0
cfg/tiny_yolo.cfg | 2
darknet.py | 58 +++++++++++++++++++++++++---
data/dog.txt | 3 +
8 files changed, 58 insertions(+), 12 deletions(-)
diff --git a/.gitignore b/.gitignore
index 42625eb..b06be71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,6 @@
*.png
*.so
mnist/
-data/
caffe/
grasp/
images/
diff --git a/cfg/tiny_yolo.cfg b/cfg/tiny_yolo.cfg
index 256b895..371ee56 100644
--- a/cfg/tiny_yolo.cfg
+++ b/cfg/tiny_yolo.cfg
@@ -119,7 +119,7 @@
bias_match=1
classes=1
coords=4
-num=5
+num=9
softmax=1
jitter=.2
rescore=1
diff --git a/cfg/yolov3-custom.cfg b/cfg/yolov3-custom.cfg
index e7d6a6e..32fe34d 100644
--- a/cfg/yolov3-custom.cfg
+++ b/cfg/yolov3-custom.cfg
@@ -608,7 +608,7 @@
mask = 6,7,8
anchors = 129.1513,150.1077, 104.9181,195.1675, 145.8067,186.4670, 127.9706,231.2296, 165.9494,221.8162, 162.4676,253.0225
classes=1
-num=9
+num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
@@ -694,7 +694,7 @@
mask = 3,4,5
anchors = 129.1513,150.1077, 104.9181,195.1675, 145.8067,186.4670, 127.9706,231.2296, 165.9494,221.8162, 162.4676,253.0225
classes=1
-num=9
+num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
@@ -781,7 +781,7 @@
mask = 0,1,2
anchors = 129.1513,150.1077, 104.9181,195.1675, 145.8067,186.4670, 127.9706,231.2296, 165.9494,221.8162, 162.4676,253.0225
classes=1
-num=9
+num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
diff --git a/darknet.py b/darknet.py
index ef5f98d..f00356d 100644
--- a/darknet.py
+++ b/darknet.py
@@ -32,6 +32,7 @@
import random
import os
import cv2
+import numpy as np
def sample(probs):
s = sum(probs)
@@ -223,7 +224,10 @@
Performs the meat of the detection
"""
#pylint: disable= C0321
- im = load_image(image, 0, 0)
+ if isinstance(image, np.ndarray):
+ im = array_to_image(image)[0]
+ else:
+ im = load_image(image, 0, 0)
#import cv2
#custom_image_bgr = cv2.imread(image) # use: detect(,,imagePath,)
#custom_image = cv2.cvtColor(custom_image_bgr, cv2.COLOR_BGR2RGB)
@@ -367,7 +371,8 @@
raise ValueError("Invalid image path `"+os.path.abspath(imagePath)+"`")
# Do the detection
#detections = detect(netMain, metaMain, imagePath, thresh) # if is used cv2.imread(image)
- detections = detect(netMain, metaMain, imagePath.encode("ascii"), thresh)
+ #detections = detect(netMain, metaMain, imagePath.encode("ascii"), thresh)
+ detections = detect(netMain, metaMain, cv2.imread(imagePath), thresh, debug=True)
if showImage:
try:
from skimage import io, draw
@@ -423,7 +428,7 @@
return detections
-def capture(thresh=.5, hier_thresh=.5, nms=.45, configPath="./cfg/yolov3.cfg", weightPath="yolov3.weights",
+def capture(thresh=.25, hier_thresh=.5, nms=.45, configPath="./cfg/yolov3.cfg", weightPath="yolov3.weights",
metaPath="./data/coco.data", showImage=True, makeImageOnly=False, initOnly=False):
global metaMain, netMain, altNames # pylint: disable=W0603
netMain = load_net_custom(configPath.encode("ascii"), weightPath.encode("ascii"), 0, 1) # batch size = 1
@@ -433,7 +438,7 @@
pnum = pointer(num)
num = pnum[0]
- capture = cv2.VideoCapture('../data/test3.mp4')
+ capture = cv2.VideoCapture('../data/test1.mp4')
print(capture.get(cv2.CAP_PROP_FPS))
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1024)
@@ -441,6 +446,8 @@
while True:
ret, frame = capture.read()
+ detections = detect(netMain, metaMain, frame, thresh, debug=True)
+ '''
im, arr = array_to_image(frame)
predict_image(netMain, im)
dets = get_network_boxes(netMain, im.w, im.h, thresh, hier_thresh, None, 0, pnum, 1)
@@ -453,6 +460,42 @@
b = dets[j].bbox
nameTag = metaMain.names[i]
res.append((nameTag, dets[j].prob[i], (b.x, b.y, b.w, b.h)))
+ '''
+ for detection in detections:
+ label = detection[0]
+ confidence = detection[1]
+ pstring = label + ": " + str(np.rint(100 * confidence)) + "%"
+ imcaption.append(pstring)
+ print(pstring)
+ bounds = detection[2]
+ shape = image.shape
+ # x = shape[1]
+ # xExtent = int(x * bounds[2] / 100)
+ # y = shape[0]
+ # yExtent = int(y * bounds[3] / 100)
+ yExtent = int(bounds[3])
+ xEntent = int(bounds[2])
+ # Coordinates are around the center
+ xCoord = int(bounds[0] - bounds[2] / 2)
+ yCoord = int(bounds[1] - bounds[3] / 2)
+ boundingBox = [
+ [xCoord, yCoord],
+ [xCoord, yCoord + yExtent],
+ [xCoord + xEntent, yCoord + yExtent],
+ [xCoord + xEntent, yCoord]
+ ]
+ # Wiggle it around to make a 3px border
+ rr, cc = draw.polygon_perimeter([x[1] for x in boundingBox], [x[0] for x in boundingBox], shape=shape)
+ rr2, cc2 = draw.polygon_perimeter([x[1] + 1 for x in boundingBox], [x[0] for x in boundingBox], shape=shape)
+ rr3, cc3 = draw.polygon_perimeter([x[1] - 1 for x in boundingBox], [x[0] for x in boundingBox], shape=shape)
+ rr4, cc4 = draw.polygon_perimeter([x[1] for x in boundingBox], [x[0] + 1 for x in boundingBox], shape=shape)
+ rr5, cc5 = draw.polygon_perimeter([x[1] for x in boundingBox], [x[0] - 1 for x in boundingBox], shape=shape)
+ boxColor = (int(255 * (1 - (confidence ** 2))), int(255 * (confidence ** 2)), 0)
+ draw.set_color(image, (rr, cc), boxColor, alpha=0.8)
+ draw.set_color(image, (rr2, cc2), boxColor, alpha=0.8)
+ draw.set_color(image, (rr3, cc3), boxColor, alpha=0.8)
+ draw.set_color(image, (rr4, cc4), boxColor, alpha=0.8)
+ draw.set_color(image, (rr5, cc5), boxColor, alpha=0.8)
print(res)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
@@ -463,8 +506,9 @@
if __name__ == "__main__":
- performDetect(imagePath="../data/test1.jpg", thresh=0.25, configPath="./cfg/tiny_yolo.cfg",
- weightPath="./weights/second_general/tiny_yolo_17000.weights",
- metaPath="./data/obj.data", showImage=True, makeImageOnly=False, initOnly=False)
+ performDetect(imagePath='data/scream.jpg')
+ #performDetect(imagePath="../data/test1.jpg", thresh=0.25, configPath="./cfg/tiny_yolo.cfg",
+ # weightPath="./weights/second_general/tiny_yolo_17000.weights",
+ # metaPath="./data/obj.data", showImage=True, makeImageOnly=False, initOnly=False)
#print(performDetect(showImage=False))
#capture()
diff --git a/cfg/coco.data b/data/coco.data
similarity index 100%
rename from cfg/coco.data
rename to data/coco.data
diff --git a/data/dog.txt b/data/dog.txt
new file mode 100644
index 0000000..ef90b77
--- /dev/null
+++ b/data/dog.txt
@@ -0,0 +1,3 @@
+16 0.2929 0.6516 0.2627 0.5270
+7 0.7453 0.2198 0.3476 0.1569
+1 0.4540 0.4864 0.5653 0.5323
diff --git a/cfg/obj.data b/data/obj.data
similarity index 100%
rename from cfg/obj.data
rename to data/obj.data
diff --git a/obj.names b/data/obj.names
similarity index 100%
rename from obj.names
rename to data/obj.names
--
Gitblit v1.10.0