自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stupid_miao的博客

希望能坚持写博客记录学习过程

  • 博客(74)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 【RK3588-linux开发】3、训练yolov5并在RK3588上运行

首先要看看官方文档,对于PC端的开放(模型转换与模拟测试)阅读,toolkit下载:Rockchip_User_Guide_RKNN_Toolkit2_CN-1.2.0.pdf板载部署(C++/C)阅读其NPU的SDK开发文档,SDK下载:Rockchip_RKNPU_User_Guide_RKNN_API_V1.2.0_CN.pdf按照下面步骤训练自己的yolov5模型,并转化为RKNN模型,并再PC端模拟和板载部署运行。1. 训练yolov5下载RK推荐的yolov5进行训练,该仓库

2022-05-09 21:38:37 12100 28

原创 【RK3588-linux开发】2、编译安装opemcv\opencv_contrib

按照步骤来一步通过!!!1. 环境准备sudo apt-get updatesudo apt-get install build-essential -ysudo apt-get install cmake git libavcodec-dev libavformat-dev -ysudo apt-get updatesudo apt-get install libgtk2.0-dev libswscale-dev libopenexr-dev libgstreamer1.0-dev libgs

2022-05-04 13:08:52 3727 5

原创 【RK3588-linux开发】1、刷机ubuntu20

直接按firefly的教程来!1、刷机到内部存储主机环境(windows10),typeC接口连接主机,按下recover键再上电,2s后松开下载工具与镜像驱动安装 (DriverInstall.exe)刷固件 (RKDevTool.exe) 升级固件->擦除flash->固件 选择img->升级2、RK3588上跑Ubuntu-Gnome系统,设置中文...

2022-05-04 12:48:32 4201 5

原创 python大矩阵内存交换的问题

遇到问题记录(待解决): 大矩阵(4960x8976)进行旋转90°时,耗时长。np.rot90()很快,但需要加个copy()后面才能调用,45ms cv2.transpose() + cv2.flip 39ms + 2ms。 调用cpp封装的so,传入img(u8指针);如果输入的img=np.rot90(img)则该进程就会阻塞。 multiprocessing .shared_memory.SharedMemory 好用是好用,但对于二维数组 shm_img[:,:]=img[:,:] 同

2022-03-18 00:06:41 815

原创 Linux C++ thread绑定CPU

参考加入以下语句: cpu_set_t mask; CPU_ZERO(&mask); CPU_SET(1, &mask); ////////指定该线程使用的CPU if (pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask) < 0) { perror("pthread_setaffinity_np");例子:#include <stdio.h

2021-07-26 01:11:48 599 1

原创 Linux(ubuntu)下打包C++代码并运行于其他ubuntu上

1. 寻找该可执行文件的链接库,并导出。新建packs在上一级目录下,运行下面脚本;#!/bin/sh exe="test" #发布的程序名称des="../paks" #创建文件夹的位置deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des2. 进行可执行文件的链接;#!/bin/sh appname=`basename $0 | sed s,\.sh$,,`

2021-05-27 20:14:18 1505 1

原创 Windows10安装TensorRT及环境配置

环境安装:参考nvidia驱动下载直接运行"466.47-desktop-win10-64bit-international-dch-whql"文件安装就好,开始让你选择临时解压路径,然后可以自定义选择安装路径。cuda10.2(或其他),下载cuda与显卡驱动匹配安装:(1) 运行软件“cuda_10.2.89_441.22_win10”,开始让你选择临时解压路径,然后可以自定义各个组件(dev、doc、samples)选择安装路径。(2)安装完成后打开cmd,输入nvcc -

2021-05-27 12:38:19 2586

原创 图像JPEG编解码

JPEG数据解码如何得到YUV420数据?简单方法:用opencv进行转换img = cv2.cvtColor(img , cv2.COLOR_BGR2YUV_I420) 其他方法,包括硬件解码(如nvidia jetson multimedia api )、libjpeg、ffmpeg等库。如何得到JPEG数据? 可以采用读取图像后进行yuv420转换(opencv cvtColor函数),再利用libjpeg或硬件进行编码操作,nvidia jetson multimedia ap

2021-05-26 14:07:50 1174 1

原创 图像处理(一)相关与卷积操作

相关与卷积操作都是 “乘积的和” 作为当前元素的值,但区别是卷积先要将模板旋转180°。相关运算的本质目的是我们想了解事物基本组成的相似程度。而非互相影响。具体的运算有:自相关(Auto-correlation)看自身组成的是否相互重复互相关(Cross-correlation)看两者之间组成的相似程度卷积运算,反映了事物的相互作用,并且这种相互作用受制于同一个影响因子参考相关计算:卷积计算(将核旋转180°然后就和相关计算一样了):MOSSE算法所以目标模板求取:即

2021-04-12 16:49:36 2247

原创 NVIDIA jetson nano 安装pytorch、pycuda

由于从SDKManager安装的python环境没有torch,而且用tensorRT时会用到pycuda,但直接pip3安装pycuda时会报错。1、安装torch、torchvision先安装一些依赖:sudo apt-get install libopenblas-base libopenmpi-devsudo apt-get install libjpeg-dev zlib1g-devsudo pip3 install mpi4pysudo pip3 install CPython

2021-03-27 20:17:19 1557 2

原创 yolov5模型转TensorRT踩坑记录

问题1:找不到tensorRT,报错找不到 NvInfer.h解决:如果tensorRT为下载解压安装的,需要修改CMakeLists.txt:# tensorrtinclude_directories(/home/jiang/TensorRT-7.0.0.11/include)link_directories(/home/jiang/TensorRT-7.0.0.11/lib)问题2:报错:/home/jiang/TensorRT-7.0.0.11/include/NvInfer.h:

2021-01-26 13:31:58 3980 11

原创 NVIDIA jetson AGX Xavier刷机安装环境及测试

1、准备与注意:需要host PC为ubuntu16 or 18系统,然后需要空闲硬盘大于50g。需要host PC与jetson 连接,usb3.0口连接jetson板电源处type-C。需要host与jetson都用网线连到同一局域网。需要将host的apt源进行更改,我的是:#阿里云源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb-src http://mirror

2021-01-24 00:41:20 2196

原创 PyTorch学习记录(1) : 基本科学计算

PyTorch学习1、基本操作import numpy as npimport torchobj = torch.Tensor(3,4)#1.判断是否是Tensortorch.is_tensor(obj) # isinstance(obj,torch.Tensor)#2.全局设置Tensor类型torch.set_default_tensor_type(torch.DoubleTensor) #torch.Tensor(2).dtype : torch.float64#3.获取Tens

2020-12-15 20:46:12 749

原创 CNN学习记录

基本结构1. 卷积层参考:卷积神经网络(CNN)综述卷积操作,N——输出大小,k——卷积核,P——Padding像素值,s——步长k通常是奇数,一方面可以保证使用 Same 填充时填充像素数P是整数,对原图片的填充是对称的;另一方面奇数宽度的卷积核具有一个中心像素点,可以表示卷积核的位置。x = torch.randn(size = (1,1,100,100))conv1 = nn.Conv2d(1, 20, kernel_size=3,stride=1, padding=1)pri

2020-12-10 22:15:14 610

原创 UDP通信传输图像、数据(基于python-socket)

先记录一个能实现的,基于base64进行编码传输;但由于编解码大于传输整张图像的时间,所以准备直接传输。不编码直接传输: 直接可以 s.sendto(np_array,addr) ,对方接收的为bytes; 采用 a = np.frombuffer(datas,dtype=np.uint8,offset=0),第三个参数表示舍弃前offset个; 注意:需要设置np.set_printoptions(threshold=1e10),不然大的array转str的时候会直接省略号;

2020-11-17 21:11:14 2239 2

原创 图像处理——空间域(FFT)频域

首先,收藏一个讲的比较好的帖子目的:需要向图像增加额外的相位干扰,使图像模糊;类似于高斯模糊之类的做法:图像傅里叶变换到频域单波长激光传播到的远场图像作为滤波器,归一到0-1;注意:如果影响极小,也就是远场是一个光斑,那么就再叠加就不行了,这里就舍弃这个滤波器频域与滤波器相乘(类似低通:滤掉中心区域外高频的点,空间域中图像就模糊了)傅里叶逆变换还原做法:在第二部归一化时加上一个极小值使不为0,然后之后还原就直接将模糊图像进行傅里叶变换,频域除以滤波器就好了。实现:class ImgF

2020-11-17 20:48:49 2597

原创 pytorch训练,gpu利用率不稳定

问题描述:单主机四gpu利用torch.nn.DataParallel进行多gpu的训练;gpu的内存占有率没问题,但使用率很低,很长一段时间在百分之零。问题原因:读取每个batch size的图像时,cpu读取时间较长。(batch_size = 1024, 设置DataLoader线程4、8、16、32的改善都不大,且pin_memory=true),开始的dataset为下面方式,显然每次读取时io的耗时比较长。于是,将图像全部读出(硬件支持…),然后再进行每次的变量赋值。class myDa

2020-09-10 20:30:17 5477 2

原创 numpy、pytorch记录

1、expand函数2、expand_as函数>>> import torch>>> a = torch.tensor([[2],[3],[4]])>>> a_size = a.size()>>> b = torch.tensor([[0,0],[10,10],[100,100]])>>> b_size = b.size()>>> print(a,a_size, ' \n',b,b

2020-09-02 18:53:15 86

原创 ( Tencent -TNN 学习)pytorch模型部署到移动端

记录分为pytorch2onnxonnx2tnntnn结果验证移动端(安卓)使用1、pytorch2onnx环境:pytorch 1.4.0onnx 1.6.0 (转换)onnxruntime 1.3.0 (测试)onnx-simplifier 0.2.9 (模型量化,不执行后续报错了,我测

2020-07-03 15:32:54 5092 1

原创 基于Dijkstra算法的景点路径规划(高德api)

这是网络优化课程最后的课程报告,利用Dijkstra算法对已知节点进行最短路径规划。开发环境:ubuntu16python3.6——pyqt5、opencv-pyhton、urllib、requests首先,进入高德地图开放平台,创建应用。选用的是高德地图开发平台的web服务API,可使用的服务如图一,而本文需要静态地图API进行地图图片的显示、搜索服务-关键字查询进行地点坐标(经纬度)的查询、行驶距离测量进行两地点驾车距离的运算。然后进行计算图的Dijkstra算法应用,最后进行可视化。增

2020-06-04 17:33:18 3926 10

原创 yolov3(keras-tf)多目标检测与数据标注

YOLOv3多目标检测数据准备数据标注keras训练数据准备如果要识别的目标能找到数据集,可下载;标注形式为:image.jpg x1,y1,w,h,class1下载voc、coco数据集可直接执行其代码生成dataset进行训练。数据标注这里采用opencv-python交互及多目标跟踪进行多目标标注和保存,生成yolo直接读取的dataset格式。适用条件为目标连续出现易跟踪的视...

2020-04-03 14:47:17 1108

原创 opencv处理图像延迟高(解决cap.read缓存\不实时问题)

问题描述:最近做直播系统,利用opencv进行图像采集处理,直播推出去的流发现延迟高且会累积延迟.后面发现是opencv的cap.read()会有一定的缓存,不是读的实时帧.解决办法:多进程进行(python多线程不能利用多核,所以处理线程占用高的时候,读取线程会被阻塞)一个进程进行处理,一个进程进行读取.直接用 Queue列队进行通信.参考文章读取端进行put,但put之前先判断有多...

2020-03-16 16:07:40 16469 6

原创 nginx搭建rtmp流服务器并opencv等处理后(音频、视频)实时推出

一、流服务器搭建1、安装**参考文章sudo apt-get install software-properties-common python-software-propertiessudo add-apt-repository ppa:nginx/stablesudo apt-get updatesudo apt-get install nginxsudo apt-get inst...

2020-03-03 13:21:54 1823 6

原创 python2\3区别记录

1、python2 list、tuple不存在 *a/**a写法例子python3:a = [1,2,3]b = [5,6,7]k = [*a,*b] = [1,2,3,4,5,6]j = [a,*b] = [[1,2,3],4,5,6]python2k = a + b = [1,2,3,4,5,6]j = [a]+b = [[1,2,3],4,5,6]...

2020-01-08 14:33:23 128

原创 单目深度估计+人脸检测实现

单目深度估计是我很感兴趣的方向,但没有太多时间去学,就跑了一下开源的两个比较好的程序。再结合人脸识别,看能不能制定识别第几个人,抱着这样的想法,借用别人单目深度的实现以及基于dlib的人脸检测,实现效果如下。以下为***Deeper Depth Prediction with Fully Convolutional Residual Networks***实现的深度效果,其开源代码github-...

2019-12-07 19:22:39 1746 5

原创 利用主成分分析(PCA)、线性判别分析(LDA)、KPCA、Isomap、LLE、Laplacian Eigenmaps将数据投影到两维

机器学习上机题目:给定一组3维数据,分别利用主成分分析(PCA)、线性判别分析(LDA)、KPCA、Isomap、LLE、Laplacian Eigenmaps投影到两维,并画出结果图。(注意:swiss-data.txt的第一维是类别标号,共3类,仅为LDA用。)实现(调用python的sklearn):# -*-coding:utf-8'''给定一组3维数据,分别利用主成分分析(PC...

2019-11-12 23:28:09 1318

原创 E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间。(11.2)

问题:E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间。软链接到HOME下的一个目录即可,home下新建debs文件夹:在某个空间大的分区建立一个目录,然后把/var/cache/apt/archives换成指向那个目录的软链接sudo rm -rf /var/cache/apt/archivessudo ln -s “$HOME/debs” /var/...

2019-11-02 18:20:49 13427 1

原创 9-4(linux 根目录爆炸)

1、执行 apt-get update时,出现 写入错误(28),没有内存的提示查看磁盘 df -h,/目录占满了2、var文件夹巨大,于是通过软连接到home中,使之内存释放mv /var/lib /home/jiang/copyval #将var下的www目录移动到home或者其他空间富足的区块中ln -s /home/jiang/copyvar /var/lib #...

2019-09-04 19:15:04 159

原创 9-2(pip慢,跟换源)

临时使用:可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent 这样就会从清华这边的镜像去安装gevent库。永久修改,一劳永逸:Linux下,修改 ~/.pip/pip.conf (...

2019-09-03 21:43:31 112

原创 8-15(keras yolov3训练自己的样本)

The test environment is- Python 2.7- Keras 2.2.4- tensorflow 1.10.0下载keras-yolov3 https://github.com/qqwweee/keras-yolo3根据其readme,我们来研究train.py不管那些参数及训练代码,先找其样本相关的处理:17样本描述文件annotation_pa...

2019-08-15 17:32:41 539

原创 8-9(CCPD车牌数据集)

数据集中文件命名:025-95_113-154&383_386&473-386&473_177&454_154&383_363&402-0_0_22_27_27_33_16-37-15.jpg".则:(以‘-’分界)025 车牌占全图面积比95_113 水平倾斜度和垂直倾斜度154&383 、386&473 LP左上顶点和...

2019-08-09 15:39:47 5340 1

原创 8-8(opencv-python鼠标键盘响应)

应用:制作数据集:in:车牌区域图片,out:精确定位的四点坐标1、遍历文件夹中的图片,寻找车牌区域2、鼠标点击四次,自动按顺序保存:左上、右上、左下、右下四点坐标3、按键保存或忽略跳过。...

2019-08-08 11:07:31 527

原创 8-7

遇到个要解决的问题,图片中有若干个矩形,需要将所有相交的矩形用一个大矩形将它们替代:1、这种方法能快速找到相邻的两个矩形 #判断patch中是否有重叠,有则合为一个,取两个的并集 #算法思路:矩形中心坐标任一轴之差大于该轴方向的二分之一边之和; (A - 1)! #减小时间复杂度;先进行排序,左右排序,A; 再进行相邻距离...

2019-08-07 16:34:07 105

原创 8-5(face_recognition源码解读)

1、face_recognition 人脸识别学习检测人脸:face_locations = face_recognition.face_locations(frame)返回值 (top,bottom,right,left)人脸检测,可用opencv替换:优势:pc端速度提高了一倍,树莓派上提高了接近九倍(520ms - 67ms) #opencv的人脸检测 def d...

2019-08-05 11:57:04 2336

原创 8-2

1、python小数点取几位用round()函数x=1.23456print(round(x,3))x=1.23456print(’%.3f’%x)x=1.23456 print("{:.3f}".format(x))#{}表示槽,后续变量填充到槽中#{:.3f}表示将x填充到槽中时,取小数点后3位...

2019-08-02 16:56:29 116

原创 8-1

1、ubuntu .rar文件解压untar e file.rar2、一个比较全面的字体网站https://www.fontspace.com/category/

2019-08-01 14:56:57 206

原创 7-26(树莓派相关)

1、树莓派用自带的camera pisudo raspi-config,enable摄像头sudo nano /etc/modules增加 bcm2835-v4l2注意:不要接线拔插摄像头!!!2、树莓派系统设置为中文sudo apt-get install ttf-wqy-zenheisudo raspi-config, 选择localisation options选择ch...

2019-07-26 14:52:28 158

原创 7-25

1、opencv-python合成视频def get_avi(a,b): file_name = "sbs.avi" fps = 30 size = (my_width,my_height) videoWriter = cv2.VideoWriter(file_name,cv2.VideoWriter_fourcc('M','J','P','G'),fps,size) for f...

2019-07-25 14:09:25 92

原创 7-24(linux dlib c++初识)

环境准备:官网Download解压缩:tar -xjf dlib-19.17.tar.bz2编译dlib:进入~/dlib-19.17 下mkdir buildcd buildcmake …make release=1编译例程:进入~/dlib-19.17$ 下cd examples #进入dlib下的examples文件夹mkdir build #新建bu...

2019-07-24 12:30:24 178

原创 7-23(数据结构与算法学习1)

学习数据结构与算法,第一课如下,采用递归方式实现从N打印到0,如果N无限大,将内存爆炸。(每次都要调用PrintN所以每次都得给它分配内存)对于实现如下幂指数累加,有一下两种实现方式。但记住,加减运行时间远小于乘除,所以避免幂运算、阶级运算等。考虑复杂度进行算法设计时,尽量避免平方以上的运算,平方转为nlogn。...

2019-07-23 16:14:22 172

rk3588安装opencv4.1.0 (0积分)

下载了放再~下,按照博文安装

2022-05-04

一些文件.zip,包括安装脚本、xdma驱动

一些文件.zip,包括安装脚本、xdma驱动

2021-11-01

cuda env.zip

cuda env.zip

2021-05-27

基于树莓派的人脸识别打卡系统

详情请参考https://blog.csdn.net/qq_32768679/article/details/96432354。本资源集合了采集、训练、识别,利用python、opencv实现的人脸识别功能,树莓派端实现的代码,包括识别成功后开启门(io口模拟)。

2019-10-16

opencv人脸识别(c++实现)

https://blog.csdn.net/qq_32768679/article/details/96432354这篇文章很详细了。实现了实现人脸检测软体,集采集、训练、识别为一体。所传资源是除去界面外的部分,分别为采集、训练、预测。

2019-10-16

识别并跟踪红灯,硬件利用树莓派实现

识别并跟踪红灯,硬件利用树莓派实现。python、opencv实现软件功能。其中有高效扫描方法对比,场景:‘我要识别一个红灯,已经把目标准确的提取出来了,二值图像中白色为目标物,现在要算出二值图中的白色像素点的坐标。因为之后需要移植到树莓派,所以需要高效的方法’。 https://blog.csdn.net/qq_32768679/article/details/84398229(目标识别说明) https://blog.csdn.net/qq_32768679/article/details/84317173(小工具说明)

2019-08-13

行人检测(adboost),包含训练脚本、测试程序

无论是人脸检测类还是自己训练分类器来识别物体,opencv的adboost([linux 下opencv的adboost使用方法](https://blog.csdn.net/qq_32768679/article/details/83652501))都为我们提供了便捷快速的接口。但对于长时间的检测或每帧都要进行处理来说,opencv还为我们提供了更加快速稳定的跟踪算法。这次记录的是利用opencv的人脸检测与其跟踪算法做对比,在检测目标运动不是很快的情况下,跟踪算法在稳定性和运行速度上都更胜一筹。 下面运用人脸检测第一帧然后之后进行跟踪该帧的检测目标,与每帧都进行检测作为对比,判断因素为帧率和检测框的稳定性。 本资源提供opencv adboost训练脚本以及以训练好的行人检测分类器,和测试程序。跟踪算法见博客https://blog.csdn.net/qq_32768679/article/details/89309383

2019-04-17

芯片字符识别

博客配套代码:https://blog.csdn.net/qq_32768679/article/details/89337710 0 ——mask0 ,**基于颜色阈值法+找轮廓实现**; mask0——mask1,全局矩阵腐蚀算法,定义一个合适大小的矩阵,遍历扫描,扫描到矩阵平均像素值小于一定值,就全部赋值0。 mask1——mask2,边界腐蚀算法,定义一个偏大的矩阵,只扫描四个边界,如果满足平均像素值大于一定值,则赋值0,然后内层扫描都同上一次操作,完成该层后该边界扫描完成。(代码在后面贴出) mask2——result ,通过边界扫描,确定roi范围。 result——result_mask,字符颜色阈值二值化,开闭运算滤除噪点; result_mask——show_char,x、y方向的直方图,先进行行分割,再逐行图片进行列分割,,根据字符直方图波峰数量过滤logo,得出字符。字符进行边缘腐蚀去边处理。 终端中的[ ]内的坐标代表波峰结束的点,只有[0]代表第一个波峰出现的点,两点的距离表示波峰宽度;一定会包含字符,但也会包含一定的波谷区域,所以最后运用边缘腐蚀进行过滤非字符边界区域。

2019-04-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除