这是一个mobilenet-yolov4-lite的库,把yolov4主干网络修改成了mobilenet,修改了Panet的卷积组成,使参数量大幅度缩小。

Overview

YOLOV4:You Only Look Once目标检测模型-修改mobilenet系列主干网络-在Keras当中的实现


2021年2月8日更新:
加入letterbox_image的选项,关闭letterbox_image后网络的map一般可以得到提升。

目录

  1. 性能情况 Performance
  2. 所需环境 Environment
  3. 注意事项 Attention
  4. 小技巧的设置 TricksSet
  5. 文件下载 Download
  6. 预测步骤 How2predict
  7. 训练步骤 How2train
  8. 参考资料 Reference

性能情况

训练数据集 权值文件名称 测试数据集 输入图片大小 mAP 0.5:0.95 mAP 0.5
VOC07+12 yolov4_mobilenet_v1_025_voc.h5 VOC-Test07 416x416 - 66.29
VOC07+12 yolov4_mobilenet_v1_voc.h5 VOC-Test07 416x416 - 80.18
VOC07+12 yolov4_mobilenet_v2_voc.h5 VOC-Test07 416x416 - 79.72
VOC07+12 yolov4_mobilenet_v3_voc.h5 VOC-Test07 416x416 - 78.45

所需环境

tensorflow-gpu==1.13.1
keras==2.1.5

注意事项

提供的四个训练好的权重分别是基于mobilenetv1-025、mobilenetv1、mobilenetv2、mobilenetv3主干网络训练而成的。使用的时候注意backbone和权重的对应。
训练前注意修改alpha、model_path和backbone使得三者对应。
预测前注意修改alhpa、model_path和backbone使得三者对应。

小技巧的设置

在train.py文件下:
1、mosaic参数可用于控制是否实现Mosaic数据增强。
2、Cosine_scheduler可用于控制是否使用学习率余弦退火衰减。
3、label_smoothing可用于控制是否Label Smoothing平滑。

文件下载

训练所需的各个权值可在百度网盘中下载。
链接: https://pan.baidu.com/s/1CA4d9gVBI5JObnhK_xRPxQ 提取码: 9am5
四个已经训练好的权重均为VOC数据集的权重。

预测步骤

a、使用预训练权重

  1. 下载完库后解压,在百度网盘下载权重,放入model_data,运行predict.py,输入
img/street.jpg
  1. 利用video.py可进行摄像头检测。

b、使用自己训练的权重

  1. 按照训练步骤训练。
  2. 在yolo.py文件里面,在如下部分修改model_path、alpha和classes_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,alpha是通道的缩放比例,classes_path是model_path对应分的类
_defaults = {
    "model_path"        : 'model_data/yolov4_mobilenet_v1_voc.h5',
    "anchors_path"      : 'model_data/yolo_anchors.txt',
    "classes_path"      : 'model_data/voc_classes.txt',
    "backbone"          : 'mobilenetv1',
    "alpha"             : 1,
    "score"             : 0.5,
    "iou"               : 0.3,
    "max_boxes"         : 100,
    # 显存比较小可以使用416x416
    # 显存比较大可以使用608x608
    "model_image_size"  : (416, 416)
}
  1. 运行predict.py,输入
img/street.jpg
  1. 利用video.py可进行摄像头检测。

训练步骤

  1. 本文使用VOC格式进行训练。
  2. 训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
  3. 训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
  4. 在训练前利用voc2yolo4.py文件生成对应的txt。
  5. 再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。注意不要使用中文标签,文件夹中不要有空格!
classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]
  1. 此时会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置
  2. 在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件,示例如下:
classes_path = 'model_data/new_classes.txt'    

model_data/new_classes.txt文件内容为:

cat
dog
...
  1. 运行train.py即可开始训练。

mAP目标检测精度计算更新

更新了get_gt_txt.py、get_dr_txt.py和get_map.py文件。
get_map文件克隆自https://github.com/Cartucho/mAP
具体mAP计算过程可参考:https://www.bilibili.com/video/BV1zE411u7Vw

Reference

https://github.com/qqwweee/keras-yolo3/
https://github.com/Cartucho/mAP
https://github.com/Ma-Dan/keras-yolo4

You might also like...
 YOLOv4-v3 Training Automation API for Linux
YOLOv4-v3 Training Automation API for Linux

This repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.

A Keras implementation of YOLOv4 (Tensorflow backend)
A Keras implementation of YOLOv4 (Tensorflow backend)

keras-yolo4 请使用更完善的版本: https://github.com/miemie2013/Keras-YOLOv4 Please visit here for more complete model: https://github.com/miemie2013/Keras-YOLOv

Torchyolo - Yolov3 ve Yolov4 modellerin Pytorch uygulamasıdır
Torchyolo - Yolov3 ve Yolov4 modellerin Pytorch uygulamasıdır

TORCHYOLO : Yolo Modellerin Pytorch Uygulaması Yapılacaklar: Yolov3 model.py ve

Train Yolov4 using NBX-Jobs

yolov4-trainer-nbox Train Yolov4 using NBX-Jobs. Use the powerfull functionality available in nbox-SDK repo to train a tiny-Yolo v4 model on Pascal VO

WHENet - ONNX, OpenVINO, TFLite, TensorRT, EdgeTPU, CoreML, TFJS, YOLOv4/YOLOv4-tiny-3L
WHENet - ONNX, OpenVINO, TFLite, TensorRT, EdgeTPU, CoreML, TFJS, YOLOv4/YOLOv4-tiny-3L

HeadPoseEstimation-WHENet-yolov4-onnx-openvino ONNX, OpenVINO, TFLite, TensorRT, EdgeTPU, CoreML, TFJS, YOLOv4/YOLOv4-tiny-3L 1. Usage $ git clone htt

YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )
YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )

Yolo v4, v3 and v2 for Windows and Linux (neural networks for object detection) Paper YOLO v4: https://arxiv.org/abs/2004.10934 Paper Scaled YOLO v4:

CDIoU and CDIoU loss is like a convenient plug-in that can be used in multiple models. CDIoU and CDIoU loss have different excellent performances in several models such as Faster R-CNN, YOLOv4, RetinaNet and . There is a maximum AP improvement of 1.9% and an average AP of 0.8% improvement on MS COCO dataset, compared to traditional evaluation-feedback modules. Here we just use as an example to illustrate the code. YOLTv4 builds upon YOLT and SIMRDWN, and updates these frameworks to use the most performant version of YOLO, YOLOv4
YOLTv4 builds upon YOLT and SIMRDWN, and updates these frameworks to use the most performant version of YOLO, YOLOv4

YOLTv4 builds upon YOLT and SIMRDWN, and updates these frameworks to use the most performant version of YOLO, YOLOv4. YOLTv4 is designed to detect objects in aerial or satellite imagery in arbitrarily large images that far exceed the ~600×600 pixel size typically ingested by deep learning object detection frameworks.

PyTorch ,ONNX and TensorRT implementation of YOLOv4
PyTorch ,ONNX and TensorRT implementation of YOLOv4

PyTorch ,ONNX and TensorRT implementation of YOLOv4

I tried to apply the CAM algorithm to YOLOv4 and it worked.
I tried to apply the CAM algorithm to YOLOv4 and it worked.

YOLOV4:You Only Look Once目标检测模型在pytorch当中的实现 2021年2月7日更新: 加入letterbox_image的选项,关闭letterbox_image后网络的map得到大幅度提升。 目录 性能情况 Performance 实现的内容 Achievement

People movement type classifier with YOLOv4 detection and SORT tracking.
People movement type classifier with YOLOv4 detection and SORT tracking.

Movement classification The goal of this project would be movement classification of people, in other words, walking (normal and fast) and running. Yo

Object tracking implemented with YOLOv4, DeepSort, and TensorFlow.
Object tracking implemented with YOLOv4, DeepSort, and TensorFlow.

Object tracking implemented with YOLOv4, DeepSort, and TensorFlow. YOLOv4 is a state of the art algorithm that uses deep convolutional neural networks to perform object detections. We can take the output of YOLOv4 feed these object detections into Deep SORT (Simple Online and Realtime Tracking with a Deep Association Metric) in order to create a highly accurate object tracker.

Vehicles Counting using YOLOv4 + DeepSORT + Flask + Ngrok
Vehicles Counting using YOLOv4 + DeepSORT + Flask + Ngrok

A project for counting vehicles using YOLOv4 + DeepSORT + Flask + Ngrok

Implementing yolov4 target detection and tracking based on nao robot
Implementing yolov4 target detection and tracking based on nao robot

Implementing yolov4 target detection and tracking based on nao robot

Implementation of "Scaled-YOLOv4: Scaling Cross Stage Partial Network" using PyTorch framwork.

YOLOv4-large This is the implementation of "Scaled-YOLOv4: Scaling Cross Stage Partial Network" using PyTorch framwork. YOLOv4-CSP YOLOv4-tiny YOLOv4-

A tutorial on training a DarkNet YOLOv4 model for the CrowdHuman dataset
A tutorial on training a DarkNet YOLOv4 model for the CrowdHuman dataset

YOLOv4 CrowdHuman Tutorial This is a tutorial demonstrating how to train a YOLOv4 people detector using Darknet and the CrowdHuman dataset. Table of c

 YOLOv4-v3 Training Automation API for Linux
YOLOv4-v3 Training Automation API for Linux

This repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.

A Keras implementation of YOLOv4 (Tensorflow backend)
A Keras implementation of YOLOv4 (Tensorflow backend)

keras-yolo4 请使用更完善的版本: https://github.com/miemie2013/Keras-YOLOv4 Please visit here for more complete model: https://github.com/miemie2013/Keras-YOLOv

Torchyolo - Yolov3 ve Yolov4 modellerin Pytorch uygulamasıdır
Torchyolo - Yolov3 ve Yolov4 modellerin Pytorch uygulamasıdır

TORCHYOLO : Yolo Modellerin Pytorch Uygulaması Yapılacaklar: Yolov3 model.py ve

Comments
  • Project dependencies may have API risk issues

    Project dependencies may have API risk issues

    Hi, In mobilenet-yolov4-keras, inappropriate dependency versioning constraints can cause risks.

    Below are the dependencies and version constraints that the project is using

    scipy==1.2.1
    numpy==1.17.0
    Keras==2.1.5
    matplotlib==3.1.2
    opencv_python==4.1.2.30
    tensorflow_gpu==1.13.2
    tqdm==4.60.0
    Pillow==8.2.0
    h5py==2.10.0
    

    The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict. The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.

    After further analysis, in this project, The version constraint of dependency matplotlib can be changed to >=1.3.0,<=3.0.3. The version constraint of dependency tqdm can be changed to >=4.36.0,<=4.64.0. The version constraint of dependency Pillow can be changed to ==9.2.0. The version constraint of dependency Pillow can be changed to >=2.0.0,<=9.1.1.

    The above modification suggestions can reduce the dependency conflicts as much as possible, and introduce the latest version as much as possible without calling Error in the projects.

    The invocation of the current project includes all the following methods.

    The calling methods from the matplotlib
    matplotlib.use
    
    The calling methods from the tqdm
    tqdm.tqdm
    
    The calling methods from the Pillow
    PIL.Image.fromarray
    PIL.ImageFont.truetype
    PIL.Image.open
    PIL.Image.new
    
    The calling methods from the all methods
    numpy.logspace
    numpy.uint8
    xml.endswith
    xml.etree.ElementTree.parse.getroot
    ghostnet.Ghostnet
    image.resize.transpose
    _squeeze
    matplotlib.pyplot.gca
    self.get_random_data_with_Mosaic
    keras.backend.concatenate
    kmeans
    isinstance
    line.os.path.basename.split
    total_xml.append
    self.yolo_model.load_weights
    sigmoid
    utils_map.get_coco_map
    keras.layers.normalization.BatchNormalization
    keras.layers.BatchNormalization
    inputs.correct_pad.ZeroPadding2D
    utils.utils_map.get_map
    boxes_per_image.append
    PIL.Image.fromarray
    tensorflow.image.non_max_suppression
    numpy.where
    glob.glob
    ValueError
    utils.utils_bbox.DecodeBox
    utils.callbacks.EvalCallback
    format
    cv2.VideoCapture.release
    _activation
    keras.layers.GlobalAveragePooling2D
    os.path.splitext
    cv2.resize
    json.dump
    prefix.channel_axis.BatchNormalization
    numpy.logical_and.split
    matplotlib.pyplot.gca.set_xlim
    image_set.year.VOCdevkit_path.os.path.join.open.read
    glob.glob1
    matplotlib.pyplot.fill_between
    gt_match.split
    cv2.VideoCapture.read
    img_name.lower
    keras.layers.Activation
    numpy.random.rand
    hard_sigmoid.Activation
    det_counter_per_class.keys
    nets.yolo.yolo_body.load_weights
    name.layers.Activation
    matplotlib.pyplot.gcf.set_figheight
    prefix.reduced_ch.Conv2D
    functools.reduce
    images.append
    self.epoches.append
    open.close
    keras.layers.Input
    image.crop.save
    block_id.strides.depth_multiplier.DepthwiseConv2D
    numpy.random.shuffle
    matplotlib.pyplot.gcf.get_figheight
    utils.callbacks.ParallelModelCheckpoint
    json.dumps
    utils.dataloader.YoloDatasets
    classes.index
    image_set.year.VOCdevkit_path.os.path.join.open.read.strip
    _ghost_module
    l.get_input_shape_at
    fig.add_subplot.add_patch
    open
    numpy.median
    matplotlib.pyplot.margins
    os.walk
    setattr
    img_name.replace
    DarknetConv2D
    matplotlib.pyplot.plot
    random.sample.append
    keras.backend.max
    self.ParallelModelCheckpoint.super.__init__
    matplotlib.pyplot.yticks
    cv2.getTextSize
    numpy.tile
    pycocotools.coco.COCO.loadImgs
    box_datas.append
    mobilenet_v3.MobileNetV3
    keras.backend.cast
    keras.backend.tile
    tensorflow.math.atan2
    image_set.year.VOCdevkit_path.os.path.join.open.read.strip.split
    annotation_line.split
    int
    image.size.np.floor.astype
    utils_bbox.DecodeBox
    utils.utils.preprocess_input
    keras.callbacks.ModelCheckpoint
    os.listdir
    VOCdevkit_path.os.path.join.open.read.strip.split
    utils.utils_bbox.get_anchors_and_decode
    nets.yolo.yolo_body
    prefix.x.correct_pad.ZeroPadding2D
    sub_block_id.str.block_id.str.BatchNormalization
    json.load
    results_file.write
    pycocotools.cocoeval.COCOeval.evaluate
    VOCdevkit_path.os.path.join.open.read
    self.sess.close
    numpy.zeros.append
    os.path.basename
    self.loss_plot
    mAP_YOLO
    os.path.normpath
    sigmoid.append
    keras.backend.get_session
    self.ParallelModelCheckpoint.super.set_model
    self.model_body.get_input_at
    dense_block
    super
    keras.backend.ones_like
    matplotlib.pyplot.subplots_adjust
    hard_swish.Activation
    _depthwise_conv_block
    bounding_boxes.sort
    PIL.ImageDraw.Draw
    cv2.split
    utils.utils.show_config
    self.preprocess_true_boxes
    bboxes.extend
    matplotlib.pyplot.legend
    self.merge_bboxes
    keras.backend.round
    tensorflow.Print
    f.write
    cv2.VideoWriter
    matplotlib.pyplot.axis
    numpy.empty
    block_id.pointwise_conv_filters.Conv2D
    self.rand
    fig.canvas.get_renderer
    nets.yolo.yolo_body.summary
    numpy.array.paste
    load_data
    numpy.clip
    txt_file.split
    l.grid_shapes.t.b.true_boxes.np.floor.astype
    keras.optimizers.Adam
    functools.partial
    adjust_axes
    operator.itemgetter
    os.path.join
    matplotlib.pyplot.text.get_window_extent
    matplotlib.pyplot.savefig
    str.BatchNormalization
    weight_decay.pointwise_conv_filters.DarknetConv2D
    round
    numpy.exp.append
    name.reduction.x.backend.int_shape.int.layers.Conv2D
    keras.callbacks.EarlyStopping
    matplotlib.pyplot.imshow
    keras.models.Model.summary
    keras.layers.Lambda
    utils.utils.resize_image
    conv_name_base.filters3.Conv2D
    keras.layers.ZeroPadding2D
    os.path.isfile
    numpy.argmax
    keras.backend.placeholder
    matplotlib.pyplot.gcf.savefig
    colorsys.hsv_to_rgb
    self.maps.append
    tensorflow.ones_like
    keras.initializers.random_normal
    name.layers.AveragePooling2D
    keras.layers.UpSampling2D.weight_decay.alpha.int.DarknetConv2D_BN_Leaky.compose
    annotation_line.split.split
    str
    nets.yolo.get_train_model
    gt_counter_per_class.keys
    math.exp
    conv_name_base.strides.filters3.Conv2D
    top.np.floor.astype
    densenet.DenseNet
    box.split
    utils.resize_image
    bounding_boxes.append
    sub_block_id.str.block_id.str.random_normal.hidden_channel.Conv2D
    line.split
    keras.backend.minimum
    utils.utils.cvtColor.crop
    utils.utils.get_classes
    prefix.pointwise_filters.Conv2D
    keras.layers.Add
    part.str.sub_block_id.str.block_id.str.random_normal.ratio.dw_size.DepthwiseConv2D
    results.append
    keras.backend.get_value
    self.get_map_txt
    keras.initializers.random_normal.update
    glob.glob.sort
    keras.backend.relu
    box_iou
    range
    keras.layers.Multiply
    keras.backend.constant
    image_id.VOCdevkit_path.os.path.join.ET.parse.getroot
    PIL.ImageFont.truetype
    conv_name_base.filters1.Conv2D
    keras.optimizers.SGD
    cv2.VideoWriter_fourcc
    matplotlib.pyplot.text
    keras.backend.int_shape
    matplotlib.pyplot.xlabel
    weight_decay.num_classes.anchors_mask.len.DarknetConv2D
    numpy.floor
    self.WarmUpCosineDecayScheduler.super.__init__
    near.last_clu.all
    yolo.YOLO
    block_id.relu6.Activation
    detection.split
    keras.backend.exp
    file_lines_to_list
    fp_sorted.append
    len
    numpy.reshape
    prefix.relu6.Activation
    already_seen_classes.append
    obj.findtext
    dict
    i.j.List1.rjust
    new_f.write
    matplotlib.pyplot.show
    keras.callbacks.LearningRateScheduler
    conv_block
    i_list.append
    tensorflow.cast
    numpy.insert
    matplotlib.pyplot.gca.get_xlim
    class_names.index
    cv2.imshow
    prec.insert
    pycocotools.coco.COCO
    strides.kernel.filters.Conv2D
    numpy.minimum
    tensorflow.logging.set_verbosity
    VOCdevkit_path.os.path.join.open.read.strip
    prefix.exp_size.Conv2D
    image_id.VOCdevkit_path.os.path.join.ET.parse.getroot.findall
    get_anchors_and_decode
    cv2.cvtColor
    pow
    yolo.detect_image.append
    transition_block
    cv2.VideoCapture
    obj.find
    image.resize.resize
    label.encode.encode
    matplotlib.pyplot.gcf.tight_layout
    keras.backend.reshape
    convert_annotation
    nets.yolo_training.get_lr_scheduler
    numpy.max
    matplotlib.pyplot.barh
    pycocotools.coco.COCO.loadRes
    cv2.destroyAllWindows
    format.Add
    matplotlib.pyplot.figure
    _smooth_labels
    numpy.shape
    keras.backend.clear_session
    obj.split
    no_bias_kwargs.update
    image.resize.convert
    shutil.rmtree
    keras.backend.min
    self.losses.append
    PIL.Image.open.save
    keras.backend.learning_phase
    _make_divisible.Conv2D
    gamma.alpha.focal_loss.label_smoothing.num_classes.input_shape.input_shape.num_classes.anchors_mask.anchors.input_shape.yolo_loss.Lambda
    l.get_output_shape_at
    self.model_body.get_output_at
    matplotlib.pyplot.gcf
    format.BatchNormalization
    anchors.np.array.reshape
    random.shuffle
    yolo.YOLO.detect_image
    matplotlib.pyplot.close
    yolo.YOLO.get_FPS
    MobileNetV1
    prefix.out_channels.Conv2D
    nets.yolo.get_train_model.fit_generator
    keras.backend.concatenate.append
    math.ceil
    img_name.lower.endswith
    rec.append
    str.astype
    format.Activation
    utils_map.get_map
    block_id.BatchNormalization
    keras.backend.expand_dims.stack
    matplotlib.pyplot.cla
    numpy.random.uniform
    pycocotools.cocoeval.COCOeval.accumulate
    part.str.sub_block_id.str.block_id.str.BatchNormalization
    numpy.expand_dims
    weight_decay.num_filters.DarknetConv2D_BN_Leaky
    matplotlib.pyplot.gca.set_ylim
    numpy.arange
    pycocotools.cocoeval.COCOeval
    make_five_convs
    keras.layers.MaxPooling2D
    keras.backend.set_value
    prec.append
    preprocess_gt
    conv_name_base.kernel_size.filters2.Conv2D
    c.strip
    matplotlib.pyplot.gcf.get_figwidth
    numpy.logical_and
    identity_block
    numpy.sum
    keras.layers.Reshape
    r.x.astype
    numpy.zeros
    sub_block_id.str.block_id.str.random_normal.ratio.hidden_channel._make_divisible.Conv2D
    tmp_box.append
    resnet50.ResNet50
    numpy.argsort
    self.ExponentDecayScheduler.super.__init__
    keras.backend.sigmoid
    os.path.abspath
    _make_divisible
    pycocotools.cocoeval.COCOeval.summarize
    yolo.detect_image.save
    kwargs.get
    sorted
    log_average_miss_rate
    PIL.Image.open
    format.Multiply
    utils.utils.net_flops
    keras.layers.add
    print
    utils.utils_map.get_coco_map
    tensorflow.TensorArray
    cv2.merge
    _ghost_bottleneck
    voc_ap
    cv2.LUT
    self.yolo_model.predict
    cv2.putText
    keras.initializers.random_normal.Conv2D
    numpy.mean
    keras.backend.image_data_format
    zip
    PIL.ImageDraw.Draw.textsize
    numpy.log
    scipy.signal.savgol_filter
    numpy.concatenate
    os.makedirs
    keras.backend.maximum
    vgg.VGG16
    image.resize.paste
    time.time
    utils.utils.cvtColor
    matplotlib.pyplot.scatter
    l.self.anchors_mask.index
    self.sess.run
    x.strip
    xml.etree.ElementTree.parse.iter
    yolo_correct_boxes
    tensorflow.sigmoid
    conv_name_base.strides.filters1.Conv2D
    matplotlib.pyplot.xlim
    prefix.stride.kernel_size.DepthwiseConv2D
    numpy.array
    tensorflow.shape
    tuple
    keras.backend.epsilon
    bool
    f.readline
    PIL.Image.new
    numpy.random.normal
    numpy.float64
    box_ciou
    cas_iou
    tqdm.tqdm
    self.__dict__.update
    self.generate
    matplotlib.pyplot.gca.invert_yaxis
    f
    tensorflow.while_loop
    _inverted_res_block
    annotations.append
    matplotlib.pyplot.ylabel
    anchors.np.array.reshape.split
    fig.canvas.set_window_title
    error
    matplotlib.pyplot.title
    t.b.true_boxes.astype
    input
    utils.callbacks.LossHistory
    yolo.YOLO.get_map_txt
    tp_sorted.append
    xml.etree.ElementTree.parse.findtext
    correct_pad
    collections.defaultdict.keys
    kwargs.items
    obj.find.find
    datetime.datetime.now
    numpy.array.append
    mAP_YOLO.detect_image
    name.layers.Concatenate
    merge_bbox.append
    math.cos
    tensorflow.maximum
    keras.backend.expand_dims.write
    pycocotools.coco.COCO.getCatIds
    weight_decay.l2.strides.depth_multiplier.random_normal.DepthwiseConv2D
    logs.get
    self.EvalCallback.super.__init__
    mobilenet_v2.MobileNetV2
    utils.utils.compose
    datetime.datetime.strftime
    sub_block_id.str.block_id.str.random_normal.strides.kernel.DepthwiseConv2D
    numpy.maximum
    categories.append
    draw_text_in_image
    enumerate
    float
    keras.layers.DepthwiseConv2D
    matplotlib.pyplot.grid
    max
    cv2.copyMakeBorder
    bottom.np.floor.astype
    mobilenet_v1.MobileNetV1
    keras.backend.dtype
    yolo.YOLO.detect_heatmap
    cv2.copyMakeBorder.copy
    cv2.imread
    yolo.detect_image.show
    cv2.VideoCapture.get
    prefix.in_channels.expansion.Conv2D
    list
    numpy.random.choice
    os.path.exists
    keras.callbacks.TensorBoard
    utils.cvtColor
    exp.slices.Lambda
    collections.defaultdict
    avg_iou
    cocoGt.imgToAnns.keys
    PIL.ImageDraw.Draw.text
    keras.layers.AveragePooling2D
    relu6.Activation
    min
    cv2.VideoWriter.release
    random.seed
    draw_plot_func
    utils.preprocess_input
    keras.layers.Conv2D
    utils.utils.get_anchors
    keras.backend.sum
    keras.backend.gather
    part.str.sub_block_id.str.block_id.str.random_normal.stride.kernel_size.output_channels.Conv2D
    os.path.expanduser.endswith
    name.layers.BatchNormalization
    tensorflow.boolean_mask
    keras.backend.binary_crossentropy
    keras.backend.square
    num_classes.true_boxes.all
    hard_swish
    keras.backend.expand_dims
    keras.utils.multi_gpu_utils.multi_gpu_model
    cv2.rectangle
    image_datas.append
    cv2.imwrite
    os.path.expanduser
    prefix.stride.stride.DepthwiseConv2D
    map
    open.write
    _bneck
    right.np.floor.astype
    dictionary.items
    matplotlib.pyplot.Rectangle
    DarknetConv2D_BN_Leaky
    format.GlobalAveragePooling2D
    keras.backend.shape
    AssertionError
    matplotlib.pyplot.figure.add_subplot
    cv2.waitKey
    sys.exit
    g
    prefix.exp_size.Reshape
    random.sample
    weight_decay.alpha.int.DarknetConv2D_BN_Leaky
    xml.etree.ElementTree.parse
    keras.regularizers.l2
    sub_block_id.str.block_id.str.random_normal.output_channel.Conv2D
    matplotlib.use
    keras.layers.UpSampling2D
    self.get_random_data
    join
    self.val_loss.append
    r.x.np.clip.astype
    _conv_block
    cv2.VideoWriter.write
    tree.getroot.iter
    self.get_random_data_with_MixUp
    keras.backend.arange
    numpy.random.seed
    keras.models.Model
    functools.wraps
    printTable
    PIL.ImageDraw.Draw.rectangle
    matplotlib.pyplot.ylim
    rec.insert
    name.growth_rate.layers.Conv2D
    keras.layers.Concatenate
    name.name_box_id.append
    left.np.floor.astype
    net_flops
    numpy.argmin
    f.readlines
    preprocess_dr
    numpy.exp
    nets.yolo.get_train_model.compile
    keras.backend.floatx
    

    @developer Could please help me check this issue? May I pull a request to fix it? Thank you very much.

    opened by PyDeps 0
  • AttributeError: 'str' object has no attribute 'decode'

    AttributeError: 'str' object has no attribute 'decode'

    Traceback (most recent call last): File "D:/AI/projects/mobilenet-yolov4-lite-keras-main/mobilenet-yolov4-lite-keras-main/train.py", line 257, in model_body.load_weights(weights_path, by_name=True, skip_mismatch=True) File "D:\AI\anaconda3-5.3.1\envs\yolov4\lib\site-packages\keras\engine\topology.py", line 2653, in load_weights reshape=reshape) File "D:\AI\anaconda3-5.3.1\envs\yolov4\lib\site-packages\keras\engine\topology.py", line 3407, in load_weights_from_hdf5_group_by_name original_keras_version = f.attrs['keras_version'].decode('utf8') AttributeError: 'str' object has no attribute 'decode' 训练时报错,怎能解决啊?

    opened by czalt1028 3
Releases(v3.1)
Owner
Bubbliiiing
Bubbliiiing
YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )

Yolo v4, v3 and v2 for Windows and Linux (neural networks for object detection) Paper YOLO v4: https://arxiv.org/abs/2004.10934 Paper Scaled YOLO v4:

Alexey 20.2k Jan 9, 2023
YOLTv4 builds upon YOLT and SIMRDWN, and updates these frameworks to use the most performant version of YOLO, YOLOv4

YOLTv4 builds upon YOLT and SIMRDWN, and updates these frameworks to use the most performant version of YOLO, YOLOv4. YOLTv4 is designed to detect objects in aerial or satellite imagery in arbitrarily large images that far exceed the ~600×600 pixel size typically ingested by deep learning object detection frameworks.

Adam Van Etten 161 Jan 6, 2023
PyTorch ,ONNX and TensorRT implementation of YOLOv4

PyTorch ,ONNX and TensorRT implementation of YOLOv4

null 4.2k Jan 1, 2023
I tried to apply the CAM algorithm to YOLOv4 and it worked.

YOLOV4:You Only Look Once目标检测模型在pytorch当中的实现 2021年2月7日更新: 加入letterbox_image的选项,关闭letterbox_image后网络的map得到大幅度提升。 目录 性能情况 Performance 实现的内容 Achievement

null 55 Dec 5, 2022
People movement type classifier with YOLOv4 detection and SORT tracking.

Movement classification The goal of this project would be movement classification of people, in other words, walking (normal and fast) and running. Yo

null 4 Sep 21, 2021
Object tracking implemented with YOLOv4, DeepSort, and TensorFlow.

Object tracking implemented with YOLOv4, DeepSort, and TensorFlow. YOLOv4 is a state of the art algorithm that uses deep convolutional neural networks to perform object detections. We can take the output of YOLOv4 feed these object detections into Deep SORT (Simple Online and Realtime Tracking with a Deep Association Metric) in order to create a highly accurate object tracker.

The AI Guy 1.1k Dec 29, 2022
Vehicles Counting using YOLOv4 + DeepSORT + Flask + Ngrok

A project for counting vehicles using YOLOv4 + DeepSORT + Flask + Ngrok

Duong Tran Thanh 37 Dec 16, 2022
Implementing yolov4 target detection and tracking based on nao robot

Implementing yolov4 target detection and tracking based on nao robot

null 6 Apr 19, 2022
Implementation of "Scaled-YOLOv4: Scaling Cross Stage Partial Network" using PyTorch framwork.

YOLOv4-large This is the implementation of "Scaled-YOLOv4: Scaling Cross Stage Partial Network" using PyTorch framwork. YOLOv4-CSP YOLOv4-tiny YOLOv4-

Kin-Yiu, Wong 2k Jan 2, 2023
A tutorial on training a DarkNet YOLOv4 model for the CrowdHuman dataset

YOLOv4 CrowdHuman Tutorial This is a tutorial demonstrating how to train a YOLOv4 people detector using Darknet and the CrowdHuman dataset. Table of c

JK Jung 118 Nov 10, 2022