- 博客(178)
- 资源 (419)
- 收藏
- 关注
原创 创建的Docker镜像SIZE过大,如何优化?
Docker 是一个开源软件,也是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。本文简要介绍如何将Docker容器打包成镜像后,打出的镜像SIZE特别大,如何查看内容是否是自己想要的。
2025-02-13 14:16:26
1013
原创 将Docker容器打包成镜像提交
Docker 是一个开源软件,也是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。本文简要介绍如何将Docker容器打包成镜像并提交到Docker仓库。
2025-02-13 14:03:28
1034
原创 使用Kaggle API快速下载Kaggle数据集
通过使用Kaggle API在服务器上下载数据集,我们可以避免网页下载的慢速和下载失败的问题,实现快速且稳定的下载过程。
2024-03-28 17:46:54
5101
2
原创 使用Huggingface镜像站hf-mirror.com下载资源
hf-mirror.com是Huggingface的镜像网站,为用户提供了一个备用的访问通道,解决了无法访问huggingface.co的问题。通过hf-mirror.com,我们可以正常地下载所需的模型和数据集,享受Huggingface提供的强大功能。
2024-01-31 18:45:00
30267
3
原创 使用7zip解压CRC校验失败的zip文件
偶尔遇到一些zip压缩文件,使用unzip解压时会遇到类似“CRC校验失败”而导致解压失败的问题。这个时候可以考虑使用7zip来解压。7-Zip 是一款拥有极高压缩比的开源压缩软件,支持常见的压缩格式,还具备修复一些压缩包文件损坏的能力。
2023-10-26 17:53:00
7190
原创 通过调整图像hue值并结合ImageEnhance库以实现色调增强
PIL库中的ImageEnhance类可用于图像增强,可以调节图像的亮度、对比度、色度和锐度。通过RGB到HSV的变换加调整可以对图像的色调进行调整。两种方法结合可以达到更大程度的图像色调增强。
2023-06-22 23:13:39
1151
原创 TensorRT 从7.2升级到8.5,改写plugin以适配新版本
TensorRT是NVIDIA推出的一款高效深度学习模型推理框架,其包括了深度学习推理优化器和运行时,能够让深度学习推理应用拥有低时延和高吞吐的优点。TensorRT的版本迭代速度非常快,很多之前写的plugin在版本升级后可能就没法直接使用,这时就需要将代码升级,以适配新版TRT。本文仅记录TRT从7.2升级到8.5时,改写plugin过程中需要注意的内容。
2023-06-07 18:07:37
1757
原创 PyTorch2.0向后兼容性和加速效果浅探
在PyTorch2022开发者大会上,PyTorch团队发布了一个新特性——,将PyTorch的性能推向了新的高度,称这个新版本为PyTorch2.0。的引入不影响之前的功能,其是一个完全附加和可选的功能,因此PyTorch2.0完全向后兼容,基于之前1.x版本开发的项目可以直接迁移到PyTorch2.0使用。
2023-05-13 19:58:01
4166
1
原创 TensorFlow的GPU使用相关设置整理
TensorFlow是一个在机器学习和深度学习领域被广泛使用的开源软件库,用于各种感知和语言理解任务的机器学习。默认情况下,TensorFlow 会映射进程可见的所有 GPU(取决于 CUDA_VISIBLE_DEVICES)的几乎全部内存。这是为了减少内存碎片,更有效地利用设备上相对宝贵的 GPU 内存资源。但有时我们不需要这种特性,所以需要想办法避免这种情况。本文简要介绍TensorFlow的GPU使用相关设置。
2022-11-08 21:25:22
4119
原创 无CUDA支持的dlib库的安装与使用
Dlib 是一个 C++ 工具包,被广泛应用于工业和学术界。Dlib 的开源许可允许在任何应用程序中免费使用它。Dlib支持导出其他编程语言如Python的binding。在Python环境下一般安装dlib很方便,直接使用pip安装即可。但是某些时候由于CUDA支持的问题导致部分模型使用dlib库进行推理会出现异常。本文简要介绍无CUDA支持的dlib库的安装与使用。
2022-11-08 19:45:00
1463
原创 基于GStreamer和FFmpeg的OpenCV安装和使用
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。可用于开发实时的图像处理、计算机视觉以及模式识别程序。本文简要介绍基于gstream和FFmpeg的opencv安装和使用。
2022-09-21 10:36:52
3329
原创 基于libjpeg-turbo库的jpeg4py安装与使用记录
jpeg4py是Python cffi (C Foreign Function Interface) libjpeg-turbo 绑定和辅助类工具包,是为 libjpeg-turbo 提供线程安全和感知GIL的Python绑定,基于Python 2/3 和 numpy 运行。目前只能解码 jpeg 文件,在单线程中比 Image.open().tobytes() 和 scipy.misc.imread() 快约 1.3 倍,在多线程模式下快 9 倍................
2022-08-30 10:35:32
2839
原创 label-studio批量上传本地数据
Label Studio是一个非常好用的开源数据标注工具,拥有对包括音频、文本、图片、视频和时间序列等各种数据类型的标注能力,有简单易用的UI设计和多导出格式的支持,能够有利于数据准备和利用已有训练数据提升机器学习模型精度。本文内容简要介绍如何在label-studio中批量上传本地数据。当我们希望在label-studio中批量上传本地数据时,可以通过将本地数据以http服务的方式暴露给label-studio访问。以下以Ubuntu系统为例进行说明。将本地数据(如待批量导入的图片)放在运行label
2022-07-12 19:52:36
4408
2
原创 label-studio的内容存储数据库(sqlite3)读取
Label Studio是一个非常好用的开源数据标注工具,拥有对包括音频、文本、图片、视频和时间序列等各种数据类型的标注能力,有简单易用的UI设计和多导出格式的支持,能够有利于数据准备和利用已有训练数据提升机器学习模型精度。本文内容简要介绍如何读取label-studio的内容存储数据库的内容。当我们希望使用脚本读取或批量修改label-studio的数据内容时,需要通过存储数据内容的sqlite3文件访问内容:版权说明本文为原创文章,独家发布在blog.youkuaiyun.com/TracelessLe。
2022-07-12 19:17:25
1785
原创 解决Docker容器apt无法下载问题
Docker 是一个开源软件,也是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。本文内容简要介绍如何解决Docker容器的apt无法下载问题。当在容器中使用apt下载时,会报如下错误:一般是网络无法连接访问对应包导致的,即使也仍然报错。考虑添加不同的apt源来解决这个问题......
2022-06-29 20:48:03
5018
原创 caffemodel2pytorch使用记录
前言caffemodel2pytorch是用于对caffe模型转PyTorch模型的工具。对于需要对模型进行框架间的迁移帮助很大。caffemodel2pytorch安装和测试安装所需依赖环境安装protobuf,注意使用root安装,或使用sudo权限安装。wget https://github.com/google/protobuf/archive/v2.6.1.zipunzip protobuf-2.6.1.zipcd protobuf-2.6.1如果网络能ping通google,
2022-05-27 14:07:02
1016
2
原创 使用Python对GIF读取、生成、压缩和加水印
环境说明Python环境下对GIF文件进行读取、生成、压缩和加水印,主要使用到的包有:cv2imageiopygifsicleffmpeg读取__author__ = "TracelessLe"import cv2import osimport numpy as npclass GIF(): def __init__(self, file_path): self.file_path = file_path self.material = [
2022-04-13 17:20:22
2076
原创 使用imageio写视频文件指定输出质量
前言imageio是一个比较好用的用于读写图片数据的Python library,在处理视频数据时是以imageio_ffmpeg为backend的。问题当使用imageio读写视频时,其会调用imageio_ffmpeg包以使用ffmpeg作为backend。常用调用方法如下:__author__ = "TracelessLe"import imageioif __name__ == "__main__: video_path = 'test.mp4' video_reader =
2022-04-13 14:51:22
5663
原创 PyTorch中F.conv2d从ONNX到TensorRT的支持
前言在使用PyTorch进行网络训练得到.pth模型文件后,我们可能会做一些模型部署和加速的工作。这里一般会涉及到将PyTorch模型转为ONNX模型的过程。PyTorch自带了ONNX转换方法(torch.onnx.export),可以很方便的将一些仅包含通用算子的网络的PyTorch模型转为ONNX格式。另一方面,TensorRT是NVIDIA推出的一款高效深度学习模型推理框架,其包括了深度学习推理优化器和运行时,能够让深度学习推理应用拥有低时延和高吞吐的优点。在使用PyTorch训练得到网络模型
2022-04-13 11:21:48
1249
原创 PyQt5中的QMessageBox消息弹窗使用示例
前言PyQt是Python语言环境的GUI编程解决方案之一,另外还有PyGTK、wxPython等也较为常用。PyQt作为Qt语言的Python扩展,可以用来方便快速的开发界面应用。PyQt5中的QMessageBox消息弹窗QMessageBox消息弹窗类在QtWidgets模块中定义,使用时需要from qtpy import QtWidgets。具体使用示例如下:from qtpy import QtCorefrom qtpy import QtWidgetsfrom qtpy imp
2022-04-10 11:56:42
2803
2
原创 检查OpenCV是否使用TBB库编译
前言TBB全称Threading Building Blocks,是Intel针对基于多核处理器软件开发的C++模板库,核心作用是用来在任务处理中做多线程加速。OpenCV提供了接口来编译和使用TBB。关于更多TBB的优势见参考资料[6]和[7]。OpenCV基于TBB编译在Cmake配置编译选项中指定-D WITH_TBB=ON,例如 :cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_C_COMPILER=/usr/bin/gcc \-D CMAKE
2022-04-08 17:49:37
5536
原创 解决Docker容器中文显示乱码问题
前言Docker 是一个开源软件,也是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。本文内容简要介绍如何解决Docker容器的中文乱码问题。实现问题当在容器中编辑文本时,无法正常输入和显示中文,如下所示:定位输入locale指令查看容器使用的语言集:locale: Cannot set LC_CTYPE to default loca
2022-04-06 16:52:05
7353
5
原创 Non-maximum Suppression (NMS) 流程回顾
前言NMS全称Non-maximum Suppression,非极大值抑制。通常用于检测任务中的bbox去冗余。流程分析procedure NMS(dets, thresh): # dets->bboxes, thresh->filter iou thresh keep = [] # a list to put final picked bbox indexes x1, y1, x2, y2, scores = dets[:, idx] # parse bboxes
2022-04-06 16:22:07
2109
原创 编写Bash脚本获取文件夹下文件名和扩展名
前言很多时候我们可能需要获取文件夹下的文件名和扩展名用于任务处理,此时可以通过编写Bash脚本来实现。实现result_path1=task1result_path2=task2concat_path=concat-videosif [ ! -d "./$concat_path" ]; then mkdir ./$concat_pathfifiles=$(ls $result_path1)for filename in $filesdo filename_noext=${f
2022-04-06 11:42:17
2529
原创 无显示设备的Ubuntu上安装和测试OpenPose
前言OpenPose是由CMU推出,用于实时检测图片中的人体、手、人脸和脚的关键点,一共135个关键点。支持多人检测。对于需要用到人体姿态的研究帮助很大。OpenPose安装和测试本文主要参考OpenPose官方安装文档。对于Cmake-GUI的部分使用直接改写CMakeLists.txt完成。拉取源码和子模块源码git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git拉取子模块源码(caffe和pybind
2022-03-28 15:50:56
3505
原创 使用tensorrt_inference库导出RetinaFace-R50模型到TensorRT Engine
前言TensorRT是NVIDIA推出的一款高效深度学习模型推理框架,其包括了深度学习推理优化器和运行时,能够让深度学习推理应用拥有低时延和高吞吐的优点。RetinaFace 作为一款InsightFace出品的较为优秀的单阶段人脸检测器,使用TensorRT进行模型转化来提升推理速度很有必要。RetinaFace TensorRT加速本文主要参考tensorrt_inference开源库,将RetinaFace -R50模型转为TensorRT engine并使用自带C++代码运行测试。
2022-03-24 21:00:27
5512
原创 Python中__main__方法中的变量使用
前言__main__方法作为Python编程环境的程序入口,可以定义一些变量,这些变量默认为全局变量,可供其他方法使用。但是使用的过程需要注意一些事项,否则会出现报错。__main__方法中的变量import argparse# TracelessLe注:代码示例,不可直接执行def test_fun1(): print("pathA: ", pathA)if __name__ == "__main__": parser = argparse.ArgumentParser(
2022-03-23 18:07:14
5423
原创 PyQt5中的QtGui.QImage图片显示问题分析
前言PyQt是Python语言环境的GUI编程解决方案之一,另外还有PyGTK、wxPython等也较为常用。PyQt作为Qt语言的Python扩展,可以用来方便快速的开发界面应用。PyQt5中的QtGui.QImage图片显示import os.path as ospimport cv2from qtpy import QtCorefrom qtpy import QtWidgetsfrom qtpy import QtGui# TracelessLe注:代码示例,不可直接执行c
2022-03-07 21:27:54
12590
3
原创 PyQt5中的定时器QTimer设置与失效分析
前言PyQt是Python语言环境的GUI编程解决方案之一,另外还有PyGTK、wxPython等也较为常用。PyQt作为Qt语言的Python扩展,可以用来方便快速的开发界面应用。PyQt5中的定时器QTimer设置import os.path as ospfrom qtpy import QtCorefrom qtpy import QtWidgets# TracelessLe注:代码示例,不可直接执行class MainWindow(QtWidgets.QMainWindow):
2022-02-23 17:41:38
3768
1
原创 论文笔记——Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data
基本信息标题:Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data简称:Real-ESRGAN时间:17 Aug 2021, International Conference on Computer Vision Workshops (ICCVW) 2021作者:Xintao Wang, Liangbin Xie, Chao Dong, Ying Shan;Applied Research
2022-01-28 15:53:21
6334
1
原创 论文笔记——ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks
基本信息标题:ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks简称:ESRGAN时间:2018年初版,1 Sep 2018, ECCV2018 PIRM Workshop作者:Xintao Wang, Ke Yu, Shixiang Wu, Jinjin Gu, Yihao Liu, Chao Dong, Chen Change Loy, Yu Qiao, Xiaoou Tang; CUHK-SenseTime Jo
2022-01-28 15:24:55
6001
原创 编写Bash脚本实现使用FFmpeg批量合并视频
前言使用FFmpeg能够很方便的合并同分辨率的视频。很多时候我们可能需要批量化合并视频,此时可以通过编写Bash脚本来实现。实现批量合并视频合并三个文件夹中的视频结果:result_path1=task1result_path2=task2result_path3=task3concat_path=concat-videosif [ ! -d "./$concat_path" ]; then mkdir ./$concat_pathfifor i in {0..20}do
2022-01-08 15:54:04
1524
原创 Bash语法中的if else
前言编写bash脚本,分支语法经常会被用到,需要掌握其规则。if/else系列基本有四种分支语法,包括if、if…else、if…elif…else 和 嵌套if。基本语法ifif CONDITIONthen STATEMENTSfi方法示例:打印奇数for i in {0..20}do if [ $(($i % 2)) -gt 0 ] then echo "process: $i" fidoneif…elseif CONDITION
2022-01-08 15:35:33
2312
原创 PyTorch之自定义op扩展编译与加载 —— cpp_extension
前言在深度学习领域,经常需要使用其他人已训练好的模型进行改进或微调,这个时候我们通常会希望加载预训练模型文件的参数,如果网络结构不变,只需要使用load_state_dict方法即可。而当我们改动网络结构后,由于load_state_dict方法要求读入的state_dict的key和net.state_dict()的key对应相等,如果有缺少就会报错。这个时候我们通常希望加载未改动部分结构的参数用来初始化网络。版权说明本文为原创文章,独家发布在blog.youkuaiyun.com/TracelessLe。
2021-12-31 11:00:58
6039
23
原创 人脸对齐中的尺寸拉伸程度求解
前言人脸对齐是人脸相关应用中非常重要的技术,通常采用人脸关键点来进行对齐。而在关键点对齐中最常用的便是相似变换(SimilarityTransform)。相似变换可以看成是仿射变换中的简单的一种,不存在倾斜变化和翻转变化。关于仿射变换的介绍可以查阅参考资料[4]。相似变换相当于等距变换和均匀缩放的一个复合,而等距变换是平移变换和旋转变换的复合。所以相似变换包含了平移变换、旋转变换和均匀缩放三类变化。尺寸拉伸程度求解常用的求解相似变换的变换矩阵的函数有scikit-image (skimage)
2021-11-30 21:08:49
2613
原创 TensorRT debug及FP16浮点数溢出问题分析
前言TensorRT是NVIDIA推出的一款高效深度学习模型推理框架,其包括了深度学习推理优化器和运行时,能够让深度学习推理应用拥有低时延和高吞吐的优点。除了常规的加速功能外,TensorRT还提供了一套可用于engine生成过程中debug的工具,包括Polygraphy、ONNX GraphSurgeon和PyTorch-Quantization。这些小工具用处很大,值得花时间进一步研究。Debug方法示例polygraphyPolygraphy是TensorRT官方提供的一系列小工具合集
2021-10-08 20:02:18
8540
3
原创 拉普拉斯金字塔融合原理浅析
前言拉普拉斯金字塔融合(Laplacian Pyramid Blending)也称为多频带融合(Multi-band Blending),可以看做是对Alpha融合的一种改进,避免出现鬼影(Ghosting)和截断(Seams)现象。方法原理图像可以认为是由不同频率的信息组成,包含了很多不同的特征,频谱跨度很大。图像中的低频信号和高频信号也叫做低频分量和高频分量。图像中的高频分量,指的是图像强度(亮度/灰度)变化剧烈的地方,也就是我们常说的边缘(轮廓);图像中的低频分量,指的是图像强度(亮度
2021-10-08 17:09:05
9322
原创 gaussian2kp与kp2gaussian使用记录
前言gaussian2kp与kp2gaussian是在求目标坐标点时,需要保证求解过程可导而提出的方法。理论上是结合softmax函数 ,达到argmax的目的,使得过程可导。使用import torchdef make_coordinate_grid(spatial_size, type): """ Create a meshgrid [-1,1] x [-1,1] of given spatial_size. """ h, w = spatial_size
2021-10-08 14:56:45
592
lip-clarity-model.pth
2025-01-04
mediapipe face-landmarker-v2-with-blendshapes.task
2025-01-04
antelopev2.zip
2024-03-21
hand-over-face-corrected.zip
2023-11-01
fine-egohands+.zip
2023-11-01
gtea-cropped.zip
2023-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人