RTSeg: Real-time Semantic Segmentation Comparative Study

Overview

Real-time Semantic Segmentation Comparative Study

The repository contains the official TensorFlow code used in our papers:

Description

Semantic segmentation benefits robotics related applications especially autonomous driving. Most of the research on semantic segmentation is only on increasing the accuracy of segmentation models with little attention to computationally efficient solutions. The few work conducted in this direction does not provide principled methods to evaluate the     different design choices for segmentation. In RTSeg, we address this gap by presenting a real-time semantic segmentation benchmarking framework with a decoupled design for feature extraction and decoding methods. The code and the experimental results are presented on the CityScapes dataset for urban scenes.



Models

Encoder Skip U-Net DilationV1 DilationV2
VGG-16 Yes Yes Yes No
ResNet-18 Yes Yes Yes No
MobileNet Yes Yes Yes Yes
ShuffleNet Yes Yes Yes Yes

NOTE: The rest of the pretrained weights for all the implemented models will be released soon. Stay in touch for the updates.

Reported Results

Test Set

Model GFLOPs Class IoU Class iIoU Category IoU Category iIoU
SegNet 286.03 56.1 34.2 79.8 66.4
ENet 3.83 58.3 24.4 80.4 64.0
DeepLab - 70.4 42.6 86.4 67.7
SkipNet-VGG16 - 65.3 41.7 85.7 70.1
ShuffleSeg 2.0 58.3 32.4 80.2 62.2
SkipNet-MobileNet 6.2 61.5 35.2 82.0 63.0

Validation Set

Encoder Decoder Coarse mIoU
MobileNet SkipNet No 61.3
ShuffleNet SkipNet No 55.5
ResNet-18 UNet No 57.9
MobileNet UNet No 61.0
ShuffleNet UNet No 57.0
MobileNet Dilation No 57.8
ShuffleNet Dilation No 53.9
MobileNet SkipNet Yes 62.4
ShuffleNet SkipNet Yes 59.3

** GFLOPs is computed on image resolution 360x640. However, the mIOU(s) are computed on the official image resolution required by CityScapes evaluation script 1024x2048.**

** Regarding Inference time, issue is reported here. We were not able to outperform the reported inference time from ENet architecture it could be due to discrepencies in the optimization we perform. People are welcome to improve on the optimization method we're using.

Usage

  1. Download the weights, processed data, and trained meta graphs from here
  2. Extract pretrained_weights.zip
  3. Extract full_cityscapes_res.zip under data/
  4. Extract unet_resnet18.zip under experiments/

Run

The file named run.sh provide a good example for running different architectures. Have a look at this file.

Examples to the running command in run.sh file:

python3 main.py --load_config=[config_file_name].yaml [train/test] [Trainer Class Name] [Model Class Name]
  • Remove comment from run.sh for running fcn8s_mobilenet on the validation set of cityscapes to get its mIoU. Our framework evaluation will produce results lower than the cityscapes evaluation script by small difference, for the final evaluation we use the cityscapes evaluation script. UNet ResNet18 should have 56% on validation set, but with cityscapes script we got 57.9%. The results on the test set for SkipNet-MobileNet and SkipNet-ShuffleNet are publicly available on the Cityscapes Benchmark.
python3 main.py --load_config=unet_resnet18_test.yaml test Train LinkNET
  • To measure running time, run in inference mode.
python3 main.py --load_config=unet_resnet18_test.yaml inference Train LinkNET
  • To run on different dataset or model, take one of the configuration files such as: config/experiments_config/unet_resnet18_test.yaml and modify it or create another .yaml configuration file depending on your needs.

NOTE: The current code does not contain the optimized code for measuring inference time, the final code will be released soon.

Main Dependencies

Python 3 and above
tensorflow 1.3.0/1.4.0
numpy 1.13.1
tqdm 4.15.0
matplotlib 2.0.2
pillow 4.2.1
PyYAML 3.12

All Dependencies

pip install -r [requirements_gpu.txt] or [requirements.txt]

Citation

If you find RTSeg useful in your research, please consider citing our work:

@ARTICLE{2018arXiv180302758S,
   author = {{Siam}, M. and {Gamal}, M. and {Abdel-Razek}, M. and {Yogamani}, S. and
    {Jagersand}, M.},
    title = "{RTSeg: Real-time Semantic Segmentation Comparative Study}",
  journal = {ArXiv e-prints},
archivePrefix = "arXiv",
   eprint = {1803.02758},
 primaryClass = "cs.CV",
 keywords = {Computer Science - Computer Vision and Pattern Recognition},
     year = 2018,
    month = mar,
   adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180302758S},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

If you find ShuffleSeg useful in your research, please consider citing it as well:

@ARTICLE{2018arXiv180303816G,
   author = {{Gamal}, M. and {Siam}, M. and {Abdel-Razek}, M.},
    title = "{ShuffleSeg: Real-time Semantic Segmentation Network}",
  journal = {ArXiv e-prints},
archivePrefix = "arXiv",
   eprint = {1803.03816},
 primaryClass = "cs.CV",
 keywords = {Computer Science - Computer Vision and Pattern Recognition},
     year = 2018,
    month = mar,
   adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180303816G},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Related Project

Real-time Motion Segmentation using 2-stream shuffleseg Code

Comments
  • Question about the inference speed for using the model in real-time

    Question about the inference speed for using the model in real-time

    Hello,

    I am trying to test models which are skipnet-mobilenet and shuffleseg with my own dataset (1024x768 resolution)

    I've seen in the paper that those models' can be used in real-time situation cause the inference speed is faster than 10fps on PC.

    However, when I run your code for inference with my own data, the speed is about 1.5fps and both models speed are similar even though you mentioned shuffeseg is faster than skipnet-mobilenet here.

    Please give me any advice for using the model in real-time.

    Thank you.

    opened by msson 16
  • ValueError: Cannot feed value of shape (8, 512, 1024, 3) for Tensor 'network/input/Placeholder:0', which has shape '(8, 256, 512, 3)'

    ValueError: Cannot feed value of shape (8, 512, 1024, 3) for Tensor 'network/input/Placeholder:0', which has shape '(8, 256, 512, 3)'

    Hi!

    I tried to train by command run.sh. ($ python3 main.py --load_config=fcn8s_shufflenet_train.yaml train Train FCN8sShuffleNet) I encount error as below.

    $ ./run.sh /home/sounansu/anaconda3/lib/python3.6/site-packages/h5py/init.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters

    Parsing Arguments..

    Using this arguments check it

    batch_size -- 8 -- batchnorm_enabled -- True -- bias -- 0.0 -- config_path -- fcn8s_shufflenet_train.yaml -- data_dir -- full_cityscapes_res -- data_mode -- experiment -- exp_dir -- fcn8s_shufflenet -- freeze_encoder -- False -- img_height -- 256 -- img_width -- 512 -- learning_decay -- 1e-07 -- learning_decay_every -- 100 -- learning_rate -- 0.0001 -- max_to_keep -- 1 -- mode -- train -- model -- FCN8sShuffleNet -- momentum -- 0.9 -- num_channels -- 3 -- num_classes -- 20 -- num_epochs -- 200 -- num_groups -- 3 -- operator -- Train -- out_dir -- fcn8s_shufflenet -- pretrained_path -- pretrained_weights/shufflenet_weights.pkl -- random_cropping -- False -- save_every -- 10 -- shuffle -- True -- test_every -- 10 -- verbose -- False -- weight_decay -- 0.0005 -- weighted_loss -- True --

    Agent is running now...

    2018-09-07 12:35:22.150963: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 2018-09-07 12:35:22.150994: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2018-09-07 12:35:22.355806: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2018-09-07 12:35:22.356259: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.6705 pciBusID 0000:03:00.0 Total memory: 10.91GiB Free memory: 10.19GiB 2018-09-07 12:35:22.356285: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 2018-09-07 12:35:22.356295: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0: Y 2018-09-07 12:35:22.356308: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:03:00.0)

    Building the MODEL... Building the ShuffleNet.. Layer_name: network/shufflenet_encoder/conv1/Relu -Output_Shape: [8, 127, 255, 24] Layer_name: network/shufflenet_encoder/max_pool -Output_Shape: [8, 63, 127, 24] Layer_name: network/shufflenet_encoder/stage2_3/Relu -Output_Shape: [8, 32, 64, 240] Layer_name: network/shufflenet_encoder/stage3_7/Relu -Output_Shape: [8, 16, 32, 480] Layer_name: network/shufflenet_encoder/stage4_3/Relu -Output_Shape: [8, 8, 16, 960]

    Encoder ShuffleNet is built successfully

    The Model is built successfully

    [-] build_model : 19.11881 sec, which is 0.31865 mins, which is 0.00531 hours

    Training is initializing itself

    Initializing the variables of the model Initialization finished [-] init_model : 3.71544 sec, which is 0.06192 mins, which is 0.00103 hours Loading ImageNet pretrained weights... ImageNet Pretrained Weights Loaded Initially

    Pretrained weights of the encoder is loaded Searching for a checkpoint

    .. No ckpt, SO First time to train :D ..

    [-] load_model : 4.51711 sec, which is 0.07529 mins, which is 0.00125 hours Loading Training data.. Train-shape-x -- (2975, 256, 512, 3) 2975 Train-shape-y -- (2975, 256, 512) Num of iterations on training data in one epoch -- 372 Training data is loaded Loading Validation data.. Val-shape-x -- (500, 512, 1024, 3) 496 Val-shape-y -- (500, 512, 1024) Num of iterations on validation data in one epoch -- 62 Validation data is loaded [-] load_train_data : 22.91540 sec, which is 0.38192 mins, which is 0.00637 hours Training mode will begin NOW .. epoch-0-: 100%|????????????????????????????????????????????????????????????????????????????| 371/372 [01:31<00:00, 4.58it/s] epoch-0-loss:14.767903- acc:0.6199 saving a checkpoint Saved a checkpoint Validation at step:372 at epoch:1 .. Val-epoch-1-: 0%| | 0/62 [00:00<?, ?it/s]Traceback (most recent call last): File "main.py", line 19, in main() File "main.py", line 15, in main agent.run() File "/home/sounansu/anaconda3/TFSegmentation/utils/misc.py", line 18, in timed result = f(*args, **kwargs) File "/home/sounansu/anaconda3/TFSegmentation/agent.py", line 96, in run self.train() File "/home/sounansu/anaconda3/TFSegmentation/agent.py", line 139, in train self.operator.train() File "/home/sounansu/anaconda3/TFSegmentation/train/train.py", line 583, in train epoch=self.model.global_epoch_tensor.eval(self.sess)) File "/home/sounansu/anaconda3/TFSegmentation/train/train.py", line 636, in test_per_epoch feed_dict=feed_dict) File "/home/sounansu/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 895, in run run_metadata_ptr) File "/home/sounansu/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1100, in _run % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape()))) ValueError: Cannot feed value of shape (8, 512, 1024, 3) for Tensor 'network/input/Placeholder:0', which has shape '(8, 256, 512, 3)'

    What happened?

    opened by sounansu 10
  • Have anyone tried to test with different resolution of input image?

    Have anyone tried to test with different resolution of input image?

    I am trying to test the model with 7681024 images but it seems not that simple for me. (I already converted my own images (7681024) to X_val.npy file.) Please give me an advice which part of the code I need to modify. Thanks.

    opened by msson 7
  • Unable to optimize graph using NCHW

    Unable to optimize graph using NCHW

    Hi @MSiam,

    I'm trying to optimize the graph using the nchw_optimize_inference branch, but after I freeze the graph it is removing the input layer ['network/input/Placeholder'].

    This is why optimize_for_inference throws an error KeyError: "The following input nodes were not found: set(['network/input/Placeholder'])\n" I also checked the frozen graph on TensorBoard and this node was absent there.

    I'm using TensorFlow v1.4

    How were you able to generate the frozen model for inference?

    Thanks!

    opened by harsh-agar 6
  • The questions about optimize_inference branch

    The questions about optimize_inference branch

    Hello Thanks for your work. I have completed the first two steps and got graph.pb and graph_optimized.pb .

    But when I run 'python3 infer_optimize.py --graph graph_optimized.pb'. I got a InvalidArgumentError : You must feed a value for placeholder tensor 'import/network/input/plaveholder_2' with dtype bool.

    Please give me any advice, thank you

    opened by MMY1994 5
  • MoblienetV2 deeplab v3+

    MoblienetV2 deeplab v3+

    Do you plan to cover also this new model? Seems that it will arrive in the next PR. Check https://github.com/tensorflow/models/blob/master/research/deeplab/README.md

    enhancement New model 
    opened by bhack 5
  • Error in execution “ python3 main.py --load_config=unet_vgg16_train.yaml train Train VGG16UNET”

    Error in execution “ python3 main.py --load_config=unet_vgg16_train.yaml train Train VGG16UNET”

    testc@testc2018:~/TFSegmentation$ python3 main.py --load_config=unet_vgg16_train.yaml train Train VGG16UNET

    Parsing Arguments..

    Using this arguments check it

    batch_size -- 3 -- batchnorm_enabled -- True -- bias -- 0.0 -- config_path -- unet_vgg16_train.yaml -- data_dir -- data/full_cityscapes_res -- data_mode -- experiment -- exp_dir -- unet_vgg16 -- freeze_encoder -- False -- img_height -- 512 -- img_width -- 1024 -- learning_decay -- 1e-07 -- learning_decay_every -- 100 -- learning_rate -- 0.0001 -- max_to_keep -- 2 -- mode -- train -- model -- VGG16UNET -- momentum -- 0.9 -- num_channels -- 3 -- num_classes -- 20 -- num_epochs -- 200 -- num_groups -- 3 -- operator -- Train -- out_dir -- unet_vgg16 -- pretrained_path -- pretrained_weights/vgg16.npy -- random_cropping -- False -- save_every -- 5 -- shuffle -- True -- test_every -- 5 -- verbose -- False -- weight_decay -- 4e-05 -- weighted_loss -- True --

    Traceback (most recent call last): File "main.py", line 19, in main() File "main.py", line 14, in main agent = Agent(args) File "/home/testc/TFSegmentation/agent.py", line 36, in init self.model = globals()[args.model] KeyError: 'VGG16UNET'

    opened by ytgcljj 4
  • shape of output data

    shape of output data

    Hi. I ran infer_optimized.py with my webcam by reference to #20 and #42 But, i cant understand why out.shape = (1, 360, 640) (line38 : out = sess.run(y, feed_dict={x: img}). i think this should be(360, 640, 3) because this is RGB image. Can anyone explain this reason?

    opened by sfdn123 3
  • ERROR Please select a proper data_mode BYE

    ERROR Please select a proper data_mode BYE

    i run python3 main.py --load_config=unet_vgg16_test.yaml test Train UNetVGG16 is error

    ======================End of Report========================== [-] build_model : 8.28218 sec, which is 0.13804 mins, which is 0.00230 hours

    Training is initializing itself

    Initializing the variables of the model Initialization finished [-] init_model : 3.16336 sec, which is 0.05272 mins, which is 0.00088 hours Searching for a checkpoint

    .. No ckpt, SO First time to train :D ..

    [-] load_model : 0.00013 sec, which is 0.00000 mins, which is 0.00000 hours ERROR Please select a proper data_mode BYE

    opened by ytgcljj 3
  • Question about the constant hyper-parameter c in class weight

    Question about the constant hyper-parameter c in class weight

    Hi, When I read the paper, I have a question about the constant hyper-parameter c in the weighted cross_entropy, why set value c 1.02, is there something significant? Thank you.

    opened by mrluin 2
  • Errors while executing Step by Step instructions and Graph_optimized.pb file

    Errors while executing Step by Step instructions and Graph_optimized.pb file

    Hi awesome project! I have followed the instruction step by step and when I execute run.sh I encountering the following error:

    ======================End of Report==========================
       [-] build_model : 31.10391 sec, which is 0.51840 mins, which is 0.00864 hours
    
    Training is initializing itself
    
    Initializing the variables of the model
    Initialization finished
       [-] init_model : 121.96605 sec, which is 2.03277 mins, which is 0.03388 hours
    Loading ImageNet pretrained weights...
    ImageNet Pretrained Weights Loaded Initially
    
    
    Pretrained weights of the encoder is loaded
    Searching for a checkpoint
    
    .. No ckpt, SO First time to train :D ..
    
       [-] load_model : 6.38715 sec, which is 0.10645 mins, which is 0.00177 hours
    Loading Validation data..
    Validation-shape-x -- (500, 512, 1024, 3)
    Validation-shape-y -- (500, 128, 256)
    Validation data is loaded
       [-] load_val_data : 4.74056 sec, which is 0.07901 mins, which is 0.00132 hours
    INFERENCE mode will begin NOW..
    loading a checkpoint for BEST ONE
    ERROR NO best checkpoint found
    

    Observe that the structure of the folder pretrained weights:

    $ ls TFSegmentation/pretrained_weights
    ls -l                                                                                                                                                            (base) 
    total 692156
    -rw-rw-r-- 1 dgromov dgromov 130902443 sep 19 15:49 linknet_weights.pkl
    -rw-rw-r-- 1 dgromov dgromov  17033751 sep 19 15:49 mobilenet_v1.pkl
    -rw-rw-r-- 1 dgromov dgromov   7388146 sep 19 15:49 shufflenet_weights.pkl
    -rw-rw-r-- 1 dgromov dgromov 553431761 sep 19 15:49 vgg16.npy
    

    Is there something wrong that I have done ?

    Thanks

    Also What should I do with the Graph_optimized.pb file?

    opened by Davidnet 2
  • Bump pillow from 4.2.1 to 9.3.0

    Bump pillow from 4.2.1 to 9.3.0

    Bumps pillow from 4.2.1 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump tensorflow from 1.3.0 to 2.9.3

    Bump tensorflow from 1.3.0 to 2.9.3

    Bumps tensorflow from 1.3.0 to 2.9.3.

    Release notes

    Sourced from tensorflow's releases.

    TensorFlow 2.9.3

    Release 2.9.3

    This release introduces several vulnerability fixes:

    TensorFlow 2.9.2

    Release 2.9.2

    This releases introduces several vulnerability fixes:

    ... (truncated)

    Changelog

    Sourced from tensorflow's changelog.

    Release 2.9.3

    This release introduces several vulnerability fixes:

    Release 2.8.4

    This release introduces several vulnerability fixes:

    ... (truncated)

    Commits
    • a5ed5f3 Merge pull request #58584 from tensorflow/vinila21-patch-2
    • 258f9a1 Update py_func.cc
    • cd27cfb Merge pull request #58580 from tensorflow-jenkins/version-numbers-2.9.3-24474
    • 3e75385 Update version numbers to 2.9.3
    • bc72c39 Merge pull request #58482 from tensorflow-jenkins/relnotes-2.9.3-25695
    • 3506c90 Update RELEASE.md
    • 8dcb48e Update RELEASE.md
    • 4f34ec8 Merge pull request #58576 from pak-laura/c2.99f03a9d3bafe902c1e6beb105b2f2417...
    • 6fc67e4 Replace CHECK with returning an InternalError on failing to create python tuple
    • 5dbe90a Merge pull request #58570 from tensorflow/r2.9-7b174a0f2e4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump tensorflow-gpu from 1.3.0 to 2.9.3

    Bump tensorflow-gpu from 1.3.0 to 2.9.3

    Bumps tensorflow-gpu from 1.3.0 to 2.9.3.

    Release notes

    Sourced from tensorflow-gpu's releases.

    TensorFlow 2.9.3

    Release 2.9.3

    This release introduces several vulnerability fixes:

    TensorFlow 2.9.2

    Release 2.9.2

    This releases introduces several vulnerability fixes:

    ... (truncated)

    Changelog

    Sourced from tensorflow-gpu's changelog.

    Release 2.9.3

    This release introduces several vulnerability fixes:

    Release 2.8.4

    This release introduces several vulnerability fixes:

    ... (truncated)

    Commits
    • a5ed5f3 Merge pull request #58584 from tensorflow/vinila21-patch-2
    • 258f9a1 Update py_func.cc
    • cd27cfb Merge pull request #58580 from tensorflow-jenkins/version-numbers-2.9.3-24474
    • 3e75385 Update version numbers to 2.9.3
    • bc72c39 Merge pull request #58482 from tensorflow-jenkins/relnotes-2.9.3-25695
    • 3506c90 Update RELEASE.md
    • 8dcb48e Update RELEASE.md
    • 4f34ec8 Merge pull request #58576 from pak-laura/c2.99f03a9d3bafe902c1e6beb105b2f2417...
    • 6fc67e4 Replace CHECK with returning an InternalError on failing to create python tuple
    • 5dbe90a Merge pull request #58570 from tensorflow/r2.9-7b174a0f2e4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump protobuf from 3.4.0 to 3.18.3

    Bump protobuf from 3.4.0 to 3.18.3

    Bumps protobuf from 3.4.0 to 3.18.3.

    Release notes

    Sourced from protobuf's releases.

    Protocol Buffers v3.18.3

    C++

    Protocol Buffers v3.16.1

    Java

    • Improve performance characteristics of UnknownFieldSet parsing (#9371)

    Protocol Buffers v3.18.2

    Java

    • Improve performance characteristics of UnknownFieldSet parsing (#9371)

    Protocol Buffers v3.18.1

    Python

    • Update setup.py to reflect that we now require at least Python 3.5 (#8989)
    • Performance fix for DynamicMessage: force GetRaw() to be inlined (#9023)

    Ruby

    • Update ruby_generator.cc to allow proto2 imports in proto3 (#9003)

    Protocol Buffers v3.18.0

    C++

    • Fix warnings raised by clang 11 (#8664)
    • Make StringPiece constructible from std::string_view (#8707)
    • Add missing capability attributes for LLVM 12 (#8714)
    • Stop using std::iterator (deprecated in C++17). (#8741)
    • Move field_access_listener from libprotobuf-lite to libprotobuf (#8775)
    • Fix #7047 Safely handle setlocale (#8735)
    • Remove deprecated version of SetTotalBytesLimit() (#8794)
    • Support arena allocation of google::protobuf::AnyMetadata (#8758)
    • Fix undefined symbol error around SharedCtor() (#8827)
    • Fix default value of enum(int) in json_util with proto2 (#8835)
    • Better Smaller ByteSizeLong
    • Introduce event filters for inject_field_listener_events
    • Reduce memory usage of DescriptorPool
    • For lazy fields copy serialized form when allowed.
    • Re-introduce the InlinedStringField class
    • v2 access listener
    • Reduce padding in the proto's ExtensionRegistry map.
    • GetExtension performance optimizations
    • Make tracker a static variable rather than call static functions
    • Support extensions in field access listener
    • Annotate MergeFrom for field access listener
    • Fix incomplete types for field access listener
    • Add map_entry/new_map_entry to SpecificField in MessageDifferencer. They record the map items which are different in MessageDifferencer's reporter.
    • Reduce binary size due to fieldless proto messages
    • TextFormat: ParseInfoTree supports getting field end location in addition to start.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump nbconvert from 5.3.0 to 6.5.1

    Bump nbconvert from 5.3.0 to 6.5.1

    Bumps nbconvert from 5.3.0 to 6.5.1.

    Release notes

    Sourced from nbconvert's releases.

    Release 6.5.1

    No release notes provided.

    6.5.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/jupyter/nbconvert/compare/6.4.5...6.5

    6.4.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/jupyter/nbconvert/compare/6.4.2...6.4.3

    6.4.0

    What's Changed

    New Contributors

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump mistune from 0.7.4 to 2.0.3

    Bump mistune from 0.7.4 to 2.0.3

    Bumps mistune from 0.7.4 to 2.0.3.

    Release notes

    Sourced from mistune's releases.

    Version 2.0.2

    Fix escape_url via lepture/mistune#295

    Version 2.0.1

    Fix XSS for image link syntax.

    Version 2.0.0

    First release of Mistune v2.

    Version 2.0.0 RC1

    In this release, we have a Security Fix for harmful links.

    Version 2.0.0 Alpha 1

    This is the first release of v2. An alpha version for users to have a preview of the new mistune.

    Version 0.8.4

    • Support an escaped pipe char in a table cell. #150
    • Fix ordered and unordered list. #152
    • Fix spaces between = in HTML tags
    • Add max_recursive_depth for list and blockquote.
    • Fix fences code block.
    Changelog

    Sourced from mistune's changelog.

    Changelog

    Here is the full history of mistune v2.

    Version 2.0.4

    
    Released on Jul 15, 2022
    
    • Fix url plugin in &lt;a&gt; tag
    • Fix * formatting

    Version 2.0.3

    Released on Jun 27, 2022

    • Fix table plugin
    • Security fix for CVE-2022-34749

    Version 2.0.2

    
    Released on Jan 14, 2022
    

    Fix escape_url

    Version 2.0.1

    Released on Dec 30, 2021

    XSS fix for image link syntax.

    Version 2.0.0

    
    Released on Dec 5, 2021
    

    This is the first non-alpha release of mistune v2.

    Version 2.0.0rc1

    Released on Feb 16, 2021

    Version 2.0.0a6

    
    </tr></table> 
    

    ... (truncated)

    Commits
    • 3f422f1 Version bump 2.0.3
    • a6d4321 Fix asteris emphasis regex CVE-2022-34749
    • 5638e46 Merge pull request #307 from jieter/patch-1
    • 0eba471 Fix typo in guide.rst
    • 61e9337 Fix table plugin
    • 76dec68 Add documentation for renderer heading when TOC enabled
    • 799cd11 Version bump 2.0.2
    • babb0cf Merge pull request #295 from dairiki/bug.escape_url
    • fc2cd53 Make mistune.util.escape_url less aggressive
    • 3e8d352 Version bump 2.0.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Mennatullah Siam
PhD Student
Mennatullah Siam
Implementation of temporal pooling methods studied in [ICIP'20] A Comparative Evaluation Of Temporal Pooling Methods For Blind Video Quality Assessment

Implementation of temporal pooling methods studied in [ICIP'20] A Comparative Evaluation Of Temporal Pooling Methods For Blind Video Quality Assessment

Zhengzhong Tu 5 Sep 16, 2022
Real-Time-Student-Attendence-System - Real Time Student Attendence System

Real-Time-Student-Attendence-System The Student Attendance Management System Pro

Rounak Das 1 Feb 15, 2022
HyperSeg: Patch-wise Hypernetwork for Real-time Semantic Segmentation Official PyTorch Implementation

: We present a novel, real-time, semantic segmentation network in which the encoder both encodes and generates the parameters (weights) of the decoder. Furthermore, to allow maximal adaptivity, the weights at each decoder block vary spatially. For this purpose, we design a new type of hypernetwork, composed of a nested U-Net for drawing higher level context features

Yuval Nirkin 182 Dec 14, 2022
FANet - Real-time Semantic Segmentation with Fast Attention

FANet Real-time Semantic Segmentation with Fast Attention Ping Hu, Federico Perazzi, Fabian Caba Heilbron, Oliver Wang, Zhe Lin, Kate Saenko , Stan Sc

Ping Hu 42 Nov 30, 2022
DFFNet: An IoT-perceptive Dual Feature Fusion Network for General Real-time Semantic Segmentation

DFFNet Paper DFFNet: An IoT-perceptive Dual Feature Fusion Network for General Real-time Semantic Segmentation. Xiangyan Tang, Wenxuan Tu, Keqiu Li, J

null 4 Sep 23, 2022
Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation)

Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation) Download Synthia dataset The model uses

null 32 Sep 21, 2022
Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021) This repository is for BAAF-Net introduce

null 90 Dec 29, 2022
Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakly Supervised Semantic Segmentation, CVPR 2018

Learning Pixel-level Semantic Affinity with Image-level Supervision This code is deprecated. Please see https://github.com/jiwoon-ahn/irn instead. Int

Jiwoon Ahn 337 Dec 15, 2022
YolactEdge: Real-time Instance Segmentation on the Edge

YolactEdge, the first competitive instance segmentation approach that runs on small edge devices at real-time speeds. Specifically, YolactEdge runs at up to 30.8 FPS on a Jetson AGX Xavier (and 172.7 FPS on an RTX 2080 Ti) with a ResNet-101 backbone on 550x550 resolution images.

Haotian Liu 1.1k Jan 6, 2023
OrienMask: Real-time Instance Segmentation with Discriminative Orientation Maps

OrienMask This repository implements the framework OrienMask for real-time instance segmentation. It achieves 34.8 mask AP on COCO test-dev at the spe

null 45 Dec 13, 2022
implement of SwiftNet:Real-time Video Object Segmentation

SwiftNet The official PyTorch implementation of SwiftNet:Real-time Video Object Segmentation, which has been accepted by CVPR2021. Requirements Python

haochen wang 64 Dec 14, 2022
A keras-based real-time model for medical image segmentation (CFPNet-M)

CFPNet-M: A Light-Weight Encoder-Decoder Based Network for Multimodal Biomedical Image Real-Time Segmentation This repository contains the implementat

null 268 Nov 27, 2022
A lane detection integrated Real-time Instance Segmentation based on YOLACT (You Only Look At CoefficienTs)

Real-time Instance Segmentation and Lane Detection This is a lane detection integrated Real-time Instance Segmentation based on YOLACT (You Only Look

Jin 4 Dec 30, 2022
TCNN Temporal convolutional neural network for real-time speech enhancement in the time domain

TCNN Pandey A, Wang D L. TCNN: Temporal convolutional neural network for real-time speech enhancement in the time domain[C]//ICASSP 2019-2019 IEEE Int

凌逆战 16 Dec 30, 2022
Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP

Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP Abstract: We introduce a method that allows to automatically se

Daniil Pakhomov 134 Dec 19, 2022
TorchDistiller - a collection of the open source pytorch code for knowledge distillation, especially for the perception tasks, including semantic segmentation, depth estimation, object detection and instance segmentation.

This project is a collection of the open source pytorch code for knowledge distillation, especially for the perception tasks, including semantic segmentation, depth estimation, object detection and instance segmentation.

yifan liu 147 Dec 3, 2022
Mae segmentation - Reproduction of semantic segmentation using masked autoencoder (mae)

ADE20k Semantic segmentation with MAE Getting started Install the mmsegmentation

null 97 Dec 17, 2022
Official code of "R2RNet: Low-light Image Enhancement via Real-low to Real-normal Network."

R2RNet Official code of "R2RNet: Low-light Image Enhancement via Real-low to Real-normal Network." Jiang Hai, Zhu Xuan, Ren Yang, Yutong Hao, Fengzhu

null 77 Dec 24, 2022