All Projects → cwq159 → PyTorch-Spiking-YOLOv3

cwq159 / PyTorch-Spiking-YOLOv3

Licence: GPL-3.0 license
A PyTorch implementation of Spiking-YOLOv3. Two branches are provided, based on two common PyTorch implementation of YOLOv3(ultralytics/yolov3 & eriklindernoren/PyTorch-YOLOv3), with support for Spiking-YOLOv3-Tiny at present.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to PyTorch-Spiking-YOLOv3

JSON2YOLO
Convert JSON annotations into YOLO format.
Stars: ✭ 222 (+54.17%)
Mutual labels:  coco, ultralytics
DetectionMetrics
Tool to evaluate deep-learning detection and segmentation models, and to create datasets
Stars: ✭ 66 (-54.17%)
Mutual labels:  coco, pascal-voc
Imglab
To speedup and simplify image labeling/ annotation process with multiple supported formats.
Stars: ✭ 723 (+402.08%)
Mutual labels:  coco, pascal-voc
datumaro
Dataset Management Framework, a Python library and a CLI tool to build, analyze and manage Computer Vision datasets.
Stars: ✭ 274 (+90.28%)
Mutual labels:  coco, pascal-voc
RetinaNet Tensorflow
Focal Loss for Dense Object Detection.
Stars: ✭ 52 (-63.89%)
Mutual labels:  coco, pascal-voc
Soft Nms
Object Detection
Stars: ✭ 708 (+391.67%)
Mutual labels:  coco, pascal-voc
Efficientdet.pytorch
Implementation EfficientDet: Scalable and Efficient Object Detection in PyTorch
Stars: ✭ 1,383 (+860.42%)
Mutual labels:  coco, pascal-voc
Cocostuff10k
The official homepage of the (outdated) COCO-Stuff 10K dataset.
Stars: ✭ 248 (+72.22%)
Mutual labels:  coco
Object-Detection-Tools
Tools for object detection annotations in machine learning
Stars: ✭ 14 (-90.28%)
Mutual labels:  pascal-voc
Yolo person detect
person detect based on yolov3 with several Python scripts
Stars: ✭ 212 (+47.22%)
Mutual labels:  coco
Sca Cnn.cvpr17
Image Captions Generation with Spatial and Channel-wise Attention
Stars: ✭ 198 (+37.5%)
Mutual labels:  coco
Jumpserver
JumpServer 是全球首款开源的堡垒机,是符合 4A 的专业运维安全审计系统。
Stars: ✭ 17,563 (+12096.53%)
Mutual labels:  coco
cisip-FIRe
Fast Image Retrieval (FIRe) is an open source project to promote image retrieval research. It implements most of the major binary hashing methods to date, together with different popular backbone networks and public datasets.
Stars: ✭ 40 (-72.22%)
Mutual labels:  coco
Unidet
Object detection on multiple datasets with an automatically learned unified label space.
Stars: ✭ 217 (+50.69%)
Mutual labels:  coco
License-plate-recognition
使用 "Darknet yolov3-tiny" 进行车牌识别
Stars: ✭ 90 (-37.5%)
Mutual labels:  yolov3-tiny
Nas fpn tensorflow
NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection.
Stars: ✭ 198 (+37.5%)
Mutual labels:  coco
DL-NC
spiking-neural-networks
Stars: ✭ 34 (-76.39%)
Mutual labels:  snn
FCOS GluonCV
FCOS: Fully Convolutional One-Stage Object Detection.
Stars: ✭ 24 (-83.33%)
Mutual labels:  coco
edge-tpu-tiny-yolo
Run Tiny YOLO-v3 on Google's Edge TPU USB Accelerator.
Stars: ✭ 94 (-34.72%)
Mutual labels:  yolov3-tiny
spikeflow
Python library for easy creation and running of spiking neural networks in tensorflow.
Stars: ✭ 30 (-79.17%)
Mutual labels:  snn

PyTorch-Spiking-YOLOv3

A PyTorch implementation of Spiking-YOLOv3, based on the PyTorch implementation of YOLOv3(ultralytics/yolov3), with support for Spiking-YOLOv3-Tiny at present. The whole Spiking-YOLOv3 will be supported soon.

Introduction

For spiking implementation, some operators in YOLOv3-Tiny have been converted equivalently. Please refer to yolov3-tiny-ours(*).cfg in /cfg for details.

Conversion of some operators

  • 'maxpool(stride=2)'->'convolutional(stride=2)'
  • 'maxpool(stride=1)'->'none'
  • 'upsample'->'transposed_convolutional'
  • 'leaky_relu'->'relu'
  • 'batch_normalization'->'fuse_conv_and_bn'

Usage

Please refer to ultralytics/yolov3 for the basic usage for training, evaluation and inference. The main advantage of PyTorch-Spiking-YOLOv3 is the transformation from ANN to SNN.

Train

$ python3 train.py --batch-size 32 --cfg cfg/yolov3-tiny-ours.cfg --data data/coco.data --weights ''

Test

$ python3 test.py --cfg cfg/yolov3-tiny-ours.cfg --data data/coco.data --weights weights/best.pt --batch-size 32 --img-size 640

Detect

$ python3 detect.py --cfg cfg/yolov3-tiny-ours.cfg --weights weights/best.pt --img-size 640

Transform

$ python3 ann_to_snn.py --cfg cfg/yolov3-tiny-ours.cfg --data data/coco.data --weights weights/best.pt --timesteps 128

For higher accuracy(mAP), you can try to adjust some hyperparameters.

Trick: the larger timesteps, the higher accuracy.

Results

Here we show the results(mAP) of PASCAL VOC & COCO which are commonly used in object detection,and two custom datasets UAV & UAVCUT.

dataset yolov3 yolov3-tiny yolov3-tiny-ours yolov3-tiny-ours-snn
UAVCUT 98.90% 99.10% 98.80% 98.60%
UAV 99.50% 99.40% 99.10% 98.20%
VOC07+12 77.00% 52.30% 55.50% 55.56%
COCO2014 56.50% 33.30% 38.70% 29.50%

From the results, we can conclude that:

  1. for simple custom datasets like UAV & UAVCUT, the accuracy of converting some operators is nearly equivalent to the original YOLOv3-Tiny;
  2. for complex common datasets like PASCAL VOC & COCO, the accuracy of converting some operators is even better than the original YOLOv3-Tiny;
  3. for most datasets, our method of transformation from ANN to SNN can be nearly lossless;
  4. for rather complex dataset like COCO, our method of transformation from ANN to SNN causes a certain loss of accuracy(which will been improved later).

UAVCUT

avatar

UAV

avatar

PASCAL VOC

avatar

COCO

avatar

References

Articles

GitHub

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].