# SeedlingCV **Repository Path**: deepbiology/seedlingcv ## Basic Information - **Project Name**: SeedlingCV - **Description**: Identify wheat/rice seedling with computer vision. - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-02-12 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # (快速开始)环境配置: - Python>=3.7 - pytorch>=1.7 `https://pytorch.org/get-started/locally/ ` 你可以选择适合自己的pytorch版本进行安装: ![ssss](Quickstart.assets/ssss.png) - cuda>=10.2 - pycharm ## 项目下载 ### 项目地址: https://gitee.com/deepbiology/seedlingcv https://github.com/johnsunx1/SeedlingCV `$ cd Wheat` `$ pip install -r requirements.txt # install dependencies` # 操作指南: ## 数据获取 通过无人机获取麦田视频,使无人机保持适当高度水平飞行,以获得较为清晰的麦田视频 ![12](Quickstart.assets/12.png) 我们为用户提供了一个视频处理工具包:`Vedio_util` 将视频放在`Vedio_util`文件夹下: ![13](Quickstart.assets/13.png) ### 将视频转为帧 * 在将视频转换为帧之前需要先将`get_picture.py`第二行,修改为自己视频的名称。 ![30](Quickstart.assets/30.png) * 然后根据视频情况调整截取的帧与帧之间的间隔(间隔单位为帧数,如下)。用户必须保证从视频中截取的两相邻帧有大于70%的重合度,以便于后续合成整个麦田的图片。 ![31](Quickstart.assets/31.png) * 通过运行`get_picture.py`可以获得视频帧,视频帧保存在`picture`文件夹中,用户可以在`get_picture.py`,选择视频的路径以及选择视频帧的间隔,得到的结果保存在`vedio_util/picture`文件夹中。 ![28](Quickstart.assets/28-1644926599348.png) ### 图片合成麦田全景图 得到视频帧后,我们需要将视频帧进行拼接得到麦田全景图。如果你要合成的麦田全景图较小的话可以通过运行`compound_picture.py`合成全景图,但是当麦田较大时,我们建议使用[webodm](https://github.com/OpenDroneMap/WebODM)进行合成。 ![15](Quickstart.assets/15.png) 执行`compound_picture.py`,结果为final-1.jpg (原图)final-2.jpg(我们为用户处理过后的图片),用户根据自己实际情况进行选择,保存在`Vedio_util`文件夹下(如下): final-1:![final-1](Quickstart.assets/final-1.png) final-2:![final-2](Quickstart.assets/final-2.png) ### 将全景图分割 我们需要将麦田全景图(final.jpg)分割,以便图片规格符合识别要求(分割后的图片用于麦苗个数检测,不用于空缺检测,演示图片的小麦时期,小麦已经生长的较为茂密,并不适用于麦苗检测)。通过运行`shear.py` 得到的结果保存在`sheared`中。 用户可以在此处选择要分割的图片: ![40](Quickstart.assets/40.png) ## 空缺识别 * 将全景图放到`Vacant-Count/img`,图片格式为高大于宽,如下: ![33](Quickstart.assets/33.png) 避免出现: ![32](Quickstart.assets/32.png) * 将图片放入后,用户在Vacant_detect.py此处将名称修改为自己图片的名称: ![34](Quickstart.assets/34.png) * 参数scale 为每像素代表实际多少厘米,为分数形式:分子代表多少厘米,分母代表像素,用户可按照实际情况 进行选择。![36](Quickstart.assets/36.png) * 参数filter_len为空缺筛选范围, ![37](Quickstart.assets/37.png) * 参数filter_len为空缺筛选范围,默认空缺筛选范围为20cm-80cm,用户也可以设置多个筛选范围,如下: ```python parser.add_argument('--filter_len', default=[[20, 30],[40,50]], help='the interval of len to filter') ``` 此时结果只包含长度在20-30,40-50之间空缺的统计结果,其余长度空缺将被忽略。 * 运行`Vacant_detect.py`即可。结果保存在`out`中。 ![35](Quickstart.assets/35.png) * 如果柱状图显示效果不好,出现拥挤,比如:![image-20220211184829178](Quickstart.assets/image-20220211184829178.png) ​ 可尝试修改:figsize 的比例。 ![image-20220211184941379](Quickstart.assets/image-20220211184941379.png) ## 麦苗数量检测 将全景图分割成的较小的图片放在`Wheat-count/Dete-orig`下,运行`preprocess_detect.py`将图片进行预处理为特定格式。得到的结果在`Detect_processed`下。 运行`detect.py`即可得到效果图以及包含统计信息的txt文件,结果保存至out_dectect中。 # 代码参考来源: https://github.com/ZhihengCV/Bayesian-Crowd-Counting https://github.com/dyh/unbox_yolov5_deepsort_counting https://github.com/ultralytics/yolov5 # 主要贡献者: https://gitee.com/deepbiology_0 https://gitee.com/l1233 https://gitee.com/zhao-chuanfei # 更详细说明请参考: https://gitee.com/deepbiology/seedlingcv/blob/master/expert.md