之——自己的demo
杂谈
这是关于自己的demo要移植到jetson nano上,缺啥补啥的过程。
正文
1.pycuda
极其容易:
pip3 install pycuda==2021.1
PyCUDA是一个用于Python编程语言的库,它为开发者提供了在GPU(图形处理单元)上执行通用计算的能力。它是一个Python绑定,允许开发者使用Python来编写GPU加速的代码,而无需直接编写底层的CUDA C/C++代码。
以下是PyCUDA的一些主要特点和功能:
GPU加速:PyCUDA允许开发者在GPU上执行通用计算,从而提高计算性能。这对于需要大规模数据并行计算的应用非常有用,例如科学计算、机器学习和深度学习。
直接访问CUDA:PyCUDA提供了对NVIDIA的CUDA平台的底层访问,允许开发者编写直接与CUDA API交互的代码,从而更好地控制GPU计算。
NumPy集成:PyCUDA与NumPy(Python的数值计算库)集成良好,允许开发者轻松地在CPU和GPU之间传输数据,并使用NumPy数组来处理数据。
灵活性:PyCUDA允许开发者编写自定义的GPU核函数,以实现各种计算任务,而不受限于预定义的算法。
开源:PyCUDA是开源项目,可在许多操作系统上使用,因此它具有广泛的可移植性。
PyCUDA是一个强大的工具,可以帮助开发者充分利用GPU的并行计算能力,加速各种计算密集型任务,特别是在科学和工程领域中。它结合了Python的易用性和CUDA的性能,使GPU编程更加可访问和可行。
2.dtw
sudo pip3 install dtw
DTW代表"Dynamic Time Warping",是一种用于比较时间序列数据相似性的算法。DTW库通常是指用于实现这一算法的工具、函数或库。Dynamic Time Warping 算法的目的是衡量两个时间序列之间的相似性,即使它们的时间轴略微不同或存在时间偏移。
DTW算法的主要应用领域包括语音识别、手写识别、生物信息学、运动分析、音乐信息检索和时间序列数据挖掘等。这个算法的核心思想是通过将两个时间序列之间的数据点进行非线性对齐,找到最佳的对应点,以便测量它们之间的相似性。
DTW库通常提供了计算DTW距离或相似性的函数,以及可视化工具来帮助分析和理解时间序列数据的相似性。这些库可以用于各种应用,例如识别语音、匹配手写字符、检测生物学序列的相似性等。
3.skimage
依赖:
sudo apt-get install liblapack-dev gfortran
sudo apt-get install python3-pip
sudo pip3 install -U pip
sudo pip3 install Cython numpy
sudo pip3 install scikit-image
"skimage"通常是指 scikit-image,是一个用于图像处理的 Python 库。它建立在 NumPy、SciPy 和 Matplotlib 等库的基础上,提供了一套丰富的图像处理工具和算法。scikit-image 的目标是提供一个简单而高效的图像处理库,适用于各种应用,包括计算机视觉、医学图像处理、生物学图像分析等。
一些 scikit-image 提供的功能包括:
图像读取和保存: 支持多种图像格式,可以方便地读取和保存图像。
基本图像处理: 提供了常见的图像处理操作,如平滑、锐化、边缘检测等。
图像变换: 包括旋转、缩放、仿射变换等操作。
分割和特征提取: 提供了用于图像分割和特征提取的算法,有助于分析图像中的对象。
形态学操作: 支持基本的形态学运算,如腐蚀、膨胀、开运算和闭运算等。
颜色空间转换: 提供了常见颜色空间(如RGB、HSV等)之间的转换方法。
滤波器和卷积: 包含了各种滤波器和卷积操作,可用于图像增强和去噪。
图像测量: 提供了测量图像中对象的面积、周长、凸包等工具。
4.trt重构
trt文件是针对设备的推理架构,所以移植项目更换设备了过后要重新构造。详见之前的经验:
0002、cuda与tensorrt相关-CSDN博客中的tensorrt安装与转换。、
5.ui重建
pyqt设计基础:PyCharm安装配置PyQt5/QtDesigner/PyUic
重构ui,出现图像显示错位与掉色,找到自己的代码:
img = QImage(img, self.label_camera_height, self.label_camera_width,QImage.Format_RGB888)
修改为
img = QImage(img, self.label_camera_height, self.label_camera_width,self.label_camera_height*3,QImage.Format_RGB888)
bytesPerLine 参数不能省略,否则造成Qimage数据错误,显示图片不正常,此参数设置为image的width*image.channels。