Object tracking implemented with YOLOv4, DeepSort, and TensorFlow.

Overview

yolov4-deepsort

license Open In Colab

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.

Demo of Object Tracker on Persons

Demo of Object Tracker on Cars

Getting Started

To get started, install the proper dependencies either via Anaconda or Pip. I recommend Anaconda route for people using a GPU as it configures CUDA toolkit version for you.

Conda (Recommended)

# Tensorflow CPU
conda env create -f conda-cpu.yml
conda activate yolov4-cpu

# Tensorflow GPU
conda env create -f conda-gpu.yml
conda activate yolov4-gpu

Pip

(TensorFlow 2 packages require a pip version >19.0.)

# TensorFlow CPU
pip install -r requirements.txt

# TensorFlow GPU
pip install -r requirements-gpu.txt

Nvidia Driver (For GPU, if you are not using Conda Environment and haven't set up CUDA yet)

Make sure to use CUDA Toolkit version 10.1 as it is the proper version for the TensorFlow version used in this repository. https://developer.nvidia.com/cuda-10.1-download-archive-update2

Downloading Official YOLOv4 Pre-trained Weights

Our object tracker uses YOLOv4 to make the object detections, which deep sort then uses to track. There exists an official pre-trained YOLOv4 object detector model that is able to detect 80 classes. For easy demo purposes we will use the pre-trained weights for our tracker. Download pre-trained yolov4.weights file: https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT

Copy and paste yolov4.weights from your downloads folder into the 'data' folder of this repository.

If you want to use yolov4-tiny.weights, a smaller model that is faster at running detections but less accurate, download file here: https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights

Running the Tracker with YOLOv4

To implement the object tracking using YOLOv4, first we convert the .weights into the corresponding TensorFlow model which will be saved to a checkpoints folder. Then all we need to do is run the object_tracker.py script to run our object tracker with YOLOv4, DeepSort and TensorFlow.

# Convert darknet weights to tensorflow model
python save_model.py --model yolov4 

# Run yolov4 deep sort object tracker on video
python object_tracker.py --video ./data/video/test.mp4 --output ./outputs/demo.avi --model yolov4

# Run yolov4 deep sort object tracker on webcam (set video flag to 0)
python object_tracker.py --video 0 --output ./outputs/webcam.avi --model yolov4

The output flag allows you to save the resulting video of the object tracker running so that you can view it again later. Video will be saved to the path that you set. (outputs folder is where it will be if you run the above command!)

If you want to run yolov3 set the model flag to --model yolov3, upload the yolov3.weights to the 'data' folder and adjust the weights flag in above commands. (see all the available command line flags and descriptions of them in a below section)

Running the Tracker with YOLOv4-Tiny

The following commands will allow you to run yolov4-tiny model. Yolov4-tiny allows you to obtain a higher speed (FPS) for the tracker at a slight cost to accuracy. Make sure that you have downloaded the tiny weights file and added it to the 'data' folder in order for commands to work!

# save yolov4-tiny model
python save_model.py --weights ./data/yolov4-tiny.weights --output ./checkpoints/yolov4-tiny-416 --model yolov4 --tiny

# Run yolov4-tiny object tracker
python object_tracker.py --weights ./checkpoints/yolov4-tiny-416 --model yolov4 --video ./data/video/test.mp4 --output ./outputs/tiny.avi --tiny

Resulting Video

As mentioned above, the resulting video will save to wherever you set the --output command line flag path to. I always set it to save to the 'outputs' folder. You can also change the type of video saved by adjusting the --output_format flag, by default it is set to AVI codec which is XVID.

Example video showing tracking of all coco dataset classes:

Filter Classes that are Tracked by Object Tracker

By default the code is setup to track all 80 or so classes from the coco dataset, which is what the pre-trained YOLOv4 model is trained on. However, you can easily adjust a few lines of code in order to track any 1 or combination of the 80 classes. It is super easy to filter only the person class or only the car class which are most common.

To filter a custom selection of classes all you need to do is comment out line 159 and uncomment out line 162 of object_tracker.py Within the list allowed_classes just add whichever classes you want the tracker to track. The classes can be any of the 80 that the model is trained on, see which classes you can track in the file data/classes/coco.names

This example would allow the classes for person and car to be tracked.

Demo of Object Tracker set to only track the class 'person'

Demo of Object Tracker set to only track the class 'car'

Command Line Args Reference

save_model.py:
  --weights: path to weights file
    (default: './data/yolov4.weights')
  --output: path to output
    (default: './checkpoints/yolov4-416')
  --[no]tiny: yolov4 or yolov4-tiny
    (default: 'False')
  --input_size: define input size of export model
    (default: 416)
  --framework: what framework to use (tf, trt, tflite)
    (default: tf)
  --model: yolov3 or yolov4
    (default: yolov4)
    
 object_tracker.py:
  --video: path to input video (use 0 for webcam)
    (default: './data/video/test.mp4')
  --output: path to output video (remember to set right codec for given format. e.g. XVID for .avi)
    (default: None)
  --output_format: codec used in VideoWriter when saving video to file
    (default: 'XVID)
  --[no]tiny: yolov4 or yolov4-tiny
    (default: 'false')
  --weights: path to weights file
    (default: './checkpoints/yolov4-416')
  --framework: what framework to use (tf, trt, tflite)
    (default: tf)
  --model: yolov3 or yolov4
    (default: yolov4)
  --size: resize images to
    (default: 416)
  --iou: iou threshold
    (default: 0.45)
  --score: confidence threshold
    (default: 0.50)
  --dont_show: dont show video output
    (default: False)
  --info: print detailed info about tracked objects
    (default: False)

References

Huge shoutout goes to hunglc007 and nwojke for creating the backbones of this repository:

Comments
  • Compiled the loaded model, but the compiled metrics have yet to be built

    Compiled the loaded model, but the compiled metrics have yet to be built

    WARNING:tensorflow:Compiled the loaded model, but the compiled metrics have yet to be built. model.compile_metrics will be empty until you train or evaluate the model. W0621 18:01:15.284377 140678384588672 saving_utils.py:319]

    opened by tuanndhust 8
  • cannot connect to X server

    cannot connect to X server

    Hello, when I run "!python object_tracker.py --video ./data/video/cars.mp4 --output ./outputs/tracker.avi --model yolov4" on colab, it prompts "cannot connect to X server", what is the reason and how to solve it? Looking forward to your reply, thank you! image`

    opened by 6Lackiu 5
  • Can this code run on jetson nano-2gb

    Can this code run on jetson nano-2gb

    Well, its a straight up question..It's been days I've been trying to make this code work on nvivdia jetson-nano 2gb and due to some tensorflow issue..its not working..

    So it would be helpful if anyone can straight up tell if that's the case

    opened by xanthan011 5
  • How to get bounding box coordinates and person's ID?

    How to get bounding box coordinates and person's ID?

    Hi, I'm new to Deep sort. It's interesting. How can I get the bounding box coordinates of all objects and person's ID? I would need to cut photo to that object. So for instance, for each person, it would be 4 values for the rectangle: (top left x,top left y,width,height) and person-ID.

    opened by kazuki-can 3
  • yolov4-tiny not working in test.mp4

    yolov4-tiny not working in test.mp4

    I following the readme.md step to run all the file and no any error. when I using yolov4 model and run object_tracker.py it is work. but yolov4-tiny model got nothing bbox.

    opened by alanotmt 2
  • Video has ended or failed, try a different video format!

    Video has ended or failed, try a different video format!

    Each time I run the script, it shows a message at the end of the run cycle "Video has ended or failed, try a different video format!"

    The output file has no object recognition boxes on it, it's just a clone of the input video.

    Has anyone else encountered the issue? Any clues how to go about solving this problem?

    I'm running it on a venv as specified in the readme

    opened by realtechspecs 2
  • Resize image

    Resize image

    Hello, I have a problem with resizing images. Default size is 416 but when I try to set different size it gives me an error: image

    YOLO accept ssizes that are N * 32, am I correct? So for example size 606 should work.

    opened by Arhanel 2
  • Unable to run YOLOv4 or YOLOv4-tiny with batch size > 1

    Unable to run YOLOv4 or YOLOv4-tiny with batch size > 1

    Hey,

    I have been successfully using the YOLOv4 and YOLOv4-tiny for inference with batch size 1 with an input tensor shape of [1, 416, 416, 3], however, if I try to run the model with batch size > 1, I always encounter the following error:

    tensorflow.python.framework.errors_impl.InvalidArgumentError:  Input to reshape is a tensor with 4 values, but the requested shape requires a multiple of 8
             [[node functional_1/tf_op_layer_Reshape_10/Reshape_10 (defined at object_tracker.py:136) ]] [Op:__inference_predict_function_17447]
    

    This was received using batch size of 2 resulting in input tensor shape of [2, 416, 416, 3], can anyone point me in a right direction with respect to what I am doing wrong or is the model even supposed to work when attempting to run inference with batch size above one?

    Here is some of the code I am using for model loading and inference:

    model = tf.saved_model.load(self.model_weights_path, tags=[tag_constants.SERVING])
    inference_function = model.signatures["serving_default"]
    tf_batch_data = tf.constant(np.array(image_batch_data))
    print(f"Image batch data: {tf.shape(tf_batch_data)}")
    tf_pred_bbox = inference_function(tf_batch_data)
    

    Is there possibly something that I need to change e.g. under core/config.py to make the model work with different batch sizes? I am confused because the input layer according to keras model summary seems to have the batch dimension defined as None which would indicate that the model supports variable batch sizes:

    >>> model.summary()
    Model: "functional_1"
    __________________________________________________________________________________________________
    Layer (type)                    Output Shape         Param #     Connected to                     
    ==================================================================================================
    input_1 (InputLayer)            [(None, 416, 416, 3) 0                                            
    __________________________________________________________________________________________________
    zero_padding2d (ZeroPadding2D)  (None, 417, 417, 3)  0           input_1[0][0]                    
    __________________________________________________________________________________________________
    conv2d (Conv2D)                 (None, 208, 208, 32) 864         zero_padding2d[0][0]             
    __________________________________________________________________________________________________
    batch_normalization (BatchNorma (None, 208, 208, 32) 128         conv2d[0][0]                     
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu (TensorFl (None, 208, 208, 32) 0           batch_normalization[0][0]        
    __________________________________________________________________________________________________
    zero_padding2d_1 (ZeroPadding2D (None, 209, 209, 32) 0           tf_op_layer_LeakyRelu[0][0]      
    __________________________________________________________________________________________________
    conv2d_1 (Conv2D)               (None, 104, 104, 64) 18432       zero_padding2d_1[0][0]           
    __________________________________________________________________________________________________
    batch_normalization_1 (BatchNor (None, 104, 104, 64) 256         conv2d_1[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_1 (Tensor (None, 104, 104, 64) 0           batch_normalization_1[0][0]      
    __________________________________________________________________________________________________
    conv2d_2 (Conv2D)               (None, 104, 104, 64) 36864       tf_op_layer_LeakyRelu_1[0][0]    
    __________________________________________________________________________________________________
    batch_normalization_2 (BatchNor (None, 104, 104, 64) 256         conv2d_2[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_2 (Tensor (None, 104, 104, 64) 0           batch_normalization_2[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_split (TensorFlowOp [(None, 104, 104, 32 0           tf_op_layer_LeakyRelu_2[0][0]    
    __________________________________________________________________________________________________
    conv2d_3 (Conv2D)               (None, 104, 104, 32) 9216        tf_op_layer_split[0][1]          
    __________________________________________________________________________________________________
    batch_normalization_3 (BatchNor (None, 104, 104, 32) 128         conv2d_3[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_3 (Tensor (None, 104, 104, 32) 0           batch_normalization_3[0][0]      
    __________________________________________________________________________________________________
    conv2d_4 (Conv2D)               (None, 104, 104, 32) 9216        tf_op_layer_LeakyRelu_3[0][0]    
    __________________________________________________________________________________________________
    batch_normalization_4 (BatchNor (None, 104, 104, 32) 128         conv2d_4[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_4 (Tensor (None, 104, 104, 32) 0           batch_normalization_4[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_concat (TensorFlowO (None, 104, 104, 64) 0           tf_op_layer_LeakyRelu_4[0][0]    
                                                                     tf_op_layer_LeakyRelu_3[0][0]    
    __________________________________________________________________________________________________
    conv2d_5 (Conv2D)               (None, 104, 104, 64) 4096        tf_op_layer_concat[0][0]         
    __________________________________________________________________________________________________
    batch_normalization_5 (BatchNor (None, 104, 104, 64) 256         conv2d_5[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_5 (Tensor (None, 104, 104, 64) 0           batch_normalization_5[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_concat_1 (TensorFlo (None, 104, 104, 128 0           tf_op_layer_LeakyRelu_2[0][0]    
                                                                     tf_op_layer_LeakyRelu_5[0][0]    
    __________________________________________________________________________________________________
    max_pooling2d (MaxPooling2D)    (None, 52, 52, 128)  0           tf_op_layer_concat_1[0][0]       
    __________________________________________________________________________________________________
    conv2d_6 (Conv2D)               (None, 52, 52, 128)  147456      max_pooling2d[0][0]              
    __________________________________________________________________________________________________
    batch_normalization_6 (BatchNor (None, 52, 52, 128)  512         conv2d_6[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_6 (Tensor (None, 52, 52, 128)  0           batch_normalization_6[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_split_1 (TensorFlow [(None, 52, 52, 64), 0           tf_op_layer_LeakyRelu_6[0][0]    
    __________________________________________________________________________________________________
    conv2d_7 (Conv2D)               (None, 52, 52, 64)   36864       tf_op_layer_split_1[0][1]        
    __________________________________________________________________________________________________
    batch_normalization_7 (BatchNor (None, 52, 52, 64)   256         conv2d_7[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_7 (Tensor (None, 52, 52, 64)   0           batch_normalization_7[0][0]      
    __________________________________________________________________________________________________
    conv2d_8 (Conv2D)               (None, 52, 52, 64)   36864       tf_op_layer_LeakyRelu_7[0][0]    
    __________________________________________________________________________________________________
    batch_normalization_8 (BatchNor (None, 52, 52, 64)   256         conv2d_8[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_8 (Tensor (None, 52, 52, 64)   0           batch_normalization_8[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_concat_2 (TensorFlo (None, 52, 52, 128)  0           tf_op_layer_LeakyRelu_8[0][0]    
                                                                     tf_op_layer_LeakyRelu_7[0][0]    
    __________________________________________________________________________________________________
    conv2d_9 (Conv2D)               (None, 52, 52, 128)  16384       tf_op_layer_concat_2[0][0]       
    __________________________________________________________________________________________________
    batch_normalization_9 (BatchNor (None, 52, 52, 128)  512         conv2d_9[0][0]                   
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_9 (Tensor (None, 52, 52, 128)  0           batch_normalization_9[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_concat_3 (TensorFlo (None, 52, 52, 256)  0           tf_op_layer_LeakyRelu_6[0][0]    
                                                                     tf_op_layer_LeakyRelu_9[0][0]    
    __________________________________________________________________________________________________
    max_pooling2d_1 (MaxPooling2D)  (None, 26, 26, 256)  0           tf_op_layer_concat_3[0][0]       
    __________________________________________________________________________________________________
    conv2d_10 (Conv2D)              (None, 26, 26, 256)  589824      max_pooling2d_1[0][0]            
    __________________________________________________________________________________________________
    batch_normalization_10 (BatchNo (None, 26, 26, 256)  1024        conv2d_10[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_10 (Tenso (None, 26, 26, 256)  0           batch_normalization_10[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_split_2 (TensorFlow [(None, 26, 26, 128) 0           tf_op_layer_LeakyRelu_10[0][0]   
    __________________________________________________________________________________________________
    conv2d_11 (Conv2D)              (None, 26, 26, 128)  147456      tf_op_layer_split_2[0][1]        
    __________________________________________________________________________________________________
    batch_normalization_11 (BatchNo (None, 26, 26, 128)  512         conv2d_11[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_11 (Tenso (None, 26, 26, 128)  0           batch_normalization_11[0][0]     
    __________________________________________________________________________________________________
    conv2d_12 (Conv2D)              (None, 26, 26, 128)  147456      tf_op_layer_LeakyRelu_11[0][0]   
    __________________________________________________________________________________________________
    batch_normalization_12 (BatchNo (None, 26, 26, 128)  512         conv2d_12[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_12 (Tenso (None, 26, 26, 128)  0           batch_normalization_12[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_concat_4 (TensorFlo (None, 26, 26, 256)  0           tf_op_layer_LeakyRelu_12[0][0]   
                                                                     tf_op_layer_LeakyRelu_11[0][0]   
    __________________________________________________________________________________________________
    conv2d_13 (Conv2D)              (None, 26, 26, 256)  65536       tf_op_layer_concat_4[0][0]       
    __________________________________________________________________________________________________
    batch_normalization_13 (BatchNo (None, 26, 26, 256)  1024        conv2d_13[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_13 (Tenso (None, 26, 26, 256)  0           batch_normalization_13[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_concat_5 (TensorFlo (None, 26, 26, 512)  0           tf_op_layer_LeakyRelu_10[0][0]   
                                                                     tf_op_layer_LeakyRelu_13[0][0]   
    __________________________________________________________________________________________________
    max_pooling2d_2 (MaxPooling2D)  (None, 13, 13, 512)  0           tf_op_layer_concat_5[0][0]       
    __________________________________________________________________________________________________
    conv2d_14 (Conv2D)              (None, 13, 13, 512)  2359296     max_pooling2d_2[0][0]            
    __________________________________________________________________________________________________
    batch_normalization_14 (BatchNo (None, 13, 13, 512)  2048        conv2d_14[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_14 (Tenso (None, 13, 13, 512)  0           batch_normalization_14[0][0]     
    __________________________________________________________________________________________________
    conv2d_15 (Conv2D)              (None, 13, 13, 256)  131072      tf_op_layer_LeakyRelu_14[0][0]   
    __________________________________________________________________________________________________
    batch_normalization_15 (BatchNo (None, 13, 13, 256)  1024        conv2d_15[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_15 (Tenso (None, 13, 13, 256)  0           batch_normalization_15[0][0]     
    __________________________________________________________________________________________________
    conv2d_18 (Conv2D)              (None, 13, 13, 128)  32768       tf_op_layer_LeakyRelu_15[0][0]   
    __________________________________________________________________________________________________
    batch_normalization_17 (BatchNo (None, 13, 13, 128)  512         conv2d_18[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_17 (Tenso (None, 13, 13, 128)  0           batch_normalization_17[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_ResizeBilinear (Ten (None, 26, 26, 128)  0           tf_op_layer_LeakyRelu_17[0][0]   
    __________________________________________________________________________________________________
    tf_op_layer_concat_6 (TensorFlo (None, 26, 26, 384)  0           tf_op_layer_ResizeBilinear[0][0] 
                                                                     tf_op_layer_LeakyRelu_13[0][0]   
    __________________________________________________________________________________________________
    conv2d_19 (Conv2D)              (None, 26, 26, 256)  884736      tf_op_layer_concat_6[0][0]       
    __________________________________________________________________________________________________
    conv2d_16 (Conv2D)              (None, 13, 13, 512)  1179648     tf_op_layer_LeakyRelu_15[0][0]   
    __________________________________________________________________________________________________
    batch_normalization_18 (BatchNo (None, 26, 26, 256)  1024        conv2d_19[0][0]                  
    __________________________________________________________________________________________________
    batch_normalization_16 (BatchNo (None, 13, 13, 512)  2048        conv2d_16[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_18 (Tenso (None, 26, 26, 256)  0           batch_normalization_18[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_LeakyRelu_16 (Tenso (None, 13, 13, 512)  0           batch_normalization_16[0][0]     
    __________________________________________________________________________________________________
    conv2d_20 (Conv2D)              (None, 26, 26, 255)  65535       tf_op_layer_LeakyRelu_18[0][0]   
    __________________________________________________________________________________________________
    conv2d_17 (Conv2D)              (None, 13, 13, 255)  130815      tf_op_layer_LeakyRelu_16[0][0]   
    __________________________________________________________________________________________________
    tf_op_layer_Shape (TensorFlowOp (4,)                 0           conv2d_20[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_Shape_1 (TensorFlow (4,)                 0           conv2d_17[0][0]                  
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice (Tens ()                   0           tf_op_layer_Shape[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_1 (Te ()                   0           tf_op_layer_Shape_1[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Reshape/shape (Tens (5,)                 0           tf_op_layer_strided_slice[0][0]  
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_3/shape (Te (5,)                 0           tf_op_layer_strided_slice_1[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Reshape (TensorFlow (None, 26, 26, 3, 85 0           conv2d_20[0][0]                  
                                                                     tf_op_layer_Reshape/shape[0][0]  
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_3 (TensorFl (None, 13, 13, 3, 85 0           conv2d_17[0][0]                  
                                                                     tf_op_layer_Reshape_3/shape[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_split_3 (TensorFlow [(None, 26, 26, 3, 2 0           tf_op_layer_Reshape[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_split_4 (TensorFlow [(None, 13, 13, 3, 2 0           tf_op_layer_Reshape_3[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Sigmoid (TensorFlow (None, 26, 26, 3, 2) 0           tf_op_layer_split_3[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Tile/multiples (Ten (5,)                 0           tf_op_layer_strided_slice[0][0]  
    __________________________________________________________________________________________________
    tf_op_layer_Sigmoid_3 (TensorFl (None, 13, 13, 3, 2) 0           tf_op_layer_split_4[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Tile_1/multiples (T (5,)                 0           tf_op_layer_strided_slice_1[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Mul (TensorFlowOpLa (None, 26, 26, 3, 2) 0           tf_op_layer_Sigmoid[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Tile (TensorFlowOpL (None, 26, 26, 3, 2) 0           tf_op_layer_Tile/multiples[0][0] 
    __________________________________________________________________________________________________
    tf_op_layer_Mul_4 (TensorFlowOp (None, 13, 13, 3, 2) 0           tf_op_layer_Sigmoid_3[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Tile_1 (TensorFlowO (None, 13, 13, 3, 2) 0           tf_op_layer_Tile_1/multiples[0][0
    __________________________________________________________________________________________________
    tf_op_layer_Sub (TensorFlowOpLa (None, 26, 26, 3, 2) 0           tf_op_layer_Mul[0][0]            
    __________________________________________________________________________________________________
    tf_op_layer_Cast (TensorFlowOpL (None, 26, 26, 3, 2) 0           tf_op_layer_Tile[0][0]           
    __________________________________________________________________________________________________
    tf_op_layer_Sub_1 (TensorFlowOp (None, 13, 13, 3, 2) 0           tf_op_layer_Mul_4[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_Cast_1 (TensorFlowO (None, 13, 13, 3, 2) 0           tf_op_layer_Tile_1[0][0]         
    __________________________________________________________________________________________________
    tf_op_layer_AddV2 (TensorFlowOp (None, 26, 26, 3, 2) 0           tf_op_layer_Sub[0][0]            
                                                                     tf_op_layer_Cast[0][0]           
    __________________________________________________________________________________________________
    tf_op_layer_Exp (TensorFlowOpLa (None, 26, 26, 3, 2) 0           tf_op_layer_split_3[0][1]        
    __________________________________________________________________________________________________
    tf_op_layer_AddV2_1 (TensorFlow (None, 13, 13, 3, 2) 0           tf_op_layer_Sub_1[0][0]          
                                                                     tf_op_layer_Cast_1[0][0]         
    __________________________________________________________________________________________________
    tf_op_layer_Exp_1 (TensorFlowOp (None, 13, 13, 3, 2) 0           tf_op_layer_split_4[0][1]        
    __________________________________________________________________________________________________
    tf_op_layer_Mul_1 (TensorFlowOp (None, 26, 26, 3, 2) 0           tf_op_layer_AddV2[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_Mul_2 (TensorFlowOp (None, 26, 26, 3, 2) 0           tf_op_layer_Exp[0][0]            
    __________________________________________________________________________________________________
    tf_op_layer_Mul_5 (TensorFlowOp (None, 13, 13, 3, 2) 0           tf_op_layer_AddV2_1[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Mul_6 (TensorFlowOp (None, 13, 13, 3, 2) 0           tf_op_layer_Exp_1[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_concat_7 (TensorFlo (None, 26, 26, 3, 4) 0           tf_op_layer_Mul_1[0][0]          
                                                                     tf_op_layer_Mul_2[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_2/shape (Te (3,)                 0           tf_op_layer_strided_slice[0][0]  
    __________________________________________________________________________________________________
    tf_op_layer_concat_8 (TensorFlo (None, 13, 13, 3, 4) 0           tf_op_layer_Mul_5[0][0]          
                                                                     tf_op_layer_Mul_6[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_5/shape (Te (3,)                 0           tf_op_layer_strided_slice_1[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Sigmoid_1 (TensorFl (None, 26, 26, 3, 1) 0           tf_op_layer_split_3[0][2]        
    __________________________________________________________________________________________________
    tf_op_layer_Sigmoid_2 (TensorFl (None, 26, 26, 3, 80 0           tf_op_layer_split_3[0][3]        
    __________________________________________________________________________________________________
    tf_op_layer_Sigmoid_4 (TensorFl (None, 13, 13, 3, 1) 0           tf_op_layer_split_4[0][2]        
    __________________________________________________________________________________________________
    tf_op_layer_Sigmoid_5 (TensorFl (None, 13, 13, 3, 80 0           tf_op_layer_split_4[0][3]        
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_2 (TensorFl (None, None, 4)      0           tf_op_layer_concat_7[0][0]       
                                                                     tf_op_layer_Reshape_2/shape[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_5 (TensorFl (None, None, 4)      0           tf_op_layer_concat_8[0][0]       
                                                                     tf_op_layer_Reshape_5/shape[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Mul_3 (TensorFlowOp (None, 26, 26, 3, 80 0           tf_op_layer_Sigmoid_1[0][0]      
                                                                     tf_op_layer_Sigmoid_2[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_1/shape (Te (3,)                 0           tf_op_layer_strided_slice[0][0]  
    __________________________________________________________________________________________________
    tf_op_layer_Mul_7 (TensorFlowOp (None, 13, 13, 3, 80 0           tf_op_layer_Sigmoid_4[0][0]      
                                                                     tf_op_layer_Sigmoid_5[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_4/shape (Te (3,)                 0           tf_op_layer_strided_slice_1[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_concat_9 (TensorFlo (None, None, 4)      0           tf_op_layer_Reshape_2[0][0]      
                                                                     tf_op_layer_Reshape_5[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_1 (TensorFl (None, None, 80)     0           tf_op_layer_Mul_3[0][0]          
                                                                     tf_op_layer_Reshape_1/shape[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_4 (TensorFl (None, None, 80)     0           tf_op_layer_Mul_7[0][0]          
                                                                     tf_op_layer_Reshape_4/shape[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Shape_2 (TensorFlow (3,)                 0           tf_op_layer_concat_9[0][0]       
    __________________________________________________________________________________________________
    tf_op_layer_concat_10 (TensorFl (None, None, 80)     0           tf_op_layer_Reshape_1[0][0]      
                                                                     tf_op_layer_Reshape_4[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_2 (Te (2,)                 0           tf_op_layer_Shape_2[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Max (TensorFlowOpLa (None, None)         0           tf_op_layer_concat_10[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Shape_3 (TensorFlow (3,)                 0           tf_op_layer_concat_9[0][0]       
    __________________________________________________________________________________________________
    tf_op_layer_Prod (TensorFlowOpL ()                   0           tf_op_layer_strided_slice_2[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Shape_4 (TensorFlow (3,)                 0           tf_op_layer_concat_9[0][0]       
    __________________________________________________________________________________________________
    tf_op_layer_GreaterEqual (Tenso (None, None)         0           tf_op_layer_Max[0][0]            
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_3 (Te (0,)                 0           tf_op_layer_Shape_3[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_concat_11/values_1  (1,)                 0           tf_op_layer_Prod[0][0]           
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_4 (Te (1,)                 0           tf_op_layer_Shape_4[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_7 (TensorFl (None,)              0           tf_op_layer_GreaterEqual[0][0]   
    __________________________________________________________________________________________________
    tf_op_layer_concat_11 (TensorFl (2,)                 0           tf_op_layer_strided_slice_3[0][0]
                                                                     tf_op_layer_concat_11/values_1[0]
                                                                     tf_op_layer_strided_slice_4[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Where (TensorFlowOp (None, 1)            0           tf_op_layer_Reshape_7[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_6 (TensorFl (None, 4)            0           tf_op_layer_concat_9[0][0]       
                                                                     tf_op_layer_concat_11[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Squeeze (TensorFlow (None,)              0           tf_op_layer_Where[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_GatherV2 (TensorFlo (None, 4)            0           tf_op_layer_Reshape_6[0][0]      
                                                                     tf_op_layer_Squeeze[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Shape_8 (TensorFlow (3,)                 0           tf_op_layer_concat_10[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Shape_9 (TensorFlow (2,)                 0           tf_op_layer_GatherV2[0][0]       
    __________________________________________________________________________________________________
    tf_op_layer_Shape_5 (TensorFlow (3,)                 0           tf_op_layer_concat_10[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_8 (Te ()                   0           tf_op_layer_Shape_8[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_9 (Te ()                   0           tf_op_layer_Shape_9[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_5 (Te (2,)                 0           tf_op_layer_Shape_5[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_10/shape (T (3,)                 0           tf_op_layer_strided_slice_8[0][0]
                                                                     tf_op_layer_strided_slice_9[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Shape_6 (TensorFlow (3,)                 0           tf_op_layer_concat_10[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Prod_1 (TensorFlowO ()                   0           tf_op_layer_strided_slice_5[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Shape_7 (TensorFlow (3,)                 0           tf_op_layer_concat_10[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_10 (TensorF (None, None, None)   0           tf_op_layer_GatherV2[0][0]       
                                                                     tf_op_layer_Reshape_10/shape[0][0
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_6 (Te (0,)                 0           tf_op_layer_Shape_6[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_concat_12/values_1  (1,)                 0           tf_op_layer_Prod_1[0][0]         
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_7 (Te (1,)                 0           tf_op_layer_Shape_7[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_9 (TensorFl (None,)              0           tf_op_layer_GreaterEqual[0][0]   
    __________________________________________________________________________________________________
    tf_op_layer_split_5 (TensorFlow [(None, None, 2), (N 0           tf_op_layer_Reshape_10[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_concat_12 (TensorFl (2,)                 0           tf_op_layer_strided_slice_6[0][0]
                                                                     tf_op_layer_concat_12/values_1[0]
                                                                     tf_op_layer_strided_slice_7[0][0]
    __________________________________________________________________________________________________
    tf_op_layer_Where_1 (TensorFlow (None, 1)            0           tf_op_layer_Reshape_9[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_13 (T (None, None, 2)      0           tf_op_layer_split_5[0][1]        
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_8 (TensorFl (None, 80)           0           tf_op_layer_concat_10[0][0]      
                                                                     tf_op_layer_concat_12[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Squeeze_1 (TensorFl (None,)              0           tf_op_layer_Where_1[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_12 (T (None, None, 2)      0           tf_op_layer_split_5[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_RealDiv (TensorFlow (None, None, 2)      0           tf_op_layer_strided_slice_13[0][0
    __________________________________________________________________________________________________
    tf_op_layer_RealDiv_2 (TensorFl (None, None, 2)      0           tf_op_layer_strided_slice_13[0][0
    __________________________________________________________________________________________________
    tf_op_layer_GatherV2_1 (TensorF (None, 80)           0           tf_op_layer_Reshape_8[0][0]      
                                                                     tf_op_layer_Squeeze_1[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Sub_2 (TensorFlowOp (None, None, 2)      0           tf_op_layer_strided_slice_12[0][0
                                                                     tf_op_layer_RealDiv[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_AddV2_2 (TensorFlow (None, None, 2)      0           tf_op_layer_strided_slice_12[0][0
                                                                     tf_op_layer_RealDiv_2[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Shape_10 (TensorFlo (3,)                 0           tf_op_layer_concat_10[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Shape_11 (TensorFlo (2,)                 0           tf_op_layer_GatherV2_1[0][0]     
    __________________________________________________________________________________________________
    tf_op_layer_RealDiv_1 (TensorFl (None, None, 2)      0           tf_op_layer_Sub_2[0][0]          
    __________________________________________________________________________________________________
    tf_op_layer_RealDiv_3 (TensorFl (None, None, 2)      0           tf_op_layer_AddV2_2[0][0]        
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_10 (T ()                   0           tf_op_layer_Shape_10[0][0]       
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_11 (T ()                   0           tf_op_layer_Shape_11[0][0]       
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_14 (T (None, None, 1)      0           tf_op_layer_RealDiv_1[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_15 (T (None, None, 1)      0           tf_op_layer_RealDiv_1[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_16 (T (None, None, 1)      0           tf_op_layer_RealDiv_3[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_strided_slice_17 (T (None, None, 1)      0           tf_op_layer_RealDiv_3[0][0]      
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_11/shape (T (3,)                 0           tf_op_layer_strided_slice_10[0][0
                                                                     tf_op_layer_strided_slice_11[0][0
    __________________________________________________________________________________________________
    tf_op_layer_concat_13 (TensorFl (None, None, 4)      0           tf_op_layer_strided_slice_14[0][0
                                                                     tf_op_layer_strided_slice_15[0][0
                                                                     tf_op_layer_strided_slice_16[0][0
                                                                     tf_op_layer_strided_slice_17[0][0
    __________________________________________________________________________________________________
    tf_op_layer_Reshape_11 (TensorF (None, None, None)   0           tf_op_layer_GatherV2_1[0][0]     
                                                                     tf_op_layer_Reshape_11/shape[0][0
    __________________________________________________________________________________________________
    tf_op_layer_concat_14 (TensorFl (None, None, None)   0           tf_op_layer_concat_13[0][0]      
                                                                     tf_op_layer_Reshape_11[0][0]     
    ==================================================================================================
    Total params: 6,062,814
    Trainable params: 6,056,606
    Non-trainable params: 6,208
    __________________________________________________________________________________________________
    
    opened by jnissin 1
  • Detection works fine on CPU but generates random boxes (wrong or no detection) on GPU.

    Detection works fine on CPU but generates random boxes (wrong or no detection) on GPU.

    I am using RTX 3070 GPU and CUDA version 10.1 with all specified requirements in the conda environment. An image of results can be found here https://drive.google.com/file/d/1w4Js_2hKDZNICafz3ZY3S1bhYRIc-Yx0/view?usp=sharing

    opened by si-hafiz-abdullah 1
  • Unable to install tensorflow-gpu==2.3.0rc0

    Unable to install tensorflow-gpu==2.3.0rc0

    I get this message while trying to execute conda env create -f conda-gpu.yml. I am able to run the code wieh a newer version of tensorflow-gpu but it will run at least 5 times slower than before I accidentally upgraded to the 2.7.0 version

    Pip subprocess error: ERROR: Could not find a version that satisfies the requirement tensorflow-gpu==2.3.0rc0 (from versions: 1.13.1, 1.13.2, 1.14.0, 1.15.0, 1.15.2, 1.15.3, 1.15.4, 1.15.5, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5.0, 2.5.1, 2.5.2, 2.6.0, 2.6.1, 2.6.2, 2.7.0rc0, 2.7.0rc1, 2.7.0) ERROR: No matching distribution found for tensorflow-gpu==2.3.0rc0

    failed

    CondaEnvException: Pip failed

    opened by AnzeVersnik 1
  • 0.7 FPS

    0.7 FPS

    I do not know exactly why the processing is taking 0.7 FPS. I Tried em 2 diferrent GPUs, the first was a Radeon AMD 520 (2GB) , it is not so good, so I was not surprised. But when I tried in a AMD 570 4GB (what is better than my GPU) the result was the SAME. Did not presented any error. I belive maybe it just works in NVIDIA's GPU.

    opened by Guiflayrom 1
  • downloading tensorflow==2.3.0rc0

    downloading tensorflow==2.3.0rc0

    I fulfilled all the requirements except for tensorflow==2.3.0rc0

    I read the rc0 part means this version is a prerelease which doesn't exist anymore. I should download tensorflow==2.3.0.

    I did download tensorflow==2.3.0 but object_tracker.py still says

    "Package requirement 'tensorflow==2.3.0rc0' is not satisfied

    Any ideas?

    I ran the script and I get no object detection boxes.

    I also tried tensorflow==2.5.0

    opened by tower24 0
  • Bounding boxes not showing when using `tensorflow-gpu`

    Bounding boxes not showing when using `tensorflow-gpu`

    Hi,

    So I've trained a YOLOv4 custom object detector on Colab and then downloaded the yolov4-custom.weights file.

    When I run python save_model.py --weights ./data/yolov4-custom.weights --output ./checkpoints/yolov4-custom --model yolov4 using a tensorflow-gpu env, the ./checkpoints/yolov4-custom/ has the .pb files.

    But when I run python object_tracker.py --video ./data/video/test.mp4 --output ./outputs/result.avi --weights ./checkpoints/yolov4-custom --model yolov4, I don't see any bounding boxes on the video.

    However, when I run the same command using a tensorflow-cpu env, the bounding boxes are drawn and everything works perfectly.

    Am I missing something?

    opened by yassine-rd 4
  • Running at only 0.5 fps, CPU only

    Running at only 0.5 fps, CPU only

    I'm running this DeepSORT implementation on Google Colab and the runtime is about 0.4-0.5fps.

    I'm connected to a GPU but it seems like only the CPU is working. I've tried the following:

    • Uninstall tensorflow, install tensorflow-gpu 2.3.0 (note: 2.3.0rc0 was a pre-release and it's no longer available)
    • Verifying GPU is available before running deepsort
    • Converted my darknet weight to TF (several times)
    • Restarted the runtime

    Any ideas? Seems like this is an ongoing problem and unfortunately renders this implementation unusable until its fixed.

    Update: Running the command "tf.test.gpu_device_name()" should output "/device:GPU:0" meaning there is one GPU connected and available. With TF 2.3.0 installed, there is no output of this command. With the latest version of TF installed, the command is recognized and the expected output appears.

    The issue here is TF version 2.3.0 seems to not compatible with the current version of CUDA (11.2), so the GPU is not used. Can this repo be updated to run on a new version of tensorflow?

    Capture
    opened by mg-12345 2
  • Bounding boxes not observed

    Bounding boxes not observed

    Hi, I tried all 3 models - yolov3, yolov4 and yolo-tiny I downloaded the yolo .weights file, when I run python save_model.py --model yolov4, the ./checkpoints/yolov4-416/ has the .pb files when I run python object_tracker.py --video ./data/video/test.mp4 --output ./outputs/demo.avi --model yolov3 I dont see any bounding boxes

    May I know what is going wrong ??

    opened by Nithin7791 3
  • Only some bounding boxes drawn in output video

    Only some bounding boxes drawn in output video

    Hi, When I run the object_tracker.py file, I get the output video correctly, but I can only visualize some bounding boxes. For example, in the first frames, it counts 13 tracked objects, but the box does not appear, it is not drawn in the video. Nevertheless, in other frames of the same video, the bounding boxes appear. Does anyone know why or could help? Thanks in advance.

    image

    opened by rebeccamart 0
Owner
The AI Guy
I love making tutorials for all things machine learning and AI!
The AI Guy
Vehicles Counting using YOLOv4 + DeepSORT + Flask + Ngrok

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

Duong Tran Thanh 37 Dec 16, 2022
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

Katsuya Hyodo 49 Sep 21, 2022
using yolox+deepsort for object-tracker

YOLOX_deepsort_tracker yolox+deepsort实现目标跟踪 最新的yolox尝尝鲜~~(yolox正处在频繁更新阶段,因此直接链接yolox仓库作为子模块) Install Clone the repository recursively: git clone --rec

null 245 Dec 26, 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
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
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

null 384 Nov 29, 2022
Yolov5 deepsort inference,使用YOLOv5+Deepsort实现车辆行人追踪和计数,代码封装成一个Detector类,更容易嵌入到自己的项目中

使用YOLOv5+Deepsort实现车辆行人追踪和计数,代码封装成一个Detector类,更容易嵌入到自己的项目中。

null 813 Dec 31, 2022
yolov5 deepsort 行人 车辆 跟踪 检测 计数

yolov5 deepsort 行人 车辆 跟踪 检测 计数 实现了 出/入 分别计数。 默认是 南/北 方向检测,若要检测不同位置和方向,可在 main.py 文件第13行和21行,修改2个polygon的点。 默认检测类别:行人、自行车、小汽车、摩托车、公交车、卡车。 检测类别可在 detect

null 554 Dec 30, 2022
StrongSORT: Make DeepSORT Great Again

StrongSORT StrongSORT: Make DeepSORT Great Again StrongSORT: Make DeepSORT Great Again Yunhao Du, Yang Song, Bo Yang, Yanyun Zhao arxiv 2202.13514 Abs

null 369 Jan 4, 2023
Python package for multiple object tracking research with focus on laboratory animals tracking.

motutils is a Python package for multiple object tracking research with focus on laboratory animals tracking. Features loads: MOTChallenge CSV, sleap

Matěj Šmíd 2 Sep 5, 2022
Object tracking and object detection is applied to track golf puts in real time and display stats/games.

Putting_Game Object tracking and object detection is applied to track golf puts in real time and display stats/games. Works best with the Perfect Prac

Max 1 Dec 29, 2021
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
Official PyTorch implementation of Joint Object Detection and Multi-Object Tracking with Graph Neural Networks

This is the official PyTorch implementation of our paper: "Joint Object Detection and Multi-Object Tracking with Graph Neural Networks". Our project website and video demos are here.

Richard Wang 443 Dec 6, 2022
Object Detection and Multi-Object Tracking

Object Detection and Multi-Object Tracking

Bobby Chen 1.6k Jan 4, 2023
TSDF++: A Multi-Object Formulation for Dynamic Object Tracking and Reconstruction

TSDF++: A Multi-Object Formulation for Dynamic Object Tracking and Reconstruction TSDF++ is a novel multi-object TSDF formulation that can encode mult

ETHZ ASL 130 Dec 29, 2022
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