Package: yolov4
tensorflow-yolov4YOLOv4 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-aboutInstallationpython3-mpipinstallyolov4ChangelogRef: CHANGELOGtensorflow-yolov4 (3.2.0) unstable; urgency=mediumconfig: add yolov4-tiny-relu-new_coords.cfgc_src: layers: add yolo_tpu_layer_new_coordsc_src, common, tf, tflite, mAP: add prob_threshconfig: add yolov4-tiny-relu-new_coords-tpu.cfgcommon: base_class: modify text-- Hyeonki Honghhk7734@gmail.comMon, 22 Feb 2021 01:30:53 +0900tensorflow-yolov4 (3.1.0) unstable; urgency=mediumtf: layers: yolo_layer: remove some operationscommon: metalayer: yolo_layer: addnew_coordstf: layers: yolo_layer: implement_coords_1fornew_coordstf: layers: convolutional_layer: add logistic activationc_src: py_box: addget_yolo_*_detectionsconfig: add yolov4-csp.cfg and yolov4x-mish.cfgc_src: layers: modify yolo_tpu_layertf, tflite: reflect v3.1.0 changes-- Hyeonki Honghhk7734@gmail.comSun, 21 Feb 2021 02:37:18 +0900tensorflow-yolov4 (3.0.1) unstable; urgency=mediumpypi: add 'pyproject.toml' and update 'setup.*'common: parser: update error messagec_src: modify extended operator synonymsc_src: change c-header to cpp-header-- Hyeonki Honghhk7734@gmail.comThu, 18 Feb 2021 19:02:01 +0900tensorflow-yolov4 (3.0.0) unstable; urgency=mediumcommon: parser: add parse_cfg()common: config: implement YOLOConfigcommon: metalayer: implement metalayerscommon: metalayer: add YoloTpuLayertf: layers: implement layerstf: layers: redefine BatchNormalization for transfer learningtf: layers: add YoloTpuLayertf: dataset: refactor YOLODatasettf: dataset: add '_augmentation_cache'tf: training: refactor YOLOv4Losstf: training: implement YOLOCallbackAtEachSteptf: training: refactor SaveWeightsCallbacktf: utils: move weights.py from tftf: utils: move mAP part from tftf: utils: move tflite part from tf and fix converting issuec_src: py_box: add 'yolo_diou_nms'c_src: py_box: add convert_dataset_to_ground_truthc_src: layers: implement 'yolo_layer'tf, tflite: reflect v3.0.0 changes-- Hyeonki Honghhk7734@gmail.comMon, 15 Feb 2021 00:15:08 +0900tensorflow-yolov4 (2.1.0) unstable; urgency=mediumtflite: add edgetpu_lib argument to load_tflite()-- Hyeonki Honghhk7734@gmail.comWed, 27 Jan 2021 11:09:02 +0900tensorflow-yolov4 (2.0.3) unstable; urgency=mediumcommon: allow media_path to be video stream idtflite: fix problem of not finding load_delegate()-- Hyeonki Honghhk7734@gmail.comThu, 07 Jan 2021 21:34:35 +0900tensorflow-yolov4 (2.0.2) ustable; urgency=mediumtf: set converter.experimental_new_converter to Falsetf: set converter.inference_in/output_type to tf.uint8tflite: fix problem of not finding load_delegate()-- Hyeonki Honghhk7734@gmail.comSun, 20 Dec 2020 13:06:08 +0900tensorflow-yolov4 (2.0.1) unstable; urgency=mediumtf: set memory growth to True when using GPUmodel: head: correct line endingtf: add **kwargs parameter to compile() and fit()tf: fix strange ground truth values issue-- Hyeonki Honghhk7734@gmail.comSat, 05 Dec 2020 18:26:08 +0900tensorflow-yolov4 (2.0.0) unstable; urgency=mediumtf:dataset: add data format checkcommon: base_class: change input_size from integer to (width, height)common: base_class: set default arguments for candidates_to_pred_bboxestf: dataset: modify variable initialization according to input_size type changecommon: predict: reflect input_size type changecommon: media: reflect input_size type change to resize_imagetf:dataset: reflect input_size type change to data augmentationcommon: base_class: reflect predict.fit_pred_bboxes_to_original changecommon: predict: fix problem that occurred because image size change was not consideredtf: reflect input_size type changemodel: head: reflect input_size type changetf: train: reflect input_size type changecommon: base_class: change strides to immutable constantcommon: base_class: add cap.release() to release resourcestflite: reflect input_size type changetf: optimize predict() using @tf.functioncommon: predict: fix problem caused by incorrect iou calculation-- Hyeonki Honghhk7734@gmail.comTue, 27 Oct 2020 00:11:59 +0900tensorflow-yolov4 (1.2.1) unstable; urgency=mediumtf: set num_sample to the number of dataset, if not specifiedtf: modify to bring images in order on post-trainingcommon: base_class: add iou/score_threshold argumenttf: add images_optional argument in save_dataset_for_mAP()common: base_class: modify to call cv2.namedWindow oncecommon: media: modify to create colors oncetf: dataset: update docs-- Hyeonki Honghhk7734@gmail.comFri, 04 Sep 2020 20:21:56 +0900tensorflow-yolov4 (1.2.0) unstable; urgency=mediummodel: remove tpu argumenttf: reflect model changestflite: remove tpu_hairtf, tflite: move inference into BaseClassmodel: yolov4: remove unused importpylint: update .pylintrccommon: base_class: modify inference() to be able to use camcommon: base_class: add fps display to screen-- Hyeonki Honghhk7734@gmail.comTue, 11 Aug 2020 21:43:29 +0900tensorflow-yolov4 (1.1.0) unstable; urgency=mediummodel: add kernel_regularizer argumenttf: remove subdivisiontf: dataset: fix issue where coordinates become 0 due to repeated divisiontf: dataset: modify to shuffle when augmentationtf: train: modify order of declarationtf: train: give xiou_loss to more weighttf: train: use keras.losses.BinaryCrossentropy to avoid nan problemtf: train: add verbose argumenttf: dataset: change converted_coco formattf: 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 Honghhk7734@gmail.comMon, 10 Aug 2020 19:09:15 +0900tensorflow-yolov4 (1.0.0) unstable; urgency=mediumtf: dataset: addlabel smootingargumenttf: add label_smooting argument to load_dataset()tf: train: set truth_conf threshold to 0.5 because of label smoothing-- Hyeonki Honghhk7734@gmail.comWed, 05 Aug 2020 13:05:02 +0900tensorflow-yolov4 (0.24.0) unstable; urgency=mediumtf: set default num of sample for mAP to 1000tf: fix error handling when image is empty-- Hyeonki Honghhk7734@gmail.comTue, 04 Aug 2020 12:40:25 +0900tensorflow-yolov4 (0.23.0) unstable; urgency=mediumtf: dataset: add error handling when bboxes are emptycommon: media: replace space of class name to underbartf: implement save_dataset_for_mAP()tf: dataset: add error handling when image is empty-- Hyeonki Honghhk7734@gmail.comMon, 03 Aug 2020 20:49:51 +0900tensorflow-yolov4 (0.22.0) unstable; urgency=mediumtf: add TFLITE_BUILTINS, SELECT_TF_OPS to default supported_opstf: dataset: modify to check if image exists when creating a datasettf: dataset: remove preprocess_datasettf: dataset: add cut_outtf: dataset: add _next_random_augmentation_data()tf: dataset: add mix_uptf: dataset: implement mosaic-- Hyeonki Honghhk7734@gmail.comSun, 02 Aug 2020 17:22:43 +0900tensorflow-yolov4 (0.21.0) unstable; urgency=mediumtf: train: set epsilon used for division to 1e-8tf: train: add giou and iou to iou_typetf: train: fix loss function of bbox_probabilities-- Hyeonki Honghhk7734@gmail.comThu, 30 Jul 2020 05:18:12 +0900tensorflow-yolov4 (0.20.0) unstable; urgency=mediumtf: train: modify epsilon to 1e-9tf: train: remove weight for conf_noobj_losstf: add arguments to fit()tf: dataset: fix problem of not finding imagestf: add SaveWeightsCallback-- Hyeonki Honghhk7734@gmail.comWed, 29 Jul 2020 05:06:25 +0900tensorflow-yolov4 (0.19.0) unstable; urgency=mediumtf: weights: modify 'set' to 'load'tf: weights: implement *_save_weightstf: add save_weights()-- Hyeonki Honghhk7734@gmail.comFri, 24 Jul 2020 06:22:14 +0900tensorflow-yolov4 (0.18.0) unstable; urgency=mediumyolov4: clarify batch numbertf: remove by_name in load_weightstf: dataset: simplify codetf: dataset: fix problem of making a batch with same image-- Hyeonki Honghhk7734@gmail.comThu, 23 Jul 2020 20:30:23 +0900tensorflow-yolov4 (0.17.0) unstable; urgency=mediumtf: dataset: fix index range for Tinytf: remove expect_partial() in load_weights()tflite: fix issue with the number of outputs by modelmodel: add tpu argument in Tinytflite: add tpu argumentutility: rename to commoncommon: implement BaseClasstflite: add tensorflow.litemodel: head: change dimension from 4D to 3D in Tinytflite: add tpu_haircommon: media: add type cast in resize_imagetf: add num_calibration_steps argument in save_as_tflitecommon: base_class: move strides property from tftf: set by_name to True in load_weightsThanks to @RealHandy-- Hyeonki Honghhk7734@gmail.comThu, 23 Jul 2020 15:43:08 +0900tensorflow-yolov4 (0.16.0) unstable; urgency=mediumtf: add tiny argument toinitand remove from others-- Hyeonki Honghhk7734@gmail.comWed, 15 Jul 2020 13:21:12 +0900tensorflow-yolov4 (0.15.0) unstable; urgency=mediumtf: add quantization and data_set args to save_as_tfliteutility: media: add string length checkmodel: add activation argsmodel: head: remove for loopmodel: backbone: implement CSPDarknet53Tinymodel: neck: implement PANetTinymodel: head: implement YOLOv3HeadTinymodel: yolov4: implement YOLOv4Tinytf: weights: implementtinyfuncstf: reflect YOLOv4Tiny-- Hyeonki Honghhk7734@gmail.comWed, 15 Jul 2020 03:43:03 +0900tensorflow-yolov4 (0.14.0) unstable; urgency=mediumgithub: add python publish actionmodel: neck: use bilinear in UpSampling2Dtest: update scripttflite: refactor YOLOv4utility: predict: fix according to pylint warningpylint: update .pylintrcmodel: head: use tf.constant to avoid broadcastinggithub: add python lint action-- Hyeonki Honghhk7734@gmail.comTue, 14 Jul 2020 02:14:12 +0900tensorflow-yolov4 (0.13.0) unstable; urgency=mediumtf: remove tensorboard callbacktf: modify compile() and fit() to be similar to modelyolov4: rename 'data' to 'test'utility: media: update docs and variable nameutility: predict: remove batch_sizeutility: media: rename funcstf: add utility funcs to YOLOv4 member funcstest: add test script-- Hyeonki Honghhk7734@gmail.comMon, 13 Jul 2020 13:36:32 +0900tensorflow-yolov4 (0.12.0) unstable; urgency=mediumutility: train: refactor bbox_*iou and remove duplicate funcsyolov4: rename parametersyolov4: remove utilstf: add FileNotFoundError in YOLOv4.inference()utility: predict: add dimension for batch sizepylint: update .pylintrctf: add YOLOv4.save_as_tflite()model: clean uputility: weights: move to tf.weightsutility: train: move to tf.trainmodel: neck: implement PANetmdel: head: implement YOLOv3Headmodel: yolov4: Apply neck and head classyolov4: reflect model changestf: dataset: add batch_sizetf: train: implement YOLOv4Lossutility: media: modify rectangle thicknessmodel: common: use softplus instead of ln(1+exp(x))tf: train: use epsilon instead of tf.math.divide_no_nantf: refactor YOLOv4.fit() and .compile()-- Hyeonki Honghhk7734@gmail.comSun, 12 Jul 2020 03:50:50 +0900tensorflow-yolov4 (0.11.0) unstable; urgency=mediumtf: remove utils.draw_bbox in predict()yolov4: rename files and functions and change orderutility: utils: remove get_anchors()utility: media: impelment resize(), draw_bbox()utility: utils: implement DIoU_NMSutility: utils: fix dimensional calculation problemsutility: refactor datasettf: remove trainutility: train: implement make_compiled_loss()utility: media: fix bug that could not resize some imagesutility: train: remove problem of division by zero-- Hyeonki Honghhk7734@gmail.comMon, 29 Jun 2020 21:05:39 +0900tensorflow-yolov4 (0.10.0) unstable; urgency=mediumcore: 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 Honghhk7734@gmail.comThu, 25 Jun 2020 00:48:44 +0900tensorflow-yolov4 (0.9.0) unstable; urgency=mediumtf: modify hyperparameters as propertiestf: add weights_type argument to load_weights()core: utils: implement _np_fromfile()core: utils: implement a way to partially load weightstf: train: move learning_rate_* to argumentcore: move YOLOConv2D to commoncore: common: remove bn argument of YOLOConv2Dcore: utils: refactor yolo_conv2d_set_weightscore: yolov4: refactor YOLOv4core: utils: refactor load_weightstf: refactor make_modelyolov4: change YoloV4 to YOLOv4-- Hyeonki Honghhk7734@gmail.comWed, 24 Jun 2020 02:58:27 +0900tensorflow-yolov4 (0.8.0) unstable; urgency=mediumcore: use tf.keras.layers.UpSampling2Dcore: refactor Mishcore: common: remove residual_blockcore: remove sequential in _ResBlockcore: backbone: Set LeakyReLU's alpha to 0.1-- Hyeonki Honghhk7734@gmail.comTue, 23 Jun 2020 02:21:01 +0900tensorflow-yolov4 (0.7.0) unstable; urgency=mediumtf: fix to proceed to the next step even if an error occurstf: modify video_interval_ms to cv_waitKey_delaycore: backbone: refactor CSPDarknet53core: utils: implement csp_darknet53_set_weights()-- Hyeonki Honghhk7734@gmail.comMon, 22 Jun 2020 23:01:32 +0900tensorflow-yolov4 (0.6.0) unstable; urgency=mediumtf: set first_step_epochs according to the weight usagetf: fix syntax error-- Hyeonki Honghhk7734@gmail.comFri, 19 Jun 2020 17:09:57 +0900tensorflow-yolov4 (0.5.0) unstable; urgency=mediumcore: dataset: add yolo typetf: add dataset_type parameter to YoloV4.traintf: add epochs parameter to traintf: add save_interval parameter to train-- Hyeonki Honghhk7734@gmail.comFri, 19 Jun 2020 14:30:50 +0900tensorflow-yolov4 (0.4.0) unstable; urgency=mediumcore: dataset: remove cfg moduletf: implement YoloV4.train-- Hyeonki Honghhk7734@gmail.comThu, 11 Jun 2020 17:45:44 +0900tensorflow-yolov4 (0.3.0) unstable; urgency=mediumcore: utils: use numpy instead of tensorflowpypi: remove install_requires and change to manual installationyolov4: add video_interval_ms-- Hyeonki Honghhk7734@gmail.comMon, 08 Jun 2020 23:59:41 +0900tensorflow-yolov4 (0.2.0) unstable; urgency=mediumpylint: create .pylintrc and run blackcore: remove config.pyyolov4: change tfyolov4 to yolov4yolov4: remove detect**.py and implement YoloV4.inference-- Hyeonki Honghhk7734@gmail.comMon, 08 Jun 2020 02:20:49 +0900tensorflow-yolov4 (0.1.0) unstable; urgency=mediumyolov4: fork from 'hunglc007/tensorflow-yolov4-tflite'-- Hyeonki Honghhk7734@gmail.comFri, 05 Jun 2020 20:17:45 +0900