yolo v2移植到android已经有很多案例了
这里博主学习了@chentyjpm 的DarknetDemoInAndroid
项目地址在https://github.com/chentyjpm/DarknetDemoInAndroid
不过原博主提供的apk是经过优化的,我自己编译的还达不到原博主的效果,还需要再改善
然后我们要做的就是将v3版本移植够来
通过对比darknet中提供的python脚本,我们发现作者改变了其中几个接口,并将boxes props等属性封装进了detection
所以修改代码中darknet.cpp
//get_network_boxes(l, im.w, im.h, net->w, net->h, thresh, probs, boxes, masks, 0, 0, hier_thresh, 1);
detection * dets = get_network_boxes(net, im.w, im.h, thresh, hier_thresh, 0, 1, 0);
//if (nms) do_nms_obj(boxes, probs, l.w*l.h*l.n, l.classes, nms);
//if (nms) do_nms_sort(boxes, probs, l.w*l.h*l.n, l.classes, nms);
if (nms) do_nms_obj(dets, l.w*l.h*l.n, l.classes, nms);
//draw_detections(im, l.w*l.h*l.n, thresh, boxes, probs, masks, names, alphabet, l.classes);
draw_detections(im, dets, l.w*l.h*l.n, thresh,names, alphabet, l.classes);
然后将v3的模型和配置加进去。
目前也还没有完成,通过logcat发现已经可以识别,但是在activity显示最终图片的时候闪退了,正在查找原因,感觉可能是v3输出图片的接口有了变化。
目前需要做的:
1.通过python脚本的流程捋一遍darknet源码的运行流程
2.通过.cfg或.so等去优化yolo在android机的运行效率