| |
| |
| |
| |
|
|
| from scipy.misc import imread |
| import cv2 |
|
|
| def array_to_image(arr): |
| arr = arr.transpose(2,0,1) |
| c = arr.shape[0] |
| h = arr.shape[1] |
| w = arr.shape[2] |
| arr = (arr/255.0).flatten() |
| data = dn.c_array(dn.c_float, arr) |
| im = dn.IMAGE(w,h,c,data) |
| return im |
|
|
| def detect2(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45): |
| boxes = dn.make_boxes(net) |
| probs = dn.make_probs(net) |
| num = dn.num_boxes(net) |
| dn.network_detect(net, image, thresh, hier_thresh, nms, boxes, probs) |
| res = [] |
| for j in range(num): |
| for i in range(meta.classes): |
| if probs[j][i] > 0: |
| res.append((meta.names[i], probs[j][i], (boxes[j].x, boxes[j].y, boxes[j].w, boxes[j].h))) |
| res = sorted(res, key=lambda x: -x[1]) |
| dn.free_ptrs(dn.cast(probs, dn.POINTER(dn.c_void_p)), num) |
| return res |
|
|
| import sys, os |
| sys.path.append(os.path.join(os.getcwd(),'python/')) |
|
|
| import darknet as dn |
|
|
| |
| net = dn.load_net("cfg/tiny-yolo.cfg", "tiny-yolo.weights", 0) |
| meta = dn.load_meta("cfg/coco.data") |
| r = dn.detect(net, meta, "data/dog.jpg") |
| print r |
|
|
| |
| arr= imread('data/dog.jpg') |
| im = array_to_image(arr) |
| r = detect2(net, meta, im) |
| print r |
|
|
| |
| arr = cv2.imread('data/dog.jpg') |
| im = array_to_image(arr) |
| dn.rgbgr_image(im) |
| r = detect2(net, meta, im) |
| print r |
|
|
|
|