summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 08:31:12 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 08:31:12 +0000
commit87578498d241fd78d68cdc6b89b9864e013eadd5 (patch)
treebd4041b64f84523c9cd0b7851769b890c08d99ed
parent8d22f45cd4bfba855d0ed5279e5f78662809ad8b (diff)
automatic import of python-yolov4
-rw-r--r--.gitignore1
-rw-r--r--python-yolov4.spec1395
-rw-r--r--sources1
3 files changed, 1397 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..ae25539 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/yolov4-3.2.0.tar.gz
diff --git a/python-yolov4.spec b/python-yolov4.spec
new file mode 100644
index 0000000..bf24e7f
--- /dev/null
+++ b/python-yolov4.spec
@@ -0,0 +1,1395 @@
+%global _empty_manifest_terminate_build 0
+Name: python-yolov4
+Version: 3.2.0
+Release: 1
+Summary: YOLOv4: Optimal Speed and Accuracy of Object Detection
+License: MIT
+URL: https://github.com/hhk7734/tensorflow-yolov4
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ab/7b/cd3cf1740c13dad3d9b2ed3e130a22c34cefc87bab881c57460d842b1c88/yolov4-3.2.0.tar.gz
+BuildArch: noarch
+
+
+%description
+![license](https://img.shields.io/github/license/hhk7734/tensorflow-yolov4)
+![pypi](https://img.shields.io/pypi/v/yolov4)
+![language](https://img.shields.io/github/languages/top/hhk7734/tensorflow-yolov4)
+
+# 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](https://wiki.loliot.net/docs/lang/python/libraries/yolov4/python-yolov4-about)
+
+## Installation
+
+```shell
+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
+
+%package -n python3-yolov4
+Summary: YOLOv4: Optimal Speed and Accuracy of Object Detection
+Provides: python-yolov4
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-yolov4
+![license](https://img.shields.io/github/license/hhk7734/tensorflow-yolov4)
+![pypi](https://img.shields.io/pypi/v/yolov4)
+![language](https://img.shields.io/github/languages/top/hhk7734/tensorflow-yolov4)
+
+# 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](https://wiki.loliot.net/docs/lang/python/libraries/yolov4/python-yolov4-about)
+
+## Installation
+
+```shell
+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
+
+%package help
+Summary: Development documents and examples for yolov4
+Provides: python3-yolov4-doc
+%description help
+![license](https://img.shields.io/github/license/hhk7734/tensorflow-yolov4)
+![pypi](https://img.shields.io/pypi/v/yolov4)
+![language](https://img.shields.io/github/languages/top/hhk7734/tensorflow-yolov4)
+
+# 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](https://wiki.loliot.net/docs/lang/python/libraries/yolov4/python-yolov4-about)
+
+## Installation
+
+```shell
+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
+
+%prep
+%autosetup -n yolov4-3.2.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-yolov4 -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 3.2.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..57a1218
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9aa44a56d4a104226afa244b38856e88 yolov4-3.2.0.tar.gz