Coder Social home page Coder Social logo

eric612 / mobilenet-yolo Goto Github PK

View Code? Open in Web Editor NEW
866.0 50.0 446.0 390.23 MB

A caffe implementation of MobileNet-YOLO detection network

License: Other

CMake 3.54% C 0.01% C++ 71.03% Makefile 8.94% Cuda 6.10% MATLAB 0.65% Python 8.84% Shell 0.74% Dockerfile 0.15%
caffe mobilenet mobilenet-yolo darknet yolov3 caffe-yolov3 yolov2 yolo

mobilenet-yolo's Introduction

MobileNet-YOLO Caffe

A caffe implementation of MobileNet-YOLO detection network , train on 07+12 , test on VOC2007

Network mAP Resolution Download NetScope Inference time (GTX 1080) Inference time (i5-7500)
MobileNetV2-YOLOv3 71.5 352 caffemodel graph 6.65 ms 217 ms
  • inference time was log from script , does not include pre-processing
  • the benchmark of cpu performance on Tencent/ncnn framework
  • the deploy model was made by merge_bn.py, set eps = your prototxt batchnorm eps
  • old models please see here

This project also support ssd framework , and here lists the difference from ssd caffe

  • Multi-scale training , you can select input resoluton when inference
  • Modified from last update caffe (2018)
  • Support multi-task model
  • pelee + driverable map

Update

CNN Analyzer

Use this tool to compare macc and param , train on 07+12 , test on VOC2007

network mAP resolution macc param pruned IOU_THRESH GIOU
MobileNetV2-YOLOv3 0.707 352 1.22G 4.05M N N N
MobileNetV2-YOLOv3 0.715 352 1.22G 4.05M N Y Y
MobileNetV2-YOLOv3 0.702 352 1.01G 2.88M Y N N
Pelee-SSD 0.709 304 1.2G 5.42M N N N
Mobilenet-SSD 0.68 300 1.21G 5.43M N N N
MobilenetV2-SSD-lite 0.709 336 1.10G 5.2M N N N
  • MobileNetV2-YOLOv3 and MobilenetV2-SSD-lite were not offcial model

Coverted TensorRT models

TensorRT-Yolov3-models

Pelee-Driverable_Maps, run 89 ms on jetson nano , running project

YOLO Segmentation

How to use

Windows Version

Caffe-YOLOv3-Windows

Oringinal darknet-yolov3

Converter

test on coco_minival_lmdb (IOU 0.5)

Network mAP Resolution Download NetScope
yolov3 54.2 416 caffemodel graph
yolov3-spp 59.8 608 caffemodel graph

Model VisulizationTool

Supported on Netron , browser version

Build , Run and Training

See wiki

See docker

License and Citation

Please cite MobileNet-YOLO in your publications if it helps your research:

@article{MobileNet-YOLO,
  Author = {eric612 , Avisonic , ELAN},
  Year = {2018}
}

Reference

https://github.com/weiliu89/caffe/tree/ssd

https://pjreddie.com/darknet/yolo/

https://github.com/chuanqi305/MobileNet-SSD

https://github.com/gklz1982/caffe-yolov2

https://github.com/yonghenglh6/DepthwiseConvolution

https://github.com/alexgkendall/caffe-segnet

https://github.com/BVLC/caffe/pull/6384/commits/4d2400e7ae692b25f034f02ff8e8cd3621725f5c

https://www.cityscapes-dataset.com/

https://github.com/TuSimple/tusimple-benchmark/wiki

https://github.com/Robert-JunWang/Pelee

https://github.com/hujie-frank/SENet

https://github.com/lusenkong/Caffemodel_Compress

Cudnn convolution

https://github.com/chuanqi305/MobileNetv2-SSDLite/tree/master/src

Acknowledgements

https://github.com/AlexeyAB/darknet

mobilenet-yolo's People

Contributors

eric612 avatar ivder avatar oeichenwei avatar sealedtx avatar shuxiao9058 avatar zilipeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mobilenet-yolo's Issues

the detection problem

i use the yolov3_detection out type and get the result [0, -1, -1, -1, -1, -1] . have anyone met this problem??

Test problem

Hello!
I get this error when I test it after training with the training instructions you provided.
image
After viewing the Internet, it is because the deploy.prototxt is not the same as the bias_term setting in train.prototxt.
image
image
The test picture did not have a picture frame and felt no detection.Also, I found that the mobilenet_yolov3_lite_deploy.caffemodel you provided is 20.8M, and my own caffemodel after training is 21.0M.
      I hope to get your help!
Thank you very much! ! !

About train_yolo_lite.sh

Hi @eric612 thanks for the great project. when I use tain_yolo_lite.sh , I got the error
I0828 10:55:39.278422 11427 blocking_queue.cpp:50] Data layer prefetch queue empty
F0828 10:55:40.675819 11427 blob.cpp:133] Check failed: data_
*** Check failure stack trace: ***
can you tell me why? Thank you

Issue using the model with opencv

Hi,
I downloaded your model, i.e., mobilenet_yolov3_lite_deploy.caffemodel and mobilenet_yolov3_lite_deploy.prototxt, and use the opencv package for testing, which is given as follows.
https://github.com/opencv/opencv/blob/master/samples/dnn/object_detection.py.

The following issue comes up.
error: (-2:Unspecified error) Can't create layer "detection_out" of type "Yolov3DetectionOutput" in function 'getLayerInstance'

I have tried other caffe models from github, and they all works fine under this opencv tool.

Could you please help on this?

Darknet-19 YOLO

Hi,

Have you ever tried the darknet-19 version of yolov2? (original version in paper)
When I replace the mobilenet into darknet-19, I can only get 55.5 mAP, which is even worse than yolov1...

Side setting of Region_Loss1 and Region_Loss2

Hi, thanks for sharing your code.
I have a question about the "side" parameter in Region_Loss1 and Region_Loss2.
As my knowledge, side should be set according to the dimension of input feature map.
The input dimension of Region_Loss1 is 13 while Region_Loss2 is 26.
But why both of them are set as 13?

Coordinary loss function of region_layer

Hi, thanks for your code. I have a question about coordinary loss function of region layer. Compare yolov3, why loss x isdelta[index + 0 * stride] = (-1) * scale * (tx - sigmoid(x[index + 0 * stride])) * sigmoid(x[index + 0 * stride]) * (1 - sigmoid(x[index + 0 * stride])); ? And in yolov3 delta[index + 0 * stride] = (-1) * scale * (tx - x[index + 0 * stride]), I know x[index + 0 * stride]=logistic_activate(input_data[index2 + 0]). So yolov2 coordinary loss is calculating with delta[index + 0 * stride] = (-1) * scale * (tx - sigmoid(x[index + 0 * stride])), what's means of sigmoid(x[index + 0 * stride]) * (1 - sigmoid(x[index + 0 * stride])) ?

How to convert the weights trained by darknet?

Thank you for your great work.
I have a question. I did some changes on yolov3-tiny cfg, trained on darknet and got a good result. Now ,I want to make the weights work on the ncnn.Can I convert the weights and cfg by your system directly, or I have to first convert my cfg to caffe format,then train it on your system again?
Look forward to your reply

YOLOv3Lite design

Thanks for the awesome work. I noticed two minor differences between your implementation and the original darknet version.

  • You use element-wise sum instead of concat
  • You add a 3x3 convolution layer on both paths before the element-wise sum whereas the original YOLOv3 only has a 1x1 convolution in coarser scale.
    The lite version follows the same fashion. Since the MobileNet-YOLOv3-Lite is much better than Tiny-YOLO, I'm wondering whether this particular architecture brings the improvement or not. Have you run experiments with the original fashion?

something about pretrained caffemodel

hello, I see you used mobilenet_yolov3_lite_coco.caffemodel as your pretrained caffemodel. If you mind upload this caffemodel? By the way, I want to know mobilenet_yolov3_lite_coco.caffemodel and mobilenet_iter_73000.caffemodel are trained from what dataset. Thank you very much!

Compiling error

/home/king/Documents/MobileNet-YOLO/src/caffe/layers/yolo_detection_output_layer.cpp: In instantiation of ‘void caffe::YoloDetectionOutputLayer::Forward_cpu(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = double]’:
/home/king/Documents/MobileNet-YOLO/src/caffe/layers/yolo_detection_output_layer.cpp:353:1: required from here
/home/king/Documents/MobileNet-YOLO/src/caffe/layers/yolo_detection_output_layer.cpp:261:13: warning: unused variable ‘num’ [-Wunused-variable]
Linking CXX shared library ../../lib/libcaffe.so
/usr/bin/ld: /usr/local/lib/libpython2.7.a(object.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpython2.7.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libcaffe.so.1.0.0] Error 1
make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2
make: *** [all] Error 2

cmake error

Ubuntu14
Cuda=10.0
cudnn=7.4.1
GPU=1080Ti
OpenCV = 3.4.0
when I cmake this project in a new computer , it occured:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: CUDA_cublas_device_LIBRARY (ADVANCED) linked by target "caffe" in directory /media/py/000E741100097EE8/mkl/MobileNet-YOLO/src/caffe -- Configuring incomplete, errors occurred!

我怀疑是cuda版本过高导致caffe不兼容。
这个错误在stackoverflow上也并没有得到解答,所以问一下你和其他看到帖子的人,是否能帮忙解决这个编译错误,Thanks very much

框定位不准原因

你好,我用您的yolov3训练车牌检测,车牌大致都可以定位成功,但是框的并不是很精准,不知道有什么可以改进的方法?希望您能够提出一些建议!非常感谢

Where is a YOLOv3-Tiny caffemodel

Thank you for your work. I want to train a yolov3 tiny version for License plate detection in TX1. I have some problems that Where is the vegetable market? And the speed of pelee is faster than yolov3 tiny?I need the fastest model. Could you give me some advice?

About the mobilenet design

Hi @eric612 thanks for the great project. After looking into your .prototxt file, I have a quick question. Why the shallow layer of mobilenet is skipped and concatenated into the deeper layer? Is there any reference for that design?

Many thanks.

how to use model only with CPU mode

Sorry to bother you. I'm a fresh in Deep Learning .
In my mission I want to use this model in both GPU and CPU mode.
Using Ubuntu16.06,cuda9.0,cudnn7, Nvidia driver 284.130, A small GPU which Nvidia820M ,which has CUDA capability Major 2.1
after I want to test a image by sh demo_yolo.sh get this error

F1211 11:39:39.630712 4929 im2col.cu:61] Check failed: error == cudaSuccess (48 vs. 0) no kernel image is available for execution on the device *** Check failure stack trace: *** @ 0x7fdebb9fa5cd google::LogMessage::Fail() @ 0x7fdebb9fc433 google::LogMessage::SendToLog() @ 0x7fdebb9fa15b google::LogMessage::Flush() @ 0x7fdebb9fce1e google::LogMessageFatal::~LogMessageFatal() @ 0x7fdebc271d01 caffe::im2col_gpu<>() @ 0x7fdebbfeb0e9 caffe::BaseConvolutionLayer<>::conv_im2col_gpu() @ 0x7fdebbfeb1e6 caffe::BaseConvolutionLayer<>::forward_gpu_gemm() @ 0x7fdebc25c396 caffe::ConvolutionLayer<>::Forward_gpu() @ 0x7fdebc144fa1 caffe::Net<>::ForwardFromTo() @ 0x7fdebc1450d6 caffe::Net<>::Forward() @ 0x40a538 Detector::Detect() @ 0x405f88 main @ 0x7fdeb5db6830 __libc_start_main @ 0x4080e9 _start @ (nil) (unknown) imagedemoAborted (core dumped)

error_gpumode_mobilenet

mobilenet

So I have two questions: how could I solve this problem,
or how could I only use CPU mode.
I can accept only using CPU mode now.

Stuck in Creating test net(#0)

Hi,
When training, stuck in creating test net,what is the reason for this?
thanks
I0825 16:17:04.308728 2941 upgrade_proto.cpp:79] Attempting to upgrade batch norm layers using deprecated params: models/yolov3/mobilenet_yolov3_test.prototxt
I0825 16:17:04.308744 2941 upgrade_proto.cpp:82] Successfully upgraded batch norm layers using deprecated params.
I0825 16:17:04.308748 2941 solver.cpp:203] Creating test net (#0) specified by test_net file: models/yolov3/mobilenet_yolov3_test.prototxt

mobilenet_yolov3 training my own datasets

I1107 07:01:37.377594 8360 net.cpp:84] Creating Layer Yolov3Loss1
I1107 07:01:37.377600 8360 net.cpp:406] Yolov3Loss1 <- conv23
I1107 07:01:37.377614 8360 net.cpp:406] Yolov3Loss1 <- label_data_1_split_0
I1107 07:01:37.377624 8360 net.cpp:380] Yolov3Loss1 -> det_loss1
F1107 07:01:37.377657 8360 yolov3_layer.cpp:143] Check failed: input_count == tmp_input_count (27075 vs. 9747)
*** Check failure stack trace: ***
@ 0x7f4869f1e5cd google::LogMessage::Fail()
@ 0x7f4869f20433 google::LogMessage::SendToLog()
@ 0x7f4869f1e15b google::LogMessage::Flush()
@ 0x7f4869f20e1e google::LogMessageFatal::~LogMessageFatal()
@ 0x7f486a6be242 caffe::Yolov3Layer<>::LayerSetUp()
@ 0x7f486a57432c caffe::Net<>::Init()
@ 0x7f486a576b7e caffe::Net<>::Net()
@ 0x7f486a4d03fa caffe::Solver<>::InitTrainNet()
@ 0x7f486a4d19c5 caffe::Solver<>::Init()
@ 0x7f486a4d1cdf caffe::Solver<>::Solver()
@ 0x7f486a716b11 caffe::Creator_SGDSolver<>()
@ 0x40be13 train()
@ 0x4084d0 main
@ 0x7f4868e2c830 __libc_start_main
@ 0x408cf9 _start
@ (nil) (unknown)
Aborted (core dumped)

message"Floating point exception (core dumped)"

Hi! During training, the following message will pop up.

*** Aborted at 1538992621 (unix time) try "date -d @1538992621" if you are using GNU date *** PC: @ 0x7f3f25003993 caffe::Yolov3Layer<>::Forward_cpu() *** SIGFPE (@0x7f3f25003993) received by PID 38540 (TID 0x7f3976dde700) from PID 620771731; stack trace: *** @ 0x7f3f238534b0 (unknown) @ 0x7f3f25003993 caffe::Yolov3Layer<>::Forward_cpu() @ 0x7f3f25119687 caffe::Net<>::ForwardFromTo() @ 0x7f3f25119a17 caffe::Net<>::Forward() @ 0x7f3f24ef22f8 caffe::Solver<>::Step() @ 0x7f3f250db8cf caffe::Worker<>::InternalThreadEntry() @ 0x7f3f2504dd15 caffe::InternalThread::entry() @ 0x7f3f2504ec3e boost::detail::thread_data<>::run() @ 0x7f3f236095d5 (unknown) @ 0x7f3f231ca6ba start_thread @ 0x7f3f2392541d clone @ 0x0 (unknown) Floating point exception (core dumped)

How can i fix this? Thanks.

How to train MobileNet-YOLO-v3-lite with custom dataset?

Hi, @eric612 , Thanks for this amazing repo. Your mobilenet-yolov3-lite model is giving good results with good fps.
Currently following your repo, i'm trying to do training on mobilenet-yolov3-lite with my custom dataset. I'm having 6 classes(including background), 50000 images converted to LMDB. I'm using train_yolov3_lite.sh for training. I modified mobilenet_yolov3_lite_train.prototxt, label_prototxt, LMDB and batch_size in here. My system allows a batch size of only 2 for training and 1 for testing(total 3). I have trained till 50000 iterations. I modified the classes in yolo_detect.cpp , make file, etc. then modified the demo_yolo_lite.sh for the new model. but it caused some convolution 'bias_term' issue in mobilenet_yolov3_lite_deploy.prototxt . Hence modified that deploy file also. After rectifying all these, when i try to run the model, it still doesn't give output, no errors. Can you help me resolve this?

An error occured when train

I0902 00:35:29.525465  3007 region_loss_layer.cpp:381] avg_noobj: 0.00448936 avg_obj: 0.00458655 avg_iou: 0.22858 avg_cat: 0.398883 recall: 0.216667 recall75: 0
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(3.4.3) /root/opencv-3.4.3/modules/imgproc/src/color.hpp:255: error: (-2:Unspecified error) in function 'cv::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::Set<3, 4>; VDcn = cv::Set<3>; VDepth = cv::Set<0, 5>; cv::SizePolicy sizePolicy = (cv::SizePolicy)2u; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]'
> Invalid number of channels in input image:
>     'VScn::contains(scn)'
> where
>     'scn' is 1

*** Aborted at 1535862929 (unix time) try "date -d @1535862929" if you are using GNU date ***
PC: @     0x7f576df8f1f7 __GI_raise
*** SIGABRT (@0xbbf) received by PID 3007 (TID 0x7f56e59ff700) from PID 3007; stack trace: ***

计算模型的mAP

您好,请问如何计算模型的mAP,我看了#26,但还是不清楚具体该怎么操作

how to build the project

Hi, I want to know how I should build the project? Since in the Makefile I found "/home/avisonic01/new_caffe/CMakeFiles", what should I do?

libprotobuf ERROR google/protobuf/text_format.cc:274

when i started to train ,the error like below:
Error parsing text-format caffe.NetParameter: 27:18: Non-repeated field "resize_param" is specified multiple times.
F1116 12:58:49.882211 219 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: models/yolov3/mobilenet_yolov3_lite_train.prototxt
i don't know why...

train yolov2 got "nan", how to fix it?change the anchors?

[MobileNet-YOLO]# grep 'nan' nohup.out
I1009 12:28:31.195716 29672 region_loss_layer.cpp:381] avg_noobj: 0.000370593 avg_obj: -nan avg_iou: -nan avg_cat: -nan recall: -nan recall75: -nan
I1009 13:29:12.270798 29672 region_loss_layer.cpp:381] avg_noobj: 0.000270961 avg_obj: -nan avg_iou: -nan avg_cat: -nan recall: -nan recall75: -nan

Does anyone training Mobile-YOLO with caffe in TX2?

It killed when training.
But I also add the swap memory to 256G.

Below is the dmesg message:

[ 4605.348559] [16189]     0 16189      470        0       4       3       24             0 91-release-upgr
[ 4605.358038] [16190]     0 16190     3068      320       8       3      984             0 lsb_release
[ 4605.367163] [16191]     0 16191      440        0       4       3       21             0 cut
[ 4605.375600] Out of memory: Kill process 16073 (caffe) score 2 or sacrifice child
[ 4605.383025] Killed process 16073 (caffe) total-vm:18174060kB, anon-rss:0kB, file-rss:239524kB

How to change prototxt with difference classes?

Hello! I am testing on a new dataset, which has a classes of 14, I have changed the output classes of train.prototxt in those fields:

**layer {
  name: "Yolov3Loss1"
  type: "Yolov3"
  bottom: "conv23"
  bottom: "label"
  top: "det_loss1"
  loss_weight: 1
  yolov3_param {
    side: 13
    num_class: 14
    num: 3  
    object_scale: 5.0
    noobject_scale: 1.0
    class_scale: 1.0
    coord_scale: 1.0
    thresh: 0.6
	anchors_scale : 32
	
	#10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
	
    biases: 10
    biases: 13
    biases: 16
    biases: 30
    biases: 33
    biases: 23
    biases: 30
    biases: 61
    biases: 62
    biases: 45
	biases: 59
    biases: 119
	biases: 116
    biases: 90
    biases: 156
    biases: 198
	biases: 373
    biases: 326
	
	mask:6
	mask:7
	mask:8
  }
}
layer {
  name: "Yolov3Loss2"
  type: "Yolov3"
  bottom: "conv24"
  bottom: "label"
  top: "det_loss2"
  loss_weight: 1
  yolov3_param {
    side: 26
    num_class: 14
    num: 3  
    object_scale: 5.0
    noobject_scale: 1.0
    class_scale: 1.0
    coord_scale: 1.0
    thresh: 0.6
	anchors_scale : 16
	
	#10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
	
    biases: 10
    biases: 13
    biases: 16
    biases: 30
    biases: 33
    biases: 23
    biases: 30
    biases: 61
    biases: 62
    biases: 45
	biases: 59
    biases: 119
	biases: 116
    biases: 90
    biases: 156
    biases: 198
	biases: 373
    biases: 326
	
	mask:3
	mask:4
	mask:5
  }
}

layer {
  name: "Yolov3Loss3"
  type: "Yolov3"
  bottom: "conv25"
  bottom: "label"
  top: "det_loss3"
  loss_weight: 1
  yolov3_param {
    side: 26
    num_class: 14
    num: 3  
    object_scale: 5.0
    noobject_scale: 1.0
    class_scale: 1.0
    coord_scale: 1.0
    thresh: 0.6
	anchors_scale : 16
	
	#10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
	
    biases: 10
    biases: 13
    biases: 16
    biases: 30
    biases: 33
    biases: 23
    biases: 30
    biases: 61
    biases: 62
    biases: 45
	biases: 59
    biases: 119
	biases: 116
    biases: 90
    biases: 156
    biases: 198
	biases: 373
    biases: 326
	
	mask:0
	mask:1
	mask:2
  }
}**

Only the num_classes were changed, is there still anywhere need change?

I got this error

yolov3_layer.cpp:142] Check failed: input_count == tmp_input_count (27075 vs. 20577) 

concat with one bottom

concat层只有一个输入是实现啥操作?
layer {
bottom: "layer82-conv"
type: "Concat"
top: "layer83-yolo"
name: "layer83-yolo"
}

Message type "caffe.LayerParameter" has no field named "yolov3_detection_output_param".

When trying to converty yolov3-tiny model I encounter the folllowing error:

# python darknet2caffe.py yolov3-tiny.cfg yolov3-tiny.weights tiny-yolov3.prototxt yolov3-tiny.caffemodel
Traceback (most recent call last):
  File "darknet2caffe.py", line 500, in <module>
    darknet2caffe(cfgfile, weightfile, protofile, caffemodel)
  File "darknet2caffe.py", line 10, in darknet2caffe
    net_info = cfg2prototxt(cfgfile)
  File "darknet2caffe.py", line 111, in cfg2prototxt
    blocks = parse_cfg(cfgfile)
  File "/temp/MobileNet-YOLO/models/darknet_yolov3/cfg.py", line 27, in parse_cfg
    key,value = line.split('=')
ValueError: need more than 1 value to unpack

When I try to build yolov3 the convert script crashes with different error:

# python darknet2caffe.py yolov3.cfg yolov3.weights yolov3.prototxt yolov3.caffemodel
[libprotobuf ERROR google/protobuf/text_format.cc:274] Error parsing text-format caffe.NetParameter: 4118:35: Message type "caffe.LayerParameter" has no field named "yolov3_detection_output_param".
WARNING: Logging before InitGoogleLogging() is written to STDERR
F1003 19:31:44.715860 15696 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: yolov3.prototxt
*** Check failure stack trace: ***
Aborted

Any ideas how to fix this? Thanks.

about the speed of tiny

Hello, I train the yolov3 tiny(416*416) with my car plate detection dataset with your help successfully. But when I test it in 1080Ti with gpu,I found it is slow. It is about 0.15s/f . So I want to test the speed of every layer by run "./build/install/bin/caffe time --model=models/plate_detection/tiny-yolov3-deploy.prototxt --weights=models/plate_detection/models/deploy-_iter_30000.caffemodel --gpu=1". And there is a error such as

F1116 13:21:08.834992 18187 yolov3_detection_output_layer.hpp:67] Not Implemented Yet
*** Check failure stack trace: ***
@ 0x7f4396d3cdaa (unknown)
@ 0x7f4396d3cce4 (unknown)
@ 0x7f4396d3c6e6 (unknown)
@ 0x7f4396d3f687 (unknown)
@ 0x7f4397455dfb caffe::Yolov3DetectionOutputLayer<>::Backward_cpu()
@ 0x40f16d time()
@ 0x40b493 main
@ 0x7f4395aadf45 (unknown)
@ 0x40bdf6 (unknown)
@ (nil) (unknown)
Aborted (core dumped)

I checked the yolov3_detection_output_layer.hpp and found there is cpu achievement codes without gpu mode codes . What could I do to accelerate this project( I remember the speed of yolov3 tiny with the darknet is about 3ms/f).

Pedestrian Detection Model Training Problem

Hi,this is the log
...
avg_noobj: 0.0010526 avg_obj: 0.400564 avg_iou: 0.762177 avg_cat: 0.987689 recall: 0.958333 recall75: 0.630952 count: 4
...
I1213 20:31:15.950788 6814 solver.cpp:548] class1: 0.000429772
I1213 20:31:15.950799 6814 solver.cpp:554] Test net output #6: detection_eval_60 = 0.000429772

在自己处理过的数据上训练效果很差

你好:
我对VOC数据集进行了处理,处理过后共有5类,分别是person、bicycle、car、motorbike、bus。用
mobilenet_yolov3_lite进行训练。我已經修改了对应的train.prototxt、test.prototxt、solver.prototxt。训练过程中看着输出的参数也基本正常,但是最终进行预测的时候效果很差。设置的阈值低的话,满屏都是框;设置的阈值高的话,就根本检测不出来。请问这是什么原因?如何能够解决这个问题?谢谢!

Error building the project

I've followed the instructions to build your project, installed all the dependencies but I still get the following error when building the project:

Scanning dependencies of target upgrade_solver_proto_text
[ 77%] Building CXX object tools/CMakeFiles/upgrade_solver_proto_text.dir/upgrade_solver_proto_text.cpp.o
[ 79%] Linking CXX executable get_image_size
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::allocate(unsigned long)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::rectangle(cv::_InputOutputArray const&, cv::Point_<int>, cv::Point_<int>, cv::Scalar_<double> const&, int, int, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::getTextSize(cv::String const&, int, double, int, int*)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::VideoWriter::VideoWriter(cv::String const&, int, double, cv::Size_<int>, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imread(cv::String const&, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::deallocate()'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::LUT(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::floodFill(cv::_InputOutputArray const&, cv::Point_<int>, cv::Scalar_<double>, cv::Rect_<int>*, cv::Scalar_<double>, cv::Scalar_<double>, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
collect2: error: ld returned 1 exit status
tools/CMakeFiles/get_image_size.dir/build.make:129: recipe for target 'tools/get_image_size' failed
make[2]: *** [tools/get_image_size] Error 1
CMakeFiles/Makefile2:541: recipe for target 'tools/CMakeFiles/get_image_size.dir/all' failed
make[1]: *** [tools/CMakeFiles/get_image_size.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 80%] Linking CXX executable convert_annoset
[ 82%] Linking CXX executable upgrade_solver_proto_text
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::allocate(unsigned long)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::rectangle(cv::_InputOutputArray const&, cv::Point_<int>, cv::Point_<int>, cv::Scalar_<double> const&, int, int, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::getTextSize(cv::String const&, int, double, int, int*)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::VideoWriter::VideoWriter(cv::String const&, int, double, cv::Size_<int>, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imread(cv::String const&, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::deallocate()'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::LUT(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::floodFill(cv::_InputOutputArray const&, cv::Point_<int>, cv::Scalar_<double>, cv::Rect_<int>*, cv::Scalar_<double>, cv::Scalar_<double>, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
collect2: error: ld returned 1 exit status
tools/CMakeFiles/convert_annoset.dir/build.make:129: recipe for target 'tools/convert_annoset' failed
make[2]: *** [tools/convert_annoset] Error 1
CMakeFiles/Makefile2:465: recipe for target 'tools/CMakeFiles/convert_annoset.dir/all' failed
make[1]: *** [tools/CMakeFiles/convert_annoset.dir/all] Error 2
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::allocate(unsigned long)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::rectangle(cv::_InputOutputArray const&, cv::Point_<int>, cv::Point_<int>, cv::Scalar_<double> const&, int, int, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::getTextSize(cv::String const&, int, double, int, int*)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::VideoWriter::VideoWriter(cv::String const&, int, double, cv::Size_<int>, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imread(cv::String const&, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::deallocate()'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::LUT(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::floodFill(cv::_InputOutputArray const&, cv::Point_<int>, cv::Scalar_<double>, cv::Rect_<int>*, cv::Scalar_<double>, cv::Scalar_<double>, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
collect2: error: ld returned 1 exit status
tools/CMakeFiles/upgrade_solver_proto_text.dir/build.make:129: recipe for target 'tools/upgrade_solver_proto_text' failed
make[2]: *** [tools/upgrade_solver_proto_text] Error 1
CMakeFiles/Makefile2:617: recipe for target 'tools/CMakeFiles/upgrade_solver_proto_text.dir/all' failed
make[1]: *** [tools/CMakeFiles/upgrade_solver_proto_text.dir/all] Error 2
[ 83%] Linking CXX executable caffe
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::allocate(unsigned long)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::rectangle(cv::_InputOutputArray const&, cv::Point_<int>, cv::Point_<int>, cv::Scalar_<double> const&, int, int, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::getTextSize(cv::String const&, int, double, int, int*)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::VideoWriter::VideoWriter(cv::String const&, int, double, cv::Size_<int>, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imread(cv::String const&, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::String::deallocate()'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, double, cv::Scalar_<double>, int, int, bool)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::LUT(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::floodFill(cv::_InputOutputArray const&, cv::Point_<int>, cv::Scalar_<double>, cv::Rect_<int>*, cv::Scalar_<double>, cv::Scalar_<double>, int)'
../lib/libcaffe.so.1.0.0: undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
collect2: error: ld returned 1 exit status
tools/CMakeFiles/caffe.bin.dir/build.make:129: recipe for target 'tools/caffe' failed
make[2]: *** [tools/caffe] Error 1
CMakeFiles/Makefile2:503: recipe for target 'tools/CMakeFiles/caffe.bin.dir/all' failed
make[1]: *** [tools/CMakeFiles/caffe.bin.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

By the looks of it It's gotta do with opencv, but that's a bit puzzling as opencv is installed as per your instructions:

ls -l /usr/local/lib/libopencv_*
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_calib3d.so -> libopencv_calib3d.so.3.3
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_calib3d.so.3.3 -> libopencv_calib3d.so.3.3.1
-rw-r--r-- 1 root root  1819624 Oct  3 18:32 /usr/local/lib/libopencv_calib3d.so.3.3.1
lrwxrwxrwx 1 root root       21 Oct  3 18:46 /usr/local/lib/libopencv_core.so -> libopencv_core.so.3.3
lrwxrwxrwx 1 root root       23 Oct  3 18:46 /usr/local/lib/libopencv_core.so.3.3 -> libopencv_core.so.3.3.1
-rw-r--r-- 1 root root 15178712 Oct  3 18:25 /usr/local/lib/libopencv_core.so.3.3.1
lrwxrwxrwx 1 root root       20 Oct  3 18:46 /usr/local/lib/libopencv_dnn.so -> libopencv_dnn.so.3.3
lrwxrwxrwx 1 root root       22 Oct  3 18:46 /usr/local/lib/libopencv_dnn.so.3.3 -> libopencv_dnn.so.3.3.1
-rw-r--r-- 1 root root  8458264 Oct  3 18:32 /usr/local/lib/libopencv_dnn.so.3.3.1
lrwxrwxrwx 1 root root       27 Oct  3 18:46 /usr/local/lib/libopencv_features2d.so -> libopencv_features2d.so.3.3
lrwxrwxrwx 1 root root       29 Oct  3 18:46 /usr/local/lib/libopencv_features2d.so.3.3 -> libopencv_features2d.so.3.3.1
-rw-r--r-- 1 root root  1054496 Oct  3 18:31 /usr/local/lib/libopencv_features2d.so.3.3.1
lrwxrwxrwx 1 root root       22 Oct  3 18:46 /usr/local/lib/libopencv_flann.so -> libopencv_flann.so.3.3
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_flann.so.3.3 -> libopencv_flann.so.3.3.1
-rw-r--r-- 1 root root   474104 Oct  3 18:26 /usr/local/lib/libopencv_flann.so.3.3.1
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_highgui.so -> libopencv_highgui.so.3.3
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_highgui.so.3.3 -> libopencv_highgui.so.3.3.1
-rw-r--r-- 1 root root   110896 Oct  3 18:30 /usr/local/lib/libopencv_highgui.so.3.3.1
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_imgcodecs.so -> libopencv_imgcodecs.so.3.3
lrwxrwxrwx 1 root root       28 Oct  3 18:46 /usr/local/lib/libopencv_imgcodecs.so.3.3 -> libopencv_imgcodecs.so.3.3.1
-rw-r--r-- 1 root root  4552312 Oct  3 18:29 /usr/local/lib/libopencv_imgcodecs.so.3.3.1
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_imgproc.so -> libopencv_imgproc.so.3.3
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_imgproc.so.3.3 -> libopencv_imgproc.so.3.3.1
-rw-r--r-- 1 root root 42177944 Oct  3 18:28 /usr/local/lib/libopencv_imgproc.so.3.3.1
lrwxrwxrwx 1 root root       19 Oct  3 18:46 /usr/local/lib/libopencv_ml.so -> libopencv_ml.so.3.3
lrwxrwxrwx 1 root root       21 Oct  3 18:46 /usr/local/lib/libopencv_ml.so.3.3 -> libopencv_ml.so.3.3.1
-rw-r--r-- 1 root root   952256 Oct  3 18:26 /usr/local/lib/libopencv_ml.so.3.3.1
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_objdetect.so -> libopencv_objdetect.so.3.3
lrwxrwxrwx 1 root root       28 Oct  3 18:46 /usr/local/lib/libopencv_objdetect.so.3.3 -> libopencv_objdetect.so.3.3.1
-rw-r--r-- 1 root root  4073824 Oct  3 18:29 /usr/local/lib/libopencv_objdetect.so.3.3.1
lrwxrwxrwx 1 root root       22 Oct  3 18:46 /usr/local/lib/libopencv_photo.so -> libopencv_photo.so.3.3
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_photo.so.3.3 -> libopencv_photo.so.3.3.1
-rw-r--r-- 1 root root  4645016 Oct  3 18:29 /usr/local/lib/libopencv_photo.so.3.3.1
lrwxrwxrwx 1 root root       22 Oct  3 18:46 /usr/local/lib/libopencv_shape.so -> libopencv_shape.so.3.3
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_shape.so.3.3 -> libopencv_shape.so.3.3.1
-rw-r--r-- 1 root root   297968 Oct  3 18:29 /usr/local/lib/libopencv_shape.so.3.3.1
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_stitching.so -> libopencv_stitching.so.3.3
lrwxrwxrwx 1 root root       28 Oct  3 18:46 /usr/local/lib/libopencv_stitching.so.3.3 -> libopencv_stitching.so.3.3.1
-rw-r--r-- 1 root root   708632 Oct  3 18:43 /usr/local/lib/libopencv_stitching.so.3.3.1
lrwxrwxrwx 1 root root       25 Oct  3 18:46 /usr/local/lib/libopencv_superres.so -> libopencv_superres.so.3.3
lrwxrwxrwx 1 root root       27 Oct  3 18:46 /usr/local/lib/libopencv_superres.so.3.3 -> libopencv_superres.so.3.3.1
-rw-r--r-- 1 root root   214264 Oct  3 18:30 /usr/local/lib/libopencv_superres.so.3.3.1
lrwxrwxrwx 1 root root       22 Oct  3 18:46 /usr/local/lib/libopencv_video.so -> libopencv_video.so.3.3
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_video.so.3.3 -> libopencv_video.so.3.3.1
-rw-r--r-- 1 root root  4063816 Oct  3 18:29 /usr/local/lib/libopencv_video.so.3.3.1
lrwxrwxrwx 1 root root       24 Oct  3 18:46 /usr/local/lib/libopencv_videoio.so -> libopencv_videoio.so.3.3
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_videoio.so.3.3 -> libopencv_videoio.so.3.3.1
-rw-r--r-- 1 root root   254160 Oct  3 18:29 /usr/local/lib/libopencv_videoio.so.3.3.1
lrwxrwxrwx 1 root root       26 Oct  3 18:46 /usr/local/lib/libopencv_videostab.so -> libopencv_videostab.so.3.3
lrwxrwxrwx 1 root root       28 Oct  3 18:46 /usr/local/lib/libopencv_videostab.so.3.3 -> libopencv_videostab.so.3.3.1
-rw-r--r-- 1 root root   411376 Oct  3 18:43 /usr/local/lib/libopencv_videostab.so.3.3.1

That's also visible when loaded in python:

# python
Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2;
>>>
>>> cv2.__version__
'3.3.1'
>>>

About taining in my own data

Hi @eric612 thanks for the great project. I set solver_mode is GPU. When i use the VOC data to train it is fast ,but when i use my own data to train is very slowly. My own image's size is 1920 * 1080. My GPU Memory-Usage is 5000M ,but my GPU-Util is always 0%, sometime will be 80%. Can you tell me why and how i can solve it ?

Train my dataset

Check failed: target_blobs.size() == source_layer.blobs_size() (2 vs. 1) Incompatible number of blobs for layer conv0

F0821 19:12:50.003173 53086 blob.cpp:133] Check failed: data_

I0821 19:12:49.913884 53086 caffe.cpp:255] Starting Optimization
I0821 19:12:49.913894 53086 solver.cpp:302] Solving MobileNet-YOLO
I0821 19:12:49.913898 53086 solver.cpp:303] Learning Rate Policy: multistep
F0821 19:12:50.003173 53086 blob.cpp:133] Check failed: data_
*** Check failure stack trace: ***
@ 0x7fd8a2b37daa (unknown)
@ 0x7fd8a2b37ce4 (unknown)
@ 0x7fd8a2b376e6 (unknown)
@ 0x7fd8a2b3a687 (unknown)
@ 0x7fd8a31089bb caffe::Blob<>::mutable_cpu_data()
@ 0x7fd8a328b2d9 caffe::RegionLossLayer<>::Forward_cpu()
@ 0x7fd8a30eeb87 caffe::Net<>::ForwardFromTo()
@ 0x7fd8a30eeef7 caffe::Net<>::Forward()
@ 0x7fd8a312afc7 caffe::Solver<>::Step()
@ 0x7fd8a312bd4f caffe::Solver<>::Solve()
@ 0x40b504 train()
@ 0x407dd8 main
@ 0x7fd8a1acdf45 (unknown)
@ 0x4085b0 (unknown)
@ (nil) (unknown)
Aborted (core dumped)
Excuse me, why is this problem?@eric612

after train_yolov3_lite.sh,way can't test the object

hi @eric612,
I'm the new hand, i modify the file mobilenet_yolov3_lite_solver.prototxt in models/yolov3 , like this:
test_iter: 6 test_interval:10 base_lr:0.0005 max_iter:25 snapshot:10
after train about 10 iters, i optimize the mobilenet_yolov3_lite_deploy_iter_10.caffemodel to optimize the mobilenet_yolov3_lite_deploy.caffemodel maded by merge_bn.py.
then i use the command "sh demo_yolov3_lite.sh", but i can't the object anyone . why ?
and in the stage of train, i find the avg_noobj/avg_obj/avg_iou/avg_cat/recall and detect_eval are so small, but the loss is bigger about 1336.13. why ? it do not work with the pretrained model "models/MobileNet/mobilenet_iter_73000.caffemodel"

yolov3-tiny loss layer setting

hello,I have pretrained a tiny yolo in imagenet. And I have looked your yolov3-tiny.prototxt(it only have the Yolov3DetectionOutput layer). But I down't how to modified it to a train.prototxt. Could you give a train.prototxt, thank you very much(I tried a long time but it did't work)
layer {
name: "Yolov3Loss2"
type: "Yolov3"
bottom: "conv23"
bottom: "label"
top: "det_loss2"
loss_weight: 1
yolov3_param {
side: 26
num_class: 80
num: 3
object_scale: 5.0
noobject_scale: 1.0
class_scale: 1.0
coord_scale: 1.0
thresh: 0.7
anchors_scale : 16

#10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326

biases: 10
biases: 13
biases: 16
biases: 30
biases: 33
biases: 23
biases: 30
biases: 61
biases: 62
biases: 45
biases: 59
biases: 119
biases: 116
biases: 90
biases: 156
biases: 198
biases: 373
biases: 326

mask:3
mask:4
mask:5

}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.