- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 Cython学习笔记和例程
编译运行Cython代码有好几种方式,没有必要全部掌握,可以根据需要选择合适的方式。3.常规的编译方法,使用setuptool或distutils库。这种方式可以把cython部分代码编译成动态连接库,方便部署和源码的加密隐藏。2.使用pyximport可以直接import使用,import时会自动编译,使用比较方便。cython使用结构体用’.'访问,而不需要使用’->',在转成C语言时会自动转换。1. 使用Ipython进行cython函数的互动编译和使用,适合原型调试。3.Cython中的C指针。
2024-05-24 11:48:24 386
原创 自注意力机制理解
这样,我们就可以通过自注意力机制动态地为每个词生成其上下文表示,使得模型能够更好地理解整个句子的语义结构。这种方法允许模型同时关注句子中不同位置的词,并根据它们之间的关系来计算每个词的表示,从而更好地捕捉句子的语义信息。这里就是把"The"的原始词向量[2.1,1.5,0.7],通过自注意力机制结合其他词向量和QKV转换成结合了上下文信息的向量表示[-0.5228,1.5181]接下来,我们将使用自注意力机制来为每个词生成上下文表示。首先,我们需要计算每个词的查询向量。同样的方式计算其他词的。
2023-11-14 14:35:50 183
原创 python调用C++并突破GIL限制(非多进程)
2.编写setup.py利用setuptools和pybind11构建模块,这里需要确保你的环境已经安装了pybind11,可以使用”pip install pybind11“来安装。python的多线程由于GIL的限制,无法使用多核,如果想使用多核就需要用到多进程,但多进程资源消耗巨大,所以比较合理的方法是在计算密集型任务上使用C/C++来实现构建python模块。下面的示例利用了pybind11把c++函数封装成python类,然后再使用python来调用模块。3. 使用测试样例测试效果。
2023-11-13 10:56:55 581
原创 python通过ctypes传参numpy给c语言函数
numpy数组转换成c_void_p类型,然后传参给c语言函数,c语言函数中指针强转到需要的数据类型,然后再处理。这样即可改变numpy数组中的数值实现各种计算。示例实现了numpy数组加上100并通过另外的数组的指针获取返回值。该方法可以实现python一些算子的速度优化(有无因患要后续确认)
2023-08-15 22:10:10 359
原创 CUDA规约算法(加和)
这样同时保证了wrap内指令的一致,也保证了bank的访问连续,该方法在绝大多数情况基本已经可以满足要求了,但是其实在kernel执行时,也会有1半的线程空闲,所以还可以继续优化。以上规律就是满足t%(2*stride)==0,stride为1,2,4,8。以图为例,第0~7个线程,让第0~7和第8~15数字相关(stride=8)stride=1: 让线程0~7,访问第1,3,5,7,9个数字,stride=2: 让线程0~3,访问第1,4,8, 12个数字。第0个线程会和第1,2,4,8发生关系。
2023-01-15 20:41:44 796 1
原创 用CUDA 实现图像remap
下面是对应remap核函数的实现:remap就是把目标图像根据map里的对应坐标里的像素填补到结果图像里。函数调用过程:载入图像和坐标,准备remap核函数的数据和显存,执行函数后把结果拷贝回内存中。图像remap在图像和视频帧上经常用于仿射投影变换,畸变矫正,图像拼接。
2023-01-11 19:44:32 798
原创 python ctypes笔记
1.字符串,int,float,bool传参。6.传参结构体 结构体数组,返回结构体指针。2.可变字符串(buffer)传参。5.传参指针,返回指针地址。3.返回值为char*
2022-10-17 17:21:15 491
原创 python通过ctypes调用海康网络sdk取流
项目中经常需要使用海康的网络摄像头,做视频图像算法经常会用到rtsp流,但是rtsp一般很难保证实时性且解码效率不能保证.通过海康给的python的demo,对模块进行封装以方便python像调用opencv的VideoCaputure一样调用.目录结构如下├── HKCam.py #自己写的封装├── HCNetSDK.py # SDK给定├── PlayCtrl.py #SDK给定├── lib│ ├── linux│ │ ├── HCNetSDKCom│ │ │...
2022-05-27 14:01:40 2759 28
原创 爬虫数据解析
BS4:<html lang="en"><head> <meta charset="UTF-8" /> <title>测试bs4</title></head><body> <div> <p>百里守约</p> </div> <div class="song"> <p>李清照</p> <p>王安石&l
2022-03-29 11:25:02 350 1
原创 C++和python进行视频socket传输通信(实时)
需求:通过C++程序获得视频流,传输给python程序并进行处理。方法:Python构建socket服务,C++连接并发送祯信息。(本人C++不太会,查了很多资料)服务端(python)接收数据并显示import socketimport osimport sysimport structimport numpy as npimport cv2import time def socket_service_image(): try: s = soc
2021-12-21 11:26:40 1703
原创 python命名管道示例
命名管道可用于进程间通信,下面示例表示1个进程在发送帧,另一个在获取帧并播放。(可以跨语言)继续编辑writer.pyimport os import timeimport uuidimport cv2import numpy as npwrite_path = "/tmp/vsd_fifo.pipe"if os.path.exists(write_path): os.remove(write_path) os.mkfifo(write_path) #rf =.
2021-12-16 22:30:24 1370
原创 使用Tensorrt的python api 部署支持动态batch的yolov5s-face
上次尝试了使用Tensorrt的python api 部署支持动态batch的yolov5s_u012160945的博客-CSDN博客系统环境:ubuntu 1804cuda11.3tensorrt 8.2.06显卡2080pytorch 1.10.0onnx 1.10.2onnx-simplifier 0.3.6步骤1:导出onnx 模型(参考https://github.com/shouxieai/tensorRT_Pro)1.1 下载yolov5项目并修改相关代码,目的是减少导出onnx的复杂度,
2021-12-03 11:35:57 1306 2
原创 使用Tensorrt的python api 部署支持动态batch的yolov5s
系统环境:ubuntu 1804cuda11.3tensorrt 8.2.06显卡2080pytorch 1.10.0onnx 1.10.2onnx-simplifier 0.3.6步骤1:导出onnx 模型(参考https://github.com/shouxieai/tensorRT_Pro)1.1 下载yolov5项目并修改相关代码,目的是减少导出onnx的复杂度,只保留一个输出便于后处理# 下载并进入yolov5项目git clone git@github
2021-11-26 11:58:30 4841 7
原创 deepstream6.0 python sample试跑试跑(unbunt1804 ,GTX1060)
1.deepstream安装:(docker大法)docker pull nvcr.io/nvidia/deepstream:6.0-triton2.进入dockerxhost +docker run --gpus '"'device=0'"' -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -w /opt/nvidia/deepstream/deepstream-6.0 nvcr.io/nvidia/deepst
2021-11-19 15:33:40 2646 2
原创 机器学习笔记2
# 1. 线性回归损失函数推导$$ y=\theta^Tx+\epsilon $$ ------------------------------------y表示真实结果,x表示真实数据,$\epsilon$表示误差,$\theta$表示参数 根据中心直线定理误差$\epsilon$满足独立同分布,服从均值为0,方差为某定值$\sigma^2$的高斯分布 相关推到如下$p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}}exp(-\frac{(\epsi...
2021-08-12 22:36:23 145
原创 机器学习笔记
#1 . 赔率和赔付期望eg. 假设随机产生1个从2到10000的数,你可以花1元买这个数是素数还是合数。如果你买素数答对了可以获得5.5元如果你买合数答对了可以获得1.1元---------------------------------------------------------------------------------------------| | 素数 | 合数 ||----| ---- | ---- ||概率| p | 1-p ||公正赔率...
2021-08-12 09:27:07 184
原创 # leetcode 刷题整理(整理中)
# 485. 最大连续 1 的个数class Solution(object): def findMaxConsecutiveOnes(self, nums): """ :type nums: List[int] :rtype: int """ res = 0 final_res = 0 for num in nums: if num==1: .
2021-08-04 22:24:18 102
原创 RTX3060显卡比1060跑深度学习慢?
最近单位搞到1台装了rtx3060显卡到机器,我把之前项目代码上面一跑发现速度非常啦跨...!!!!举个例子:视频目标检测推理原来能跑到60帧,但这货居然只能跑到12帧!!!!(tensorflow1)然后我换了框架(tensorrt+pycuda)一顿搞,发现RTX3060显卡上到速度比我到笔记本1060显卡慢4倍!!!!这简直给我带到了新世界,于是我用tensorflow写了一个demo:import numpy as npimport time import tensorflow
2021-07-15 10:59:00 12103 15
原创 同局域网非USB传文件(递归下载)
背景:公司里为了信息安全把公司电脑的USB插口禁用了,但很多测试文件和代码都是在个人电脑上,需要把个人电脑上的代码迁移到公司电脑上。(试了下ftp,结果也是失败的)处理方法:1.个人电脑和公司电脑联网在同一路由2.个人电脑在对应文件夹下执行python3 -m http.server 8888 3.公司电脑在浏览器里输入“http://个人电脑在局域网里ip:8888", 个人电脑在居于网里的ip可以通过ifconfig或ipconfig查看,4.现在可以通过浏览器单.
2021-01-28 10:05:45 164
原创 多线程实现多路rtsp视频opencv处理
# -*- coding: utf-8 -*-import cv2import timeimport threadingfrom Server_tiny_GPU import Algrithimimport numpy as npfrom oritation_check import oritation_checkimport tracebackfrom time import sleep# 接收摄影机串流影像,采用多线程的方式,降低缓冲区栈图帧的问题。class ipcamCapt.
2021-01-25 15:32:22 5023 9
原创 deepstream5.0 python samples试跑(unbunt1804 ,GTX1060)
1.deepstream安装:(docker大法)docker pull nvcr.io/nvidia/deepstream:5.0.1-20.09-samples2.进入dockerxhost +docker run --gpus all -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY nvcr.io/nvidia/deepstream:5.0.1-20.09-samples3.运行示例cd /opt/
2021-01-07 10:53:04 2007 3
原创 ACE算法Real-time adaptive contrast enhancement for imaging sensors
//自动对比度均衡(非色彩均衡)Mat ACE2(Mat src, int C = 3, int n = 3, float MaxCG = 7.5){ int row = src.rows; int col = src.cols; Mat meanLocal; //图像局部均值 Mat varLocal; //图像局部方差 Mat meanGlobal; //全局均值 Mat varGlobal; //全局标准差 blur(src.clone(),.
2020-11-26 11:13:37 463
原创 ACE(自动色彩均衡算法)C++代码实现
参考内容:python实现:https://blog.csdn.net/zmshy2128/article/details/53470357?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-2&spm=1001.2101.3001.4242C++实现:https://blog.csdn.net/just_sort/article/details/85237711 (该版本写的很清楚,但速度较慢,所以个人改写了
2020-11-25 17:02:55 1012
原创 图像相似度比较(phash算法的halcon实现)
自定义算子get_hash(ImageZoomok:::Phash)*图像DCT过程*参考 https://www.cnblogs.com/latencytime/p/10228938.html*核心公式:F(u,v)= A f(x,y) AT*ImageZoomok:为缩放到32*32的灰度图像*Phash:为灰度图像计算出的Phash编码*0.预处理zoom_image_size(ImageZoomok, ImageZoomok, 32, 32, 'constant')*1.创建.
2020-11-12 14:12:38 3352
原创 pyvista对3D体素数据进行三维重建
import pyvista as pvfrom pyvista import examplesimport numpy as npimport vtkfrom scipy import ndimagepv.rcParams["use_panel"] = False# 1.载入体素数据raw格式imgData = np.fromfile('3d.raw', dtype=np.uint16)imgData = imgData.reshape(821, 1206, 276)/255.0 #.
2020-10-09 13:03:36 1304
原创 Windows上Minicona安装报错“Failed to create anaconda menus“
如题,在部署miniconda给某些电脑安装Minicona时,会发生这样的问题.这个问题是个大坑,很多网上所谓的解决方法我试了都没有什么用,这个是官方的所谓解决方法.其实最有用的方法就是:更换其他版本miniconda下载下来安装,总有一款适合你!!!!!https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/***个人认为这个是anaconda的bug,没有做到很好的兼容....
2020-09-18 12:18:01 1712 1
转载 如何基于pythonnet调用halcon脚本
这篇文章主要介绍了如何基于pythonnet调用halcon脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下最近的项目中遇到了使用python程序结合不同部分,其中包括使用halcon处理拍摄到的图像。halcon本身提供了c++与.NET的开发库,但无python库,网上有pyhalcon之类的库,但功能与原版并不一致。这片文章默认大家已经有halcon.NET的开发基础了,也会使用HDevEngine调用halcon脚本。这样的话自己
2020-08-22 16:41:21 727 1
原创 基于tensorflow.keras的centernet复现
from functools import partialfrom tensorflow.keras.layers import Conv2D, Add, ZeroPadding2D, UpSampling2D, concatenate, MaxPooling2D, Lambda, addfrom tensorflow.keras.layers import LeakyReLU,ReLUfrom tensorflow.keras.layers import BatchNormalization...
2020-08-06 16:19:23 262
原创 win10 安装mmdetection记录
相关环境和依赖:1.CUDA10.0(下载安装,非conda安装)2.VS2017(下载安装,支持C++编译)3.pytorch=1.4.0=py3.7_cuda101_cudnn7_04.torchvision=0.5.0=py37_cu1015.cudatoolkit=10.1.243=h74a9793_06.mmcv==0.2.16########################################################################
2020-07-31 17:00:41 1114
原创 centernet(objects as points)的尝试[基于tf.slim]
最近拜读了《CenterNet :Objects as Points》(https://arxiv.org/pdf/1904.07850.pdf),感觉很受启发。网上对这篇论文解读的博客也是很多,有很多博主的总结也很到位。其中我感觉下面这张图最能代表核心思想:网络的主要结构是通过一个backbone生成网络生成Feature map,再通过带分支的检测头分别预测物体的中心点,物体的宽高和heatmap。下面是自写的检测头代码:feat为某个backbone生成的多维特征图def ce.
2020-07-02 13:46:55 245
原创 YOLOv3训练数据处理解析
图像增强pipeline:1.获取图像和目标框信息2.随机缩放图像到一定尺寸3. 把图像贴到416*416的灰色画布上的随机位置4.随机左右翻转(50%概率发生)5.在HSV空间对图像色彩进行随机变换(实际图像灰度值被缩放到了[0,1])6.修正目标框信息到新图像上def get_random_data(annotation_line, input_shape, random=True, max_boxes=20, jitter=.3, hue=..
2020-06-23 10:23:21 2534
unet_pp_slim_centernet.py
2020-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人