Giter Club home page Giter Club logo

ct-crackseg's Introduction

CT-CrackSeg

stars github arXiv IEEE Xplore ICIP 2023

This is the official pyTorch implementation of the paper A Convolutional-Transformer Network for Crack Segmentation with Boundary Awareness.

Network Architecture

Diagram of the proposed method

Visualization of the proposed Dilated Residual Block.

Diagram of the proposed moudle

Datasets

1. Crack500 dataset

The Crack500 dataset contains 500 images of size around 2000 × 1500 pixels taken by cell phones on main campus of Temple University. And each image was cropped into 16 non-overlapped image regions and only the region containing more than 1000 pixels of crack is kept. Through this way, the training data consists of 1,896 images, validation data contains 348 images, test data contains 1124 images. Download the Crack500 dataset from this link.

|-- Crack500
    |-- train
        |-- images
        |   |-- 20160222_081011_1_361.jpg
            ......
        |-- masks
        |   |-- 20160222_081011_1_361.png
            ......
    |-- test
        |-- images
        |   |-- 20160222_080933_361_1.jpg
            ......
        |-- masks
        |   |-- 20160222_080933_361_1.png
            ......
    |-- val
        |-- images
        |   |-- 20160222_080850_1_361.jpg
            ......
        |-- masks
        |   |-- 20160222_080850_1_361.png
            ......

2. DeepCrack dataset

The DeepCrack dataset is consist of 537 RGB color images with manually annotated segmentations. The images were divided into two main subsets: a training set with 300 images and a testing set with 237 ones. You can download the Deepcrack dataset from this link.

|-- DeepCrack
    |-- train
        |-- images
        |   |-- 7Q3A9060-1.jpg
            ......
        |-- masks
        |   |-- 7Q3A9060-1.png
            ......
    |-- test
        |-- images
        |   |-- 11125-1.jpg
            ......
        |-- masks
        |   |-- 11125-1.png
            ......

Training

python train_crack.py

It will run training for model and save the best weights for the validation set.

Testing

python evaluate_crack.py --output <path_to_dir>

It will represent performance measures and save related results in results folder.

Results

Visual comparison of the segmentation results:

Visual comparison of the segmentation results.

Evaluation metrics of competing methods:

Evaluation metrics of competing methods on Crack500 and DeepCrack.

Model weights

You can download the learned weights for each dataset in the following table.

Dataset Google Drive Baidu Yun
Crack500 link link
Deepcrack link link

Acknowledgment

CT-CrackSeg is based on following repos. We thanks for their great works:

Citation

If you find our code or paper useful, please consider citing:

@inproceedings{CTCrackSeg,
    title={A Convolutional-Transformer Network for Crack Segmentation with Boundary Awareness},
    author={Tao, Huaqi and Liu, Bingxi and Cui, Jinqiang and Zhang, Hong},
    booktitle={2023 IEEE International Conference on Image Processing (ICIP)},
    pages={86-90},
    year={2023},
    organization={IEEE}
}

ct-crackseg's People

Contributors

hqitao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ct-crackseg's Issues

About the loss when training

hello, you have done good job! BUT When I am running your code, I have some problems. I found that the loss do not go down.

image
This is my config file.

image
This is the part of loss_log.txt

Please tell me what I should do.Thank you very much!

How to get metrics?

Thank you for your excellent work!
Could you show some details about how to calculate metrics like Precision、Recall and F1 score in your paper?
It's better to release specific code ,thanks a lot!

About model weights

Greetings,

are those weights in the github same as weights which are used in the paper to give last evaluation? Because when I test i get different values

Thanks in advance.

Pretrained model

Hi,
I would like to ask that how did you get the pretrained model weights? Which method did you use?

Thank you in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.