机器视觉
走错路的程序员
爱程序,爱技术.更爱老婆和骇子.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
opencv 拍照变色,屏幕旋转导致的opencv 拍照变色
如上所书,这个宽高虽然是灵活了,但是并不正确.所以这里的数值会因为竖屏而出现bug.这里关键的概念是,摄像头的宽高是特殊数值,不是可以随意填的.后来,客户买了个竖屏.发现屏幕横着的时候是正常的,改成竖着的时候就变成了偏红色,感觉像是进了红灯区.查了一上午.最后排查发现,原来是代码中关于宽度和高度的设置一定要正确合理.否则,会出现色差.这两天发现我的摄像头拍出来偏绿色.绿绿的,跟鬼一样.后来查了下手册.是下面的这个参数要设置一下,默认值好像是50…下面的代码是错误的代码....原创 2022-07-22 10:46:16 · 1501 阅读 · 0 评论 -
rknn模型转换常见问题
rknn.load_onnx 无法加载onnx模型报错如下,--> Loading onnx modelWARNING: ONNX Optimizer has been moved to https://github.com/onnx/optimizer.All further enhancements and fixes to optimizers will be done in this new repo.The optimizer code in onnx/onnx repo will原创 2022-03-16 15:08:36 · 4426 阅读 · 1 评论 -
python tkinter 打开摄像头并解决闪烁问题
from tkinter import *from PIL import Image,ImageTkfrom tkinter import ttkimport osimport platformimport cv2import threading capture = cv2.VideoCapture(0) def loopCapture(): global capture global imgCanvas global win # imgp原创 2022-03-07 10:57:28 · 1760 阅读 · 3 评论 -
opencv video
mydemo.pyimport cv2import sysimport argparseimport timefrom Processor import Processorfrom Visualizer import Visualizer def gstreamer_pipeline( capture_width=1024, capture_height=1024, display_width=608, display_height=608, fr原创 2021-11-05 10:12:08 · 1848 阅读 · 0 评论 -
yolov5和rknn模型的问题
rknn官方目前1.7.0对新算子的支持还没跟上, 需要将yolov5中的模型做下面的改变,吐槽一下, rknn官方真是 效率太低了. 售后也很不到位, 恨不得去咬他两口.改进之后重新训练新的模型. 再去转onnx, 然后转rknn改变如下:将Focus层改成Conv层将Swish激活函数改成Relu激活函数将大kernel_size的MaxPooling改成3x3 MaxPooling Stack结构第一个 将Focus层改成Conv层, 参考自 @Shmily丶将 com原创 2021-11-02 10:40:06 · 13964 阅读 · 35 评论 -
TensorRT 安装笔记
本文是按照官方的安装手册执行的安装 链接如下https://developer.nvidia.com/tensorrt-getting-started具体怎么安装的的请一定要参考官方英文原文, 虽然是英文的, 但是咱们有翻译工具, 基本上看懂不难.遇到的问题1安装TensorRT的时候报错, 命令如下.python3 -m pip install --upgrade nvidia-tensorrt报错, 查看了一下后面If you receive an error message in th原创 2021-10-15 17:23:50 · 7656 阅读 · 0 评论 -
查看TensorRT的版本
TensorRT 的版本 需要使用查看.dpkg -l | grep TensorRT原创 2021-10-15 14:32:23 · 7669 阅读 · 0 评论 -
TensorFlow-gpu ImportError: DLL load failed: 找不到指定的程序。
Traceback (most recent call last): File "f:/project/yolov5/modelconvert/onnx2rknn.py", line 10, in <module> rknn = RKNN() File "F:\project\yolov5\.env_yolov5_5.0\lib\site-packages\rknn\api\rknn.py", line 47, in __init__ self.config() .原创 2021-09-24 14:50:29 · 356 阅读 · 0 评论 -
RK3399Pro的问题记录
问题记录.pytorch的模型一直无法加载这一部是在模型保存的时候同时产生的.普通的pytorch 直接报错的权重参数模型,rknn并不能加载和转换.后来看到sdk中的示例代码才发现需要 torch.jit.trace() 才行. 这一步要求在保存模型的时候同时转换成标准的模型… 代码如下,torch2jit.py# -*- coding: utf-8-*-import argparseimport osimport shutilimport numpy as npfrom原创 2021-08-10 11:31:34 · 6932 阅读 · 4 评论 -
arm平台安装onnx出现的问题记录
arm平台安装onnx==1.6.0 报错如下. CMake Warning at CMakeLists.txt:394 (find_package): By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "pybind11", but CMake原创 2021-06-29 16:25:41 · 4779 阅读 · 1 评论 -
固定摄像头求变化物体的算法V7
固定摄像头求变化物体的算法, 前面做了好多个版本, 其中速度最快的还是对应位置的像素直接对减法比较快.但是也有一些问题存在. 好在都能接受. from PIL import Imageimport numpy as npfrom matplotlib import pyplot as plt# import scipy.signal as signalimport cv2 a = Image.open('F:\\project\\MyAI\\计算两张图的新增部分\\43771star原创 2021-05-20 14:18:48 · 370 阅读 · 0 评论 -
神经网络名词解析与记录
感知机(Perceptrons)CNN 卷积神经网络(Convolutional Neural Networks)视觉处理方面的神经网络RNN 循环神经网络(Recurrent Neural Network) 语音方面的神经网络 https://www.sohu.com/a/219197760_642762LSTM 长短时记忆网络(Long/Short Term Memory Network)Hopfield网络玻尔兹曼机(Boltzmann Machine Net..原创 2021-05-17 17:17:04 · 1045 阅读 · 9 评论 -
求二维平面上某一点的另外几个相邻点的坐标
代码很简单写死的, 方便以后使用. def GetCrossIndex(x,y): ''' 获取某个点为中心上下左右4个点的坐标 ''' return [ [x,y-1], #上 # [x,y], #中 [x,y+1], #下 [x-1,y], #左点 [x+1,y], #右点 ]# def GetSudokuIndex(x,y): ''' 获取某个点原创 2021-05-13 10:27:42 · 788 阅读 · 2 评论 -
带方向的范洪填充算法速度比较快
@jit(nopython=True)def ViralInfection(img, x:int, y:int): ''' 病毒感染传播算法 算法原理 依某一点为中心逐渐扩大感染范围 先从一个点向一个方向使劲的感染, 每个被感染的细胞加入到病毒源中. 传播方向是垂直的. ''' #病毒源的点位 viralSrcPoints = List() # List() #queue.Queue() .原创 2021-05-10 17:30:03 · 286 阅读 · 0 评论 -
python 将numpy,tensor 转成“索引图“
AI模型识别出来的结果要想转成图片, 可以转成RGB格式的3维图, 也可以转成1维的索引图,1维的索引图比较方便后续处理索引图是 1维的,RGB是3维的.网上多数是3维的, 很少有提及1维的. 研究了一天终于搞定了.下面的代码就是如何将AI模型输出转成1维的索引图. ...上面是torch识别出来的结果, 这里就不贴了.输出的都在output里面, output 矩阵结构是 BCHW maskimg = torch.max(output[:3], 1)[1].detach原创 2021-04-20 17:37:46 · 521 阅读 · 0 评论 -
python实现求纯色彩图像的边框.
先上效果图原图是下面这样的这个算法最大的特点是保留原始像素的数值, 而不是把边框统一变成白色.实现的算法也超级简单. 就是有点慢. 考虑到我这个应用场景对性能要求不高, 比人快就行. 人工是它的几百倍. 所以也就无所谓啦.算法原理, 每次4个田子形像素逐行扫描. 发现4个像素不一致的就输出到结果图上. 否则就是输出0.代码如下.## demo.py# 识别单张图片#import argparseimport os import numpy as npimport time原创 2021-04-07 13:33:41 · 466 阅读 · 1 评论 -
研究一下pytorch的 transpose
神经网络的矩阵结构要求是 BCHW, 而opencv读出来的图片结构是HWC,其中B是图片个数, 也就是batch sizeC是通道数H是高W是宽还好是 bluishfish大神的指点. 不然又不知道要研究多久.那么如果只处理一张图片的话, 那么 在神经网络中, B就是1, C是3,H是图片高度, W是图片宽度.神经网络矩阵类型应该是下面这种.[ #第1张图片 [ #第1个通道 R [ #H高度 第一列 [ #宽度,第一行 [1,2,4原创 2021-03-09 13:39:14 · 1159 阅读 · 1 评论 -
用pytorch 直接卷积一张图片的灰度图并生成轮廓
用pytorch 直接卷积一张图片.import torch.nn.functional as Fimport torchimport torch.nn as nnfrom torch.nn.modules.conv import Conv2d import numpy as npimport torchfrom torch import nnfrom torch.autograd import Variableimport torch.nn.functional as Ffrom P原创 2021-03-08 16:59:28 · 2577 阅读 · 4 评论 -
为何生物神经细胞的计算速度比计算机的矩阵计算速度快.
最近研究K-means 算法, 经过尝试发现K-means 算法实在是太慢了. 这个算法人类的视觉神经中应该也是有类似结构实现的.可为何人类的计算速度这么快. 而计算机的则这么慢. 经过考虑 个人认为有一下几点1. 生物神经元的工作模式是并发的为主, 计算机则是有限并发的(至少目前2021年是有限并发的) 一个1080*1920 大小的图片.当然这种并发可以通过不断的提高GPU的内核数来提高.2. 生物神经元是工作在上帝的平台(自然)之上. 而目前的计算机是工作在人类的几十年的工作基础之上.原创 2021-03-08 08:40:08 · 483 阅读 · 0 评论 -
numpy中图片颜色替换和过滤操作技巧
技巧一, 利用颜色数值的和进行黑白色的操作 npImg = np.array(img) yansemask = npImg[:,:,0] + npImg[:,:,1] + npImg[:,:,2] # 将3个通道的颜色值加起来, ==0 的是黑色, 等于 255 * 3 =765 的是白色 npImg[yansemask == 0] = 255 # 黑色的全变成白色 npImg[yansemask != 0] = 0 # 不是黑色的改成黑色.原创 2021-01-25 18:47:11 · 3160 阅读 · 0 评论 -
numpy,PIL,opencv,字节流,的图像互转操作
字节流和PIL对象的互转. 也可以读取OSS的数据#!usr/bin/env python# encoding:utf-8from __future__ import division '''__Author__:沂水寒城功能: Python PIL模块Image对象、字节流对象转二进制字节流''' import ioimport osimport requestsfrom PIL import Imageimport matplotlib.pyplot as plt转载 2021-01-25 15:19:52 · 1360 阅读 · 0 评论 -
RGB转一维线性色彩空间计算两个颜色的距离.判断颜色是否相近.计算两个颜色的差.
我最近在解决一个问题, 想计算两个小图片的相似性.为了简化计算我打算把rgb三种颜色的分离数值合并成一个数值. 两种颜色越是相近, 这两个数值的差越小例如 颜色 #000001和颜色#000002的差是1, 数值越小说明两个颜色越相近. 如果事情是这么简单的话就优美了… 但是现实情况却并非如你所料的那么美好.例如颜色#ffffff是白色 和颜色 #feffff, 人眼几乎是区分不出来的.可以视为相等, 差应该是1. 但是他们在数学上的两个差值是#010000这么大,有没有什么原始的算法.或原创 2021-01-22 17:58:26 · 3057 阅读 · 5 评论 -
opencv cv2.resize 会产生多余的边框 paddle unet 模型输出多出来边框的解决方法
resize之前的图片下面是resize之后的图片用ps就可以看出来,多了一层边框. 貌似还去不掉.原创 2021-01-15 13:49:18 · 685 阅读 · 0 评论 -
pytorch版Unet的训练问题一
pytorch版Unet 还是非常简洁易懂的.官方给的代码有点小问题, 在输入和输出方面不是很好处理.为了方便自己, 而且我打算日后改一下网络模型. 所以我自己在官方的示例上建了一个分支官方的分支是https://github.com/milesial/Pytorch-UNet我的分支是https://github.com/phker/Pytorch-MyUNet目前代码还没提交.训练的时候遇到了下面这个问题.Traceback (most recent call last): Fil原创 2021-01-14 10:35:41 · 3054 阅读 · 5 评论 -
opencv.js 鼠标点击识别图像轮廓并显示.
先上效果图.能够通过OpenCV提取轮廓,并根据鼠标的位置显示相应的轮廓不会做动态图, 就先放两个效果图吧.刚开始存在一些bug. 长时间使用. 会内存溢出和报错. 具体跟Webassembly 有关,后来解决了. 要执行dst.delete()You have to call delete method of cv.Mat to free memory allocated in Emscripten’s heap. Please refer to Memeory management of E原创 2020-12-15 14:50:14 · 2471 阅读 · 1 评论 -
opencv 关于轮廓contours 的说明
找了好久, 最后找到了. 这一块很重要.下面这个网址里面有详细的说明. 总共5篇文章, 5篇都应该看.我比较懒就不写了. 用谷歌翻译着看还是比较好理解的.https://docs.opencv.org/master/d3/d05/tutorial_py_table_of_contents_contours.html...原创 2020-12-11 18:11:22 · 608 阅读 · 0 评论 -
Paddlex 安装错误
1.报错 ValueError: signal only works in main threadFile "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\base.py", line 240, in net_initialize pretrain_weights = get_pretrain_weights( File "F:\ProgramData\Anaconda3\envs\yolo5\l原创 2020-11-16 08:23:29 · 2676 阅读 · 0 评论 -
python opencv读取中文路径的完美替代
python opencv读取中文路径的完美替代后面这个参数 cv2.IMREAD_COLOR 必须得要, 不然跟原始的. cv2.imread 不一致, 通道数好像不一样def cv2imread(img_path): return cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), cv2.IMREAD_COLOR) ...原创 2020-10-22 15:47:48 · 413 阅读 · 0 评论 -
pytorch maskrcnn 报错.
今天用 torchvision 官方提供的maskrcnn 版本是可以运行的.单独可以跑, 后来合并到我的系统里就不能运行了, 报下面的错误. 搞了2个多小时.class Compose(object): def __init__(self, transforms): self.transforms = transforms def __call__(self, image, target): for t in self.transforms:原创 2020-11-10 14:21:06 · 1246 阅读 · 2 评论 -
pytorch 训练maskrcnn 自定义数据集出错
问题描述:RuntimeError: copy_if failed to synchronize: device-side assert triggered这个问题是我在使用MaskRcnn做实例分割时遇到的,我要检测的目标有5种类别,所以我在data/config.py中的num_classes参数写了5,经过多方查找,发现了一个没注意到的细节,类别应该是5+1,那个1应该是背景。还有一个原因就是标签的标号没有从0开始。我的是两个都遇到了....原创 2020-11-09 14:49:52 · 527 阅读 · 0 评论 -
yolov5 识别效果不好如何判断原因
yolov5 训练完模型以后发现 对测试图片的识别效果不好. 那么这个时候该怎么办呢?是过拟合还是欠拟合了呢? 怎么判断呢?欠拟合机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,在测试集表现同样会很差,这可能是欠拟合导致, 这是泛化能力太强, 训练集上和测试集上误识别比较高.欠拟合解决方法最简单的是增加数据集的正样本数, 增加主要特征的样本数量增加训练次数. 有可能是你还没有训练到合适的次数, 网络还没有学习到特征就被你停止掉原创 2020-11-02 22:24:41 · 34915 阅读 · 40 评论 -
记yolov5训练一次超低级的失误 输出都是item
yolov5 训练了2天,结果发现所有的识别全部都是一个标签…这是为何??后来经过跟踪发现,原来是有个参数叫 single_cls, 这个参数默认应该是false, 因为开发新系统这个地方设置成了true. 所以不管你yaml里面设置成多少个分类都会被归为一类… 不知道这是谁加的这个参数. 这样的参数有啥用呀…...原创 2020-10-31 05:50:59 · 1089 阅读 · 3 评论 -
yolov5训练 torch\serialization.py No module named ‘models‘
今天用 pytorch yolov5 训练了一批图片, 就在测试的时候发现, 尽然报如下的错误…Traceback (most recent call last): File "d:\AI\WCMS\www\ai.cycleblock.cn\www\handlers\OnlineRecognitionYolo5.py", line 86, in post res = common.Yolo5AI.DetectOneImage(image) File "d:\AI\WCMS\www\ai原创 2020-09-14 17:59:47 · 7110 阅读 · 6 评论 -
计算机视觉识别新增物品笔记 三
继计算机视觉识别新增物品笔记 一计算机视觉识别新增物品笔记 二之后的一段时间里我一直在自己摸索尝试去解决图像中的背景分割和新增物品切割问题.中间试过各种各样的方法, 感觉总是不理想.后来又单独尝试用了cv2.Canny 实现图像轮廓提取, 但是无法解决边缘受到强光照的影响造成的物体不连续. 还有阴影造成的物体边界不连续.后来还尝试用轮廓,找到物品.凡此种种,在经历过很多次的尝试和失败之后, 我发现了图像识别最重要的几个因素.第一是光照和阴影对图像识别有很多的干扰. 要第一时间去掉.第二是原创 2020-09-11 10:57:28 · 609 阅读 · 0 评论 -
python 常用项目列表
项目名称作用numpyNumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。最牛的库matplotlibMatplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用opencv-pythonopencv是一个强大的图像处理和计算机视觉库,实现了很多实用算法,值得学习和深究...原创 2020-09-10 14:54:46 · 627 阅读 · 0 评论 -
计算机视觉及色彩空间RGB,HSV,HLS,Lab,LMS,XYZ,CMYK
色彩空间是个很重要的概念 在没有接触到这个概念之前我还以为色彩都是3基色RGB混合出来的. 后来才知道还有HSV还有lab. 在我的概念里, 色彩空间是指 用不同角度的数学空间去描述一个客观现实中的色彩… 同一个色彩可以在不同的色彩空间对应不同的数值,但是它们都代表着同一个现实中的色彩. 那么色彩空间到底有什么用呢? RGB不就可以了么?在我看来数学空间其实就是一种数学变换. 从一个数学空间映射到另外一个数学空间. 但是不同的数学空间在解决某些问题上比较容易做到. 例如RGB特别适合在数字设备转载 2020-09-05 09:19:05 · 9507 阅读 · 1 评论 -
Python录制屏幕和摄像头视频用代码亲测可用
Python录制屏幕和摄像头视频用代码亲测可用#所需环境#pip install moviepy#conda install pyaudio#conda install PIL#conda install numpy#conda install python-opencvimport wave import threadingimport pyaudioimport cv2from os import remove, mkdir, listdirfrom os.path impor原创 2020-08-28 14:51:23 · 1090 阅读 · 0 评论 -
Yolov5 安装日记
已经安装过一次yolov5的pytorch版本. 这次又要在生产环境安装一次,记录一下,方便以后解决问题首先从 https://github.com/ultralytics/yolov5 下载源代码.一.安装requirements.txt 中指定的 所需的环境.不建议用pip一次性全部安装, 不容易成果, 最好用conda 逐个安装例如改成我下面的代码, 一行一行的安装容易成果.这个安装的时候 torch 是最不容易安装成功的. 好像要用pip 安装.为了提高conda的安装速度建议切换到原创 2020-08-27 16:13:05 · 3466 阅读 · 2 评论 -
清华源安装 pytorch
开启清华源。重要的是https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ 这个源一定要添加进去,然后才能正常安装pytorchconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaco原创 2020-08-11 10:46:09 · 26126 阅读 · 2 评论 -
计算机视觉识别新增物品笔记 二
在 计算机视觉识别新增物品笔记 一 https://blog.csdn.net/phker/article/details/107830114 之后又对其进行了改进,总体思路如下:1.先将图片图像二值化,方便后面进行计算。2.新图减去背景图 消除背景,3.图像形态学中的腐蚀和膨胀 消除噪点。4.然后是蒙布消除背景图片中的其它内容 达到抠图的功能。# 提取图片中新增部分第二版 # 总体思路,# 先将图片图像二值化,方便后面进行计算。# 新图减去背景图 消除背景, # 图像形态学中的腐蚀原创 2020-08-06 13:48:13 · 495 阅读 · 0 评论
分享