激光聚类算法-depth_clustering安装运行

由于指导老师的要求,最近要看一下深度学习聚类的算法,当然,都是基于velodyne激光雷达来做的,如果要改用其他雷达,那就需要自己进行适配了。
废话不多说!

一:cmake环境下的编译运行

1.项目地址
项目链接:depth_clustering
我的安装环境:ubuntu 1804 ,ros-melodic
以及:sudo apt install libopencv-dev libqglviewer-dev-qt5 freeglut3-dev qtbase5-dev
2.安装

git clone https://github.com/PRBonn/depth_clustering src/depth_clustering

下载下来的包叫depth_clustering_master,讲道理这个不影响什么,但是博主略微有些强迫症,就改名为depth_clustering。那么,接下来,

cd depth_clustering
mkdir build
cd build
cmake ..
make -j4
ctest -VV  # run unit tests, optional

编译过就万事大吉了!
3.下载测试数据

mkdir data/; wget http://www.mrt.kit.edu/z/publ/download/velodyneslam/data/scenario1.zip -O data/moosmann.zip; unzip data/moosmann.zip -d data/; rm data/moosmann.zip

下载下来的数据是.png格式的,都是深度图,总共也就110M左右。
4.运行测试看效果

cd depth_clustering/build/devel/lib/depth_clustering/
./qt_gui_app #运行可视化界面,这个就很牛批了

效果如图所示:
在这里插入图片描述点击,open_folder,选择你刚才下载的数据目录,然后点击play,运行起来如下图所示结果:
在这里插入图片描述这只是demo,它带有ros接口,不过作为一个ros包我并未将它编译过,所以先看一下非ros环境下的效果!

二:ros环境下的编译运行

1.编译如上,所以基本上面编译过,就可以用了。
2.启动自己的bag(下面跑的包是我自己的bag,在停车场用16线velodyne 录的)

rosbag play -l --clock parking.bag --topics /velodyne_points
cd catkin_depth
source devel/setup.bash
rosrun depth_clustering show_objects_node --num_beams 16 --angle 10

4.没有rospublisher节点,出来的图像直接是用qt做的,如下:
在这里插入图片描述
原文中用的是64线雷达,而我用的是16线,所以我觉得这个影响还是不小的,效果也不尽如人意!

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
在农业领域,K-means聚类算法可以应用于植物分类、作物生长分析、土壤分析和气象数据分析等方面。以下是一个使用Python实现K-means聚类算法的示例,用于分析某农场不同作物的生长情况。 假设我们有一组数据,包含了不同作物的生长数据,包括作物的高度、根部深度和叶面积等信息。我们希望通过K-means聚类算法将这些作物分成不同的组,以便更好地了解它们的生长情况。 首先,我们需要导入需要用到的Python库: ``` python import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans ``` 接着,我们可以读入数据并进行初步的探索: ``` python data = pd.read_csv('crop_data.csv') print(data.head()) print(data.describe()) ``` 接下来,我们可以使用K-means算法将数据进行聚类。我们可以尝试不同的聚类数量,比如2、3、4等,看看哪一个聚类数最合适。这里我们假设最合适的聚类数为3: ``` python # 选择聚类数为3 kmeans = KMeans(n_clusters=3) # 选择需要进行聚类的特征 X = data[['height', 'root_depth', 'leaf_area']] # 进行聚类 kmeans.fit(X) ``` 现在,我们已经将数据分成了3个组。我们可以使用以下代码将数据可视化,以便更好地了解每个组的特征: ``` python # 将聚类结果添加到原始数据中 data['cluster'] = kmeans.labels_ # 绘制不同聚类的散点图 plt.scatter(data[data.cluster == 0]['height'], data[data.cluster == 0]['root_depth'], s = 100, c = 'red', label = 'Cluster 1') plt.scatter(data[data.cluster == 1]['height'], data[data.cluster == 1]['root_depth'], s = 100, c = 'blue', label = 'Cluster 2') plt.scatter(data[data.cluster == 2]['height'], data[data.cluster == 2]['root_depth'], s = 100, c = 'green', label = 'Cluster 3') # 绘制聚类中心 plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s = 100, c = 'black', label = 'Centroids') plt.title('Crop Clusters') plt.xlabel('Height') plt.ylabel('Root Depth') plt.legend() plt.show() ``` 这段代码将绘制一个散点图,其中不同颜色的点表示不同的聚类,黑色的点表示聚类中心: ![crop_clusters](https://img-blog.csdnimg.cn/20211001094605874.png) 通过这个图表,我们可以看到每个聚类的特征。例如,红色的聚类代表高度较低、根深较浅的作物,蓝色的聚类代表高度较高、根深较深的作物,而绿色的聚类代表叶面积较大的作物。 这就是一个简单的使用K-means聚类算法的Python实例,用于分析农业领域中的作物生长情况。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值