Opencv-python
Opencv简介图像处理简介Opencv简介及安装方法pip install opencv-python==3.4.1.15 # 无专利,比较推荐的版本pip install opencv-contrib-python==3.4.1.15 # opencv拓展包
python第三方包官网
Opencv模块
基础模块:图像和视频读取模块,内核模块,图像和视频处理模块
高级模块:视频分析模块、2D特征读取模块、机器学习模块、图像拼接模块等等
扩展模块
Opencv基本操作图像基础操作图像的读取、显示、保存:
imread
imshow
imwrite
注:opencv保存的图像其实都是以numpy为基础的,即一个二维数组,如果是BGR图像,则每个元素处都是一个有三个元素的一维数组,分别存储BGR三个值,如果是灰度图,则每个元素处都是一个有一个元素的一维数组,存储灰度值。
绘制几何图形:
line
circle
rectangle
putText
图像像素点的操作:
图像属性:
大小:行数、列数size
形状shape
通道数
数据类型dtype
像素数
图像通道的拆分和合并 ...
python os模块
1. 简介 os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出OSError异常或其子类异常。
注意,如果是读写文件的话,建议使用内置函数open();如果是路径相关的操作,建议使用os的子模块os.path;如果要逐行读取多个文件,建议使用fileinput模块;要创建临时文件或路径,建议使用tempfile模块;要进行更高级的文件和路径操作则应当使用shutil模块。
当然,使用os模块可以写出操作系统无关的代码并不意味着os无法调用一些特定系统的扩展功能,但要切记一点:一旦这样做就会极大损害代码的可移植性。
此外,导入os模块时还要小心一点,千万不要为了图调用省事儿而将os模块解包导入,即不要使用from os import *来导入os模块;否则os.open()将会覆盖内置函数open(),从而造成预料之外的错误。
2. 常用功能 注意,os模块中大多数接受路 ...
像素,分辨率,PPI
PT:pt是个物理标量,不管在什么显示设备上其物理尺寸都是一样的。1pt=1/72英寸,1英寸=2.54厘米
Piexl:像素
PPI:pixel per inch,每英寸像素数
DPI:dot per inch,每英寸点数量
Resolution:分辨率
分物理和数字考虑,物理又分输入、显示和输出
物理:物理实体
输入有相机、手机拍照等,对于物理输入,在不影响观感的前提下,PPI越低越好,比如相同像素的相机和手机,相机的CMOS面积远大于手机,每个像素占有的面积更大,每个像素感光效果越好
显示有电脑显示器、手机显示器等,1080P,2K,4K,像素值固定,PPI固定,PPI越大越好,因为单位面积像素数越多,越精细
输出有打印机,一般用DPI衡量,DPI越大,说明打印效果越好
数字:存储在计算机内的一张图像值的张量
根据映射关系,将数字图像映射到实际的显示器上显示。图像像素的裁剪就是对原图下采样,改变图像质量。图片放大就是数字图像的一个像素由实际物理显示器的多个像素显示,图片缩小相反,实际物理显示器的一个像素内含有多个数字图像的像素
Python包的发行与安装
1.为什么需要对项目分发打包? 平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单,是因为模块开发者为我们默默地为我们做了所有繁杂的工作,而这个过程就是 打包。
打包,就是将你的源代码进一步封装,并且将所有的项目部署工作都事先安排好,这样使用者拿到后即装即用,不用再操心如何部署的问题(如果你不想对照着一堆部署文档手工操作的话)。
不管你是在工作中,还是业余准备自己写一个可以上传到 PyPI 的项目,你都要学会如何打包你的项目。
Python 发展了这么些年了,项目打包工具也已经很成熟了。他们都有哪些呢?
你可能听过 disutils、 distutils 、distutils2、setuptools等等,好像很熟悉,却又很陌生,他们都是什么关系呢?
2. 包分发的始祖:distutils distutils 是 Python 的一个标准库,从命名上很容易看出它是一个分发(distribute)工具(utlis),它是 Python 官方开发的一个分发打包工具,所有后续的打包工具,全部都是基于它进行开发的。
distutils 的精髓在于编写 ...
毕业设计:嵌入式平台的目标检测-3
当前进展 上一个博客提到使用YOLOv4帧率较低,在windows10 GTX1650上帧率为15FPS,在Nvidia Xavier AGX上为5FPS,低的离谱,不过挺奇怪的,理论上应该AGX远超1650,当时我也没多想,可能是哪里出了问题…(不过我第一步任务是把代码跑通,接下来开始提速)
模型选择 后来比较了一下,YOLOv5的准确性和速度都高于v4,tiny版本另说,v5和刚出没多久的v8属于同一家公司ultralytics,而且最适合商用,因此选择yolov5替代v4。v6、v7、v8和v5相比没有很大的改善。
yolov5 Github地址:https://github.com/ultralytics/yolov5
v5模型有较多版本,选择YOLOv5s作为测试模型。
官方代码 clone官方代码后,装指定的环境,官方推荐直接pip install -r requirements.txt安装必要的环境,但我不推荐这样,手动安装既能了解安装详细过程也能控制版本。建议先安装pytorch和Cudatoolkit。显卡驱动、cudatoolkit、pytorch、 ...
Parser
Parser模块 官方文档
该模块是python自带的用于管理参数的模块,用法如下:
import argparse# 创建一个 ArgumentParser 对象parser = argparse.ArgumentParser() parser.add_argument('--vocab_file', default='europarl/txt/vocab.json', type=str)parser.add_argument('--MAX_LENGTH', default=30, type=int)parser.add_argument('--save', action='store_true', help='GAT with sparse version or not.')# 后面参数用args.vocab_file、args.MAX_LENGTH、args.save 使用,去掉前面的-- # 解析添加的参数args = parser.parse_args ...
毕业设计:嵌入式平台的目标检测-2
目标检测综述 A survey of modern deep learning based object detection models
https://www.sciencedirect.com/science/article/pii/S1051200422001312
YOLO YOLO系列目标检测算法网上教程很多,当然也需要看原论文
目前进展 已完成在Nvidia Xavier AGX上搭建miniforge和pytorch的环境,成功运行YOLOv4源码。但帧率较低
Nvidia Jetson系列嵌入式开发套件信息参考 https://www.nvidia.cn/autonomous-machines/embedded-systems/
关于miniforge、miniconda、anaconda等的区别可参考 https://zhuanlan.zhihu.com/p/518926990
嵌入式平台 nvidia嵌入式平台:Jetson Orin:Jetson AGX Orin、Jetson Orin NX、Jetson Orin Nano;
Jets ...
毕业设计:嵌入式平台的目标检测-1
毕业设计设计内容 目标检测是计算机视觉领域的一项关键技术,是后续目标识别、目标理解等高阶任务的前序。随着深度神经网络研究的快速发展,目标检测已经能达到甚至超过人类的相应能力。然而,大规模神经网络的推理需要强大的算力支持,如果将其移植到低功耗,小体积,算力低的嵌入式平台上是实现目标检测应用于移动端的关键步骤。本课题重点研究YOLO系列目标检测模型在英伟达Xavier系列板卡上的实现。
技术要求
掌握linux操作系统、目标检测与深度学习的相关概念
研究YOLO系列目标检测模型,阅读源码
收集数据集,通过训练给出优化后的神经网络模型并部署至嵌入式平台上
成果形式 开题报告;毕设论文;神经网络程序和实验结果
Linux 2 - linux科学上网
一.SOCKS5、SS、SSR、v2ray、Clash等是什么? 简单总结,SOCKS5(SOCKS发展而来)和SS(shadow socket)是会话层协议,因此它们能代理 HTTP 请求,而 HTTP 不能代理 SOCKS5 的内容
SSR、v2rayN、v2rayA、v2rayNG、Clash等都是客户端,可选择不同协议
机场:服务器合集,v2ray
二.V2rayA在linux下安装使用教程 官网:https://v2raya.org/
1.安装v2ray内核
curl -Ls https://mirrors.v2raya.org/go.sh | sudo bash # 事先通过apt安装curl v2rayA 提供的镜像脚本(推荐)sudo systemctl disable v2ray --now # 安装后可以关掉服务,因为 v2rayA 不依赖于该 systemd 服务
2.安装v2rayA
方式一:通过软件源安装
wget -qO - https://apt.v2raya.mzz.pub/key/public-key.asc | sudo ...
Linux 1 - 系统安装和基础配置
以Ubuntu20.04为例
一、安装Linux双系统 1.官网下载Ubuntu20.04的桌面版ios文件
2.准备一个U盘,备份好数据后,使用Win32DiskImager将系统镜像写入U盘,写入完成后在windows下只能看到efi文件夹
3.打开windows自带的磁盘管理,选择即将安装ubuntu的分区,右键压缩卷,选择压缩的大小,建议40000MB。注意这里可能因为磁盘中数据并不是连续的导致可压缩空间小于实际的剩余空间(这也是windows的毛病),如果不够4GB:①右键磁盘——工具——优化;②右键此电脑——高级系统设置——系统保护——C盘——配置——禁用系统配置;③右键此电脑——高级系统设置——高级——性能设置——高级——更改——去掉勾选“自动管理”——勾选无分页文件,重启,压缩完成后记得再把这些设置改回。关于硬盘分区格式,可以使用DiskGenius/Windows自带的磁盘管理工具查看,我的是GPT,则启动使用UEFI Boot引导,另一种是MBR,启动使用Legacy Boot引导。引导程序单独用一个分区,UEFI一般为efi分区,Legac ...