Tiiktak's

About

【NOTE】博客主题更新中,部分界面还未完善,请谅解 :D 一言获取中… … fetch('https://v1.hitokoto.cn/?c=a') .then(function (res){ return res.json(); }) .then(function (data) { var hitokoto = document.getElementById('hitokoto'); var hitokotofrom = document.getElementById('from'); hitokoto.innerText = data.hitokoto; hitokotofrom.innerText = data.from; }) .catch(function (err) { console.error(err); }) WHO AM I 西南科技大学本科在读 视觉检测研究实验室成员 爱好:平面设计、UI设计 Archives 基于OpenCV的答题卡识别 基于OpenCV的身份证识别 基于树莓派的视频流传输及灰度重心识别 基于OpenCV的MLS图像扭曲变形实现 Contact Me QQ: 1067475613 Mail: dengsh268@outlook.com (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-9673215637005333", enable_page_level_ads: true }); (adsbygoogle = window....

【课程作业】项目管理课程原型设计

这是我的《软件过程与项目管理》 的期末作业,我们小组设计了一款校内出行APP,其中软件原型设计部分由我负责,使用PS和XD制作,在这里做个展示:laughing: 主视觉 各页面 HOME HOME-弹窗 HOME-Tips MORE MORE-包车 ME ...

MMDet中使用Mask-RCNN训练BDD100K数据集

1. Convert label to COCO format 使用官方提供的工具bdd100k2coco.py 注意:使用bdd100k2coco分支下的文件,master中的该文件无法正常使用 在使用前,还需要对该文件进行部分修改: # 将69行修改为 image["file_name"] = frame["name"]+".jpg" # 在73行之后增加 frame = frame["frames"][0] 之后按如下方式运行 python bdd100k2coco.py -i {JSON文件夹路径} -o {输出一个coco json文件} -m {转换方式det or track,使用det即可} 调用两次分别将train、val数据集的label转换 2. Set COCO-like directory tree 按如下目录结构保存我们的数据集 data ├── annotations │ ├── instances_train2017.json # 训练集json │ ├── instances_val2017.json # 验证集json ├── train2017 │ └── abcdefg-1234567.jpg │ └── ... ├── test2017 │ └── abcdefg-1234567.jpg │ └── ....

MMDet安装过程记录

记录自本人安装过程,环境建议: Linux or macOS (Windows is not currently officially supported) Python 3.6+ PyTorch 1.3+ CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible) GCC 5+ 1. torch & torchvision 我使用的是 torch 1.5.1 + torchvision 0.6.1 pip install torch==1.5.1 torchvision==0.6.1 [-i https://pypi.douban.com/simple] https://pytorch.org/get-started/previous-versions/ 2. mmcv pip install mmcv-full 3. mmdetection git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection pip install -r requirements/build.txt pip install -v -e ....

查看当前使用的Python的安装路径

如题,代码如下: import sys python_path = sys.executable print(python_path) 如图:...

python库opencv,py-opencv,libopencv的区别

通常我们在Python中安装OpenCV都是直接用pip install opencv-python 今天想用Anaconda Navigator安装的时候,在面板中搜索到有libopencv, opencv, py-opencv共三个包,而且三者的描述都是同样的’Computer vision and machine learning software library‘,瞬间迷惑:laughing: 找到介绍如下: OpenCV is computer vision a library written using highly optimized C/C++ code. It makes use of multiprocessing in the background. It has a collection of a large number of algorithms tested and verifiend by the developers. The best thing about this is it’s FREE under the BSD license. libopencv is only a metapackage. These packages do not contain actual software, they simply depend on other packages to be installed....

树莓派4B安装opencv以及错误解决

更新于2020/4/27 更新:换了个树莓派4B,安装opencv的时候遇到了一些之前没碰到的问题,在这里记录一下 主要参考opencv官网文档和博客树莓派+Opencv(一)图像处理 树莓派4B上安装参考:树莓派4B 安装opencv完整教程基于python3(各种错误解决) 下载安装依赖项 sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 在4B上安装时遇到libgtk2.0-dev安装失败的问题: 这是因为依赖项版本太高了,需要降级安装。所以可以使用命令sudo aptitude install libgtk2.0-dev来进行安装 在安装过程中,首先会给出一个方案提示是否接受,第一个给出的方案是保留原依赖项,我们要输入n否定它,之后给出第二个方案是降级安装,输入Y使用该方案 其中aptitude是一个类似apt-get的包管理工具,但是它能更好处理依赖问题,支持降级安装 下载源码 从GitHub下载: opencv opencv_contrib 两个都下载.zip压缩包即可 解压源码并进入文件夹 unzip opencv-4.3.0.zip unzip opencv_contrib-4.3.0.zip cd opencv-4.3.0 创建一个build文件夹用于编译 mkdir build cd build 运行cmake-gui 这一步其实也可以直接使用cmake配合各类参数,不过我觉得图形化界面方便一点 cmake-gui 选择源码路径和编译路径后点击Configure...

AlexNet分类Fashion-MNIST(Pytorch实现)

这个notebook也同时发表在Kaggle上 Fashion MNIST数据集 |Label | Class | |-|-| |0| T-shirt/top| |1| Trouser| |2| Pullover| |3| Dress| |4| Coat| |5| Sandal| |6| Shirt| |7| Sneaker| |8| Bag| |9| Ankle boot| 准备工作 import os import torch import torch.nn.functional as F import torch.nn as nn import torch.optim as optim import numpy as np import pandas as pd from PIL import Image import matplotlib.pyplot as plt from torchvision import transforms, datasets from torch.utils.data import Dataset, DataLoader EPOCHS = 20 BATCH_SIZE = 512 DEVICE = ("cuda" if torch....

循环神经网络RNN以及几种经典模型

RNN简介 现实世界中,很多元素都是相互连接的,比如室外的温度是随着气候的变化而周期性的变化的、我们的语言也需要通过上下文的关系来确认所表达的含义。但是机器要做到这一步就相当得难了。因此,就有了现在的循环神经网络,他的本质是:*拥有记忆的能力,并且会根据这些记忆的内容来进行推断*。因此,他的输出就依赖于当前的输入和记忆。 网络结构及原理 循环神经网络的基本结构特别简单,就是将网络的输出保存在一个记忆单元中,这个记忆单元和下一次的输入一起进入神经网络中。 一个最简单的循环神经网络在输入时的结构示意图: RNN 可以被看做是同一神经网络的多次赋值,每个神经网络模块会把消息传递给下一个,我们将这个图的结构展开: 根据循环神经网络的结构也可以看出它在处理序列类型的数据上具有天然的优势。因为网络本身就是 一个序列结构,这也是所有循环神经网络最本质的结构。 我们可以用下面的公式来表示循环神经网络的计算方法: 总结图: Pytorch中 pytorch 中使用 nn.RNN 类来搭建基于序列的循环神经网络,它的构造函数有以下几个参数: input_size:输入数据X的特征值的数目。 hidden_size:隐藏层的神经元数量,也就是隐藏层的特征数量。 num_layers:循环神经网络的层数,默认值是 1。 bias:默认为 True,如果为 false 则表示神经元不使用 bias 偏移参数。 batch_first:如果设置为 True,则输入数据的维度中第一个维度就是 batch 值,默认为 False。默认情况下第一个维度是序列的长度, 第二个维度才是batch,第三个维度是特征数目。 dropout:如果不为空,则表示最后跟一个 dropout 层抛弃部分数据,抛弃数据的比例由该参数指定 RNN 中最主要的参数是 input_size 和 hidden_size,这两个参数务必要搞清楚。其余的参数通常不用设置,采用默认值就可以了。 rnn = torch.nn.RNN(20,50,2) input = torch.randn(100 , 32 , 20) h_0 =torch.randn(2 , 32 , 50) output,hn=rnn(input ,h_0) print(output.size(),hn.size()) ''' torch.Size([100, 32, 50]) torch.Size([2, 32, 50]) ''' 一文搞懂RNN(循环神经网络)基础篇...

卷积神经网络CNN以及几种经典模型

简介 CNN -> Convolutional Neural Network 卷积神经网络是由一个或多个卷积层和顶端的全连通层(也可以使用1x1的卷积层作为最终的输出)组成的一种前馈神经网络 基本概念 局部感受野(Local Receptive Fields) 一般的神经网络往往会把图像的每一个像素点连接到全连接的每一个神经元中,而卷积神经网络则是把每一个隐藏节点只连接到图像的某个局部区域,从而减少参数训练的数量。 例如,一张1024×720的图像,使用9×9的感受野,则只需要81个权值参数。对于一般的视觉也是如此,当观看一张图像时,更多的时候关注的是局部。 共享权值(Shared Weights) 在卷积神经网络的卷积层中,神经元对应的权值是相同的,由于权值相同,因此可以减少训练的参数量。共享的权值和偏置也被称作*卷积核*或滤波器 池化(Pooling) 由于待处理的图像往往都较大,而实际处理时没必要直接对原图进行分析,最主要的是要能够有效获得图像的特征。因此可以采用类似图像压缩的思想,对图像进行卷积之后,通过一个下采样过程来调整图像的大小 什么是下采样? 上采样、下采样到底是个啥 结构组成 我们通过卷积的计算操作来*提取图像局部的特征*,每一层都会计算出一些局部特征,这些局部特征再汇总到下一层,这样*一层一层的传递*下去,特征由小变大,最后在通过这些局部的特征对图片进行处理,这样大大提高了计算效率,也提高了准确度。 卷积层 提取特征 卷积计算 动图来源于:stanford.edu, Feature extraction using convolution NOTE: 深度学习中的卷积与信号处理中的卷积略有不同,深度学习中的卷积略去了翻转的步骤(因为起初卷积核是随机生成的,没有方向) 输入矩阵大小 n 卷积核大小 f 边界填充 (p)adding,指在原矩阵周围填充的层数 步长 (s)tride 计算公式 卷积结果大小:(n - f + 2p) / s + 1向下取整 多个卷积核 在每一个卷积层我们会设置多个卷积核,代表多个不同的特征,这些特征就是需要传递到下一层的输出,训练的过程就是训练不同的核 激活函数 引入非线性关系 由于卷积的操作是线性的,所以需要使用进行激活,通常使用Relu 池化层 减少参数数量 通过减少卷积层之间的连接,降低运算复杂程度。 池化层一般放在卷积层后面,所以池化层池化的是卷积层的输出 一般使用的有最大池化max-pooling和平均池化mean-pooling 操作与卷积类似,即过滤器在矩阵上滑动...