热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Lidar论文学习

文章复现-speedandaccuracytradeoffforLiDARData…作者初出茅庐-文章复现文章复现大致包括:环境配置数据复现个人数据库尝试环境配置

文章复现-speed and accuracy tradeoff for LiDAR Data…@作者

初出茅庐-文章复现
文章复现大致包括:环境配置+数据复现+个人数据库尝试

环境配置
vpn: https://www.maomi.in/user/tutorial?os=linux&client=clash##

https://github.com/wangguojun2018/LidarRoadBoundaryDetection

Install proto3
Please check README.md for proto3 installation instructions.
软件包:
安装后:更新protobu文件
protoc -I=S R C D I R − − c p p o u t = SRC_DIR --cpp_out=SRC
D

IR−−cpp
o

ut=DST_DIR $SRC_DIR/addressbook.proto
例如:当前目录里的proto
protoc -I=./ --cpp_out=./ xxx.proto

Install glog
原文的打不开,现在用的pip install glog

Install OpenCV 3.4.5++ and PCL 1.7++

opencv 安装-参考链接:
https://www.cnblogs.com/phyger/p/14069437.html

原文俩出小修改:
修改1:opencv_contrib 无法下载,可从下链接下载:
https://github.com/opencv/opencv_contrib/tree/3.4.5

修改2:
opencv安装opencv_contrib出现无法打开包括文件: “opencv2/xfeatures2d/cuda.hpp”的解决方法:
这里比较简单的就是直接改掉头文件

解决办法&#xff1a; 在CMakeLists.txt增加以下内容&#xff1a; &#xff08;这里原文有点问题&#xff0c;大家注意修改一个是路径&#xff0c;还有一个是版本是自己安装的opencv版本&#xff09;INCLUDE_DIRECTORIES("<你的路径>/opencv-3.4.5/opencv_contrib-3.4.5/modules/xfeatures2d/include")
CMakeLists.txt文件所在路径为&#xff1a; <你的路径>/opencv-3.4.5/modules/stitching/ CMakeLists.txt

验证是否安装成功&#xff1a;
首先ubuntu打开相机&#xff1a;
直接在活动中找到茄子&#xff08;cheese&#xff09;&#xff0c;如果没有请安装&#xff1a;sudo apt-get install cheese

opencv demo验证&#xff1a;
cd <你的路径>/opencv-3.4.5/samples/cpp/example_cmake
cmake.
make
./opencv_example
如果能打开相机说明成功&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;

PCL安装 - 参考链接&#xff1a;
https://blog.csdn.net/HHT0506/article/details/104439748
我在20.04.3实验成功

limbo build&#xff1a;
clone limbo
cd LidarRoadBoundaryDetection
git clone https://github.com/resibots/limbo

Build limbo
Then please check official documentation to build and intall limbo&#xff1a;https://github.com/resibots/libcmaes
有时候网络问题&#xff1a;GitHub的文件无法clone&#xff0c;需要翻墙。

目前这里有些问题&#xff0c;好像没有编成&#xff0c;导致demo frame无法运行。

编译问题&#xff1a;
1 error&#xff1a;#error PCL requires C&#43;&#43;14 or above
解决&#xff1a;在CMakeList中新增一句&#xff1a;
set(CMAKE_CXX_STANDARD 14)
2 boost ‘boost::mutex’ has not been declared:
解决&#xff1a; 安装boost
https://blog.csdn.net/hailangdeyingzi/article/details/73527877
上面不行&#xff0c;试试&#xff1a;
www.cnblogs.com/oracleloyal/p/6060779.html

boost 测试代码&#xff1a;
https://blog.csdn.net/Jailman/article/details/86150810?utm_medium&#61;distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.essearch_pc_relevant&spm&#61;1001.2101.3001.4242.2

main_thread.cpp修改&#xff1a;
添加头文件&#xff1a;
#include
#include

bug补充&#xff1a;
intel TBB Installation
https://blog.csdn.net/weixin_35782556/article/details/113584141?utm_medium&#61;distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-5.no_search_link&spm&#61;1001.2101.3001.4242.4
copy reference below:
https://blog.csdn.net/tfb760/article/details/106096245
下载&#xff1a;
first:选择合适的版本分支
最后&#xff1a;
注意添加路径需要修改自己的路径

test
cd examples
make

NLopt Installation
https://blog.csdn.net/eaglecoder/article/details/104335822?utm_medium&#61;distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-1-104335822.pc_agg_new_rank&utm_term&#61;nlopt%E5%AE%89%E8%A3%85&#43;ubuntu&spm&#61;1000.2123.3001.4430

交叉编译工具安装&#xff1a;
gcc: https://blog.csdn.net/weixin_33672400/article/details/93757824
sudo apt-get install gcc-arm-linux-gnueabi
g&#43;&#43;:
sudo apt-get install g&#43;±arm-linux-gnueabi

locate: https://blog.csdn.net/chenshe1571/article/details/100714197
locate如果没有反应&#xff1a;可以试试关闭终端再打开&#43; sudo updatedb

limbo build:

error:
/usr/bin/ld: 当搜索用于 /usr/local/lib/libnlopt.a 时跳过不兼容的 -lnlopt

尝是不是NLopt安装不成功。

更新nlopt安装方式&#xff1a;
http://www.resibots.eu/limbo/tutorials/compilation.html
./configure --with-cxx --enable-shared --without-python --without-matlab --without-octave
make
sudo make install

limbo build成功

出现return errr

usr/bin/ld: lib/libextract.a(road_boundary.pb.cc.o)&#x1f626;.data.rel.ro&#43;0x50): more undefined references to &#96;google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)’ follow
collect2: error: ld returned 1 exit status
以下操作仍然不能解决&#xff0c;但proto安装成功
proto anzhuang gengxin:
https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
https://blog.csdn.net/kdchxue/article/details/81046192

上个 error solved!

/home/gj/lidar/LidarRoadBoundaryDetection/limbo/src/limbo/serialize/text_archive.hpp:72:35: error: variable ‘std::ofstream ofs’ has initializer but incomplete type
72 | std::ofstream ofs(fname(object_name).c_str());

头文件添加&#xff1a;
#include

最新 error&#xff1a;
应该是protobuf问题
在这里插入图片描述
CMakeLists做了如下修改&#xff1a;

cmake_minimum_required(VERSION 2.8)

project(boundary_detection)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS “-std&#61;c&#43;&#43;11 -march&#61;native”)
set(CMAKE_BUILD_TYPE Release CACHE STRING “set build type to release”)
set(CMAKE_MODULE_PATH CMAKEMODULEPATH"{CMAKE_MODULE_PATH} "CMAKEMODULEPATH"{CMAKE_CURRENT_LIST_DIR}/cmake")
set(LIMBO_INCLUDE_DIRS ./limbo/src)

find_package(OpenMP REQUIRED)
find_package(Protobuf REQUIRED)
if(PROTOBUF_FOUND)
message(STATUS “protobuf library found”)
else()
message(FATAL_ERROR “protobuf library is needed but cant be found”)
endif()

find_package(Boost)
find_package(PCL REQUIRED)
find_package(Eigen3 REQUIRED)
find_package(OpenCV REQUIRED)
find_package(Glog REQUIRED)

include_directories(/home/gj/lidar/LidarRoadBoundaryDetection/limbo/src
${PCL_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}
${Qt5Charts_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS}
${LIMBO_INCLUDE_DIRS} ${Protobuf_INCLUDE_DIRS} GLOGINCLUDEDIRS.)INCLUDEDIRECTORIES({GLOG_INCLUDE_DIRS} .) INCLUDE_DIRECTORIES(GLOGINCLUDEDIRS.)INCLUDEDIRECTORIES({CMAKE_CURRENT_BINARY_DIR})

link_directories(${PCL_LIBRARY_DIRS} /home/gj/lidar/LidarRoadBoundaryDetection/limbo/build/src)
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS road_boundary.proto)


protobuf_generate_cpp(road_boundary.pb.cpp road_boundary.pb.h road_boundary.proto)

add_definitions(${PCL_DEFINITIONS})

add_subdirectory(./lib)

#add_library(extract ${SRC})
#target_link_libraries(extract ${PCL_LIBRARIES} OpenMP::OpenMP_CXX)

add_executable(demo_frame src/main.cpp)

target_link_libraries(demo_frame ${PCL_LIBRARIES} ${OpenCV_LIBS} extract
${Protobuf_LIBRARIES} ${GLOG_LIBRARIES})

add_executable(demo_video src/main_thread.cpp ${PROTO_SRCS} ${PROTO_HDRS})

target_link_libraries(demo_video ${PCL_LIBRARIES} ${OpenCV_LIBS} extract
${Protobuf_LIBRARIES} ${GLOG_LIBRARIES})

————————————————
版权声明&#xff1a;本文为CSDN博主「mark_GJ」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。
原文链接&#xff1a;https://blog.csdn.net/mark_GJ/article/details/121210107


推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 本文介绍了一种图的存储和遍历方法——链式前向星法,该方法在存储带边权的图时时间效率比vector略高且节省空间。然而,链式前向星法存图的最大问题是对一个点的出边进行排序去重不容易,但在平行边无所谓的情况下选择这个方法是非常明智的。文章还提及了图中搜索树的父子关系一般不是很重要,同时给出了相应的代码示例。 ... [详细]
  • 在C#中,使用关键字abstract来定义抽象类和抽象方法。抽象类是一种不能被实例化的类,它只提供部分实现,但可以被其他类继承并创建实例。抽象类可以用于类、方法、属性、索引器和事件。在一个类声明中使用abstract表示该类倾向于作为其他类的基类成员被标识为抽象,或者被包含在一个抽象类中,必须由其派生类实现。本文介绍了C#中抽象类和抽象方法的基础知识,并提供了一个示例代码。 ... [详细]
author-avatar
sprout--_557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有