Git Product home page Git Product logo

detect_steel_bar's Introduction

提醒

由于个人版本修改较多,记不清哪个配置可以达到线上0.97。

声明

由于竞赛平台协议有规定,未经许可暂不能公开数据集,非常抱歉。

可修改的地方:

  1. dataloader.py 中Resize函数的图像尺寸,越大效果越好。
  2. main.py 中的模型 depth ,越大效果越好。
  3. 更有效的办法就是做数据扩充,增加数据量。

1. 比赛地址

智能盘点—钢筋数量AI识别

2. 依赖

pytorch0.4.1,opencv-python,skimage

3. 使用方法

step0: 安装

git clone https://github.com/spytensor/detect_steel_bar.git
detect_steel_bar/retinanet/lib/
bash build.sh
cd ../../

step1: 下载数据解压后,将训练数据和测试数据放到 data/images/下,效果如下:

 - data/
    - images/
        train/
        test/

step2: 将训练标签文件 train_labels.csv 复制到 data/ 下,效果如下:

- data/
    train_labels.csv

step3: 将官方提高数据转变成可供Retinanet训练格式

cd data
python convert.py
cd ..

step4: 训练

python retinanet/main.py

step5: 预测

python retinanet/predict.py

4. 效果

线上 0.97+

5. 参考

pytorch-retinanet

6. 提醒

如有疑问,请提出 issue,编码问题请自行谷歌。

detect_steel_bar's People

Contributors

frankfangy avatar spytensor 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  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  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  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

detect_steel_bar's Issues

something about data enhancement processing

hi,big old!How to do some data enhancement processing on the training picture, I found that increasing the size of the input picture will also lead to missed detection or misdetection.There are some fake targets that are really no different from real goals. This is really difficult to deal with.

batch_size and collater

thanks for your work. when I try to figure out it, I have some probloms about this. could you help me to explain these?
1.why the bath_size is set to 1, it seems too small
2.it seems to spend too much time in collater process when loading train data. so the GPU is waiting this GPU-Util is very slow . do you have good idea to solve it?

关于nms.so的问题

你好,我的Linux原来的cuda版本是10.0的。然后我在conda的虚拟环境里面安装好了cuda9.0版本、torch0.4.1版本。可是在运行main.py的时候,还是提示错误:ImportError : detect_steel_bar-master/retinanet/lib/nms/_ext/nms/_nms.so: undefined symbol: __cudaPopCallConfiguration
我也不知道是为什么了,明明cuda版本已经对应好了呀。

数据集

请问还有数据集么,可以私发我一份么,官网上已经下载不到数据集了,感激不尽![email protected]

TypeError: dist must be a Distribution instance

when I input "bash build.sh", it occurs this error:
Compiling nms kernels by nvcc...
Including CUDA code.
/home/ljk/PycharmProjects/detect_steel_bar-master/retinanet/lib/nms
Traceback (most recent call last):
File "build.py", line 31, in
extra_compile_args=['-std=c99']
File "/home/ljk/miniconda3/envs/pt04/lib/python3.6/site-packages/setuptools/init.py", line 163, in init
_Command.init(self, dist)
File "/home/ljk/miniconda3/envs/pt04/lib/python3.6/distutils/cmd.py", line 57, in init
raise TypeError("dist must be a Distribution instance")
TypeError: dist must be a Distribution instance
what I should do?Thanks

problem about convert.py

当我运行convert.py的时候,会报错:FileNotFoundError: [Errno 2] File b'train_labels.csv' does not exist: b'train_labels.csv'。
但是train_labels.csv是在当前路径下的,作者有遇到过这个问题吗?

关于 predict.py

predict.py文件里的写结果到文件的时候str(int(box[1])) + " " + str(int(box[0])) + " " + str(int(box[3])) + " " +str(int(box[2]), box为什么不按照str(int(box[0])) + " " + str(int(box[1])) + " " + str(int(box[2])) + " " +str(int(box[3])来写,我的理解是box输出的格式不是(x_min,y_min,x_max,y_max)吗?

best_models directory does not exists

It seems that in the main.py line 184, you copy the model.pt before make the dir 'best models'. I am wondering whether you should add the follow code at line 115.
if not os.path.exists('best_models'): os.makedirs('best_models')

预测效果图

你好,我最近在用自己的方法测试数钢筋的效果,下图是我的效果图,提交结果后F1-score的得分为0.649。我本来以为得分会更高,我就不知道是框的问题还是什么问题导致效果差,请问你建议我从哪方面来提升效果呢,感谢。
image

anchor 匹配 gt

您好,我看到在loss.py文件中,是对预设的所有anchors分配IoU最大的gt(torch.max函数),这样会不会不太合理,虽然说预测框anchor数量很多,大概率不会有gt没有分配到anchor。
我觉得反过来给每个anno按照IoU分配最大的anchor是不是会更合理一些

数据集

您好,比赛链接那个部分,下载总失败,您还有这个数据集吗

关于 freeze_bn()

训练的时候第125代码retinanet.module.freeze_bn()、还有网络初始化时222行self.freeze_bn()。请问不让bn的参数进行训练的原因是什么?这两个地方没看懂。

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.