自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (10)
  • 收藏
  • 关注

原创 torch2trt代码走读

torch2trt 是 nvidia tensort 组 推出的,将torch 模型(torch.nn.Module)整图转换为CudaEngine 并用 TRTModule进行封装(TRTModule 继承于torch.nn.Module,用于forword)这样就实现了以下几个特点:1.独立于torch提供了一套基于trt且兼容torch的量化/转换/推理2.从用户角度,只需简单调用convert 接口,推理部分不用做任何改变(因为继承自torch.nn.module)

2023-04-06 19:41:25 685

原创 tf2trt源码走读(二)python 接口

Trt converter 实例化时传入的参数,用于控制生成engine以及对graph进行segment时的相关参数:1.max_workspace_size_bytesenigine 做多用到临时显存数量。2.precision_mode模型的精度类型: FP32/FP16/INT8 (注意:int8 需要量化数据进行标定)3.min_segment_size在切子图时,子图最少包含的node数量(当子图node数量小于此设置时不会切子图)4.maximum_cached_engines对于动态的TRT

2022-06-19 21:57:01 298

原创 tf2trt源码走读(一)导读

本篇为“tf2trt源码走读”系列的导读部分。由于工作原因,前段时间阅读了下tf2trt 的源码,现在在这里总结一下,以备不时之需。tf2trt用法可以参考:https://blog.csdn.net/weixin_43842032/article/details/103764010 从使用语言来看,tf2trt分为两部分,python部分作为前端,c++部分作为后端。python部分主要定义了一个converter类用于完成tf2trt的转换(Trt...

2022-04-09 18:14:00 316

原创 tensorRT 7.0 学习笔记(六)———踩过的一些坑

本篇文章主要记录下,我在使用trt7.0时遇到的一些问题1.batch inference在trt7.0转换模型时创建IWorkDefinition 时需要使用接口:IBuilder::createNetWorkV2,此时需要使用制定一个flag这个flag可以是EXPLICIT_BATCH 或EXPLICIT_PRECISION.当使用EXPLICIT_BATCH时,生成的engine 输入为4dims的(NCHW)但是无法用trt<6.0的接口(IExcutionContext::ex

2021-04-05 22:53:54 1365 2

原创 gstreamer&&deepstream 学习笔记(四)——GLIB

gstreamer 是基于glib实现的,所以,在使用gstreamer的过程中,会用到大量的glib的接口,什么是glib呢?glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。glib是Gtk +库和Gnome的基础。glib可以在多个平台下使用,比如Linux、Unix、Windows等。glib为许多标准的、常用的C语言结构提供了相应的替代物。 (来源:百度百科)以下是我在看Deepstream官方sample时不断总结的glib函数,当然也可以直接参考:ht

2021-03-22 00:41:33 943

原创 tensorRT 7.0 学习笔记(五)———量化/动态输入shape(c++ api)

1.int8 量化首先需要为 Ibuilder 设置校准器(caliborator)主要作用就是通过一定的算法把每层的weights 和输出tensor 映射到 int范围,TRT提供了以下几种校准器:需要在继承其中之一后实现 getBatch()方法,然后调用:为builder设置校准器。同时实现 writeCalibrationCache()andreadCalibrationCache()缓存/载入校准表builder内部的工作原理:1.调用 getBa...

2021-03-22 00:26:10 2602

原创 gstreamer&&deepstream 学习笔记(三)——deepstream组件概览

1.deep stream提供的组件:2.gst-nvinfer 的配置参数:3.官方网站:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvinfer.html deepstream 官方文档https://forums.developer.nvidia.com/ ...

2021-03-14 23:26:35 390

原创 tensorRT 7.0 学习笔记(四)———(c++ api)

1.模型推理:1.1创建IExecutionContextIExecutionContext *context = engine->createExecutionContext();获取输入输出tensor的索引:int inputIndex = engine->getBindingIndex(INPUT_BLOB_NAME);int outputIndex = engine->getBindingIndex(OUTPUT_BLOB_NAME);1.2准备buffer

2021-03-14 23:14:03 2879 18

原创 tensorRT 7.0 学习笔记(三)---使用python api转换onnx模型并序列化

import tensorrt as trt#build loggertrt_logger=trt.Logger(trt.Logger.Warning)#create network#1.parser dataType=trt.float32With trt.Builder(trt_logger) as builder,builder.create_network() as network,trt.CaffeParser() as parser: .

2021-03-07 23:28:47 832 2

原创 tensorRT 7.0 学习笔记(二)——c++ api

1.创建Looger 用于记录转换过程中log2.创建INetwork创建Network有两种方法:1.直接用tensorrt的api搭建网络 2.使用parser(解析器)将已有的模型转换成Network2.1使用api创建Network(略)可以参考:https://github.com/NVIDIA/TensorRT/blob/master/samples/opensource/sampleMNISTAPI/sampleMNISTAPI.cpp官方例子2.2使用pa..

2021-03-07 23:21:13 2373 3

原创 gstreamer&&deepstream 学习笔记(二)——gstreamer 一些 tips

1.fakesink在使用fakesink 时 一定要注意“enable-last-sample” 其默认是True,功能是:enable-last-sample” property of fakesink will hold the last GstBuffer until new GstBuffer is available. The nvv4l2decoder and nvstreammux all work with buffer pool, so it is important to r.

2021-03-07 22:32:25 825

原创 gstreamer&&deepstream 学习笔记(一)——gstreamer

主要参考:https://blog.csdn.net/han2529386161/article/details/102896875https://gstreamer.freedesktop.org/documentation/tutorials/index.htmlGstreamer 三个重要概念: 元件(element),箱柜(bin),衬垫(pad)衬垫基本概念:下面的这个比喻可能对你理解衬垫(Pads)有所帮助。一个衬垫(Pads)很象一个物理设备上的插头。 例如一个家庭..

2021-02-27 21:30:05 1888 2

原创 tensorRT 7.0 学习笔记(一)——python api

本系列为我在学习tensorRT 7.0 时的学习笔记主要参考了官方文档以及一些例子。核心概念:Tensorrt.INetWorkDefinition 可以由 parser(uff,tensorflow,caffe,等创建)tensorRT.Builder 可以创建空的Tensorrt.INetWorkDefinitionTensorrt.builder+Tensorrt.INetWorkDefinition 创建tensorrt.ICudaEngine基于tensorrt.ICudaEn.

2021-02-27 20:41:07 1232 1

原创 一个小目标:构建一个classfier超越 lenet5!(model1_cifar10)

新的模型结构还没,想出来.....想先试试cifar10上训练的结果和lenet5的差距,baseline主要参考这里。然而我没有1080Ti...... 我只有1060 6G版,哭首先先写个cifar10的数据读入和预处理的脚本,脚本在之前的repo cifar10_loader.py 这里只讲一下大概的函数:import pickleimport globimport cv2import tqdmimport osimport sysimport logging..

2020-06-20 23:09:50 238 17

原创 一个小目标:构建一个classfier超越 lenet5!(model_1)

闲来无事(好像也不闲啊)想从零开始构建一个model在mnist 上超过lenet5而且只训练1000steps,利用这两年看的论文,还是有信心的,毕竟lenet5 是20年前的模型啊!首先看下baseline:emmmm,还是很高的。先说说想法: 我想搞个 inception 那样的block 为啥呢因为我觉着 1.一个block里花样多一些有利于提取不同尺度下的特征,而且某种角度上看 inception就是resnet的跨层连接的变种。首先构建block:...

2020-05-30 16:56:51 260 2

原创 c++ cuda 混合编程的坑

今天复习cuda的时候发现忘了如何混合编程,在这里记录下,有两种方法:之前别忘了在生成自定义中选上 cuda1.把 cuda相关的函数放在 .cu 文件里并且需要在 c++中调用的函数要用extern 声明。2.(我以前采用的方法).cu 文件属性 选择 cuda c++,然后在生成依赖项中加入:cublas_device.libcublas.libcudart.lib然后...

2020-04-21 08:41:40 639

原创 如何将tensorflow mobilenet v1 coco 转成 coreml 模型 ?

好久好久没有写博客了,今天记录下前段时间做一个项目遇到的问题和解决办法。之前做一个ios app,需要将训练好的 mobilenetv1 ssd 模型部署到 app上,所以研究了下模型转换(说实话mobilenet v1 ssd coco 这个模型略微坑爹,转tensorflow lite 时也遇到诸多问题,这个有机会之后讲)。 要点时一定要根据自己的 model.config文...

2019-11-09 22:53:06 513

原创 《cuda并行程序设计》勘误(3)

180页 __host__ TIMER_T sort_to_bin_cpu 函数,形参bin_count 多余。182页 __host__ TIMER_T sort_bins_gpu函数,形参bin_count 多余。183页__host__ TIMER_T sort_bins_gpu_kernel3函数,形参bin_count 多余。

2017-03-08 19:35:14 314

原创 《cuda并行程序设计》勘误(2)

注:本人代码是对长度为1024的数组排序; block数量为1,threads数量为256p135页代码应改为:__device__ void merge_array(u32 *src,u32 *dest,u32 num_lists,u32 num_elements,u32 tid){ u32 reduction_shift=3; u32 reduction_size=8; u32

2017-02-27 11:08:00 326

原创 《cuda并行程序设计》勘误(1)

好久没更博客了。最近在学cuda c/c++,正在看一本叫做《cuda并行程序设计》的书,在京东上买的(应该不是盗版吧)风评不错。但是我这么一看啊....发现代码的错误简直就是遍地都是.....然后我给[email protected]发邮件,也不知道是没空理我还是这个邮箱已经荒废了...没人理我。所以呢,我决定把目前发现的错误发出来,以免耽误其他人的学习。就是这本书。

2017-02-26 10:53:06 772 2

原创 #Qt on android#使用Qt 获取GPS信号

注意事项:1.Qt版本一定要大于等于5.3,因为低于5.3的版本对于android系统来说并不能成功获取gps信号。2.环境正确搭建,一定要注意!构建(build)的系统路径中一定不能出现空格符、中文、加号等符号,一般来说出现 代码7(code 7)的原因多半是因为构建路径中有特殊符号所致。3.这个有误导性:http://www.myexception.cn/qt/1739397.ht

2016-09-17 16:59:24 1969 3

原创 微视图像(microview)gige相机开发手记(2)

由于在本项目中需要进行行人检测,而直接使用hog+svm行人检测速度太慢,无法检测视频流,在知乎上:http://cache.baiducontent.com/c?m=9d78d513d9d437ad4f9b96690c66c0171343f1132bd6a0020fa5843fe2732b415011e3ac27530772d7d20f1416df3a4b9ef72235775d2feddd8e

2016-06-15 16:01:47 2769

原创 微视图像(microview)gige相机开发手记(1)

导师丢给我个视频监控项目带界面、有算法功能要我3个月内弄完.....我第一次接触这种千兆网络摄像头啊喂........本所有教程均采用vs2012编程。1)配置将SDK中的

2016-05-28 12:00:56 3303 1

翻译 【翻译】Leapmotion-python开发官方文档(10)

相机图像LeapMotion控制器采用双目红外相机作为跟踪传感器。你可以使用Controller.images或者Frame.images来访问由相机采集到的图像。这些函数提供ImageList对象,包含Image对象。Controller.images提供一组最新的图像。Frame.images提供用于分析生成当前数据帧的那一组图像会比直接从Controller对象产生的图像稍延迟一点。

2016-03-22 14:01:09 1923

翻译 【翻译】Leapmotion-python开发官方文档(9)

坐标系统在使用LeapMotion控制器控制一个程序时一个基本的工作就是将从控制器获得的坐标值转换到程序的坐标系统。LeapMotion坐标系统LeapMotion控制器在每一个数据帧中提供的坐标以毫米为单位。也就是说,如果一个手指指尖坐标是(x,y,z)=[100,100,-100],这些值都是以毫米记得,或者说,x=+10cm,y=10cm,z=-10cm。在数据帧的坐标参考系

2016-03-15 14:51:03 2810

翻译 【翻译】Leapmotion-python开发官方文档(8)

运动LeapMotion软件分析所有在先前数据帧发生过的运动,基本运动类型有:平移,旋转,缩放。比如,如果你把你两只手移向LeapMotion视野中的左边,那么得到的数据帧中就会包含平移。如果你扭转你的手就像在转一个球那么,对应的数据帧中就会包含旋转。如果你两只手相向运动或者相悖运动,那么数据帧中就会包含缩放。Leapmotion软件会使用其视野中所有的对象来分析运动,然后在Frame对象

2016-03-11 09:53:48 998

翻译 【翻译】Leapmotion-python开发官方文档(7)

触摸仿真LeapMotion的通用接口提供了一些功能使你能够在你的应用中实现触摸仿真。触摸仿真相关功能可以在Pointable类中找到。概览LeapMotion定义了一个自适应触摸面使你能够用来与你程序中的2D部件进行交互。这个平面大概是与x-y平面平行(译者注:应该是z-y吧?),但是与用户手及手指位置相适应。当用户向前触动手指或工具,LeapMotion会回馈pointable(即

2016-03-09 15:12:14 1650

翻译 【翻译】Leapmotion-python开发官方文档(6)

手势LeapMotion软件将一些特定的能够表明使用者的命令或要求的运动模式认定为手势。LeapMotion软件将帧中的手势反馈与其反馈其他的跟踪数据如手指和手是一样的。对于每一个追踪到的手势,LeapMotion手势会向数据帧中增加一个Gesture对象。,你可以从Frame对象的gestures 列表获取Gesture对象。手势提供了一个比观察分析单独的手指或工具随时间的运动更高等级的

2016-03-08 09:22:23 1289

翻译 【翻译】Leapmotion-python开发官方文档(5)

手指手指和工具——有尖头的东西——由Pointable对象描述。此外,从Pointable类转换到Finger和Tool类,能提供更多特定的信息。获得Pointable对象你能个从Hand对象中获得与特定手相关的手指对象。你也可以从Frame对象中获得所有检测到的pointable(手指和工具)对象/Pointable对象的特性Pointable对象有许多属性描述其代表的手指或

2016-02-25 19:45:43 1444

翻译 【翻译】Leapmotion-python开发官方文档(4)

Hands手是LeapMotion控制器所追踪的最基本的实体。控制器内部保持着一个手部模型,以此来验证从其传感器收集到的数据。这就能够使得即使一个手指没有完全可见,控制器仍能追踪到其位置。注意,当一个手指在手的后方或者正前方(以控制器的视野)时移动或者发生改变时其位置可能会发生丢失。LeapMotion软件会将现实数据与内建模型进行匹配。在某些情况下,软件可能产生一个错误的匹配——比如,将左手

2016-02-24 15:01:31 2357

翻译 【翻译】Leapmotion-python开发官方文档(3)

(由于本人英语水平有限,翻译有失误之处还望指出)数据帧(Frames)    LeapMotion API 将运动追踪的数据作为一系列数据帧(frames)传输到你的程序中。每帧数据都包括位置信息以及LeapMotion捕捉到的其他实体的信息。这篇文章主要探讨从LeapMotion控制器获得的Frame对象的一些具体问题。概览    每一Frame对象均包含由LeapMotion记

2016-02-20 11:45:47 1609

翻译 【翻译】Leapmotion-python开发官方文档(2)

(介于本人翻译能力有限,如有错误,望指出)跟踪模式(tracking model)LeapMotion API 定义了一个类来表示各种基本的被跟踪对象。Frame    Frame类是最基础的数据类型,同时提供对已追踪到数据实体的接口。在每个更新间隔都会生成一个新的Frame对象。    Frame对象包含追踪到的手列表(Handlist)、手指列表(FingerL

2016-02-18 15:47:57 1539

翻译 【翻译】Leapmotion-python开发官方文档(1)

连接控制器(Connecting to the Controller)(本人第一次写技术类博客,如有什么地方不妥请轻喷)      英文链接地址:https://developer.leapmotion.com/documentation/python/devguide/Leap_Controllers.html      (PS:本人英语有限如果翻译地方有错误,望指出)

2016-02-17 18:41:16 3128 7

隐形眼镜数据集

用于训练决策树、svm的数据集

2017-06-13

swissRanger的ToF相机底层代码封装

本代码是将swissRanger的ToF相机的大部分底层代码封装到类里,提供了opencv和PCL的接口,注意,使用本代码时需要安装PCL和opencv,欢迎自行修改。

2016-10-30

sfs 算法的matlab实现

测试通过,实现效果较好

2016-08-13

微视图像gige相机封装类结合opencv

本类MVCVideoCapture是对微视图像相关函数的进一步封装,同时返回的函数为Mat类型的。接口与opencv 的videocapture几乎一致。

2016-06-04

opengl编程指南(第七版)

opengl编程指南(第七版),全书含有目录。

2016-02-17

Opencv3(下)

OPENCV 入门推荐书,这是下,一共分上下两个。

2016-02-17

Opencv3(上)

共上下两个,这个是上,扫描版,清晰度还可以

2016-02-17

get-pip.py

this is for python to set pip

2015-05-13

ez_setup.py

for pip set use this for install both python2 and python3

2015-05-13

串口调试软件

常用的串口调试助手!

2015-04-24

空空如也

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

TA关注的人

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