---
# System prepended metadata

title: Yolo

---

# Yolo

1. 先載入模型
2. 讀取圖片
3. 測試圖片
4. 排序 bounding box


```cpp=
network *load_network_custom(char *cfg, char *weights, int clear, int batch);
metadata get_metadata(char *file);
int network_width(network *net);
int network_height(network *net);

image load_image_color(char *filename, int w, int h);
image resize_image(image im, int w, int h);

float *network_predict(network net, float *input);
detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num, int letter);
void do_nms_sort(detection *dets, int total, int classes, float thresh);
void free_detections(detection *dets, int n);
```

```python=
thresh = 0.5
hier_thresh = 0.5
nms = 0.45

# 1. 先載入模型
net = load_network_custom(file.cfg, file.weights, 0, 1)

meta = load_meta(file.data)

im = load_image(image, 0, 0)

sized = resize_image(im, network_width(net), network_height(net))

X = c_float()
pX = pointer(X)
pX = sized.data
''' C 寫法
float *X = sized.data;
'''
network_predict(net, pX)

num = c_int(0)
pnum = pointer(num)
letter_box = 0

dets = get_network_boxes(net, im.w, im.h, thresh, hier_thresh, None, 0, pnum, letter_box)

num = pnum[0]  # 多少 bounding box

do_nms_sort(dets, num, meta.classes, nms)

free_detections(dets, num)
```
