/caffe-yolov3

A real-time object detection framework of Yolov3 based on caffe

Primary LanguageC++

caffe-yolov3

Paltform

Have tested on Ubuntu16.04LTS with Jetson-TX2 and Ubuntu16.04LTS with gtx1060;

NOTE: You need change CMakeList.txt on Ubuntu16.04LTS with GTX1060.

Install

git clone https://github.com/ChenYingpeng/caffe-yolov3

cd caffe-yolov3

mkdir build

cd build

cmake ..

make -j6

Demo

First,download model and put it into dir caffemodel.

$ ./x86_64/bin/detectnet ../prototxt/yolov3.prototxt ../caffemodel/yolov3.caffemodel ../images/dog.jpg

Download Model

Baidu link model

Note

1.Only inference on GPU platform,such as RTX2080, GTX1060,Jetson Tegra X1,TX2,nano,Xavier etc.

2.Support model such as yolov3、yolov3-spp、yolov3-tiny、mobilenet_v1_yolov3、mobilenet_v2_yolov3 etc and input network size 320x320,416x416,608x608 etc.

3.Mobilenet_v1 + yolov3 (test COCO,mAP = 0.3798,To be optimized)

4.Yolov3-tiny: Caffe can not duplicate the layer that maxpool layer (params:kernel_size = 2,stride = 1),so add these code into /caffe/layers/pooling_layer.cpp for recurrenting it.

 pooled_height_ = static_cast<int>(ceil(static_cast<float>(
      height_ + 2 * pad_h_ - kernel_h_) / stride_h_)) + 1;
  pooled_width_ = static_cast<int>(ceil(static_cast<float>(
      width_ + 2 * pad_w_ - kernel_w_) / stride_w_)) + 1;

  /*added by chen for darknet yolov3 tiny maxpool layer stride=1,size =2*/
  ++if((kernel_h_ - stride_h_) % 2 == 1){
  ++  pooled_height_ += 1;
  ++  pooled_width_ += 1;
  ++}
  1. darknet2caffe link github