master
武博文 2024-06-12 17:37:03 +08:00 committed by jzq
parent a678437cee
commit eb5786dd80
17 changed files with 6278 additions and 532 deletions

View File

@ -1,6 +1,7 @@
#pragma once
#include "opencv2/core/core.hpp"
#include <opencv2/core/utility.hpp>
#include <iostream>
#include <vector>
@ -35,17 +36,17 @@ typedef PointCloud<PointXYZ> PointCloudXYZ;
class DepthProcessor{
private:
cv::Mat imgRGB;
cv::Mat imgDepth; // or pointCloud detect by lidar
cv::Mat obstacle; // [dis, cls, maby size]
public:
//控制显示和打印
bool bPrintObjs = false;
bool bViewRGB = false;
bool bViewCloud = false;
//点云显示对象
visualization::PCLVisualizer::Ptr pcdViewer;
visualization::PCLVisualizer::Ptr tmpViewer;
cv::Mat mK; // camera intrinsic or external parameters between camera and lidar
//最近物体信息
double dist, max_x, max_y, min_x, min_y;
std::string label;
@ -53,27 +54,13 @@ public:
PointCloudXYZ::Ptr cloud;
//相机参数
double fx, fy, cx, cy;
//深度阈值,单位米
double minDepth, maxDepth;
//过滤孤立点的阈值/
int thre_count;
double radius;
//过滤通行区域的阈值
double thre_low_x, thre_high_x, thre_low_y, thre_high_y;
//地面高度阈值
double thre_ground;
//相机初始化高度
float camHigh;
//判断物体的点云个数阈值、半径阈值
int thre_ponit_count, thre_point_radius;
float ground_height;
DepthProcessor(const std::string file_path, const cv::Mat tmp_mk);
DepthProcessor();
bool obstacleDetect(const cv::Mat depthMat, const Eigen::Affine3f& transform);
PointCloudXYZ::Ptr depth2Cloud(PointCloudXYZ::Ptr oriCloud, const cv::Mat depthMat, int startRow, int endRow);
PointCloudXYZ::Ptr depth2Cloud(const cv::Mat depthMat, int startRow, int endRow);
bool camHighInit(const cv::Mat depthMat, const Eigen::Affine3f& transform);
static PointCloudXYZ::Ptr downsampling(const PointCloudXYZ::Ptr& pointCloud, float leaf);
@ -83,59 +70,7 @@ public:
static void calHistogram(const PointCloudXYZ::Ptr& pointCloud, float& maxY, std::vector<std::vector<int>>& histogram);
static void radiusSearch(const PointCloudXYZ::Ptr& pointCloud, const PointXYZ& queryPoint, const float& radius, std::vector<int>& indResults);
PointCloudXYZ::Ptr delGround_else(const PointCloudXYZ::Ptr& pointCloud, std::vector<int> index);
void RadiusOutlierFilter(const PointCloudXYZ::Ptr &pcd_cloud0);
void load_config(const string filepath);
void ConditionFilter(const double &ground);
double IOU(double max_x1,double min_x1,double max_y1,double min_y1,double max_x2,double min_x2,double max_y2,double min_y2);
void calHistogramZ(const PointCloudXYZ::Ptr &pointCloud, std::vector<std::vector<int>>& histogram);
bool obstacleRecognize(cv::Mat boxes);
cv::Mat getObstacle();
};
//用作深度转点云的 多线程并行操作
class Depth2cloud : public cv::ParallelLoopBody{
public:
cv::Mat depthMat;
PointCloudXYZ::Ptr _cloud;
Depth2cloud(cv::Mat mat, PointCloudXYZ::Ptr cloud):depthMat(mat), _cloud(cloud){};
virtual void operator()(const cv::Range& range) const override{
PointCloudXYZ::Ptr tmpcloud(new PointCloudXYZ);
int col = depthMat.cols;
cv::Mat image = depthMat.clone();
image.convertTo(image, CV_32FC1);
for(int i=range.start;i<range.end;i++){
for(int j=0;j<col;j++){
// 获取深度值
float depth = image.at<float>(i, j);
// 忽略深度值小于320mm的点
if (depth <= 320)
continue;
// 计算三维坐标
double X = (j - 322.771) * depth / 388.588 / 1000;
if(X > 0.5 || X < -0.5)
continue;
double Y = (i - 236.947) * depth / 388.588 / 1000;
double Z = depth / 1000;
// 创建点云点并设置坐标
PointXYZ point;
point.x = X;
point.y = Y;
point.z = Z;
// 将点添加到点云中
tmpcloud->push_back(point);
}
}
*_cloud = *tmpcloud;
}
};

2287
objs/DepthProcessor.cpp.mk Normal file

File diff suppressed because it is too large Load Diff

311
objs/Yolo.cpp.mk Normal file
View File

@ -0,0 +1,311 @@
objs/Yolo.cpp.o: src/Yolo.cpp /usr/include/stdc-predef.h \
/usr/include/opencv4/opencv2/opencv.hpp \
/usr/include/opencv4/opencv2/opencv_modules.hpp \
/usr/include/opencv4/opencv2/core.hpp \
/usr/include/opencv4/opencv2/core/cvdef.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/limits.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/syslimits.h \
/usr/include/limits.h \
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \
/usr/include/aarch64-linux-gnu/bits/wordsize.h \
/usr/include/aarch64-linux-gnu/bits/long-double.h \
/usr/include/aarch64-linux-gnu/gnu/stubs.h \
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \
/usr/include/aarch64-linux-gnu/bits/posix1_lim.h \
/usr/include/aarch64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/aarch64-linux-gnu/bits/posix2_lim.h \
/usr/include/aarch64-linux-gnu/bits/xopen_lim.h \
/usr/include/aarch64-linux-gnu/bits/uio_lim.h \
/usr/include/opencv4/opencv2/core/hal/interface.h \
/usr/include/c++/7/cstddef \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h \
/usr/include/c++/7/cstdint \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
/usr/include/aarch64-linux-gnu/bits/types.h \
/usr/include/aarch64-linux-gnu/bits/typesizes.h \
/usr/include/aarch64-linux-gnu/bits/wchar.h \
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h \
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/arm_neon.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/arm_fp16.h \
/usr/include/c++/7/array /usr/include/c++/7/utility \
/usr/include/c++/7/bits/stl_relops.h /usr/include/c++/7/bits/stl_pair.h \
/usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
/usr/include/c++/7/type_traits /usr/include/c++/7/initializer_list \
/usr/include/c++/7/stdexcept /usr/include/c++/7/exception \
/usr/include/c++/7/bits/exception.h \
/usr/include/c++/7/bits/exception_ptr.h \
/usr/include/c++/7/bits/exception_defines.h \
/usr/include/c++/7/bits/cxxabi_init_exception.h \
/usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
/usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
/usr/include/c++/7/string /usr/include/c++/7/bits/stringfwd.h \
/usr/include/c++/7/bits/memoryfwd.h \
/usr/include/c++/7/bits/char_traits.h \
/usr/include/c++/7/bits/stl_algobase.h \
/usr/include/c++/7/bits/functexcept.h \
/usr/include/c++/7/bits/cpp_type_traits.h \
/usr/include/c++/7/ext/type_traits.h \
/usr/include/c++/7/ext/numeric_traits.h \
/usr/include/c++/7/bits/stl_iterator_base_types.h \
/usr/include/c++/7/bits/stl_iterator_base_funcs.h \
/usr/include/c++/7/debug/assertions.h \
/usr/include/c++/7/bits/stl_iterator.h \
/usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
/usr/include/c++/7/bits/predefined_ops.h \
/usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
/usr/include/wchar.h /usr/include/aarch64-linux-gnu/bits/floatn.h \
/usr/include/aarch64-linux-gnu/bits/floatn-common.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h \
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h \
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h \
/usr/include/aarch64-linux-gnu/bits/types/FILE.h \
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \
/usr/include/c++/7/bits/allocator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h \
/usr/include/c++/7/ext/new_allocator.h \
/usr/include/c++/7/bits/localefwd.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h \
/usr/include/c++/7/clocale /usr/include/locale.h \
/usr/include/aarch64-linux-gnu/bits/locale.h /usr/include/c++/7/iosfwd \
/usr/include/c++/7/cctype /usr/include/ctype.h /usr/include/endian.h \
/usr/include/aarch64-linux-gnu/bits/endian.h \
/usr/include/aarch64-linux-gnu/bits/byteswap.h \
/usr/include/aarch64-linux-gnu/bits/byteswap-16.h \
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h \
/usr/include/c++/7/bits/ostream_insert.h \
/usr/include/c++/7/bits/cxxabi_forced.h \
/usr/include/c++/7/bits/stl_function.h \
/usr/include/c++/7/backward/binders.h \
/usr/include/c++/7/bits/range_access.h \
/usr/include/c++/7/bits/basic_string.h \
/usr/include/c++/7/ext/atomicity.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/aarch64-linux-gnu/bits/types/time_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/aarch64-linux-gnu/bits/sched.h \
/usr/include/aarch64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
/usr/include/aarch64-linux-gnu/bits/time.h \
/usr/include/aarch64-linux-gnu/bits/timex.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/aarch64-linux-gnu/bits/setjmp.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h \
/usr/include/c++/7/ext/alloc_traits.h \
/usr/include/c++/7/bits/alloc_traits.h \
/usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdlib \
/usr/include/stdlib.h /usr/include/aarch64-linux-gnu/bits/waitflags.h \
/usr/include/aarch64-linux-gnu/bits/waitstatus.h \
/usr/include/aarch64-linux-gnu/sys/types.h \
/usr/include/aarch64-linux-gnu/sys/select.h \
/usr/include/aarch64-linux-gnu/bits/select.h \
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/aarch64-linux-gnu/sys/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/sysmacros.h /usr/include/alloca.h \
/usr/include/aarch64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
/usr/include/stdio.h /usr/include/aarch64-linux-gnu/bits/libio.h \
/usr/include/aarch64-linux-gnu/bits/_G_config.h \
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h \
/usr/include/aarch64-linux-gnu/bits/sys_errlist.h \
/usr/include/c++/7/cerrno /usr/include/errno.h \
/usr/include/aarch64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/aarch64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/c++/7/bits/functional_hash.h \
/usr/include/c++/7/bits/basic_string.tcc \
/usr/include/opencv4/opencv2/core/version.hpp \
/usr/include/opencv4/opencv2/core/base.hpp /usr/include/c++/7/climits \
/usr/include/c++/7/algorithm /usr/include/c++/7/bits/stl_algo.h \
/usr/include/c++/7/bits/algorithmfwd.h \
/usr/include/c++/7/bits/stl_heap.h /usr/include/c++/7/bits/stl_tempbuf.h \
/usr/include/c++/7/bits/stl_construct.h \
/usr/include/c++/7/bits/uniform_int_dist.h /usr/include/c++/7/limits \
/usr/include/opencv4/opencv2/core/cvstd.hpp /usr/include/c++/7/cstring \
/usr/include/string.h /usr/include/strings.h /usr/include/c++/7/cmath \
/usr/include/math.h /usr/include/aarch64-linux-gnu/bits/math-vector.h \
/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h \
/usr/include/aarch64-linux-gnu/bits/fp-logb.h \
/usr/include/aarch64-linux-gnu/bits/fp-fast.h \
/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/aarch64-linux-gnu/bits/mathcalls.h \
/usr/include/aarch64-linux-gnu/bits/iscanonical.h \
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp \
/usr/include/c++/7/memory /usr/include/c++/7/bits/stl_uninitialized.h \
/usr/include/c++/7/bits/stl_raw_storage_iter.h \
/usr/include/c++/7/ext/concurrence.h \
/usr/include/c++/7/bits/uses_allocator.h \
/usr/include/c++/7/bits/unique_ptr.h /usr/include/c++/7/tuple \
/usr/include/c++/7/bits/invoke.h /usr/include/c++/7/bits/shared_ptr.h \
/usr/include/c++/7/bits/shared_ptr_base.h \
/usr/include/c++/7/bits/allocated_ptr.h \
/usr/include/c++/7/bits/refwrap.h \
/usr/include/c++/7/ext/aligned_buffer.h \
/usr/include/c++/7/bits/shared_ptr_atomic.h \
/usr/include/c++/7/bits/atomic_base.h \
/usr/include/c++/7/bits/atomic_lockfree_defines.h \
/usr/include/c++/7/backward/auto_ptr.h \
/usr/include/opencv4/opencv2/core/neon_utils.hpp \
/usr/include/opencv4/opencv2/core/vsx_utils.hpp /usr/include/assert.h \
/usr/include/opencv4/opencv2/core/check.hpp \
/usr/include/opencv4/opencv2/core/traits.hpp \
/usr/include/opencv4/opencv2/core/matx.hpp \
/usr/include/opencv4/opencv2/core/saturate.hpp \
/usr/include/opencv4/opencv2/core/fast_math.hpp \
/usr/include/opencv4/opencv2/core/types.hpp /usr/include/c++/7/cfloat \
/usr/lib/gcc/aarch64-linux-gnu/7/include/float.h \
/usr/include/c++/7/vector /usr/include/c++/7/bits/stl_vector.h \
/usr/include/c++/7/bits/stl_bvector.h /usr/include/c++/7/bits/vector.tcc \
/usr/include/opencv4/opencv2/core/mat.hpp \
/usr/include/opencv4/opencv2/core/bufferpool.hpp \
/usr/include/opencv4/opencv2/core/mat.inl.hpp \
/usr/include/opencv4/opencv2/core/persistence.hpp \
/usr/include/opencv4/opencv2/core/operations.hpp \
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp \
/usr/include/c++/7/complex /usr/include/c++/7/sstream \
/usr/include/c++/7/istream /usr/include/c++/7/ios \
/usr/include/c++/7/bits/ios_base.h \
/usr/include/c++/7/bits/locale_classes.h \
/usr/include/c++/7/bits/locale_classes.tcc \
/usr/include/c++/7/system_error \
/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h \
/usr/include/c++/7/streambuf /usr/include/c++/7/bits/streambuf.tcc \
/usr/include/c++/7/bits/basic_ios.h \
/usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
/usr/include/wctype.h /usr/include/aarch64-linux-gnu/bits/wctype-wchar.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h \
/usr/include/c++/7/bits/streambuf_iterator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h \
/usr/include/c++/7/bits/locale_facets.tcc \
/usr/include/c++/7/bits/basic_ios.tcc /usr/include/c++/7/ostream \
/usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/bits/istream.tcc \
/usr/include/c++/7/bits/sstream.tcc \
/usr/include/opencv4/opencv2/core/utility.hpp \
/usr/include/c++/7/functional /usr/include/c++/7/bits/std_function.h \
/usr/include/c++/7/mutex /usr/include/c++/7/chrono \
/usr/include/c++/7/ratio /usr/include/c++/7/ctime \
/usr/include/c++/7/bits/parse_numbers.h \
/usr/include/c++/7/bits/std_mutex.h \
/usr/include/opencv4/opencv2/core/optim.hpp \
/usr/include/opencv4/opencv2/core/ovx.hpp \
/usr/include/opencv4/opencv2/core/cvdef.h \
/usr/include/opencv4/opencv2/calib3d.hpp \
/usr/include/opencv4/opencv2/features2d.hpp \
/usr/include/opencv4/opencv2/flann/miniflann.hpp \
/usr/include/opencv4/opencv2/flann/defines.h \
/usr/include/opencv4/opencv2/flann/config.h \
/usr/include/opencv4/opencv2/core/affine.hpp \
/usr/include/opencv4/opencv2/dnn.hpp \
/usr/include/opencv4/opencv2/dnn/dnn.hpp \
/usr/include/opencv4/opencv2/core/async.hpp \
/usr/include/opencv4/opencv2/dnn/../dnn/version.hpp \
/usr/include/opencv4/opencv2/dnn/dict.hpp /usr/include/c++/7/map \
/usr/include/c++/7/bits/stl_tree.h /usr/include/c++/7/bits/stl_map.h \
/usr/include/c++/7/bits/stl_multimap.h \
/usr/include/opencv4/opencv2/dnn/layer.hpp \
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp \
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp \
/usr/include/opencv4/opencv2/dnn/utils/../dnn.hpp \
/usr/include/opencv4/opencv2/flann.hpp \
/usr/include/opencv4/opencv2/flann/flann_base.hpp \
/usr/include/c++/7/cassert /usr/include/opencv4/opencv2/flann/general.h \
/usr/include/opencv4/opencv2/flann/matrix.h \
/usr/include/opencv4/opencv2/flann/params.h \
/usr/include/opencv4/opencv2/flann/any.h \
/usr/include/opencv4/opencv2/flann/defines.h /usr/include/c++/7/iostream \
/usr/include/opencv4/opencv2/flann/saving.h \
/usr/include/opencv4/opencv2/flann/nn_index.h \
/usr/include/opencv4/opencv2/flann/result_set.h /usr/include/c++/7/set \
/usr/include/c++/7/bits/stl_set.h /usr/include/c++/7/bits/stl_multiset.h \
/usr/include/opencv4/opencv2/flann/all_indices.h \
/usr/include/opencv4/opencv2/flann/kdtree_index.h \
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h \
/usr/include/opencv4/opencv2/flann/dist.h \
/usr/include/opencv4/opencv2/flann/heap.h \
/usr/include/opencv4/opencv2/flann/allocator.h \
/usr/include/c++/7/stdlib.h /usr/include/opencv4/opencv2/flann/random.h \
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h \
/usr/include/opencv4/opencv2/flann/kmeans_index.h \
/usr/include/opencv4/opencv2/flann/logger.h \
/usr/include/opencv4/opencv2/flann/composite_index.h \
/usr/include/opencv4/opencv2/flann/linear_index.h \
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h \
/usr/include/opencv4/opencv2/flann/lsh_index.h \
/usr/include/opencv4/opencv2/flann/lsh_table.h \
/usr/include/c++/7/iomanip /usr/include/c++/7/locale \
/usr/include/c++/7/bits/locale_facets_nonio.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/time_members.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/7/bits/codecvt.h \
/usr/include/c++/7/bits/locale_facets_nonio.tcc \
/usr/include/c++/7/bits/locale_conv.h \
/usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/allocator.h \
/usr/include/c++/7/bits/codecvt.h /usr/include/c++/7/bits/unique_ptr.h \
/usr/include/c++/7/bits/quoted_string.h /usr/include/c++/7/unordered_map \
/usr/include/c++/7/bits/hashtable.h \
/usr/include/c++/7/bits/hashtable_policy.h \
/usr/include/c++/7/bits/unordered_map.h /usr/include/c++/7/math.h \
/usr/include/opencv4/opencv2/flann/autotuned_index.h \
/usr/include/opencv4/opencv2/flann/ground_truth.h \
/usr/include/opencv4/opencv2/flann/index_testing.h \
/usr/include/opencv4/opencv2/flann/timer.h \
/usr/include/opencv4/opencv2/flann/sampling.h \
/usr/include/opencv4/opencv2/highgui.hpp \
/usr/include/opencv4/opencv2/imgcodecs.hpp \
/usr/include/opencv4/opencv2/videoio.hpp \
/usr/include/opencv4/opencv2/imgproc.hpp \
/usr/include/opencv4/opencv2/ml.hpp \
/usr/include/opencv4/opencv2/ml/ml.inl.hpp \
/usr/include/opencv4/opencv2/objdetect.hpp \
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp \
/usr/include/opencv4/opencv2/photo.hpp \
/usr/include/opencv4/opencv2/stitching.hpp \
/usr/include/opencv4/opencv2/stitching/warpers.hpp \
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp \
/usr/include/opencv4/opencv2/core/cuda.hpp \
/usr/include/opencv4/opencv2/core/cuda_types.hpp \
/usr/include/opencv4/opencv2/core/cuda.inl.hpp \
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp \
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp \
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp \
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp \
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp \
/usr/include/opencv4/opencv2/stitching/detail/util.hpp \
/usr/include/c++/7/list /usr/include/c++/7/bits/stl_list.h \
/usr/include/c++/7/bits/list.tcc \
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp \
/usr/include/c++/7/queue /usr/include/c++/7/deque \
/usr/include/c++/7/bits/stl_deque.h /usr/include/c++/7/bits/deque.tcc \
/usr/include/c++/7/bits/stl_queue.h \
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp \
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp \
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp \
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp \
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp \
/usr/include/opencv4/opencv2/video.hpp \
/usr/include/opencv4/opencv2/video/tracking.hpp \
/usr/include/opencv4/opencv2/video/background_segm.hpp include/cpm.hpp \
/usr/include/c++/7/condition_variable /usr/include/c++/7/future \
/usr/include/c++/7/thread /usr/include/c++/7/atomic \
/usr/include/c++/7/bits/atomic_futex.h include/infer.hpp \
include/Yolo.hpp

285
objs/infer.cu.mk Normal file
View File

@ -0,0 +1,285 @@
objs/infer.cu.o : src/infer.cu \
/usr/include/stdc-predef.h \
/usr/local/cuda-10.2/include/cuda_runtime.h \
/usr/local/cuda-10.2/include/crt/host_config.h \
/usr/include/features.h \
/usr/include/aarch64-linux-gnu/sys/cdefs.h \
/usr/include/aarch64-linux-gnu/bits/wordsize.h \
/usr/include/aarch64-linux-gnu/bits/long-double.h \
/usr/include/aarch64-linux-gnu/gnu/stubs.h \
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \
/usr/local/cuda-10.2/include/builtin_types.h \
/usr/local/cuda-10.2/include/device_types.h \
/usr/local/cuda-10.2/include/crt/host_defines.h \
/usr/local/cuda-10.2/include/driver_types.h \
/usr/local/cuda-10.2/include/vector_types.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/limits.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/syslimits.h \
/usr/include/limits.h \
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h \
/usr/include/aarch64-linux-gnu/bits/posix1_lim.h \
/usr/include/aarch64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/aarch64-linux-gnu/bits/posix2_lim.h \
/usr/include/aarch64-linux-gnu/bits/xopen_lim.h \
/usr/include/aarch64-linux-gnu/bits/uio_lim.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h \
/usr/local/cuda-10.2/include/surface_types.h \
/usr/local/cuda-10.2/include/texture_types.h \
/usr/local/cuda-10.2/include/library_types.h \
/usr/local/cuda-10.2/include/channel_descriptor.h \
/usr/local/cuda-10.2/include/cuda_runtime_api.h \
/usr/local/cuda-10.2/include/cuda_device_runtime_api.h \
/usr/local/cuda-10.2/include/driver_functions.h \
/usr/local/cuda-10.2/include/vector_functions.h \
/usr/local/cuda-10.2/include/vector_functions.hpp \
/usr/local/cuda-10.2/include/crt/common_functions.h \
/usr/include/string.h \
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/time.h \
/usr/include/aarch64-linux-gnu/bits/time.h \
/usr/include/aarch64-linux-gnu/bits/types.h \
/usr/include/aarch64-linux-gnu/bits/typesizes.h \
/usr/include/aarch64-linux-gnu/bits/timex.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h \
/usr/include/aarch64-linux-gnu/bits/types/time_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/c++/7/new \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h \
/usr/include/c++/7/exception \
/usr/include/c++/7/bits/exception.h \
/usr/include/c++/7/bits/exception_ptr.h \
/usr/include/c++/7/bits/exception_defines.h \
/usr/include/c++/7/bits/cxxabi_init_exception.h \
/usr/include/c++/7/typeinfo \
/usr/include/c++/7/bits/hash_bytes.h \
/usr/include/c++/7/bits/nested_exception.h \
/usr/include/c++/7/bits/move.h \
/usr/include/c++/7/bits/concept_check.h \
/usr/include/c++/7/type_traits \
/usr/include/stdio.h \
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h \
/usr/include/aarch64-linux-gnu/bits/types/FILE.h \
/usr/include/aarch64-linux-gnu/bits/libio.h \
/usr/include/aarch64-linux-gnu/bits/_G_config.h \
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h \
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h \
/usr/include/aarch64-linux-gnu/bits/sys_errlist.h \
/usr/include/c++/7/stdlib.h \
/usr/include/c++/7/cstdlib \
/usr/include/stdlib.h \
/usr/include/aarch64-linux-gnu/bits/waitflags.h \
/usr/include/aarch64-linux-gnu/bits/waitstatus.h \
/usr/include/aarch64-linux-gnu/bits/floatn.h \
/usr/include/aarch64-linux-gnu/bits/floatn-common.h \
/usr/include/aarch64-linux-gnu/sys/types.h \
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h \
/usr/include/endian.h \
/usr/include/aarch64-linux-gnu/bits/endian.h \
/usr/include/aarch64-linux-gnu/bits/byteswap.h \
/usr/include/aarch64-linux-gnu/bits/byteswap-16.h \
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h \
/usr/include/aarch64-linux-gnu/sys/select.h \
/usr/include/aarch64-linux-gnu/bits/select.h \
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/aarch64-linux-gnu/sys/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/alloca.h \
/usr/include/aarch64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/7/bits/std_abs.h \
/usr/include/assert.h \
/usr/local/cuda-10.2/include/crt/math_functions.h \
/usr/include/c++/7/math.h \
/usr/include/c++/7/cmath \
/usr/include/c++/7/bits/cpp_type_traits.h \
/usr/include/c++/7/ext/type_traits.h \
/usr/include/math.h \
/usr/include/aarch64-linux-gnu/bits/math-vector.h \
/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h \
/usr/include/aarch64-linux-gnu/bits/fp-logb.h \
/usr/include/aarch64-linux-gnu/bits/fp-fast.h \
/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/aarch64-linux-gnu/bits/mathcalls.h \
/usr/include/aarch64-linux-gnu/bits/iscanonical.h \
/usr/local/cuda-10.2/include/crt/math_functions.hpp \
/usr/local/cuda-10.2/include/cuda_surface_types.h \
/usr/local/cuda-10.2/include/cuda_texture_types.h \
/usr/local/cuda-10.2/include/crt/device_functions.h \
/usr/local/cuda-10.2/include/crt/device_functions.hpp \
/usr/local/cuda-10.2/include/device_atomic_functions.h \
/usr/local/cuda-10.2/include/device_atomic_functions.hpp \
/usr/local/cuda-10.2/include/crt/device_double_functions.h \
/usr/local/cuda-10.2/include/crt/device_double_functions.hpp \
/usr/local/cuda-10.2/include/sm_20_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_20_atomic_functions.hpp \
/usr/local/cuda-10.2/include/sm_32_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_32_atomic_functions.hpp \
/usr/local/cuda-10.2/include/sm_35_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_60_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_60_atomic_functions.hpp \
/usr/local/cuda-10.2/include/sm_20_intrinsics.h \
/usr/local/cuda-10.2/include/sm_20_intrinsics.hpp \
/usr/local/cuda-10.2/include/sm_30_intrinsics.h \
/usr/local/cuda-10.2/include/sm_30_intrinsics.hpp \
/usr/local/cuda-10.2/include/sm_32_intrinsics.h \
/usr/local/cuda-10.2/include/sm_32_intrinsics.hpp \
/usr/local/cuda-10.2/include/sm_35_intrinsics.h \
/usr/local/cuda-10.2/include/sm_61_intrinsics.h \
/usr/local/cuda-10.2/include/sm_61_intrinsics.hpp \
/usr/local/cuda-10.2/include/crt/sm_70_rt.h \
/usr/local/cuda-10.2/include/crt/sm_70_rt.hpp \
/usr/local/cuda-10.2/include/surface_functions.h \
/usr/local/cuda-10.2/include/texture_fetch_functions.h \
/usr/local/cuda-10.2/include/texture_indirect_functions.h \
/usr/local/cuda-10.2/include/surface_indirect_functions.h \
/usr/local/cuda-10.2/include/device_launch_parameters.h \
/usr/include/aarch64-linux-gnu/NvInfer.h \
/usr/include/aarch64-linux-gnu/NvInferLegacyDims.h \
/usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h \
/usr/include/aarch64-linux-gnu/NvInferVersion.h \
/usr/include/c++/7/cstddef \
/usr/include/c++/7/cstdint \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h \
/usr/include/stdint.h \
/usr/include/aarch64-linux-gnu/bits/wchar.h \
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
/usr/include/aarch64-linux-gnu/NvInferRuntime.h \
/usr/include/aarch64-linux-gnu/NvInferImpl.h \
/usr/include/c++/7/fstream \
/usr/include/c++/7/istream \
/usr/include/c++/7/ios \
/usr/include/c++/7/iosfwd \
/usr/include/c++/7/bits/stringfwd.h \
/usr/include/c++/7/bits/memoryfwd.h \
/usr/include/c++/7/bits/postypes.h \
/usr/include/c++/7/cwchar \
/usr/include/wchar.h \
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h \
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/c++/7/bits/char_traits.h \
/usr/include/c++/7/bits/stl_algobase.h \
/usr/include/c++/7/bits/functexcept.h \
/usr/include/c++/7/ext/numeric_traits.h \
/usr/include/c++/7/bits/stl_pair.h \
/usr/include/c++/7/bits/stl_iterator_base_types.h \
/usr/include/c++/7/bits/stl_iterator_base_funcs.h \
/usr/include/c++/7/debug/assertions.h \
/usr/include/c++/7/bits/stl_iterator.h \
/usr/include/c++/7/bits/ptr_traits.h \
/usr/include/c++/7/debug/debug.h \
/usr/include/c++/7/bits/predefined_ops.h \
/usr/include/c++/7/bits/localefwd.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h \
/usr/include/c++/7/clocale \
/usr/include/locale.h \
/usr/include/aarch64-linux-gnu/bits/locale.h \
/usr/include/c++/7/cctype \
/usr/include/ctype.h \
/usr/include/c++/7/bits/ios_base.h \
/usr/include/c++/7/ext/atomicity.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h \
/usr/include/pthread.h \
/usr/include/sched.h \
/usr/include/aarch64-linux-gnu/bits/sched.h \
/usr/include/aarch64-linux-gnu/bits/cpu-set.h \
/usr/include/aarch64-linux-gnu/bits/setjmp.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h \
/usr/include/c++/7/bits/locale_classes.h \
/usr/include/c++/7/string \
/usr/include/c++/7/bits/allocator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h \
/usr/include/c++/7/ext/new_allocator.h \
/usr/include/c++/7/bits/ostream_insert.h \
/usr/include/c++/7/bits/cxxabi_forced.h \
/usr/include/c++/7/bits/stl_function.h \
/usr/include/c++/7/backward/binders.h \
/usr/include/c++/7/bits/range_access.h \
/usr/include/c++/7/initializer_list \
/usr/include/c++/7/bits/basic_string.h \
/usr/include/c++/7/ext/alloc_traits.h \
/usr/include/c++/7/bits/alloc_traits.h \
/usr/include/c++/7/ext/string_conversions.h \
/usr/include/c++/7/cstdio \
/usr/include/c++/7/cerrno \
/usr/include/errno.h \
/usr/include/aarch64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h \
/usr/include/aarch64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/include/c++/7/bits/functional_hash.h \
/usr/include/c++/7/bits/basic_string.tcc \
/usr/include/c++/7/bits/locale_classes.tcc \
/usr/include/c++/7/system_error \
/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h \
/usr/include/c++/7/stdexcept \
/usr/include/c++/7/streambuf \
/usr/include/c++/7/bits/streambuf.tcc \
/usr/include/c++/7/bits/basic_ios.h \
/usr/include/c++/7/bits/locale_facets.h \
/usr/include/c++/7/cwctype \
/usr/include/wctype.h \
/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h \
/usr/include/c++/7/bits/streambuf_iterator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h \
/usr/include/c++/7/bits/locale_facets.tcc \
/usr/include/c++/7/bits/basic_ios.tcc \
/usr/include/c++/7/ostream \
/usr/include/c++/7/bits/ostream.tcc \
/usr/include/c++/7/bits/istream.tcc \
/usr/include/c++/7/bits/codecvt.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/basic_file.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++io.h \
/usr/include/c++/7/bits/fstream.tcc \
/usr/include/c++/7/numeric \
/usr/include/c++/7/bits/stl_numeric.h \
/usr/include/c++/7/sstream \
/usr/include/c++/7/bits/sstream.tcc \
/usr/include/c++/7/unordered_map \
/usr/include/c++/7/utility \
/usr/include/c++/7/bits/stl_relops.h \
/usr/include/c++/7/tuple \
/usr/include/c++/7/array \
/usr/include/c++/7/bits/uses_allocator.h \
/usr/include/c++/7/bits/invoke.h \
/usr/include/c++/7/ext/aligned_buffer.h \
/usr/include/c++/7/bits/hashtable.h \
/usr/include/c++/7/bits/hashtable_policy.h \
/usr/include/c++/7/bits/unordered_map.h \
include/infer.hpp \
/usr/include/c++/7/memory \
/usr/include/c++/7/bits/stl_construct.h \
/usr/include/c++/7/bits/stl_uninitialized.h \
/usr/include/c++/7/bits/stl_tempbuf.h \
/usr/include/c++/7/bits/stl_raw_storage_iter.h \
/usr/include/c++/7/ext/concurrence.h \
/usr/include/c++/7/bits/unique_ptr.h \
/usr/include/c++/7/bits/shared_ptr.h \
/usr/include/c++/7/bits/shared_ptr_base.h \
/usr/include/c++/7/bits/allocated_ptr.h \
/usr/include/c++/7/bits/refwrap.h \
/usr/include/c++/7/bits/shared_ptr_atomic.h \
/usr/include/c++/7/bits/atomic_base.h \
/usr/include/c++/7/bits/atomic_lockfree_defines.h \
/usr/include/c++/7/backward/auto_ptr.h \
/usr/include/c++/7/vector \
/usr/include/c++/7/bits/stl_vector.h \
/usr/include/c++/7/bits/stl_bvector.h \
/usr/include/c++/7/bits/vector.tcc

2442
objs/main.cpp.mk Normal file

File diff suppressed because it is too large Load Diff

185
objs/serialport.cpp.mk Normal file
View File

@ -0,0 +1,185 @@
objs/serialport.cpp.o: src/serialport.cpp /usr/include/stdc-predef.h \
/usr/include/stdio.h \
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \
/usr/include/aarch64-linux-gnu/bits/wordsize.h \
/usr/include/aarch64-linux-gnu/bits/long-double.h \
/usr/include/aarch64-linux-gnu/gnu/stubs.h \
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h \
/usr/include/aarch64-linux-gnu/bits/types.h \
/usr/include/aarch64-linux-gnu/bits/typesizes.h \
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h \
/usr/include/aarch64-linux-gnu/bits/types/FILE.h \
/usr/include/aarch64-linux-gnu/bits/libio.h \
/usr/include/aarch64-linux-gnu/bits/_G_config.h \
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h \
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h \
/usr/include/aarch64-linux-gnu/bits/sys_errlist.h \
/usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h \
/usr/include/stdlib.h /usr/include/aarch64-linux-gnu/bits/waitflags.h \
/usr/include/aarch64-linux-gnu/bits/waitstatus.h \
/usr/include/aarch64-linux-gnu/bits/floatn.h \
/usr/include/aarch64-linux-gnu/bits/floatn-common.h \
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \
/usr/include/aarch64-linux-gnu/sys/types.h \
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h \
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \
/usr/include/aarch64-linux-gnu/bits/types/time_t.h \
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h \
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/aarch64-linux-gnu/bits/endian.h \
/usr/include/aarch64-linux-gnu/bits/byteswap.h \
/usr/include/aarch64-linux-gnu/bits/byteswap-16.h \
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h \
/usr/include/aarch64-linux-gnu/sys/select.h \
/usr/include/aarch64-linux-gnu/bits/select.h \
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/aarch64-linux-gnu/sys/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/alloca.h /usr/include/aarch64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/7/bits/std_abs.h /usr/include/unistd.h \
/usr/include/aarch64-linux-gnu/bits/posix_opt.h \
/usr/include/aarch64-linux-gnu/bits/environments.h \
/usr/include/aarch64-linux-gnu/bits/confname.h \
/usr/include/aarch64-linux-gnu/bits/getopt_posix.h \
/usr/include/aarch64-linux-gnu/bits/getopt_core.h /usr/include/string.h \
/usr/include/strings.h /usr/include/aarch64-linux-gnu/sys/stat.h \
/usr/include/aarch64-linux-gnu/bits/stat.h \
/usr/include/aarch64-linux-gnu/sys/ioctl.h \
/usr/include/aarch64-linux-gnu/bits/ioctls.h \
/usr/include/aarch64-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/aarch64-linux-gnu/asm/ioctl.h \
/usr/include/asm-generic/ioctl.h \
/usr/include/aarch64-linux-gnu/bits/ioctl-types.h \
/usr/include/aarch64-linux-gnu/sys/ttydefaults.h \
/usr/include/aarch64-linux-gnu/sys/signal.h /usr/include/signal.h \
/usr/include/aarch64-linux-gnu/bits/signum.h \
/usr/include/aarch64-linux-gnu/bits/signum-generic.h \
/usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h \
/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h \
/usr/include/aarch64-linux-gnu/bits/siginfo-arch.h \
/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h \
/usr/include/aarch64-linux-gnu/bits/siginfo-consts-arch.h \
/usr/include/aarch64-linux-gnu/bits/types/sigval_t.h \
/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h \
/usr/include/aarch64-linux-gnu/bits/sigevent-consts.h \
/usr/include/aarch64-linux-gnu/bits/sigaction.h \
/usr/include/aarch64-linux-gnu/bits/sigcontext.h \
/usr/include/aarch64-linux-gnu/asm/sigcontext.h \
/usr/include/linux/types.h /usr/include/aarch64-linux-gnu/asm/types.h \
/usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \
/usr/include/aarch64-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/aarch64-linux-gnu/asm/posix_types.h \
/usr/include/asm-generic/posix_types.h \
/usr/include/aarch64-linux-gnu/bits/types/stack_t.h \
/usr/include/aarch64-linux-gnu/sys/ucontext.h \
/usr/include/aarch64-linux-gnu/sys/procfs.h \
/usr/include/aarch64-linux-gnu/sys/time.h \
/usr/include/aarch64-linux-gnu/sys/user.h \
/usr/include/aarch64-linux-gnu/bits/sigstack.h \
/usr/include/aarch64-linux-gnu/bits/ss_flags.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h \
/usr/include/aarch64-linux-gnu/bits/sigthread.h \
/usr/include/aarch64-linux-gnu/sys/file.h /usr/include/fcntl.h \
/usr/include/aarch64-linux-gnu/bits/fcntl.h \
/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_iovec.h \
/usr/include/linux/falloc.h /usr/include/errno.h \
/usr/include/aarch64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/aarch64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/aarch64-linux-gnu/bits/sched.h \
/usr/include/aarch64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
/usr/include/aarch64-linux-gnu/bits/time.h \
/usr/include/aarch64-linux-gnu/bits/timex.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/aarch64-linux-gnu/bits/setjmp.h /usr/include/c++/7/iostream \
/usr/include/c++/7/ostream /usr/include/c++/7/ios \
/usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
/usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
/usr/include/c++/7/cwchar /usr/include/wchar.h \
/usr/include/aarch64-linux-gnu/bits/wchar.h \
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h \
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/c++/7/exception /usr/include/c++/7/bits/exception.h \
/usr/include/c++/7/bits/exception_ptr.h \
/usr/include/c++/7/bits/exception_defines.h \
/usr/include/c++/7/bits/cxxabi_init_exception.h \
/usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
/usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
/usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
/usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
/usr/include/c++/7/bits/stl_algobase.h \
/usr/include/c++/7/bits/functexcept.h \
/usr/include/c++/7/bits/cpp_type_traits.h \
/usr/include/c++/7/ext/type_traits.h \
/usr/include/c++/7/ext/numeric_traits.h \
/usr/include/c++/7/bits/stl_pair.h \
/usr/include/c++/7/bits/stl_iterator_base_types.h \
/usr/include/c++/7/bits/stl_iterator_base_funcs.h \
/usr/include/c++/7/debug/assertions.h \
/usr/include/c++/7/bits/stl_iterator.h \
/usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
/usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
/usr/include/c++/7/bits/localefwd.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h \
/usr/include/c++/7/clocale /usr/include/locale.h \
/usr/include/aarch64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
/usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
/usr/include/c++/7/ext/atomicity.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h \
/usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
/usr/include/c++/7/bits/allocator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h \
/usr/include/c++/7/ext/new_allocator.h \
/usr/include/c++/7/bits/ostream_insert.h \
/usr/include/c++/7/bits/cxxabi_forced.h \
/usr/include/c++/7/bits/stl_function.h \
/usr/include/c++/7/backward/binders.h \
/usr/include/c++/7/bits/range_access.h \
/usr/include/c++/7/initializer_list \
/usr/include/c++/7/bits/basic_string.h \
/usr/include/c++/7/ext/alloc_traits.h \
/usr/include/c++/7/bits/alloc_traits.h \
/usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdio \
/usr/include/c++/7/cerrno /usr/include/c++/7/bits/functional_hash.h \
/usr/include/c++/7/bits/basic_string.tcc \
/usr/include/c++/7/bits/locale_classes.tcc \
/usr/include/c++/7/system_error \
/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h \
/usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
/usr/include/c++/7/bits/streambuf.tcc \
/usr/include/c++/7/bits/basic_ios.h \
/usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
/usr/include/wctype.h /usr/include/aarch64-linux-gnu/bits/wctype-wchar.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h \
/usr/include/c++/7/bits/streambuf_iterator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h \
/usr/include/c++/7/bits/locale_facets.tcc \
/usr/include/c++/7/bits/basic_ios.tcc \
/usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
/usr/include/c++/7/bits/istream.tcc include/likely.h \
include/serialport.h /usr/include/termios.h \
/usr/include/aarch64-linux-gnu/bits/termios.h

155
objs/uart-ctrl.cpp.mk Normal file
View File

@ -0,0 +1,155 @@
objs/uart-ctrl.cpp.o: src/uart-ctrl.cpp /usr/include/stdc-predef.h \
/usr/include/stdio.h \
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h \
/usr/include/features.h /usr/include/aarch64-linux-gnu/sys/cdefs.h \
/usr/include/aarch64-linux-gnu/bits/wordsize.h \
/usr/include/aarch64-linux-gnu/bits/long-double.h \
/usr/include/aarch64-linux-gnu/gnu/stubs.h \
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h \
/usr/include/aarch64-linux-gnu/bits/types.h \
/usr/include/aarch64-linux-gnu/bits/typesizes.h \
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h \
/usr/include/aarch64-linux-gnu/bits/types/FILE.h \
/usr/include/aarch64-linux-gnu/bits/libio.h \
/usr/include/aarch64-linux-gnu/bits/_G_config.h \
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h \
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h \
/usr/include/aarch64-linux-gnu/bits/sys_errlist.h /usr/include/fcntl.h \
/usr/include/aarch64-linux-gnu/bits/fcntl.h \
/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_iovec.h \
/usr/include/linux/falloc.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/aarch64-linux-gnu/bits/stat.h /usr/include/endian.h \
/usr/include/aarch64-linux-gnu/bits/endian.h \
/usr/include/aarch64-linux-gnu/bits/byteswap.h \
/usr/include/aarch64-linux-gnu/bits/byteswap-16.h \
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h \
/usr/include/string.h \
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h /usr/include/c++/7/stdlib.h \
/usr/include/c++/7/cstdlib \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h \
/usr/include/stdlib.h /usr/include/aarch64-linux-gnu/bits/waitflags.h \
/usr/include/aarch64-linux-gnu/bits/waitstatus.h \
/usr/include/aarch64-linux-gnu/bits/floatn.h \
/usr/include/aarch64-linux-gnu/bits/floatn-common.h \
/usr/include/aarch64-linux-gnu/sys/types.h \
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h \
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \
/usr/include/aarch64-linux-gnu/bits/types/time_t.h \
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h \
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h \
/usr/include/aarch64-linux-gnu/sys/select.h \
/usr/include/aarch64-linux-gnu/bits/select.h \
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/aarch64-linux-gnu/sys/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/alloca.h /usr/include/aarch64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/7/bits/std_abs.h \
/usr/include/aarch64-linux-gnu/sys/times.h /usr/include/termios.h \
/usr/include/aarch64-linux-gnu/bits/termios.h \
/usr/include/aarch64-linux-gnu/sys/ttydefaults.h /usr/include/unistd.h \
/usr/include/aarch64-linux-gnu/bits/posix_opt.h \
/usr/include/aarch64-linux-gnu/bits/environments.h \
/usr/include/aarch64-linux-gnu/bits/confname.h \
/usr/include/aarch64-linux-gnu/bits/getopt_posix.h \
/usr/include/aarch64-linux-gnu/bits/getopt_core.h \
/usr/include/aarch64-linux-gnu/sys/ioctl.h \
/usr/include/aarch64-linux-gnu/bits/ioctls.h \
/usr/include/aarch64-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/aarch64-linux-gnu/asm/ioctl.h \
/usr/include/asm-generic/ioctl.h \
/usr/include/aarch64-linux-gnu/bits/ioctl-types.h \
/usr/include/c++/7/iostream /usr/include/c++/7/ostream \
/usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
/usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
/usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
/usr/include/wchar.h /usr/include/aarch64-linux-gnu/bits/wchar.h \
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h \
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/c++/7/exception /usr/include/c++/7/bits/exception.h \
/usr/include/c++/7/bits/exception_ptr.h \
/usr/include/c++/7/bits/exception_defines.h \
/usr/include/c++/7/bits/cxxabi_init_exception.h \
/usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
/usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
/usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
/usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
/usr/include/c++/7/bits/stl_algobase.h \
/usr/include/c++/7/bits/functexcept.h \
/usr/include/c++/7/bits/cpp_type_traits.h \
/usr/include/c++/7/ext/type_traits.h \
/usr/include/c++/7/ext/numeric_traits.h \
/usr/include/c++/7/bits/stl_pair.h \
/usr/include/c++/7/bits/stl_iterator_base_types.h \
/usr/include/c++/7/bits/stl_iterator_base_funcs.h \
/usr/include/c++/7/debug/assertions.h \
/usr/include/c++/7/bits/stl_iterator.h \
/usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
/usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
/usr/include/c++/7/bits/localefwd.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h \
/usr/include/c++/7/clocale /usr/include/locale.h \
/usr/include/aarch64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
/usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
/usr/include/c++/7/ext/atomicity.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/aarch64-linux-gnu/bits/sched.h \
/usr/include/aarch64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
/usr/include/aarch64-linux-gnu/bits/time.h \
/usr/include/aarch64-linux-gnu/bits/timex.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/aarch64-linux-gnu/bits/setjmp.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h \
/usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
/usr/include/c++/7/bits/allocator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h \
/usr/include/c++/7/ext/new_allocator.h \
/usr/include/c++/7/bits/ostream_insert.h \
/usr/include/c++/7/bits/cxxabi_forced.h \
/usr/include/c++/7/bits/stl_function.h \
/usr/include/c++/7/backward/binders.h \
/usr/include/c++/7/bits/range_access.h \
/usr/include/c++/7/initializer_list \
/usr/include/c++/7/bits/basic_string.h \
/usr/include/c++/7/ext/alloc_traits.h \
/usr/include/c++/7/bits/alloc_traits.h \
/usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdio \
/usr/include/c++/7/cerrno /usr/include/errno.h \
/usr/include/aarch64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/aarch64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/c++/7/bits/functional_hash.h \
/usr/include/c++/7/bits/basic_string.tcc \
/usr/include/c++/7/bits/locale_classes.tcc \
/usr/include/c++/7/system_error \
/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h \
/usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
/usr/include/c++/7/bits/streambuf.tcc \
/usr/include/c++/7/bits/basic_ios.h \
/usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
/usr/include/wctype.h /usr/include/aarch64-linux-gnu/bits/wctype-wchar.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h \
/usr/include/c++/7/bits/streambuf_iterator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h \
/usr/include/c++/7/bits/locale_facets.tcc \
/usr/include/c++/7/bits/basic_ios.tcc \
/usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
/usr/include/c++/7/bits/istream.tcc src/../include/dyp-a05/uart-ctrl.h

422
objs/yolo.cu.mk Normal file
View File

@ -0,0 +1,422 @@
objs/yolo.cu.o : src/yolo.cu \
/usr/include/stdc-predef.h \
/usr/local/cuda-10.2/include/cuda_runtime.h \
/usr/local/cuda-10.2/include/crt/host_config.h \
/usr/include/features.h \
/usr/include/aarch64-linux-gnu/sys/cdefs.h \
/usr/include/aarch64-linux-gnu/bits/wordsize.h \
/usr/include/aarch64-linux-gnu/bits/long-double.h \
/usr/include/aarch64-linux-gnu/gnu/stubs.h \
/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h \
/usr/local/cuda-10.2/include/builtin_types.h \
/usr/local/cuda-10.2/include/device_types.h \
/usr/local/cuda-10.2/include/crt/host_defines.h \
/usr/local/cuda-10.2/include/driver_types.h \
/usr/local/cuda-10.2/include/vector_types.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/limits.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include-fixed/syslimits.h \
/usr/include/limits.h \
/usr/include/aarch64-linux-gnu/bits/libc-header-start.h \
/usr/include/aarch64-linux-gnu/bits/posix1_lim.h \
/usr/include/aarch64-linux-gnu/bits/local_lim.h \
/usr/include/linux/limits.h \
/usr/include/aarch64-linux-gnu/bits/posix2_lim.h \
/usr/include/aarch64-linux-gnu/bits/xopen_lim.h \
/usr/include/aarch64-linux-gnu/bits/uio_lim.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stddef.h \
/usr/local/cuda-10.2/include/surface_types.h \
/usr/local/cuda-10.2/include/texture_types.h \
/usr/local/cuda-10.2/include/library_types.h \
/usr/local/cuda-10.2/include/channel_descriptor.h \
/usr/local/cuda-10.2/include/cuda_runtime_api.h \
/usr/local/cuda-10.2/include/cuda_device_runtime_api.h \
/usr/local/cuda-10.2/include/driver_functions.h \
/usr/local/cuda-10.2/include/vector_functions.h \
/usr/local/cuda-10.2/include/vector_functions.hpp \
/usr/local/cuda-10.2/include/crt/common_functions.h \
/usr/include/string.h \
/usr/include/aarch64-linux-gnu/bits/types/locale_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h \
/usr/include/strings.h \
/usr/include/time.h \
/usr/include/aarch64-linux-gnu/bits/time.h \
/usr/include/aarch64-linux-gnu/bits/types.h \
/usr/include/aarch64-linux-gnu/bits/typesizes.h \
/usr/include/aarch64-linux-gnu/bits/timex.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h \
/usr/include/aarch64-linux-gnu/bits/types/clock_t.h \
/usr/include/aarch64-linux-gnu/bits/types/time_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h \
/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h \
/usr/include/aarch64-linux-gnu/bits/types/timer_t.h \
/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h \
/usr/include/c++/7/new \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++config.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/os_defines.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/cpu_defines.h \
/usr/include/c++/7/exception \
/usr/include/c++/7/bits/exception.h \
/usr/include/c++/7/bits/exception_ptr.h \
/usr/include/c++/7/bits/exception_defines.h \
/usr/include/c++/7/bits/cxxabi_init_exception.h \
/usr/include/c++/7/typeinfo \
/usr/include/c++/7/bits/hash_bytes.h \
/usr/include/c++/7/bits/nested_exception.h \
/usr/include/c++/7/bits/move.h \
/usr/include/c++/7/bits/concept_check.h \
/usr/include/c++/7/type_traits \
/usr/include/stdio.h \
/usr/include/aarch64-linux-gnu/bits/types/__FILE.h \
/usr/include/aarch64-linux-gnu/bits/types/FILE.h \
/usr/include/aarch64-linux-gnu/bits/libio.h \
/usr/include/aarch64-linux-gnu/bits/_G_config.h \
/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdarg.h \
/usr/include/aarch64-linux-gnu/bits/stdio_lim.h \
/usr/include/aarch64-linux-gnu/bits/sys_errlist.h \
/usr/include/c++/7/stdlib.h \
/usr/include/c++/7/cstdlib \
/usr/include/stdlib.h \
/usr/include/aarch64-linux-gnu/bits/waitflags.h \
/usr/include/aarch64-linux-gnu/bits/waitstatus.h \
/usr/include/aarch64-linux-gnu/bits/floatn.h \
/usr/include/aarch64-linux-gnu/bits/floatn-common.h \
/usr/include/aarch64-linux-gnu/sys/types.h \
/usr/include/aarch64-linux-gnu/bits/stdint-intn.h \
/usr/include/endian.h \
/usr/include/aarch64-linux-gnu/bits/endian.h \
/usr/include/aarch64-linux-gnu/bits/byteswap.h \
/usr/include/aarch64-linux-gnu/bits/byteswap-16.h \
/usr/include/aarch64-linux-gnu/bits/uintn-identity.h \
/usr/include/aarch64-linux-gnu/sys/select.h \
/usr/include/aarch64-linux-gnu/bits/select.h \
/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h \
/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h \
/usr/include/aarch64-linux-gnu/sys/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/sysmacros.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h \
/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h \
/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h \
/usr/include/alloca.h \
/usr/include/aarch64-linux-gnu/bits/stdlib-float.h \
/usr/include/c++/7/bits/std_abs.h \
/usr/include/assert.h \
/usr/local/cuda-10.2/include/crt/math_functions.h \
/usr/include/c++/7/math.h \
/usr/include/c++/7/cmath \
/usr/include/c++/7/bits/cpp_type_traits.h \
/usr/include/c++/7/ext/type_traits.h \
/usr/include/math.h \
/usr/include/aarch64-linux-gnu/bits/math-vector.h \
/usr/include/aarch64-linux-gnu/bits/libm-simd-decl-stubs.h \
/usr/include/aarch64-linux-gnu/bits/flt-eval-method.h \
/usr/include/aarch64-linux-gnu/bits/fp-logb.h \
/usr/include/aarch64-linux-gnu/bits/fp-fast.h \
/usr/include/aarch64-linux-gnu/bits/mathcalls-helper-functions.h \
/usr/include/aarch64-linux-gnu/bits/mathcalls.h \
/usr/include/aarch64-linux-gnu/bits/iscanonical.h \
/usr/local/cuda-10.2/include/crt/math_functions.hpp \
/usr/local/cuda-10.2/include/cuda_surface_types.h \
/usr/local/cuda-10.2/include/cuda_texture_types.h \
/usr/local/cuda-10.2/include/crt/device_functions.h \
/usr/local/cuda-10.2/include/crt/device_functions.hpp \
/usr/local/cuda-10.2/include/device_atomic_functions.h \
/usr/local/cuda-10.2/include/device_atomic_functions.hpp \
/usr/local/cuda-10.2/include/crt/device_double_functions.h \
/usr/local/cuda-10.2/include/crt/device_double_functions.hpp \
/usr/local/cuda-10.2/include/sm_20_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_20_atomic_functions.hpp \
/usr/local/cuda-10.2/include/sm_32_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_32_atomic_functions.hpp \
/usr/local/cuda-10.2/include/sm_35_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_60_atomic_functions.h \
/usr/local/cuda-10.2/include/sm_60_atomic_functions.hpp \
/usr/local/cuda-10.2/include/sm_20_intrinsics.h \
/usr/local/cuda-10.2/include/sm_20_intrinsics.hpp \
/usr/local/cuda-10.2/include/sm_30_intrinsics.h \
/usr/local/cuda-10.2/include/sm_30_intrinsics.hpp \
/usr/local/cuda-10.2/include/sm_32_intrinsics.h \
/usr/local/cuda-10.2/include/sm_32_intrinsics.hpp \
/usr/local/cuda-10.2/include/sm_35_intrinsics.h \
/usr/local/cuda-10.2/include/sm_61_intrinsics.h \
/usr/local/cuda-10.2/include/sm_61_intrinsics.hpp \
/usr/local/cuda-10.2/include/crt/sm_70_rt.h \
/usr/local/cuda-10.2/include/crt/sm_70_rt.hpp \
/usr/local/cuda-10.2/include/surface_functions.h \
/usr/local/cuda-10.2/include/texture_fetch_functions.h \
/usr/local/cuda-10.2/include/texture_indirect_functions.h \
/usr/local/cuda-10.2/include/surface_indirect_functions.h \
/usr/local/cuda-10.2/include/device_launch_parameters.h \
include/infer.hpp \
/usr/include/c++/7/initializer_list \
/usr/include/c++/7/memory \
/usr/include/c++/7/bits/stl_algobase.h \
/usr/include/c++/7/bits/functexcept.h \
/usr/include/c++/7/ext/numeric_traits.h \
/usr/include/c++/7/bits/stl_pair.h \
/usr/include/c++/7/bits/stl_iterator_base_types.h \
/usr/include/c++/7/bits/stl_iterator_base_funcs.h \
/usr/include/c++/7/debug/assertions.h \
/usr/include/c++/7/bits/stl_iterator.h \
/usr/include/c++/7/bits/ptr_traits.h \
/usr/include/c++/7/debug/debug.h \
/usr/include/c++/7/bits/predefined_ops.h \
/usr/include/c++/7/bits/allocator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++allocator.h \
/usr/include/c++/7/ext/new_allocator.h \
/usr/include/c++/7/bits/memoryfwd.h \
/usr/include/c++/7/bits/stl_construct.h \
/usr/include/c++/7/ext/alloc_traits.h \
/usr/include/c++/7/bits/alloc_traits.h \
/usr/include/c++/7/bits/stl_uninitialized.h \
/usr/include/c++/7/bits/stl_tempbuf.h \
/usr/include/c++/7/bits/stl_raw_storage_iter.h \
/usr/include/c++/7/iosfwd \
/usr/include/c++/7/bits/stringfwd.h \
/usr/include/c++/7/bits/postypes.h \
/usr/include/c++/7/cwchar \
/usr/include/wchar.h \
/usr/include/aarch64-linux-gnu/bits/wchar.h \
/usr/include/aarch64-linux-gnu/bits/types/wint_t.h \
/usr/include/aarch64-linux-gnu/bits/types/mbstate_t.h \
/usr/include/c++/7/ext/atomicity.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/gthr-default.h \
/usr/include/pthread.h \
/usr/include/sched.h \
/usr/include/aarch64-linux-gnu/bits/sched.h \
/usr/include/aarch64-linux-gnu/bits/cpu-set.h \
/usr/include/aarch64-linux-gnu/bits/setjmp.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/atomic_word.h \
/usr/include/c++/7/ext/concurrence.h \
/usr/include/c++/7/bits/stl_function.h \
/usr/include/c++/7/backward/binders.h \
/usr/include/c++/7/bits/uses_allocator.h \
/usr/include/c++/7/bits/unique_ptr.h \
/usr/include/c++/7/utility \
/usr/include/c++/7/bits/stl_relops.h \
/usr/include/c++/7/tuple \
/usr/include/c++/7/array \
/usr/include/c++/7/stdexcept \
/usr/include/c++/7/string \
/usr/include/c++/7/bits/char_traits.h \
/usr/include/c++/7/cstdint \
/usr/lib/gcc/aarch64-linux-gnu/7/include/stdint.h \
/usr/include/stdint.h \
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h \
/usr/include/c++/7/bits/localefwd.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/c++locale.h \
/usr/include/c++/7/clocale \
/usr/include/locale.h \
/usr/include/aarch64-linux-gnu/bits/locale.h \
/usr/include/c++/7/cctype \
/usr/include/ctype.h \
/usr/include/c++/7/bits/ostream_insert.h \
/usr/include/c++/7/bits/cxxabi_forced.h \
/usr/include/c++/7/bits/range_access.h \
/usr/include/c++/7/bits/basic_string.h \
/usr/include/c++/7/ext/string_conversions.h \
/usr/include/c++/7/cstdio \
/usr/include/c++/7/cerrno \
/usr/include/errno.h \
/usr/include/aarch64-linux-gnu/bits/errno.h \
/usr/include/linux/errno.h \
/usr/include/aarch64-linux-gnu/asm/errno.h \
/usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/include/c++/7/bits/functional_hash.h \
/usr/include/c++/7/bits/basic_string.tcc \
/usr/include/c++/7/bits/invoke.h \
/usr/include/c++/7/bits/shared_ptr.h \
/usr/include/c++/7/bits/shared_ptr_base.h \
/usr/include/c++/7/bits/allocated_ptr.h \
/usr/include/c++/7/bits/refwrap.h \
/usr/include/c++/7/ext/aligned_buffer.h \
/usr/include/c++/7/bits/shared_ptr_atomic.h \
/usr/include/c++/7/bits/atomic_base.h \
/usr/include/c++/7/bits/atomic_lockfree_defines.h \
/usr/include/c++/7/backward/auto_ptr.h \
/usr/include/c++/7/vector \
/usr/include/c++/7/bits/stl_vector.h \
/usr/include/c++/7/bits/stl_bvector.h \
/usr/include/c++/7/bits/vector.tcc \
include/Yolo.hpp \
/usr/include/c++/7/future \
/usr/include/c++/7/mutex \
/usr/include/c++/7/chrono \
/usr/include/c++/7/ratio \
/usr/include/c++/7/limits \
/usr/include/c++/7/ctime \
/usr/include/c++/7/bits/parse_numbers.h \
/usr/include/c++/7/system_error \
/usr/include/aarch64-linux-gnu/c++/7/bits/error_constants.h \
/usr/include/c++/7/bits/std_mutex.h \
/usr/include/c++/7/thread \
/usr/include/c++/7/condition_variable \
/usr/include/c++/7/atomic \
/usr/include/c++/7/bits/atomic_futex.h \
/usr/include/c++/7/bits/std_function.h \
/usr/include/opencv4/opencv2/opencv.hpp \
/usr/include/opencv4/opencv2/opencv_modules.hpp \
/usr/include/opencv4/opencv2/core.hpp \
/usr/include/opencv4/opencv2/core/cvdef.h \
/usr/include/opencv4/opencv2/core/hal/interface.h \
/usr/include/c++/7/cstddef \
/usr/include/opencv4/opencv2/core/cv_cpu_dispatch.h \
/usr/include/opencv4/opencv2/core/version.hpp \
/usr/include/opencv4/opencv2/core/base.hpp \
/usr/include/c++/7/climits \
/usr/include/c++/7/algorithm \
/usr/include/c++/7/bits/stl_algo.h \
/usr/include/c++/7/bits/algorithmfwd.h \
/usr/include/c++/7/bits/stl_heap.h \
/usr/include/c++/7/bits/uniform_int_dist.h \
/usr/include/opencv4/opencv2/core/cvstd.hpp \
/usr/include/c++/7/cstring \
/usr/include/opencv4/opencv2/core/cvstd_wrapper.hpp \
/usr/include/opencv4/opencv2/core/neon_utils.hpp \
/usr/include/opencv4/opencv2/core/vsx_utils.hpp \
/usr/include/opencv4/opencv2/core/check.hpp \
/usr/include/opencv4/opencv2/core/traits.hpp \
/usr/include/opencv4/opencv2/core/matx.hpp \
/usr/include/opencv4/opencv2/core/saturate.hpp \
/usr/include/opencv4/opencv2/core/fast_math.hpp \
/usr/include/opencv4/opencv2/core/types.hpp \
/usr/include/c++/7/cfloat \
/usr/lib/gcc/aarch64-linux-gnu/7/include/float.h \
/usr/include/opencv4/opencv2/core/mat.hpp \
/usr/include/opencv4/opencv2/core/bufferpool.hpp \
/usr/include/opencv4/opencv2/core/mat.inl.hpp \
/usr/include/opencv4/opencv2/core/persistence.hpp \
/usr/include/opencv4/opencv2/core/operations.hpp \
/usr/include/opencv4/opencv2/core/cvstd.inl.hpp \
/usr/include/c++/7/complex \
/usr/include/c++/7/sstream \
/usr/include/c++/7/istream \
/usr/include/c++/7/ios \
/usr/include/c++/7/bits/ios_base.h \
/usr/include/c++/7/bits/locale_classes.h \
/usr/include/c++/7/bits/locale_classes.tcc \
/usr/include/c++/7/streambuf \
/usr/include/c++/7/bits/streambuf.tcc \
/usr/include/c++/7/bits/basic_ios.h \
/usr/include/c++/7/bits/locale_facets.h \
/usr/include/c++/7/cwctype \
/usr/include/wctype.h \
/usr/include/aarch64-linux-gnu/bits/wctype-wchar.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_base.h \
/usr/include/c++/7/bits/streambuf_iterator.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/ctype_inline.h \
/usr/include/c++/7/bits/locale_facets.tcc \
/usr/include/c++/7/bits/basic_ios.tcc \
/usr/include/c++/7/ostream \
/usr/include/c++/7/bits/ostream.tcc \
/usr/include/c++/7/bits/istream.tcc \
/usr/include/c++/7/bits/sstream.tcc \
/usr/include/opencv4/opencv2/core/utility.hpp \
/usr/include/c++/7/functional \
/usr/include/opencv4/opencv2/core/optim.hpp \
/usr/include/opencv4/opencv2/core/ovx.hpp \
/usr/include/opencv4/opencv2/calib3d.hpp \
/usr/include/opencv4/opencv2/features2d.hpp \
/usr/include/opencv4/opencv2/flann/miniflann.hpp \
/usr/include/opencv4/opencv2/flann/defines.h \
/usr/include/opencv4/opencv2/flann/config.h \
/usr/include/opencv4/opencv2/core/affine.hpp \
/usr/include/opencv4/opencv2/dnn.hpp \
/usr/include/opencv4/opencv2/dnn/dnn.hpp \
/usr/include/opencv4/opencv2/core/async.hpp \
/usr/include/opencv4/opencv2/dnn/../dnn/version.hpp \
/usr/include/opencv4/opencv2/dnn/dict.hpp \
/usr/include/c++/7/map \
/usr/include/c++/7/bits/stl_tree.h \
/usr/include/c++/7/bits/stl_map.h \
/usr/include/c++/7/bits/stl_multimap.h \
/usr/include/opencv4/opencv2/dnn/layer.hpp \
/usr/include/opencv4/opencv2/dnn/dnn.inl.hpp \
/usr/include/opencv4/opencv2/dnn/utils/inference_engine.hpp \
/usr/include/opencv4/opencv2/dnn/utils/../dnn.hpp \
/usr/include/opencv4/opencv2/flann.hpp \
/usr/include/opencv4/opencv2/flann/flann_base.hpp \
/usr/include/c++/7/cassert \
/usr/include/opencv4/opencv2/flann/general.h \
/usr/include/opencv4/opencv2/flann/matrix.h \
/usr/include/opencv4/opencv2/flann/params.h \
/usr/include/opencv4/opencv2/flann/any.h \
/usr/include/c++/7/iostream \
/usr/include/opencv4/opencv2/flann/saving.h \
/usr/include/opencv4/opencv2/flann/nn_index.h \
/usr/include/opencv4/opencv2/flann/result_set.h \
/usr/include/c++/7/set \
/usr/include/c++/7/bits/stl_set.h \
/usr/include/c++/7/bits/stl_multiset.h \
/usr/include/opencv4/opencv2/flann/all_indices.h \
/usr/include/opencv4/opencv2/flann/kdtree_index.h \
/usr/include/opencv4/opencv2/flann/dynamic_bitset.h \
/usr/include/opencv4/opencv2/flann/dist.h \
/usr/include/opencv4/opencv2/flann/heap.h \
/usr/include/opencv4/opencv2/flann/allocator.h \
/usr/include/opencv4/opencv2/flann/random.h \
/usr/include/opencv4/opencv2/flann/kdtree_single_index.h \
/usr/include/opencv4/opencv2/flann/kmeans_index.h \
/usr/include/opencv4/opencv2/flann/logger.h \
/usr/include/opencv4/opencv2/flann/composite_index.h \
/usr/include/opencv4/opencv2/flann/linear_index.h \
/usr/include/opencv4/opencv2/flann/hierarchical_clustering_index.h \
/usr/include/opencv4/opencv2/flann/lsh_index.h \
/usr/include/opencv4/opencv2/flann/lsh_table.h \
/usr/include/c++/7/iomanip \
/usr/include/c++/7/locale \
/usr/include/c++/7/bits/locale_facets_nonio.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/time_members.h \
/usr/include/aarch64-linux-gnu/c++/7/bits/messages_members.h \
/usr/include/libintl.h \
/usr/include/c++/7/bits/codecvt.h \
/usr/include/c++/7/bits/locale_facets_nonio.tcc \
/usr/include/c++/7/bits/locale_conv.h \
/usr/include/c++/7/bits/quoted_string.h \
/usr/include/c++/7/unordered_map \
/usr/include/c++/7/bits/hashtable.h \
/usr/include/c++/7/bits/hashtable_policy.h \
/usr/include/c++/7/bits/unordered_map.h \
/usr/include/opencv4/opencv2/flann/autotuned_index.h \
/usr/include/opencv4/opencv2/flann/ground_truth.h \
/usr/include/opencv4/opencv2/flann/index_testing.h \
/usr/include/opencv4/opencv2/flann/timer.h \
/usr/include/opencv4/opencv2/flann/sampling.h \
/usr/include/opencv4/opencv2/highgui.hpp \
/usr/include/opencv4/opencv2/imgcodecs.hpp \
/usr/include/opencv4/opencv2/videoio.hpp \
/usr/include/opencv4/opencv2/imgproc.hpp \
/usr/include/opencv4/opencv2/ml.hpp \
/usr/include/opencv4/opencv2/ml/ml.inl.hpp \
/usr/include/opencv4/opencv2/objdetect.hpp \
/usr/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp \
/usr/include/opencv4/opencv2/photo.hpp \
/usr/include/opencv4/opencv2/stitching.hpp \
/usr/include/opencv4/opencv2/stitching/warpers.hpp \
/usr/include/opencv4/opencv2/stitching/detail/warpers.hpp \
/usr/include/opencv4/opencv2/core/cuda.hpp \
/usr/include/opencv4/opencv2/core/cuda_types.hpp \
/usr/include/opencv4/opencv2/core/cuda.inl.hpp \
/usr/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp \
/usr/include/opencv4/opencv2/stitching/detail/matchers.hpp \
/usr/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp \
/usr/include/opencv4/opencv2/stitching/detail/util.hpp \
/usr/include/c++/7/list \
/usr/include/c++/7/bits/stl_list.h \
/usr/include/c++/7/bits/list.tcc \
/usr/include/opencv4/opencv2/stitching/detail/util_inl.hpp \
/usr/include/c++/7/queue \
/usr/include/c++/7/deque \
/usr/include/c++/7/bits/stl_deque.h \
/usr/include/c++/7/bits/deque.tcc \
/usr/include/c++/7/bits/stl_queue.h \
/usr/include/opencv4/opencv2/stitching/detail/camera.hpp \
/usr/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp \
/usr/include/opencv4/opencv2/stitching/detail/seam_finders.hpp \
/usr/include/opencv4/opencv2/stitching/detail/blenders.hpp \
/usr/include/opencv4/opencv2/video.hpp \
/usr/include/opencv4/opencv2/video/tracking.hpp \
/usr/include/opencv4/opencv2/video/background_segm.hpp

View File

@ -7,8 +7,6 @@
#include <opencv2/highgui/highgui.hpp>
// #include <opencv2/core/eigen.hpp>
// 使用Eigen的Geometry模块处理3d运动
#include <Eigen/Core>
#include <Eigen/Geometry>
@ -20,15 +18,12 @@
#include <pcl/common/transforms.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/filters/conditional_removal.h> //条件滤波器头文件
#include <pcl/filters/passthrough.h> //直通滤波器头文件
#include <pcl/filters/radius_outlier_removal.h> //半径滤波器头文件
#include <pcl/filters/statistical_outlier_removal.h> //统计滤波器头文件
#include <pcl/filters/voxel_grid.h> //体素滤波器头文件
#include <pcl/segmentation/extract_clusters.h>
#include <pcl/point_cloud.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/io/pcd_io.h>
#include <pcl/PointIndices.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/filter.h>
@ -36,7 +31,6 @@
#include <boost/format.hpp>
#include "../include/DepthProcessor.hpp"
#include "DepthProcessor.hpp"
#include <chrono>
#include <thread>
#include <future>
@ -48,7 +42,8 @@ bool point_cmp(PointXYZ a, PointXYZ b){
}
//将深度图转换为点云
PointCloudXYZ::Ptr DepthProcessor::depth2Cloud(PointCloudXYZ::Ptr oriCloud, const cv::Mat depthMat, int startRow, int endRow){
PointCloudXYZ::Ptr DepthProcessor::depth2Cloud(const cv::Mat depthMat, int startRow, int endRow){
PointCloudXYZ::Ptr tmpCloud(new PointCloudXYZ);
int height = depthMat.rows;
endRow = std::min(height, endRow);
@ -75,11 +70,11 @@ PointCloudXYZ::Ptr DepthProcessor::depth2Cloud(PointCloudXYZ::Ptr oriCloud, cons
point.z = Z;
// 将点添加到点云中
oriCloud->push_back(point);
tmpCloud->push_back(point);
}
}
return oriCloud;
return tmpCloud;
}
// 先统计Y轴的直方图初筛出可能包含地面的点若Y轴坐标太小或点数太少则可能未观测到地面
@ -130,7 +125,6 @@ PointCloudXYZ::Ptr DepthProcessor::delGround(const PointCloudXYZ::Ptr& pointClou
// 分割点云
seg.segment(*inliers, *coefficients);
//std::cout << "coefficients" << std::endl;
// 创建提取器对象
ExtractIndices<PointXYZ> extract;
@ -180,24 +174,6 @@ void DepthProcessor::calHistogram(const PointCloudXYZ::Ptr &pointCloud, float& m
}
}
//半径滤波,排除噪声点、坏点
void DepthProcessor::RadiusOutlierFilter(const PointCloudXYZ::Ptr &pcd_cloud0){
//创建滤波器
RadiusOutlierRemoval<PointXYZ> radiusoutlier;
//设置输入点云
radiusoutlier.setInputCloud(pcd_cloud0);
//设置半径,在该范围内找临近点
double radius = 0.1;
radiusoutlier.setRadiusSearch(radius);
//设置查询点的邻域点集数,小于该阈值的删除
int thre_count = 10;
radiusoutlier.setMinNeighborsInRadius(thre_count);
PointCloudXYZ::Ptr cloud_after_Radius ( new PointCloudXYZ );
radiusoutlier.filter(*cloud_after_Radius);
std::cout << "cloud_after_Radius:" << cloud->points.size() <<std::endl;
cloud = cloud_after_Radius;
}
//直通滤波,过滤指定轴方向的点
PointCloudXYZ::Ptr DepthProcessor::axisFilter(const PointCloudXYZ::Ptr& pointCloud, const double &thre_low, const double &thre_high, const string& field, const bool &flag_in){
// 创建滤波器对象
@ -217,24 +193,6 @@ PointCloudXYZ::Ptr DepthProcessor::axisFilter(const PointCloudXYZ::Ptr& pointClo
return cloud_after_PassThrough;
}
//条件滤波
void DepthProcessor::ConditionFilter(const double &ground){
// 创建条件滤波器对象
ConditionAnd<PointXYZ>::Ptr range_cond(new ConditionAnd<PointXYZ>());
// 添加条件,例如:删除 x 坐标在某个范围内的点
range_cond->addComparison(FieldComparison<PointXYZ>::ConstPtr(new FieldComparison<PointXYZ>("y", ComparisonOps::GT, ground - thre_ground)));
range_cond->addComparison(FieldComparison<PointXYZ>::ConstPtr(new FieldComparison<PointXYZ>("y", ComparisonOps::LT, ground)));
// 创建条件滤波器
ConditionalRemoval<PointXYZ> condrem;
condrem.setCondition(range_cond);
condrem.setInputCloud(cloud);
condrem.setKeepOrganized(false); // 设置为 false 表示保持点云的结构
condrem.filter(*cloud);
}
//最近邻搜索或半径搜索,返回的是点云的索引
void DepthProcessor::radiusSearch(const PointCloudXYZ::Ptr& pointCloud, const PointXYZ& queryPoint, const float& radius, std::vector<int>& indResults){
// 创建最近邻搜索对象
@ -245,52 +203,6 @@ void DepthProcessor::radiusSearch(const PointCloudXYZ::Ptr& pointCloud, const Po
kdtree.radiusSearch(queryPoint, radius, indResults, pointDistances);
}
//加载配置文件
void DepthProcessor::load_config(const string filepath){
cv::FileStorage fsSettings(filepath, cv::FileStorage::READ);
if(!fsSettings.isOpened())
{
cerr << "Failed to open settings file at: " << filepath << endl;
exit(-1);
}
fx = fsSettings["fx"];
fy = fsSettings["fy"];
cx = fsSettings["cx"];
cy = fsSettings["cy"];
minDepth = fsSettings["minDepth"];
maxDepth = fsSettings["maxDepth"];
thre_count = fsSettings["thre_count"];
radius = fsSettings["radius"];
thre_low_x = fsSettings["thre_low_x"];
thre_high_x = fsSettings["thre_high_x"];
thre_low_y = fsSettings["thre_low_y"];
thre_high_y = fsSettings["thre_high_y"];
thre_ponit_count = fsSettings["thre_ponit_count"];
thre_point_radius = fsSettings["thre_point_radius"];
}
//检测物体的类别,返回是否有检测的标签
bool DepthProcessor::obstacleRecognize(cv::Mat boxes){
if (boxes.cols < 4)
{
std::cout << "boxes col nums error" << std::endl;
return false;
}
for(int i = 0; i < boxes.rows; i++){
double rate = IOU(max_x,min_x,max_y,min_y,boxes.at<int>(i,0),boxes.at<int>(i,1),boxes.at<int>(i,2),boxes.at<int>(i,3));
if(rate >= 0.8){
label = "";
return true;
}
}
return false;
}
cv::Mat DepthProcessor::getObstacle(){
}
//相机初始化
bool DepthProcessor::camHighInit(const cv::Mat depthMat, const Eigen::Affine3f& transform){
@ -298,8 +210,7 @@ bool DepthProcessor::camHighInit(const cv::Mat depthMat, const Eigen::Affine3f&
imgDepth = depthMat.clone();
imgDepth.convertTo(imgDepth, CV_32FC1);
PointCloudXYZ::Ptr tmpCloud(new PointCloudXYZ);
PointCloudXYZ::Ptr oriCloud = depth2Cloud(tmpCloud, depthMat, 0, depthMat.rows);
PointCloudXYZ::Ptr oriCloud = depth2Cloud(depthMat, 0, depthMat.rows);
PointCloudXYZ::Ptr cloudLeft = axisFilter(oriCloud, -1.5, 0, "x", false);
PointCloudXYZ::Ptr cloudRight = axisFilter(oriCloud, 0, 1.5, "x", false);
@ -375,9 +286,11 @@ bool DepthProcessor::camHighInit(const cv::Mat depthMat, const Eigen::Affine3f&
camHigh = sum / histogram[max_n].size(); //myx
}
if(bViewCloud){
pcdViewer->updatePointCloud(cloud, "cloud1");
pcdViewer->updatePointCloud(TCloud, "cloud2");
pcdViewer->spinOnce(5);
}
//判断地面高度合理性
if(camHigh < 1.5 && camHigh > 0.5)
@ -393,8 +306,7 @@ bool DepthProcessor::obstacleDetect(const cv::Mat depthMat, const Eigen::Affine3
imgDepth.convertTo(imgDepth, CV_32FC1);
//深度图转点云
PointCloudXYZ::Ptr c(new PointCloudXYZ);
PointCloudXYZ::Ptr oriCloud = depth2Cloud(c, depthMat, 0, depthMat.rows);
PointCloudXYZ::Ptr oriCloud = depth2Cloud(depthMat, 0, depthMat.rows);
//下采样减少点数量
PointCloudXYZ::Ptr cloudLeft = axisFilter(oriCloud, -1.5, 0, "x", false);
@ -484,8 +396,7 @@ bool DepthProcessor::obstacleDetect(const cv::Mat depthMat, const Eigen::Affine3
//通过半径聚类结果判断最近点是否是障碍物
radiusSearch(cloud, pointZ, 0.1, tmp_index);
if(tmp_index.size() < /*thre_ponit_count*/ 60){
//TODO:认为这个点不是物体上的点,做一些剔除操作
if(tmp_index.size() < 60){
tmp_outersindex.push_back(temp_outerindex);
count++;
continue;
@ -540,9 +451,11 @@ bool DepthProcessor::obstacleDetect(const cv::Mat depthMat, const Eigen::Affine3
}
}
if(bViewCloud){
pcdViewer->updatePointCloud(otherCloud, "cloud1");
pcdViewer->updatePointCloud(nearestCloud, "cloud2");
pcdViewer->spinOnce(5);
}
return haveObstacle;
}
@ -593,10 +506,10 @@ void DepthProcessor::calHistogramZ(const PointCloudXYZ::Ptr &pointCloud, std::ve
}
}
DepthProcessor::DepthProcessor(const std::string file_path, const cv::Mat tmp_mk){
mK = tmp_mk;
DepthProcessor::DepthProcessor(){
cloud = PointCloudXYZ::Ptr(new PointCloudXYZ);
if(bViewCloud){
pcdViewer = visualization::PCLVisualizer::Ptr (new visualization::PCLVisualizer("Point Cloud Viewer"));
// 设置背景颜色
pcdViewer->setBackgroundColor(0, 0, 0);
@ -607,11 +520,10 @@ DepthProcessor::DepthProcessor(const std::string file_path, const cv::Mat tmp_mk
pcdViewer->addPointCloud<PointXYZ>(cloud, "cloud2");
// 设置第二个点云的颜色为色
pcdViewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 1.0, 0.0, 0.0, "cloud2");
// 设置点云大小
// pcdViewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, 2, "cloud2");
}
}
//点云下采样
PointCloudXYZ::Ptr DepthProcessor::downsampling(const PointCloudXYZ::Ptr& pointCloud, float leaf){
// 创建 VoxelGrid 滤波器对象
VoxelGrid<PointXYZ> vg;
@ -624,49 +536,3 @@ PointCloudXYZ::Ptr DepthProcessor::downsampling(const PointCloudXYZ::Ptr& pointC
// 保存下采样后的点云
return filteredCloud;
}
//另一个去除地面的方法
PointCloudXYZ::Ptr DepthProcessor::delGround_else(const PointCloudXYZ::Ptr &pointCloud, std::vector<int> index)
{
// 创建分割器对象
SACSegmentation<PointXYZ> seg;
seg.setOptimizeCoefficients(true);
// 设置分割模型类型(平面模型)
seg.setModelType(SACMODEL_PLANE);
// 设置方法类型RANSAC
seg.setMethodType(SAC_RANSAC);
// 设置最大迭代次数和拟合阈值(点到平面的垂直距离)
seg.setMaxIterations(2000);
seg.setDistanceThreshold(0.1);
// 输入点云
seg.setInputCloud(cloud);
// 创建存储模型系数的对象
ModelCoefficients::Ptr coefficients(new ModelCoefficients);
// 创建存储内点索引的对象
PointIndices::Ptr inliers(new PointIndices);
inliers->indices = index;
// 分割点云
seg.segment(*inliers, *coefficients);
// 创建提取器对象
ExtractIndices<PointXYZ> extract;
// 设置提取器输入点云
extract.setInputCloud(cloud);
// 设置提取器的内点索引
extract.setIndices(inliers);
// 设置提取器的标志,为 true 表示提取非内点,即删除地面
extract.setNegative(true);
// 提取非地面点
PointCloudXYZ::Ptr no_ground_cloud(new PointCloudXYZ);
extract.filter(*no_ground_cloud);
return no_ground_cloud;
}

View File

@ -7,6 +7,7 @@
using namespace std;
//权重文件放在workspace目录下
const string& engine_file = "best.transd.engine";
const char * Yolo::cocoLabels[] = {"person", "bicycle",
"motorcycle", "bus", "fire hydrant",
@ -23,11 +24,11 @@ BoxArray Yolo::detect(cv::Mat colorMat){
if (detector == nullptr) {
std::cout << "Yolo is not work !!!" << std::endl;
}
BoxArray objs = detector->forward(cvimg(colorMat));//返回一个包含检测到的目标的对象数组objs
//返回一个包含检测到的目标的对象数组objs
BoxArray objs = detector->forward(cvimg(colorMat));
//遍历检测到的目标数组 objs 中的每个目标并绘制
for (Box &obj : objs) {
const char* name = cocoLabels[obj.classLabel];
//std::cout << "////////////cocoLabels[obj.classLabel]////////////////////" << name << std::endl;
std::string caption = cv::format("%s", name);
cv::rectangle(colorMat, cv::Point(obj.left, obj.top), cv::Point(obj.right, obj.bottom),
cv::Scalar(0, 255, 0), 1);

View File

@ -207,15 +207,7 @@ class __native_nvinfer_logger : public ILogger {
} else if (severity == Severity::kERROR) {
INFO("NVInfer: %s", msg);
}
// else if (severity == Severity::kWARNING) {
// INFO("NVInfer: %s", msg);
// }
// else if (severity == Severity::kINFO) {
// INFO("NVInfer: %s", msg);
// }
// else {
// INFO("%s", msg);
// }
}
};
static __native_nvinfer_logger gLogger;

View File

@ -1,9 +1,3 @@
///摄像头
#include <librealsense2/rs.hpp> // Include RealSense Cross Platform API
#include <librealsense2/hpp/rs_processing.hpp>
#include "example.hpp"
#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
#include <set>
@ -41,34 +35,25 @@
#include <pcl/common/transforms.h>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/filters/conditional_removal.h> //条件滤波器头文件
#include <pcl/filters/passthrough.h> //直通滤波器头文件
#include <pcl/filters/radius_outlier_removal.h> //半径滤波器头文件
#include <pcl/filters/statistical_outlier_removal.h> //统计滤波器头文件
#include <pcl/filters/voxel_grid.h> //体素滤波器头文件
#include <pcl/segmentation/extract_clusters.h>
#include <pcl/point_cloud.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/PointIndices.h>
// boost.format 字符串处理
//#include <boost/format.hpp>
#include "Yolo.hpp"
#include "DepthProcessor.hpp"
#include "IMUProcessor.hpp"
// 语音
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include "serialport.h"
#include<map>
#include<chrono>
using namespace std;
// 超声波
#include "../include/dyp-a05/sonar_driver.h"
@ -79,6 +64,10 @@ using namespace std;
// 蜂鸣器
#include <JetsonGPIO.h>
#include <signal.h>
using namespace std;
/* Private variables ---------------------------------------------------------*/
static int addr = 0;
static int error = 0;
@ -106,28 +95,20 @@ static unsigned char rx_buffer[RX_BUFFER_MAX];
static double Distance[4] = {0, 0, 0, 0};
std::string port = "/dev/ultrasound";
/*初始化参数定义*/
int ini = 0;
int initial_times = 10;
bool initial = false;
/*超声波参数定义*/
double max_wrong =2.5;
double min_wrong =0.25;
double dis0[10];
double dis1[10];
bool end_this_program = false;
// 差值
double dis0_d = 0.0;
double dis1_d = 0.0;
// 差值阈值
double Thr = 0.5;
double Thr = 0.85;
// 播报选择
static int voice_status = 0;
std::mutex mtx;
bool ToPlay = false;
int distt;
bool isObjectt;
bool to_play = false;
double dist_global;
bool is_object_global = false;
// declare
void play_voice(string);
@ -182,93 +163,11 @@ map<string, char> Objects = {
{"toilet", 0x5f},
{"tv", 0x60},
{"refrigerator", 0x61},
{"object", 0x6e},
// 待增物体todo
};
// 播报函数
// 10->16进制conver使用
char tenTo16(int i){
char output = 'a' ;
switch(i){
case 1: output = 0x01; break;
case 2: output = 0x02; break;
case 3: output = 0x03; break;
case 4: output = 0x04; break;
case 5: output = 0x05; break;
case 6: output = 0x06; break;
case 7: output = 0x07; break;
case 8: output = 0x08; break;
case 9: output = 0x09; break;
case 0: output = 0x0e; break;
}
return output;
}
// 待传输数组,结合距离和物体,未用
void conver(char out[], double dis, string obj){
// todo 四舍五入一下 0.29->0.3
int ge = -1,shi=-1,bai=-1,qian=-1, dian= -1, dian2 = -1;;
//char out[] = {0x8b};
//auto *beg = begin(out);
int p = 0;
//printf("qian: %d,bai:%d,shi:%d,ge:%d,dian:%d\n",qian,bai,shi,ge,dian);
//将距离转为十六进制
if(dis >= 1000){
qian = (int)dis/1000;
bai = (int)dis/100%10;
shi = (int)dis/10%10;
ge = (int)dis%10;
}else if(dis >= 100){
bai = (int)dis/100;
shi = (int)dis/10%10;
ge = (int)dis%10;
}else if(dis >= 10){
shi = (int)dis/10;
ge = (int)dis%10;
}else if(dis >=1){
ge = (int)dis%10;
}else{
ge = 0;
}
dian = (int)(dis*10)%10;
dian2 = (int)(dis*100)%10;
//printf("qian: %d,bai:%d,shi:%d,ge:%d,dian:%d\n",qian,bai,shi,ge,dian);
if(qian != -1){
out[p++] = tenTo16(qian);
out[p++] = 0x0c;
out[p++] = tenTo16(bai);
out[p++] = 0x0b;
out[p++] = tenTo16(shi);
out[p++] = 0x0a;
}else if(bai != -1){
out[p++] = tenTo16(bai);
out[p++] = 0x0b;
out[p++] = tenTo16(shi);
out[p++] = 0x0a;
}else if(shi != -1){
out[p++] = tenTo16(shi);
out[p++] = 0x0a;
}
// 个位数
out[p++] = tenTo16(ge);
// 点数
out[p++] = 0x0d;
// 小数点后一位
out[p++] = tenTo16(dian);
// 小数点后两位
out[p++] = tenTo16(dian2);
//printf("p:%d, out[0]:%x\n",p,out[1]);
//将string转换成对应的十六进制
auto iter = Objects.find(obj);
if(iter != Objects.end()){
out[p++] = iter->second;
}
//return out;
}
// 串口发送起始120十六进制78
bool serial_com(char n16){
@ -294,7 +193,6 @@ bool serial_com(char n16){
int send_nbyte = serialport.sendnPort(pPort,const_cast<char*>(serial_sendmsg),msg_len);
if (send_nbyte > 0) {
// 收到数据
printf("Send: [%d] ... [OK]\n", send_nbyte);
return true;
}
@ -331,13 +229,11 @@ bool serial_com(string object){
if(iter != Objects.end()){
serial_sendmsg[0] = iter->second;
}
// conver(serial_sendmsg, Distance, object);
int msg_len = strlen(serial_sendmsg);
int send_nbyte = serialport.sendnPort(pPort,const_cast<char*>(serial_sendmsg),msg_len);
if (send_nbyte > 0) {
// todo...
fprintf(stdout, "Send: [%d] %s... [OK]\n", send_nbyte, serial_sendmsg);
// fprintf(stdout, "Send: [%d] %s... [OK]\n", send_nbyte, serial_sendmsg);
return true;
}
return false;
@ -362,10 +258,10 @@ bool serial_com(set<string> objects){
int send_size = 50;
char serial_sendmsg[send_size] = {0x02};
// conver(serial_sendmsg, distance, object);
int p=0;
for(auto e: objects){
// Objects
// 从全局Objectset中的object
auto iter = Objects.find(e);
if(iter != Objects.end()){
// 找到
@ -376,15 +272,12 @@ bool serial_com(set<string> objects){
int msg_len = strlen(serial_sendmsg);
int send_nbyte = serialport.sendnPort(pPort,const_cast<char*>(serial_sendmsg),msg_len);
if (send_nbyte > 0) {
// todo...
fprintf(stdout, "Send: [%d] %s... [OK]\n", send_nbyte, serial_sendmsg);
return true;
}
return false;
}
// 串口接收函数
void serial_receive(char response_buf[]){
SerialPort serialport;
@ -415,9 +308,7 @@ void serial_receive(char response_buf[]){
response_buf[receive_nbyte] = '\0';
break;
}
// if (receive_nbyte == 0) break;
}
// fprintf(stdout, "Receive: [%d] %s... [OK]\n", receive_nbyte, response_buf);
}
// 为了剔除类别中不属于检测出的类别
@ -468,7 +359,7 @@ void ultrasound_play(){
if(fdcom > 0)
{
uart_set(fdcom, &portinfo);
printf("fdcom:%d重启成功\n", fdcom);
printf("fdcom:%d重启成功!!!!!!!\n", fdcom);
}
continue;
}
@ -483,19 +374,17 @@ void ultrasound_play(){
Distance[1] = double(data_merge(rx_buffer[3], rx_buffer[4]))/1000;
Distance[2] = double(data_merge(rx_buffer[5], rx_buffer[6]))/1000;
Distance[3] = double(data_merge(rx_buffer[7], rx_buffer[8]))/1000;
// std::cout<<"Distance[0]:"<<Distance[0]<<"米 "<<"Distance[1]:"<<Distance[1]<<"米 "<<"Distance[2]:"<<Distance[2]<<"米 "<<"Distance[3]:"<<Distance[3]<<"米 "<<std::endl;
if(((Distance[0] <= Thr)&&(Distance[0]>min_wrong)) || ((Distance[1] <= Thr)&&(Distance[1]>min_wrong))){
// 定义全局变量
{
std::cout<<"Distance[0]:"<<Distance[0]<<""<<"Distance[1]:"<<Distance[1]<<""<<"Distance[2]:"<<Distance[2]<<""<<"Distance[3]:"<<Distance[3]<<""<<std::endl;
ToPlay = true;
// std::cout<<"Distance[0]:"<<Distance[0]<<"米 "<<"Distance[1]:"<<Distance[1]<<"米 "<<"Distance[2]:"<<Distance[2]<<"米 "<<"Distance[3]:"<<Distance[3]<<"米 "<<std::endl;
to_play = true;
voice_status = 3;
}
continue;
}
else ToPlay = false;
else to_play = false;
}
}
@ -520,7 +409,7 @@ void play_all_class(){
if(resp_s == "202"){
if(classes.empty()){
// std::cout<< "wbw111"<< std::endl;
if(!serial_com(0x73)){
std::cout<< "115发送失败,没有物体不播报"<< std::endl;
}
@ -589,64 +478,82 @@ void Bee()// 启动
GPIO::setup(output_pin, GPIO::OUT, GPIO::LOW);
std::cout << "Bee" << std::endl;
while(!end_this_program){
if(ToPlay || (isObjectt && distt <= 0.5))
if(to_play || (is_object_global && dist_global <= 0.5))
{
// set pin as an output pin with optional initial state of HIGH
GPIO::output(output_pin, GPIO::HIGH);
usleep(100000);// 300000
GPIO::output(output_pin, GPIO::LOW);
usleep(100000);
}else if(isObjectt && distt > 0.5){
}else if(is_object_global && dist_global > 0.5){
GPIO::output(output_pin, GPIO::HIGH);
usleep(100000);// 300000
GPIO::output(output_pin, GPIO::LOW);
usleep(300000);
usleep(400000);
}
else {
GPIO::output(output_pin, GPIO::LOW);
usleep(100000);
}
else GPIO::output(output_pin, GPIO::LOW);
}
GPIO::cleanup();
}
// 配置PWM IO口驱动蜂鸣器
const map<string, int> output_pins{
{"JETSON_XAVIER", 18}, {"JETSON_NANO", 33}, {"JETSON_NX", 33},
{"CLARA_AGX_XAVIER", 18}, {"JETSON_TX2_NX", 32}, {"JETSON_ORIN", 18},
{"JETSON_ORIN_NX", 33}, {"JETSON_ORIN_NANO", 33},
};
int get_output_pin()
{
if (output_pins.find(GPIO::model) == output_pins.end())
{
cerr << "PWM not supported on this board\n";
terminate();
}
return output_pins.at(GPIO::model);
}
int main(){
rs2::log_to_console(RS2_LOG_SEVERITY_ERROR);
// 声明 RealSense 管道,封装实际设备和传感器
rs2::pipeline cameraPipe, imuPipe;
// 使用推荐的默认配置开始流式传输
// 默认视频配置包含深度流和色彩流
// 如果设备能够流式传输 IMU 数据,则默认启用陀螺仪和加速计
// 使用推荐的默认配置开始流式传输,深度流和色彩流
rs2::config cameraCfg, imuCfg;
// IMU数据流设置帧率会报错或是帧率设置过大
imuCfg.enable_stream(rs2_stream::RS2_STREAM_ACCEL, rs2_format::RS2_FORMAT_MOTION_XYZ32F);
imuCfg.enable_stream(rs2_stream::RS2_STREAM_GYRO, rs2_format::RS2_FORMAT_MOTION_XYZ32F);
// Declare object that handles camera pose calculations
IMUProcessor imuProcessor;
//处理惯性测量单元 (IMU) 传感器数据
rs2::pipeline_profile imuProfile = imuPipe.start(imuCfg, [&](rs2::frame frame)
{
// Cast the frame that arrived to motion frame
// 将到达的帧转换为motion_frame
auto motion = frame.as<rs2::motion_frame>();
// If casting succeeded and the arrived frame is from gyro stream
if (motion && motion.get_profile().stream_type() == RS2_STREAM_GYRO && motion.get_profile().format() == RS2_FORMAT_MOTION_XYZ32F)
{
// Get the timestamp of the current frame
//获取当前帧的时间戳
double ts = motion.get_timestamp();
// Get gyro measures
//从motion_frame对象中获取陀螺仪数据
rs2_vector gyroData = motion.get_motion_data();
// Call function that computes the angle of motion based on the retrieved measures
//传入陀螺仪数据和时间戳,对陀螺仪数据进行处理
imuProcessor.process_gyro(gyroData, ts);
}
// If casting succeeded and the arrived frame is from accelerometer stream
if (motion && motion.get_profile().stream_type() == RS2_STREAM_ACCEL && motion.get_profile().format() == RS2_FORMAT_MOTION_XYZ32F)
{
// Get accelerometer measures
//从motion_frame对象中获取加速度计数据
rs2_vector accelData = motion.get_motion_data();
// Call function that computes the angle of motion based on the retrieved measures
//对加速度计数据进行处理
imuProcessor.process_accel(accelData);
}
});
//启用了颜色相机流和深度相机流
cameraCfg.enable_stream(rs2_stream::RS2_STREAM_COLOR, 640, 480, rs2_format::RS2_FORMAT_BGR8, 30);
cameraCfg.enable_stream(rs2_stream::RS2_STREAM_DEPTH, 640, 480, rs2_format::RS2_FORMAT_Z16, 30);
rs2::pipeline_profile cameraProfile = cameraPipe.start(cameraCfg);
// 创建一个对齐模块
@ -657,9 +564,7 @@ int main(){
// 创建yolov8
Yolo yoloV8("/home/jetson/tmp/obstacle-detection-new1/workspace/best.transd.engine");
// 创建点云处理器
string cfgPath = "";
cv::Mat mK(4, 4, CV_32F);
DepthProcessor depthProcessor(cfgPath, mK);
DepthProcessor depthProcessor;
depthProcessor.fx = 388.588;
depthProcessor.fy = 388.588;
depthProcessor.cx = 322.771;
@ -693,16 +598,10 @@ int main(){
transform.rotate(Eigen::AngleAxisf(-theta.x, Eigen::Vector3f::UnitZ()) *
Eigen::AngleAxisf(0, Eigen::Vector3f::UnitY()) *
Eigen::AngleAxisf(theta.z + PI_FL/2, Eigen::Vector3f::UnitX()));
//初始化成功次数
int init_count = 0;
//初始化地面高度计算值
float tmp_height = 0;
// 关闭蜂鸣器
int output_pin_ = 13;
GPIO::setmode(GPIO::BCM);
//signal(SIGINT, signalHandler);
GPIO::setup(output_pin_, GPIO::OUT, GPIO::LOW);
GPIO::output(output_pin_, GPIO::LOW);
//相机初始化 10次
while(true){
if(!depthProcessor.camHighInit(depthMat, transform)){
@ -732,27 +631,19 @@ int main(){
std::cout << "相机初始化:" << depthProcessor.camHigh << std::endl;
// 超声波模块参数初始化
for(int i = 0 ; i < initial_times; i++)// 先初始化数组里的数为0
{
dis0[i] = 0.0;
dis1[i] = 0.0;
}
// 创建超声波线程
std::thread ultrasonicThread(ultrasound_play);
ultrasonicThread.detach();
// 播报所有物体
std::thread playAllClassThread(play_all_class);
playAllClassThread.detach();
// 创建蜂鸣器线程
std::thread BeeThread(Bee);
BeeThread.detach();
// // classes
std::thread playAllClassThread(play_all_class);
playAllClassThread.detach();
// 相机主循环
while(true) {
auto start = std::chrono::high_resolution_clock::now();
//等待来自摄像机的下一组图像
rs2::frameset allFrames = cameraPipe.wait_for_frames();
float3 theta = imuProcessor.get_theta();
@ -765,8 +656,6 @@ int main(){
// 检查是否成功获取数据
if (depthFrame && colorFrame) {
auto start = std::chrono::high_resolution_clock::now();
// 将深度图像转换为cv::Mat类型
int widthD = depthFrame.get_width();
int heightD = depthFrame.get_height();
@ -791,10 +680,11 @@ int main(){
isObject = depthProcessor.obstacleDetect(depthMat, transform);
if(isObject)
{
isObjectt = true;
distt = depthProcessor.dist;
is_object_global = true;
dist_global = depthProcessor.dist;
}
else isObjectt = false;
else is_object_global = false;
}
catch (const std::exception& e) {
std::cerr << "Caught exception: " << e.what() << std::endl;
@ -803,7 +693,8 @@ int main(){
// YOLOv8分割+检测
BoxArray objs = yoloV8.detect(colorMat);
// 因为所有可视化都是在main.cpp里直接在main.cpp中定义一个全局变量
// 来控制是否可视化就行,不可视化的话
if(isObject) {
cv::rectangle(colorMat, cv::Point(depthProcessor.min_x, depthProcessor.min_y),
cv::Point(depthProcessor.max_x, depthProcessor.max_y),
@ -818,10 +709,13 @@ int main(){
classes.clear();
}
// 输出识别框信息
if(depthProcessor.bPrintObjs){
for(Box &obj : objs) {
cout << yoloV8.cocoLabels[obj.classLabel] << " ";
}
cout << endl;
}
for(Box &obj : objs) {
float depth = 0;
int i = 0;
@ -829,14 +723,6 @@ int main(){
int objWidth = obj.right - obj.left;
int objHeight = obj.bottom - obj.top;
cv::resize(mask, mask, cv::Size(objWidth, objHeight));
// 进行腐蚀操作
cv::erode(mask, mask, kernel);
// 将掩码绘制到RGB图像上
//cv::Rect roi(obj.left, obj.top, obj_width, obj_height);
//cv::Mat maskColor;
//cv::cvtColor(mask, maskColor, cv::COLOR_GRAY2BGR);
//maskColor.copyTo(colorMat(roi));
for(int x = 0; x < objWidth; x++){
for(int y = 0 ;y < objHeight; y++){
@ -873,20 +759,7 @@ int main(){
}
}
// if(/*isObject && */isLabel){
// // if(abs(depthProcessor.dist - depth) > 0.2){
// // isLabel = false;
// // std::cout << " depthProcessor.dist = " << depthProcessor.dist << " depth =" << depth << std::endl;
// // }
// // else
// if(tmp_depth > depth){
// tmp_depth = depth;
// std::cout << "something near" <<std::endl;
// }
// }
// 要播报的全部类别
classes.insert(yoloV8.cocoLabels[obj.classLabel]);
@ -897,15 +770,11 @@ int main(){
auto endTime = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::seconds>(endTime - startTime);
// 语音播报,间隔大于等于秒在进行下一次
// 语音播报,间隔大于等于7秒在进行下一次
if(duration.count() >= 7 || count == 1){
if(ToPlay){
if(to_play){
// 超声波播报
std::cout << std::endl << "************************有障碍物;dis0_d: " << dis0_d << "|| dis1_d: " << dis1_d << std::endl;
// play_voice("object");
// Bee(300000);
// 回置全局变量
// ToPlay = false;
voice_status = 0;
startTime = std::chrono::high_resolution_clock::now();
count++;
@ -913,8 +782,6 @@ int main(){
// 相机播报
if(isObject && isLabel){
isLabel = false;
std::cout << std::endl;
std::cout << "前方" << depthProcessor.dist << "米存在" << label << std::endl;
{
voice_status = 1;
}
@ -923,8 +790,6 @@ int main(){
startTime = std::chrono::high_resolution_clock::now();
count++;
}else if(isObject){
std::cout << std::endl;
std::cout << "前方" << depthProcessor.dist << "米有障碍物"<< std::endl;
{
voice_status = 2;
}
@ -942,14 +807,15 @@ int main(){
count = 2;
}
if(depthProcessor.bViewRGB){
cv::imshow("RGB Image", colorMat);
if (cv::waitKey(5) == 27) break;
auto end = std::chrono::high_resolution_clock::now();
auto duration_test = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
std::cout << "Time taken: " << duration_test << " microseconds" << std::endl;
}
}
}
}
// pwm.stop();
GPIO::cleanup();
return 0;
}

View File

@ -25,14 +25,13 @@ int wait_flag = noflag;
SerialPort::Port_INFO *SerialPort::readyPort(int id, Port_INFO *pPort)
{
pthread_mutex_init(&pPort->mt,NULL);
/*Ubuntu<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*Ubuntu虚拟机
*sudo gpasswd --add zhaojq dialout
*logout
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>open /dev/ttyS0Ȩ<EFBFBD><EFBFBD>
*open /dev/ttyS0
*/
sprintf(pPort->name,"/dev/voice");
// pPort->name = "/dev/voice";
/*A8<41><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*A8开发板*/
//sprintf(pPort->name,"/dev/s3c2410_serial%d",id);
pPort->fd = open(pPort->name, O_RDWR | O_NOCTTY | O_NDELAY);
@ -55,13 +54,13 @@ int SerialPort::cleanPort(Port_INFO *pPort)
return 0;
}
/*c_cflag:<3A><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>־,ָ<><D6B8><EFBFBD>ն<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* CLOCAL:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·״̬,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* CREAD:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
/* c_cflag:控制模式标志,指定终端硬件控制信息
* CLOCAL:,线,
* CREAD:,,
*/
int SerialPort::setPortSpeed(Port_INFO *pPort, int port_speed)
{
/*tcgetattr:<EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD>ȡ<EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD>صIJ<EFBFBD><EFBFBD><EFBFBD>*/
/*tcgetattr:用于获取终端相关的参数*/
if(unlikely(tcgetattr(pPort->fd,&pPort->ntm) != 0)) {
fprintf(stderr, "Set Serial [%s] Speed Error... [FAIL]\n",pPort->name);
return -1;
@ -98,15 +97,15 @@ int SerialPort::setPortSpeed(Port_INFO *pPort, int port_speed)
fprintf(stderr, "Unsupported Port Speed... [FAIL]\n");
return -1;
}
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*设置输入波特率*/
cfsetispeed(&pPort->ntm, speed);
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*设置输出波特率*/
cfsetospeed(&pPort->ntm, speed);
pPort->ntm.c_cflag |= (CLOCAL | CREAD); //Enable the receiver and set local mode
/*tcsetattr:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD>صIJ<D8B5><C4B2><EFBFBD>
* TCSANOW:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* TCSADRAIN:<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲŸı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* TCSAFLUSH:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* tcsetattr:用于设置终端相关的参数
* TCSANOW:
* TCSADRAIN:
* TCSAFLUSH:
*/
tcsetattr(pPort->fd,TCSANOW,&pPort->ntm);
// fprintf(stdout, "Set SerialPort Speed:[%d]... [OK]\n", port_speed);
@ -115,20 +114,20 @@ int SerialPort::setPortSpeed(Port_INFO *pPort, int port_speed)
/*
*c_cflag:
* CSIZE:<EFBFBD>ֽڴ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺͽ<EFBFBD><EFBFBD>յ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD>ֽڵ<EFBFBD>λ<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD>λ).ȡֵ<EFBFBD><EFBFBD>ΧΪCS5,CS6,CS7,CS8
* PARENB:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD>ԵIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>żλ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>
* PARODD:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊż
* CSTOPB:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣλ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊһ<EFBFBD><EFBFBD>ֹͣλ
* CRTSCTS:ʹ<EFBFBD><EFBFBD>RTS/CTS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*c_iflag:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>־,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
* INPCK:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*c_oflag:<EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>־,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
* OPOST:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>ʵ<EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*c_lflag:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>־,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն˱<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ICANON:ʹ<EFBFBD>ñ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* ECHO:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD>
* ECHOE:<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ISIG:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>INTR,OUIT,SUSPʱ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ź<EFBFBD>
* CSIZE:,().CS5,CS6,CS7,CS8
* PARENB:.,,
* PARODD:,;
* CSTOPB:;
* CRTSCTS:使RTS/CTS
*c_iflag:,
* INPCK:,;
*c_oflag:,
* OPOST:,
*c_lflag:,
* ICANON:使
* ECHO:,
* ECHOE:
* ISIG:,INTR,OUIT,SUSP,
*/
int SerialPort::setPortParity(Port_INFO *pPort,int databits,int parity,int stopbits)
{
@ -137,7 +136,7 @@ int SerialPort::setPortParity(Port_INFO *pPort,int databits,int parity,int stopb
return -1;
}
pPort->ntm.c_cflag &= ~CSIZE;
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ*/
/*设置数据位*/
switch (databits)
{
case 7:
@ -150,23 +149,23 @@ int SerialPort::setPortParity(Port_INFO *pPort,int databits,int parity,int stopb
fprintf(stderr, "Unsupported Port Data bits... [FAIL]\n");
return -1;
}
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD>λ*/
/*设置奇偶校验位*/
switch (parity)
{
/*No parity <EFBFBD><EFBFBD><EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD>λ*/
/*No parity 无奇偶校验位*/
case 'n':
case 'N':
pPort->ntm.c_cflag &= ~PARENB; /* Clear parity enable */
pPort->ntm.c_iflag &= ~INPCK; /* Enable parity checking */
break;
/*Odd parity <EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>*/
/*Odd parity 奇校验*/
case 'o':
case 'O':
pPort->ntm.c_cflag |= (PARODD | PARENB);
pPort->ntm.c_iflag |= INPCK; /* Disnable parity checking */
break;
/*Even parity żУ<EFBFBD><EFBFBD>*/
/*Even parity 偶校验*/
case 'e':
case 'E':
pPort->ntm.c_cflag |= PARENB; /* Enable parity */
@ -182,7 +181,7 @@ int SerialPort::setPortParity(Port_INFO *pPort,int databits,int parity,int stopb
fprintf(stderr, "Unsupported Port Parity... [FAIL]\n");
return -1;
}
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣλ*/
/*设置停止位*/
switch (stopbits)
{
case 1:
@ -198,15 +197,15 @@ int SerialPort::setPortParity(Port_INFO *pPort,int databits,int parity,int stopb
pPort->ntm.c_cflag &= ~CRTSCTS; // disable hardware flow control
pPort->ntm.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/
pPort->ntm.c_oflag &= ~OPOST;
/*tcflush:<3A><><EFBFBD><EFBFBD>ն<EFBFBD>δ<EFBFBD><CEB4>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* TCIFLUSH:ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* TCOFLUSH:ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* TCIOFLUSH:ˢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* tcflush:清空终端未完成的输入/输出请求及数据
* TCIFLUSH:
* TCOFLUSH:
* TCIOFLUSH:/
*/
tcflush(pPort->fd, TCIFLUSH);
/*<EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><EFBFBD>(<28>ٺ<EFBFBD><D9BA><EFBFBD>)*/
/*等待时间(百毫秒)*/
pPort->ntm.c_cc[VTIME] = 5;
/*<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD>*/
/*等待的最小字节数*/
pPort->ntm.c_cc[VMIN] = 1;
tcsetattr(pPort->fd,TCSANOW,&pPort->ntm);
// fprintf(stdout, "Set SerialPort Data bits:[%d], Parity:[%c], Stop bits:[%d]... [OK]\n", databits, parity, stopbits);
@ -278,14 +277,14 @@ int SerialPort::signal_recvnPort(Port_INFO *pPort,char *pbuf,int size)
// saio.sa_flags = 0;
// saio.sa_restorer = NULL;
/*
*Ӧ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ:
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дʱ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>źŸ<EFBFBD><EFBFBD>ں<EFBFBD>,<EFBFBD><EFBFBD>֪<EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿɶ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*:
*,,,,
*/
//<EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD>źŵĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,SIGIO:<3A>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>Կ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//设置对信号的处理操作程序,SIGIO:文件描述符准备就绪,可以开始进行输入/输出操作
// sigaction(SIGIO, &saio, NULL);
//ָ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD>"
//指定一个进程作为文件的"属主"
// fcntl(pPort->fd, F_SETOWN, getpid ());
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FASYNC<EFBFBD><EFBFBD>־
//在设备文件中添加FASYNC标志
// int f_flags = fcntl(pPort->fd, F_GETFL);
// fcntl(pPort->fd, F_SETFL, f_flags|FASYNC);
@ -324,7 +323,7 @@ int SerialPort::lockPort(Port_INFO *pPort)
if(unlikely(pPort->fd < 0)) {
return 1;
}
/*LOCK_EX:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*LOCK_EX:建立互斥锁定*/
return flock(pPort->fd,LOCK_EX);
}
@ -333,6 +332,6 @@ int SerialPort::unlockPort(Port_INFO *pPort)
if(unlikely(pPort->fd < 0)) {
return 1;
}
/*LOCK_UN<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/*LOCK_UN:解除文件锁定*/
return flock(pPort->fd,LOCK_UN);
}

View File

View File

@ -76,7 +76,7 @@ static __host__ __device__ void affine_project(float *matrix, float x, float y,
*ox = matrix[0] * x + matrix[1] * y + matrix[2];
*oy = matrix[3] * x + matrix[4] * y + matrix[5];
}
//解码 YOLO 模型的预测输出,筛选出目标性较高的预测框,并将其转换为图像上的实际目标框
static __global__ void decode_kernel_common(float *predict, int num_bboxes, int num_classes,
int output_cdim, float confidence_threshold,
float *invert_affine_matrix, float *parray,
@ -125,7 +125,7 @@ static __global__ void decode_kernel_common(float *predict, int num_bboxes, int
*pout_item++ = label;
*pout_item++ = 1; // 1 = keep, 0 = ignore
}
//更新了类别置信度的读取位置,并添加了将预测框的位置索引存储到输出中的功能。
static __global__ void decode_kernel_v8(float *predict, int num_bboxes, int num_classes,
int output_cdim, float confidence_threshold,
float *invert_affine_matrix, float *parray,
@ -171,7 +171,7 @@ static __global__ void decode_kernel_v8(float *predict, int num_bboxes, int num_
*pout_item++ = 1; // 1 = keep, 0 = ignore
*pout_item++ = position;
}
//计算两个矩形框bounding box之间 Intersection over Union (IoU)
static __device__ float box_iou(float aleft, float atop, float aright, float abottom, float bleft,
float btop, float bright, float bbottom) {
float cleft = max(aleft, bleft);
@ -186,7 +186,7 @@ static __device__ float box_iou(float aleft, float atop, float aright, float abo
float b_area = max(0.0f, bright - bleft) * max(0.0f, bbottom - btop);
return c_area / (a_area + b_area - c_area);
}
//CUDA 核函数用于执行快速非最大抑制Fast Non-Maximum SuppressionNMS算法用于过滤重叠的检测框并保留置信度较高的框
static __global__ void fast_nms_kernel(float *bboxes, int MAX_IMAGE_BOXES, float threshold) {
int position = (blockDim.x * blockIdx.x + threadIdx.x);
int count = min((int)*bboxes, MAX_IMAGE_BOXES);
@ -211,7 +211,7 @@ static __global__ void fast_nms_kernel(float *bboxes, int MAX_IMAGE_BOXES, float
}
}
}
//计算 CUDA 核函数执行所需的网格维度grid dimensions和块维度block dimensions
static dim3 grid_dims(int numJobs) {
int numBlockThreads = numJobs < GPU_BLOCK_THREADS ? numJobs : GPU_BLOCK_THREADS;
return dim3(((numJobs + numBlockThreads - 1) / (float)numBlockThreads));
@ -220,7 +220,7 @@ static dim3 grid_dims(int numJobs) {
static dim3 block_dims(int numJobs) {
return numJobs < GPU_BLOCK_THREADS ? numJobs : GPU_BLOCK_THREADS;
}
//根据不同的类型选择调用不同的 CUDA 核函数
static void decode_kernel_invoker(float *predict, int num_bboxes, int num_classes, int output_cdim,
float confidence_threshold, float nms_threshold,
float *invert_affine_matrix, float *parray, int MAX_IMAGE_BOXES,
@ -242,7 +242,7 @@ static void decode_kernel_invoker(float *predict, int num_bboxes, int num_classe
block = block_dims(MAX_IMAGE_BOXES);
checkKernel(fast_nms_kernel<<<grid, block, 0, stream>>>(parray, MAX_IMAGE_BOXES, nms_threshold));
}
//用于执行仿射变换、双线性插值和归一化操作
static __global__ void warp_affine_bilinear_and_normalize_plane_kernel(
uint8_t *src, int src_line_size, int src_width, int src_height, float *dst, int dst_width,
int dst_height, uint8_t const_value_st, float *warp_affine_matrix_2_3, Norm norm) {
@ -324,7 +324,7 @@ static __global__ void warp_affine_bilinear_and_normalize_plane_kernel(
*pdst_c1 = c1;
*pdst_c2 = c2;
}
//CUDA 来处理图像数据,生成掩码图像
static void warp_affine_bilinear_and_normalize_plane(uint8_t *src, int src_line_size, int src_width,
int src_height, float *dst, int dst_width,
int dst_height, float *matrix_2_3,
@ -337,7 +337,7 @@ static void warp_affine_bilinear_and_normalize_plane(uint8_t *src, int src_line_
src, src_line_size, src_width, src_height, dst, dst_width, dst_height, const_value,
matrix_2_3, norm));
}
//用于生成掩码图像
static __global__ void decode_single_mask_kernel(int left, int top, float *mask_weights,
float *mask_predict, int mask_width,
int mask_height, unsigned char *mask_out,
@ -365,7 +365,7 @@ static __global__ void decode_single_mask_kernel(int left, int top, float *mask_
float alpha = 1.0f / (1.0f + exp(-cumprod));
mask_out[dy * out_width + dx] = alpha * 255;
}
//用了之前核函数decode_single_mask_kernel 来生成掩码图像
static void decode_single_mask(float left, float top, float *mask_weights, float *mask_predict,
int mask_width, int mask_height, unsigned char *mask_out,
int mask_dim, int out_width, int out_height, cudaStream_t stream) {
@ -394,7 +394,7 @@ const char *type_name(Type type) {
return "Unknow";
}
}
//AffineMatrix 结构体,用于存储仿射变换的矩阵
struct AffineMatrix {
float i2d[6]; // image to dst(network), 2x3 matrix
float d2i[6]; // dst to image, 2x3 matrix

Binary file not shown.

Binary file not shown.