mirror of
https://github.com/LdDl/go-darknet.git
synced 2025-10-06 08:06:52 +08:00
221 lines
5.2 KiB
Markdown
221 lines
5.2 KiB
Markdown
# Example Go application using go-darknet and REST
|
|
|
|
This is an example Go server application (in terms of REST) which uses go-darknet.
|
|
|
|
## Run
|
|
|
|
Navigate to example folder:
|
|
|
|
```shell
|
|
cd $GOPATH/github.com/LdDl/go-darknet/example/rest_example
|
|
```
|
|
|
|
Download dataset (sample of image, coco.names, yolov3.cfg, yolov3.weights).
|
|
```shell
|
|
./download_data_v3.sh
|
|
```
|
|
Note: you don't need *coco.data* file anymore, because script below does insert *coco.names* into 'names' filed in *yolov3.cfg* file (so AlexeyAB's fork can deal with it properly)
|
|
So last rows in yolov3.cfg file will look like:
|
|
```bash
|
|
......
|
|
[yolo]
|
|
mask = 0,1,2
|
|
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
|
|
classes=80
|
|
num=9
|
|
jitter=.3
|
|
ignore_thresh = .7
|
|
truth_thresh = 1
|
|
random=1
|
|
names = coco.names # this is path to coco.names file
|
|
```
|
|
|
|
Build and run program
|
|
```
|
|
go build main.go && ./main --configFile=yolov3.cfg --weightsFile=yolov3.weights --port 8090
|
|
```
|
|
|
|
After server started check if REST-requests works. We provide cURL-based example
|
|
```shell
|
|
curl -F 'image=@sample.jpg' 'http://localhost:8090/detect_objects'
|
|
```
|
|
|
|
Servers response should be something like this:
|
|
```json
|
|
{
|
|
"net_time": "43.269289ms",
|
|
"overall_time": "43.551604ms",
|
|
"num_detections": 44,
|
|
"detections": [
|
|
{
|
|
"class_id": 7,
|
|
"class_name": "truck",
|
|
"probability": 49.51231,
|
|
"start_point": {
|
|
"x": 0,
|
|
"y": 136
|
|
},
|
|
"end_point": {
|
|
"x": 85,
|
|
"y": 311
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 36.36933,
|
|
"start_point": {
|
|
"x": 95,
|
|
"y": 152
|
|
},
|
|
"end_point": {
|
|
"x": 186,
|
|
"y": 283
|
|
}
|
|
},
|
|
{
|
|
"class_id": 7,
|
|
"class_name": "truck",
|
|
"probability": 48.417683,
|
|
"start_point": {
|
|
"x": 95,
|
|
"y": 152
|
|
},
|
|
"end_point": {
|
|
"x": 186,
|
|
"y": 283
|
|
}
|
|
},
|
|
{
|
|
"class_id": 7,
|
|
"class_name": "truck",
|
|
"probability": 45.652023,
|
|
"start_point": {
|
|
"x": 694,
|
|
"y": 178
|
|
},
|
|
"end_point": {
|
|
"x": 798,
|
|
"y": 310
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 76.8402,
|
|
"start_point": {
|
|
"x": 1,
|
|
"y": 145
|
|
},
|
|
"end_point": {
|
|
"x": 84,
|
|
"y": 324
|
|
}
|
|
},
|
|
{
|
|
"class_id": 7,
|
|
"class_name": "truck",
|
|
"probability": 25.592052,
|
|
"start_point": {
|
|
"x": 107,
|
|
"y": 89
|
|
},
|
|
"end_point": {
|
|
"x": 215,
|
|
"y": 263
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 99.87823,
|
|
"start_point": {
|
|
"x": 511,
|
|
"y": 185
|
|
},
|
|
"end_point": {
|
|
"x": 748,
|
|
"y": 328
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 99.819336,
|
|
"start_point": {
|
|
"x": 261,
|
|
"y": 189
|
|
},
|
|
"end_point": {
|
|
"x": 427,
|
|
"y": 322
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 99.64055,
|
|
"start_point": {
|
|
"x": 426,
|
|
"y": 197
|
|
},
|
|
"end_point": {
|
|
"x": 539,
|
|
"y": 311
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 74.56263,
|
|
"start_point": {
|
|
"x": 692,
|
|
"y": 186
|
|
},
|
|
"end_point": {
|
|
"x": 796,
|
|
"y": 316
|
|
}
|
|
},
|
|
{
|
|
"class_id": 2,
|
|
"class_name": "car",
|
|
"probability": 72.79756,
|
|
"start_point": {
|
|
"x": 388,
|
|
"y": 206
|
|
},
|
|
"end_point": {
|
|
"x": 437,
|
|
"y": 276
|
|
}
|
|
},
|
|
{
|
|
"class_id": 1,
|
|
"class_name": "bicycle",
|
|
"probability": 72.27595,
|
|
"start_point": {
|
|
"x": 178,
|
|
"y": 270
|
|
},
|
|
"end_point": {
|
|
"x": 268,
|
|
"y": 406
|
|
}
|
|
},
|
|
{
|
|
"class_id": 0,
|
|
"class_name": "person",
|
|
"probability": 97.30075,
|
|
"start_point": {
|
|
"x": 143,
|
|
"y": 135
|
|
},
|
|
"end_point": {
|
|
"x": 268,
|
|
"y": 343
|
|
}
|
|
}
|
|
]
|
|
}
|
|
``` |