自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

抄而不思则废

只写别人没写过的

  • 博客(123)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Anaconda 创建 32 位 Python 环境

我安装了 64 位的 Anaconda,所以在创建环境时,默认安装的 Python 版本是64 位。但是如果我想安装 32 位的 Python 该怎么操作呢?首先进入 32 位模式,set CONDA_FORCE_32BIT=1,然后再创建环境默认就是 32 位的 Python了。使用 conda info 可查看该环境的详细信息。恢复 64 位模式,使用命令 set CONDA_FORCE_32BIT=0 就可以了。...

2020-07-21 13:35:22 12921 6

原创 PySide2 子线程发信号更新界面、生产者消费者模型

需求是这样的:主线程需要把一些耗时操作放在子线程中执行,子线程执行完毕后通知主线程更新 UI。但是子线程只有一个,且耗时操作必须一个一个来,不能并发执行。怎么让子线程挨个执行主线程下发的命令呢?解决办法就是:主线程把需要执行的命令放在一个队列里,子线程不断去读取队列里的命令,然后挨个读取出来执行,执行完毕之后通知主线程更新 UI。在这里,主线程相当于生成者(生产命令),子线程相当于消费者(消费命令)。在这里,只有一个生产者和一个消费者,是最简单的生产者消费者模型。我这里有个样例程序,点击发送就是向子线程

2020-07-19 13:20:30 2476 1

原创 Qt Creator 下载镜像源

下载地址:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/例如,下载一个 Windows 可用的离线安装包:网速比官网的乌龟下载速度快多了

2020-07-17 15:23:20 4108

原创 pipreqs 一键导出、安装依赖包的好帮手

pipreqs 功能pipreqs 基于 *.py 文件中 import 生成 pip requirements.txt 文件,然后 pip 就可以一键安装。应用场景我在我的电脑上写了一个程序,分享给其他人用。但是他们电脑上没有安装相关的包,所以就无法运行。要是我自己去找依赖了哪些包,然后一个一个告诉他们,就太不方便了,所以就有了 pipreqs。使用方法安装 pipreqspip install pipreqs在项目的根目录下运行命令pipreqs ./ --encoding=utf8

2020-07-17 14:22:05 2972 1

原创 Windows 进程、服务、后台进程区别

进程进程是指在系统中正在运行的一个应用程序,线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。服务服务相当于支持操作系统运行的一些必要程序。后台进程...

2020-07-17 13:48:21 4542 3

原创 Make、CMake

MakeMake 工具是一个批处理工具,它本身并没有编译和链接的功能。Make 读取 makefile 文件,然后根据用户指定的命令来进行编译和链接。makefile 命令中就包含了调用 gcc 去编译某个源文件的命令。makefile 在一些简单的工程完全可以人工手写,但是当工程非常大的时候,手写 makefile 也是非常麻烦的,并且如果换了个平台 makefile 又要重新修改。CMakeCMake 根据 CMakeLists.txt 文件(学名:组态档)去生成 makefile,然后给 Mak

2020-07-17 11:47:23 172

原创 gcc、MinGW、MinGW-w64、TDM-GCC 区别与联系

MinGW、MinGW-w64、TDM-GCC 区别与联系1、MinGW1.1 MinGW 的组成1.2 MinGW 特点2、MinGW-w642.1 MinGW-w64 特点2.2 MinGW-w64 安装3、TDM-GCC4、MinGW、MinGW-W64、TDM-GCC 共同点1、MinGWMinGW (Minimalist GNU For Windows) 是一套 GNU 工具集合。开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一

2020-07-17 11:19:37 10659 1

原创 pip 查看某个包有哪些版本

输入 pip install xxx==,例如:pip install PySide2==得到输出:Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simpleERROR: Could not find a version that satisfies the requirement PySide2== (from versions: 0.0.0a1, 5.11.0, 5.11.1, 5.11.2, 5.12.0, 5.12.1, 5.1

2020-07-16 14:17:09 19739 4

原创 8、多设备和异构插件

多设备和异构插件多设备插件指定使用哪些设备代码实例异构插件配置异构插件代码实例两个对比多设备插件多设备插件会在运行时检查当前各个计算设备的利用率,然后决定应该把哪个推理计算请求放到哪个计算设备中取,从而实现负载均衡。例如,有 4 个推理计算请求,电脑上有一个 CPU、一个 GPU、两个英特尔神经计算棒二代,则 4 个推理请求可以在 4 个计算设备上并行执行。指定使用哪些设备例如,配置为 MULTI:CPU, GPU, MYRID,意思是指定 Inference Engine 使用多设备插件,可以在

2020-07-15 20:41:03 473

原创 PyInstaller 打包依赖文件至目标程序目录

问题我使用 PySide2 开发了一个应用程序,为了方便其他人使用,我便使用 PyInstaller 打包成 *.exe。打包模式为 one-folder,即生成的目标文件是一个文件夹,里面包含了该 *.exe 文件及该 *.exe 所依赖的全部文件。打开该文件夹,截图如下:一切都很顺利,但是有这样一个问题,程序运行时依赖几个文件(*.png,*.txt),没有给我打包至目标目录下,*.exe 就找不到文件了,也就无法运行。解决办法使用配置文件 *.spec,指定依赖的文件一起打包。配置文件

2020-07-15 14:21:25 5739 1

原创 Python partial 函数

问题用 PySide2 进行界面编程,点击某个按钮时需要触发某个函数,并且给这个函数传递我所点击按钮上面的文字。btn.clicked.connect(my_func)def my_func(text): # do something print(text)但是 connect 函数只能接收一个参数,就是被触发的函数。那触发 my_func 函数时,怎么给这个函数传参呢?解决办法我们要用到 partial 函数来构造一个新的函数,对原函数进行改造。partial 函数可以对一个函数的参数

2020-07-15 11:50:42 396

原创 PySide2 QTableView 根据内容调整列宽

问题当某个单元格内容较多时,内容会显示不全,会以省略号的形式展示。我们希望列宽能够根据内容自动调整,调整至能够完全显示内容。、解决办法self.ui.tableView.resizeColumnsToContents() # 根据内容调整列宽...

2020-07-15 11:01:34 2134 2

原创 Microsoft Visual C++ Redistributable 与 Visual C++ 的区别与联系?

Visual Studio:是一款开发软件,即我们俗称的 IDE,有很多版本,如 Visual Studio 2010。Visual C++:Visual C++ 是 Visual Studio的一个部分,此外还有 Visual Basic (VB)、Visual C# 等。Microsoft Visual C++ Redistributable:是一个运行库,用 Visual C++ 开发的程序必须在有安装 Microsoft Visual C++ Redistributable 的电脑上才能运行。所

2020-07-14 20:37:36 8251 1

原创 serial.serialutil.SerialException: ClearCommError failed (OSError(9, ‘句柄无效。‘, None, 6))

问题描述:在主线中开了一个子线程,并且子线程和主线程共享一个串口实例。我就让子线程向串口发送数据,结果就报错:serial.serialutil.SerialException: ClearCommError failed (OSError(9, '句柄无效。', None, 6))原因:主线程开启子线程后,就接着往下执行,此时主线程和子线程处于并行状态。而我在主线程中有一个关闭串口实例的操作,子线程有使用串口实例的操作。如果主线程先关闭串口实例,子线程后使用串口实例,就会导致这样的错误。解决办法:

2020-07-14 20:24:48 4211 2

原创 Python 求补码

## 由十进制得到二进制补码# 系统会先将 -10 转成补码,然后直接与后面的二进制进行与操作# 就得到 -10 的补码了#str = "{:b}".format(-10 & 0b1111111111111111)print(str)输出:1111111111110110

2020-07-14 11:17:17 4551 2

原创 Python 字符串分割

用 split() 函数,默认按空格进行切分(不管两个单词中间隔多少个空格都可以),返回切分后的字符串列表。str = "aa bbbbb ccc d"str_list = str.split()print(str_list)输出结果:['aa', 'bbbbb', 'ccc', 'd']...

2020-07-13 20:46:24 311

原创 AttributeError: module ‘google.protobuf.descriptor‘ has no attribute ‘_internal_create_key‘

原版本:protobuf 3.6.1进行升级:pip install --upgrade protobuf升级后就不报错了。

2020-07-12 15:17:47 10352 4

转载 换行 CR LF 行结束符

CR(Carriage Return)表示回车LF(Line Feed)表示换行各大系统的区别:Dos 和 Windows 采用回车+换行(CR + LF)表示下一行而 UNIX / Linux 采用换行符(LF)表示下一行苹果机(MAC OS系统)则采用回车符(CR)表示下一行注意:Windows 下编写的 Shell 脚本,直接放到 Unix / Linux 下执行会报错,就是因为行结束符不一样导致的,需要进行转换。...

2020-07-11 21:35:40 444

原创 GitHub 上的预训练模型

https://github.com/tensorflow/models:提供基于 TensorfFlow 训练好的模型,文件格式为 *.pb,即冻结图模型。https://github.com/opencv/open_model_zoo:提供基于 OpenVINO 优化的模型,文件格式 *.bin。

2020-07-11 16:57:07 1617

原创 Python 文件头注释

shebang# encoding:utf-8# encoding:utf-8 是注释,但 python 看到这句话就知道了接下来应该用 utf-8 对该 *.py 文件进行解码了。#!/usr/bin/python如果直接采用 python file.py 的方式运行脚本的话,有没有 shebang 都无所谓,因为我们自己直接指定了该脚本的解释器,即 python。通常我们认为 #!/usr/bin/python 采用了绝对路径的写法,即指定了采用/usr/bin/python 解释器来执行该脚

2020-07-09 13:54:36 606

原创 PySide2 控件靠右对齐

在布局中先添加伸缩属性:addStretch(),之后的控件就会右对齐。QHBoxLayout *pHLayout = new QHBoxLayout();pHLayout->addStretch(); // 添加伸缩pHLayout->addWidget(pButton1);pHLayout->addWidget(pButton2);pHLayout->addWidget(pButton3);pHLayout->addWidget(pButton4);pHLay

2020-07-09 13:49:59 1006

原创 6、编写 OpenVINO 应用程序(Python 版)

设置环境变量环境变量 -> 系统变量:PYTHONPATH:C:\Program Files (x86)\C:\Program Files (x86)\例1:编写程序(使用 OpenCV 库)通过 OpenCV dnn 模块来调用 OpenVINO,实现 AI 推理计算。例2:编写程序(直接使用 OpenVINO)直接用 OpenVINO Python API 编写的程序,比用 OpenCV DNN 模块编写的程序运行速度快。...

2020-07-08 22:27:13 2923 3

原创 PySide2 主动关闭应用、对话框、控件

退出程序QApplication::exit()关闭QDialogaccept():点击 OK 键reject():点击 Cancel 键done():点击右上角关闭按钮关闭 Widgetclose()

2020-07-08 17:29:40 2861

原创 Python 获取 CPU 序列号

import wmic = wmi.WMI()# CPU序列号for index, cpu in enumerate(c.Win32_Processor()): print("CPU {0} 序列号:{1}".format(index, cpu.ProcessorId.strip()))

2020-07-08 11:15:01 2411

原创 Python for 循环获取 list 元素的索引和值

name = ['apple', 'xiaomi', 'huawei']for index, value in enumerate(name): print(index, val)

2020-07-08 11:14:05 14450

原创 Python 设置子线程的名字

使用 setName() 函数可以设置子线程的名字self.polling_timer = Timer(0, self.poling)self.polling_timer.setName("polling_start_timer")self.polling_timer.setDaemon(True)self.polling_timer.start()

2020-07-08 10:05:21 1436

原创 Python 强制停止子线程

Timer 一般会设置一个间隔时间,然后才开一个子线程执行需要执行的函数。cancel() 函数只能取消还未开始执行的 Timer,也就是取消该 Timer。如果 Timer 已经开启子线程执行函数了,用 cancel() 函数 是不能停止子线程执行的,子线程会一直执行,直到结束。使用下面这个函数强制停止子线程:import ctypesimport datetimeimport inspectdef stop_thread(thread): tid = thread.ident

2020-07-08 09:27:28 2679 1

原创 C语言 函数作为实参

#include<stdio.h>void print(char *s) { puts(s);}void hello(void (*p)(char*), char *s) { p(s);}int main(void) { print("hello"); hello(print, "hello"); return 0;}

2020-07-08 08:23:54 595

原创 bat 变量延迟

@echo offset a=4set a=5 & echo %a%pause setlocal enabledelayedexpansionset c=4set c=5 & echo !c!pause批处理运行机制:批处理读取命令按行读取,某条命令行中的变量改变要到下一行才会生效。当我们启用变量延迟:setlocal enabledelayedexpansion,并且变量使用 ! !括起来,这时候会发现 c 输出为 5。命令解释器就不再是运行命令前先将变量读取出来再执

2020-07-07 22:29:48 2089

原创 Python 查看当前线程数量及名字

import threadingimport timedef test1(): for i in range(5): print("子线程1:%s" % i) time.sleep(1) # 如果创建Thread时执行的函数,函数运行结束意味着 这个子线程结束...def test2(): for i in range(5): print("子线程2:%s" % i) time.sleep(1)if

2020-07-07 19:36:43 9896

原创 单例模式

懒汉模式:真的很懒,到了不得不创建的单例对象的时候才去创建。饿汉模式:俗话说,穷人的孩子早当家,没伞的孩子要跑得更快。没吃的就要提前准备,程序运行起来时就已经创建了单例对象,不管你用不用得着,反正先准备着。家有余粮,心中不慌。...

2020-07-07 09:07:19 83

原创 Python 类变量

class Company: count = 0count 是 Company 类成员变量,在第一调用 Company 时初始化。# 第一次调用n = Company.count

2020-07-06 17:06:04 124

原创 Python *args **kwargs

args:argumentskwargs:key word arguments*args:表示接收 0 or n 个参数**kwargs:表示接收 0 or n 个关键字参数*args 必须放在具体形参的后面,**kwargs 必须放在 *args 的后面。

2020-07-06 16:59:27 120

原创 10、【图像识别】垃圾瓶自动分选项目

新建项目收集并标注图片训练模型导出 TensorFlow 冻结图模型测试模型基于 OpenVINO 工具套件优化并加速模型基于 OpenVINO 工具套件部署模型

2020-07-05 22:04:49 682

原创 9、【图像识别】光学字符识别 OCR

新建 OCR 项目收集并标注图片训练模型导出 TensorFlow 冻结图模型测试模型基于 OpenVINO 工具套件优化并加速模型基于 OpenVINO 工具套件部署模型

2020-07-05 22:03:41 919

原创 7、同步、异步推理

同步模式例子异步模式例子

2020-07-05 22:00:27 1789 1

原创 5、编写 OpenVINO 应用程序(C++ 版)

设置环境变量使用 C++ 开发使用 Python 开发

2020-07-05 21:56:57 4986 3

原创 4、安装 OpenVINO

安装 OpenVINO安装要求硬件要求操作系统要求开发工具安装 OpenVINO安装 CMake安装 Microsoft Visual Studio 2017安装英特尔显卡驱动设置环境变量运行演示程序编译并运行 Inference Engine 范例和演示程序安装要求硬件要求CPU:intel 第六代及以后的酷睿处理器或至强处理器。操作系统要求操作系统:Win 10 (64 位)开发工具Microsoft Visual Studio C++ 2017CMake V3.4 (64位)Pyth

2020-07-05 21:54:26 2231 1

原创 3、一键训练模型

0、前言1、create_directories.py 一键创建项目目录结构输入命令 python create_directories.py --name=my_training_demo2、one_command_train.py 一键训练模型输入命令 python one_command_train.py --steps=500 --batch_size=12

2020-07-05 21:35:52 876

原创 C/C++ include 尖括号与引号 ““ 包含头文件区别

#include < > 引用的是编译器的类库路径里面的头文件。编译器自带一个类库,比如 stdio.h 就在里面。#include " " 首先查找该文件所在目录,在所在目录搜索,看有没有相应的头文件,如果没有,还是去编译器自带类库去找。...

2020-07-05 21:28:41 135

org.json jar包及源码

org.json jar包,包含了常用的 JSONObeject,JSONArray等等,里面也上传了源码,想看源码的也可以下载。

2018-05-11

allegro4.2.3游戏库

allegro4.2.3游戏库

2016-11-03

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

TA关注的人

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