Skip to main content

YOLOv4: Optimal Speed and Accuracy of Object Detection

Project description

license pypi language

tensorflow-yolov4

YOLOv4 Implemented in Tensorflow 2.

>=v3, :exclamation: Do not try to train. Not yet stable.

Docs: https://wiki.loliot.net/docs/lang/python/libraries/yolov4/python-yolov4-about

Installation

python3 -m pip install yolov4

Changelog

Ref: CHANGELOG

tensorflow-yolov4 (3.2.0) unstable; urgency=medium

  • config: add yolov4-tiny-relu-new_coords.cfg
  • c_src: layers: add yolo_tpu_layer_new_coords
  • c_src, common, tf, tflite, mAP: add prob_thresh
  • config: add yolov4-tiny-relu-new_coords-tpu.cfg
  • common: base_class: modify text

-- Hyeonki Hong hhk7734@gmail.com Mon, 22 Feb 2021 01:30:53 +0900

tensorflow-yolov4 (3.1.0) unstable; urgency=medium

  • tf: layers: yolo_layer: remove some operations
  • common: metalayer: yolo_layer: add new_coords
  • tf: layers: yolo_layer: implement _coords_1 for new_coords
  • tf: layers: convolutional_layer: add logistic activation
  • c_src: py_box: add get_yolo_*_detections
  • config: add yolov4-csp.cfg and yolov4x-mish.cfg
  • c_src: layers: modify yolo_tpu_layer
  • tf, tflite: reflect v3.1.0 changes

-- Hyeonki Hong hhk7734@gmail.com Sun, 21 Feb 2021 02:37:18 +0900

tensorflow-yolov4 (3.0.1) unstable; urgency=medium

  • pypi: add 'pyproject.toml' and update 'setup.*'
  • common: parser: update error message
  • c_src: modify extended operator synonyms
  • c_src: change c-header to cpp-header

-- Hyeonki Hong hhk7734@gmail.com Thu, 18 Feb 2021 19:02:01 +0900

tensorflow-yolov4 (3.0.0) unstable; urgency=medium

  • common: parser: add parse_cfg()
  • common: config: implement YOLOConfig
  • common: metalayer: implement metalayers
  • common: metalayer: add YoloTpuLayer
  • tf: layers: implement layers
  • tf: layers: redefine BatchNormalization for transfer learning
  • tf: layers: add YoloTpuLayer
  • tf: dataset: refactor YOLODataset
  • tf: dataset: add '_augmentation_cache'
  • tf: training: refactor YOLOv4Loss
  • tf: training: implement YOLOCallbackAtEachStep
  • tf: training: refactor SaveWeightsCallback
  • tf: utils: move weights.py from tf
  • tf: utils: move mAP part from tf
  • tf: utils: move tflite part from tf and fix converting issue
  • c_src: py_box: add 'yolo_diou_nms'
  • c_src: py_box: add convert_dataset_to_ground_truth
  • c_src: layers: implement 'yolo_layer'
  • tf, tflite: reflect v3.0.0 changes

-- Hyeonki Hong hhk7734@gmail.com Mon, 15 Feb 2021 00:15:08 +0900

tensorflow-yolov4 (2.1.0) unstable; urgency=medium

  • tflite: add edgetpu_lib argument to load_tflite()

-- Hyeonki Hong hhk7734@gmail.com Wed, 27 Jan 2021 11:09:02 +0900

tensorflow-yolov4 (2.0.3) unstable; urgency=medium

  • common: allow media_path to be video stream id
  • tflite: fix problem of not finding load_delegate()

-- Hyeonki Hong hhk7734@gmail.com Thu, 07 Jan 2021 21:34:35 +0900

tensorflow-yolov4 (2.0.2) ustable; urgency=medium

  • tf: set converter.experimental_new_converter to False
  • tf: set converter.inference_in/output_type to tf.uint8
  • tflite: fix problem of not finding load_delegate()

-- Hyeonki Hong hhk7734@gmail.com Sun, 20 Dec 2020 13:06:08 +0900

tensorflow-yolov4 (2.0.1) unstable; urgency=medium

  • tf: set memory growth to True when using GPU
  • model: head: correct line ending
  • tf: add **kwargs parameter to compile() and fit()
  • tf: fix strange ground truth values issue

-- Hyeonki Hong hhk7734@gmail.com Sat, 05 Dec 2020 18:26:08 +0900

tensorflow-yolov4 (2.0.0) unstable; urgency=medium

  • tf:dataset: add data format check
  • common: base_class: change input_size from integer to (width, height)
  • common: base_class: set default arguments for candidates_to_pred_bboxes
  • tf: dataset: modify variable initialization according to input_size type change
  • common: predict: reflect input_size type change
  • common: media: reflect input_size type change to resize_image
  • tf:dataset: reflect input_size type change to data augmentation
  • common: base_class: reflect predict.fit_pred_bboxes_to_original change
  • common: predict: fix problem that occurred because image size change was not considered
  • tf: reflect input_size type change
  • model: head: reflect input_size type change
  • tf: train: reflect input_size type change
  • common: base_class: change strides to immutable constant
  • common: base_class: add cap.release() to release resources
  • tflite: reflect input_size type change
  • tf: optimize predict() using @tf.function
  • common: predict: fix problem caused by incorrect iou calculation

-- Hyeonki Hong hhk7734@gmail.com Tue, 27 Oct 2020 00:11:59 +0900

tensorflow-yolov4 (1.2.1) unstable; urgency=medium

  • tf: set num_sample to the number of dataset, if not specified
  • tf: modify to bring images in order on post-training
  • common: base_class: add iou/score_threshold argument
  • tf: add images_optional argument in save_dataset_for_mAP()
  • common: base_class: modify to call cv2.namedWindow once
  • common: media: modify to create colors once
  • tf: dataset: update docs

-- Hyeonki Hong hhk7734@gmail.com Fri, 04 Sep 2020 20:21:56 +0900

tensorflow-yolov4 (1.2.0) unstable; urgency=medium

  • model: remove tpu argument
  • tf: reflect model changes
  • tflite: remove tpu_hair
  • tf, tflite: move inference into BaseClass
  • model: yolov4: remove unused import
  • pylint: update .pylintrc
  • common: base_class: modify inference() to be able to use cam
  • common: base_class: add fps display to screen

-- Hyeonki Hong hhk7734@gmail.com Tue, 11 Aug 2020 21:43:29 +0900

tensorflow-yolov4 (1.1.0) unstable; urgency=medium

  • model: add kernel_regularizer argument
  • tf: remove subdivision
  • tf: dataset: fix issue where coordinates become 0 due to repeated division
  • tf: dataset: modify to shuffle when augmentation
  • tf: train: modify order of declaration
  • tf: train: give xiou_loss to more weight
  • tf: train: use keras.losses.BinaryCrossentropy to avoid nan problem
  • tf: train: add verbose argument
  • tf: dataset: change converted_coco format
  • tf: add image_path_prefix argument to load_dataset()
  • tf: add loss_verbose argument to compile()
  • tf: reflect dataset format change to save_dataset_for_mAP()

-- Hyeonki Hong hhk7734@gmail.com Mon, 10 Aug 2020 19:09:15 +0900

tensorflow-yolov4 (1.0.0) unstable; urgency=medium

  • tf: dataset: add label smooting argument
  • tf: add label_smooting argument to load_dataset()
  • tf: train: set truth_conf threshold to 0.5 because of label smoothing

-- Hyeonki Hong hhk7734@gmail.com Wed, 05 Aug 2020 13:05:02 +0900

tensorflow-yolov4 (0.24.0) unstable; urgency=medium

  • tf: set default num of sample for mAP to 1000
  • tf: fix error handling when image is empty

-- Hyeonki Hong hhk7734@gmail.com Tue, 04 Aug 2020 12:40:25 +0900

tensorflow-yolov4 (0.23.0) unstable; urgency=medium

  • tf: dataset: add error handling when bboxes are empty
  • common: media: replace space of class name to underbar
  • tf: implement save_dataset_for_mAP()
  • tf: dataset: add error handling when image is empty

-- Hyeonki Hong hhk7734@gmail.com Mon, 03 Aug 2020 20:49:51 +0900

tensorflow-yolov4 (0.22.0) unstable; urgency=medium

  • tf: add TFLITE_BUILTINS, SELECT_TF_OPS to default supported_ops
  • tf: dataset: modify to check if image exists when creating a dataset
  • tf: dataset: remove preprocess_dataset
  • tf: dataset: add cut_out
  • tf: dataset: add _next_random_augmentation_data()
  • tf: dataset: add mix_up
  • tf: dataset: implement mosaic

-- Hyeonki Hong hhk7734@gmail.com Sun, 02 Aug 2020 17:22:43 +0900

tensorflow-yolov4 (0.21.0) unstable; urgency=medium

  • tf: train: set epsilon used for division to 1e-8
  • tf: train: add giou and iou to iou_type
  • tf: train: fix loss function of bbox_probabilities

-- Hyeonki Hong hhk7734@gmail.com Thu, 30 Jul 2020 05:18:12 +0900

tensorflow-yolov4 (0.20.0) unstable; urgency=medium

  • tf: train: modify epsilon to 1e-9
  • tf: train: remove weight for conf_noobj_loss
  • tf: add arguments to fit()
  • tf: dataset: fix problem of not finding images
  • tf: add SaveWeightsCallback

-- Hyeonki Hong hhk7734@gmail.com Wed, 29 Jul 2020 05:06:25 +0900

tensorflow-yolov4 (0.19.0) unstable; urgency=medium

  • tf: weights: modify 'set' to 'load'
  • tf: weights: implement *_save_weights
  • tf: add save_weights()

-- Hyeonki Hong hhk7734@gmail.com Fri, 24 Jul 2020 06:22:14 +0900

tensorflow-yolov4 (0.18.0) unstable; urgency=medium

  • yolov4: clarify batch number
  • tf: remove by_name in load_weights
  • tf: dataset: simplify code
  • tf: dataset: fix problem of making a batch with same image

-- Hyeonki Hong hhk7734@gmail.com Thu, 23 Jul 2020 20:30:23 +0900

tensorflow-yolov4 (0.17.0) unstable; urgency=medium

  • tf: dataset: fix index range for Tiny
  • tf: remove expect_partial() in load_weights()
  • tflite: fix issue with the number of outputs by model
  • model: add tpu argument in Tiny
  • tflite: add tpu argument
  • utility: rename to common
  • common: implement BaseClass
  • tflite: add tensorflow.lite
  • model: head: change dimension from 4D to 3D in Tiny
  • tflite: add tpu_hair
  • common: media: add type cast in resize_image
  • tf: add num_calibration_steps argument in save_as_tflite
  • common: base_class: move strides property from tf
  • tf: set by_name to True in load_weights

Thanks to @RealHandy

-- Hyeonki Hong hhk7734@gmail.com Thu, 23 Jul 2020 15:43:08 +0900

tensorflow-yolov4 (0.16.0) unstable; urgency=medium

  • tf: add tiny argument to init and remove from others

-- Hyeonki Hong hhk7734@gmail.com Wed, 15 Jul 2020 13:21:12 +0900

tensorflow-yolov4 (0.15.0) unstable; urgency=medium

  • tf: add quantization and data_set args to save_as_tflite
  • utility: media: add string length check
  • model: add activation args
  • model: head: remove for loop
  • model: backbone: implement CSPDarknet53Tiny
  • model: neck: implement PANetTiny
  • model: head: implement YOLOv3HeadTiny
  • model: yolov4: implement YOLOv4Tiny
  • tf: weights: implement tiny funcs
  • tf: reflect YOLOv4Tiny

-- Hyeonki Hong hhk7734@gmail.com Wed, 15 Jul 2020 03:43:03 +0900

tensorflow-yolov4 (0.14.0) unstable; urgency=medium

  • github: add python publish action
  • model: neck: use bilinear in UpSampling2D
  • test: update script
  • tflite: refactor YOLOv4
  • utility: predict: fix according to pylint warning
  • pylint: update .pylintrc
  • model: head: use tf.constant to avoid broadcasting
  • github: add python lint action

-- Hyeonki Hong hhk7734@gmail.com Tue, 14 Jul 2020 02:14:12 +0900

tensorflow-yolov4 (0.13.0) unstable; urgency=medium

  • tf: remove tensorboard callback
  • tf: modify compile() and fit() to be similar to model
  • yolov4: rename 'data' to 'test'
  • utility: media: update docs and variable name
  • utility: predict: remove batch_size
  • utility: media: rename funcs
  • tf: add utility funcs to YOLOv4 member funcs
  • test: add test script

-- Hyeonki Hong hhk7734@gmail.com Mon, 13 Jul 2020 13:36:32 +0900

tensorflow-yolov4 (0.12.0) unstable; urgency=medium

  • utility: train: refactor bbox_*iou and remove duplicate funcs
  • yolov4: rename parameters
  • yolov4: remove utils
  • tf: add FileNotFoundError in YOLOv4.inference()
  • utility: predict: add dimension for batch size
  • pylint: update .pylintrc
  • tf: add YOLOv4.save_as_tflite()
  • model: clean up
  • utility: weights: move to tf.weights
  • utility: train: move to tf.train
  • model: neck: implement PANet
  • mdel: head: implement YOLOv3Head
  • model: yolov4: Apply neck and head class
  • yolov4: reflect model changes
  • tf: dataset: add batch_size
  • tf: train: implement YOLOv4Loss
  • utility: media: modify rectangle thickness
  • model: common: use softplus instead of ln(1+exp(x))
  • tf: train: use epsilon instead of tf.math.divide_no_nan
  • tf: refactor YOLOv4.fit() and .compile()

-- Hyeonki Hong hhk7734@gmail.com Sun, 12 Jul 2020 03:50:50 +0900

tensorflow-yolov4 (0.11.0) unstable; urgency=medium

  • tf: remove utils.draw_bbox in predict()
  • yolov4: rename files and functions and change order
  • utility: utils: remove get_anchors()
  • utility: media: impelment resize(), draw_bbox()
  • utility: utils: implement DIoU_NMS
  • utility: utils: fix dimensional calculation problems
  • utility: refactor dataset
  • tf: remove train
  • utility: train: implement make_compiled_loss()
  • utility: media: fix bug that could not resize some images
  • utility: train: remove problem of division by zero

-- Hyeonki Hong hhk7734@gmail.com Mon, 29 Jun 2020 21:05:39 +0900

tensorflow-yolov4 (0.10.0) unstable; urgency=medium

  • core: yolov4: refactor decode()
  • core: utils: remove sigmoid in postprocess_bbboxe()
  • tf: apply YOLOv4 changes to make_model()
  • core: yolov4: move decode_train() to tf.YOLOv4.train()

-- Hyeonki Hong hhk7734@gmail.com Thu, 25 Jun 2020 00:48:44 +0900

tensorflow-yolov4 (0.9.0) unstable; urgency=medium

  • tf: modify hyperparameters as properties
  • tf: add weights_type argument to load_weights()
  • core: utils: implement _np_fromfile()
  • core: utils: implement a way to partially load weights
  • tf: train: move learning_rate_* to argument
  • core: move YOLOConv2D to common
  • core: common: remove bn argument of YOLOConv2D
  • core: utils: refactor yolo_conv2d_set_weights
  • core: yolov4: refactor YOLOv4
  • core: utils: refactor load_weights
  • tf: refactor make_model
  • yolov4: change YoloV4 to YOLOv4

-- Hyeonki Hong hhk7734@gmail.com Wed, 24 Jun 2020 02:58:27 +0900

tensorflow-yolov4 (0.8.0) unstable; urgency=medium

  • core: use tf.keras.layers.UpSampling2D
  • core: refactor Mish
  • core: common: remove residual_block
  • core: remove sequential in _ResBlock
  • core: backbone: Set LeakyReLU's alpha to 0.1

-- Hyeonki Hong hhk7734@gmail.com Tue, 23 Jun 2020 02:21:01 +0900

tensorflow-yolov4 (0.7.0) unstable; urgency=medium

  • tf: fix to proceed to the next step even if an error occurs
  • tf: modify video_interval_ms to cv_waitKey_delay
  • core: backbone: refactor CSPDarknet53
  • core: utils: implement csp_darknet53_set_weights()

-- Hyeonki Hong hhk7734@gmail.com Mon, 22 Jun 2020 23:01:32 +0900

tensorflow-yolov4 (0.6.0) unstable; urgency=medium

  • tf: set first_step_epochs according to the weight usage
  • tf: fix syntax error

-- Hyeonki Hong hhk7734@gmail.com Fri, 19 Jun 2020 17:09:57 +0900

tensorflow-yolov4 (0.5.0) unstable; urgency=medium

  • core: dataset: add yolo type
  • tf: add dataset_type parameter to YoloV4.train
  • tf: add epochs parameter to train
  • tf: add save_interval parameter to train

-- Hyeonki Hong hhk7734@gmail.com Fri, 19 Jun 2020 14:30:50 +0900

tensorflow-yolov4 (0.4.0) unstable; urgency=medium

  • core: dataset: remove cfg module
  • tf: implement YoloV4.train

-- Hyeonki Hong hhk7734@gmail.com Thu, 11 Jun 2020 17:45:44 +0900

tensorflow-yolov4 (0.3.0) unstable; urgency=medium

  • core: utils: use numpy instead of tensorflow
  • pypi: remove install_requires and change to manual installation
  • yolov4: add video_interval_ms

-- Hyeonki Hong hhk7734@gmail.com Mon, 08 Jun 2020 23:59:41 +0900

tensorflow-yolov4 (0.2.0) unstable; urgency=medium

  • pylint: create .pylintrc and run black
  • core: remove config.py
  • yolov4: change tfyolov4 to yolov4
  • yolov4: remove detect**.py and implement YoloV4.inference

-- Hyeonki Hong hhk7734@gmail.com Mon, 08 Jun 2020 02:20:49 +0900

tensorflow-yolov4 (0.1.0) unstable; urgency=medium

  • yolov4: fork from 'hunglc007/tensorflow-yolov4-tflite'

-- Hyeonki Hong hhk7734@gmail.com Fri, 05 Jun 2020 20:17:45 +0900

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yolov4-3.2.0.tar.gz (42.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page