python技术栈
文章平均质量分 51
关于python学习历程的记录
余生的观澜
记录我的技术之路,始于2014,首次记录2015,再次启航2019-3-3,工作于2021年~
展开
-
基于python的socket编程实现服务发现
做一个边云协作的项目,需要在边端自主发现云端,并且注册,边端使用python实现,借助这个机会积累一下python的socket编程相关的内容,并且总结服务发现的解决方案,注意,这个方案只适合内网中使用。原创 2022-11-15 11:22:00 · 632 阅读 · 0 评论 -
python中json的使用
在python中对json的使用原创 2022-11-15 09:16:37 · 524 阅读 · 0 评论 -
SVM实现小尺寸图片分类
在工业识别的场景中,经常会遇到误判与误识别,所以最后输出的结果,需要再通过N分类算法去过滤一遍,确保识别到的物体,是我们想要的,能实现这个方案有很多,传统机器学习与深度神经网络都可以做到,传统机器学习,比如SVM,决策树,深度神经网络,从最简单的卷积到resnet,小样本学习,迁移学习,都可以实现。本文通过SVM对算法进行封装,实现一个图片的分类。...原创 2022-08-31 21:24:14 · 1045 阅读 · 0 评论 -
2.基于xml标注信息数据增强
在目标检测的过程中,数据集是一个很重要的组成部分,可以让我们的识别事半功倍,当数据不够的时候,就需要用到数据增强。原创 2022-08-31 21:17:25 · 2120 阅读 · 0 评论 -
1.小图片样本数据增强
在面对一些小图片的分类问题的时候,比如检测出一种缺陷,要识别是哪个缺陷,往往需要大量的样本集,只要是基于统计学,不管是传统机器学习,比如支持向量机,还是各种神经网络,比如resnet,都是需要样本集支撑的,针对这种不需要标注,只需要把标的物截取出来保存的数据集,往往很难收集,这也是统计学方案的一个通病,所以,就需要想办法,做数据增强。...原创 2022-08-31 20:58:53 · 785 阅读 · 0 评论 -
目标检测的yolov3、4、5、6总结
cv中的一个典型的问题就是目标检测,目标检测中的yolo模型是一个经典的目标检测模型,在各种目标检测的比赛和数据集中,表现都非常亮眼,借用这篇文章对yolov3、v4、v5、tph_v5、v6做个总结梳理。...原创 2022-06-30 14:41:43 · 1332 阅读 · 0 评论 -
1.jetson与摄像头的对接
从大类上分可以分为2类,分别是标准接口和板载接口。标准接口包括:usb,网口。板载接口包括:mipi-csi接口。本篇博客来讨论一下在实际应用过程中的各种对接方式的优劣与具体方式。原创 2022-06-23 15:36:37 · 1413 阅读 · 0 评论 -
案例:道路车辆速度追踪-原理篇
多目标跟踪比目标检测更进了一步,不只是识别出来物体和定位坐标,还要实现一直跟踪的效果。deepsort-yolo原创 2022-06-13 17:51:13 · 809 阅读 · 0 评论 -
基础:3.opencv快速入门图像和视频
opencv玩转图像和视频,入门部分的内容原创 2022-06-13 15:27:39 · 174 阅读 · 0 评论 -
基础:2.图像的本质
了解图像的本质原创 2022-06-10 18:19:45 · 671 阅读 · 0 评论 -
基础:1.快速搞定python库和环境
python初学者进行环境搭建的最佳实践原创 2022-06-07 14:12:07 · 360 阅读 · 0 评论 -
计算机视觉人体骨骼点动作识别-1.训练自己的关键点检测模型
人体关键点检测算法关键点并不特指人体骨骼关键点,还有人脸关键点,物体的关键点。其中人体的关键点,也叫作pose Estimation,是最热门,也是最有难度,应用最广的。应用可以包括:行为识别,人机交互,智能家居,虚拟现实。具体细分下来可以分为:单人/多人,2D/3D。关键点检测算法,总体分为3类方法1:基于坐标(coordinate)方法2:基于概率图(heatmap)方法3:基于heatmap和offset(偏移)单人2D关键点检测算法多人2D关键点检测算法自上原创 2022-05-27 21:17:04 · 6577 阅读 · 5 评论 -
方案:CV之区域入侵检测技术路线
背景介绍在一些生产场景和一些危险场景中,往往需要划定一些区域,不让人或者其他的设备进入,一般是一些大型的设备在工作时,需要设置这个区域。从视觉的角度,可以通过目标检测和危险区域划分,来检测是否发生乐区域入侵。也可以用于下班之后防盗。技术路线介绍目标检测目标检测算法现在用的比较多的就是yolo,yolo的v3、v4可以用darknet实现,yolo的v5可以使用pytorch去实现,都是非常简单快速的。当然也可以使用其他的深度学习框架,目前主流的就是yolo了。人体骨骼点检测人体骨骼点检测,可以使原创 2022-05-20 14:24:18 · 1667 阅读 · 0 评论 -
python多线程、多进程进阶
文章目录资料链接我的笔记python并发编程简介怎样选择多线程、多进程、多协程python速度慢的罪魁祸首GIL使用多线程,python爬虫加速10倍python实现生产者消费者爬虫python线程安全问题以及解决方案Python的线程池线程池在web服务中实现加速多进程加速程序的运行flask使用多进程异步io实现并发信号量控制爬虫并发资料链接b站:https://www.bilibili.com/video/BV1bK411A7tV/?spm_id_from=333.788.recommend_mo原创 2022-05-16 23:31:29 · 411 阅读 · 0 评论 -
python多线程、多进程初级
文章目录资料部分笔记部分什么是多任务进程介绍使用多进程完成多任务进程执行带有参数的任务获取进程的编号进程注意点多进程实现多任务拷贝器线程多线程执行多任务多线程带参任务主线程与子线程的结束顺序线程执行顺序-无序线程与进程的对比资料部分视频 :https://www.bilibili.com/video/BV1fz4y1D7tU?spm_id_from=333.337.search-card.all.click笔记部分什么是多任务进程介绍使用多进程完成多任务代码展示:进程执原创 2022-05-13 23:56:53 · 255 阅读 · 0 评论 -
python-CV常用方法封装
背景cv领域常用的图片的方法的积累与总结,使用python语言实现图片裁剪def cut_img(img_path, after_path, height_start, height_stop, width_start, width_stop): img = cv2.imread(img_path) cropped_image = img[height_start:height_stop, width_start:width_stop] # Slicing to crop the i原创 2022-05-12 20:06:11 · 373 阅读 · 0 评论 -
案例:2.mediapipe实现AI虚拟拖拽
案例介绍基于mediapipe实现方块的虚拟拖拽。环境使用python3.8.代码示例 """ 这个案例 展示了 摄像头的视频流"""import mathimport cv2 # pip install opencv-pythonimport numpy as np# mdeiapipe 不能使用conda装 只能用pip装 装之前最好换一下pip源# 导入mediapipe:https://google.github.io/mediapipe/solutions/han原创 2022-05-05 10:42:21 · 1531 阅读 · 0 评论 -
案例:1.mediapipe实现手部21关键点识别
案例介绍基于mediapipe实现手部识别的demo,案例中基于视频流进行demo的搭建。其中mediapipe官网地址:https://google.github.io/mediapipe/solutions/hands.html 。可以进行gpu的调用支持,但是不支持windows的gpu调用。案例代码""" 这个案例 展示了 摄像头的视频流"""import cv2 # pip install opencv-pythonimport numpy as np# mdeiapipe原创 2022-05-05 10:01:14 · 1056 阅读 · 0 评论 -
4.yolov5目标监测-代码使用
内容概述在本章节将会基于前面2篇博客训练出来的模型,使用pytorch将模型驱动起来进行推理,使用电脑自带的摄像头进行抓流分析。环境搭建创建conda虚拟环境,安装pytorch+cuda+cudnn+显卡驱动,在上文已经搭建过了。安装opencv: pip install opencv-python 一般装好了torch 就给你自带了安装numpy:pip install numpy 一般装好了torch 就给你自带了代码内容-简单案例impor原创 2022-05-02 22:41:14 · 2952 阅读 · 0 评论 -
3.yolov5目标检测-常用评估指标
yolov5官网的模型评估对比图需要借助狼来了的故事了解:真阳性,假阳性,假阴性,真阴性。IOU:交并比,用来筛选最终预测出来的边界框。通过求标注和预测的交并比,可以得到一个预测准确度的指标。GA、GB、GC是标注的内容,P1234是检测出的内容。分别计算每次识别的IOU。我们把P4作为了GB的最佳匹配框,所以P3就变成了假阳性。计算recall的时候,有三个标注,所以分母就是3.计算方式会选择向右拉直。之后的比赛就开始用所有的点了。 计算的都是右上角的矩形原创 2022-05-02 17:53:40 · 11598 阅读 · 7 评论 -
anaconda环境迁移-2
问题与背景anaconda可以很好的进行环境的隔离,那么如何将开发环境部署到服务器环境呢?如果是同架构的平台,直接粘贴env文件夹即可,如果是不同系统的环境,比如windows开发环境需要部署到ubuntu的服务器环境,就需要导出环境然后重新安装了。当然这种方案,同架构也可以用啦!解决方案环境迁移会遇到的问题:1.开发环境与服务器环境,属于不同系统2.开发环境的包,服务器环境没有,比如windows中c#相关的包需要部署到ubuntu,就部署不上去。这时候就得放弃,或者找替代的包,所以选包的时候,原创 2022-04-28 22:06:18 · 781 阅读 · 0 评论 -
fastapi框架异步执行踩坑
问题与背景在公司项目中,使用了python作为中间件实现的主语言,项目是中间件性质的需要并行的为第三方提供服务,但是在使用过程中,出现了并行的问题,多个耗时操作,在串行,导致项目的分析操作耗时巨大。web技术采用的是fastapi,这个技术官网介绍是并行的,用java起多线程访问接口,得到的结论竟然是串行的,这地方就特意研究了一下。最佳实践首先感谢这位大哥的博客,给我答疑解惑了:https://blog.csdn.net/qq_29518275/article/details/109360617我在原创 2022-01-13 10:32:45 · 4218 阅读 · 0 评论 -
python字符串转义经验
问题与背景python的字符串控制,有时候自动转义会带来很多问题,比如文件路径因为转义变得有异常,json字符串塞进json串中之后,自动的对引号加转义斜杠等,整理一下踩的一些坑。参考资料https://www.cnblogs.com/klobohyz/archive/2012/06/04/2535057.html python使用r进行不转义字符串https://www.cnblogs.com/itdyb/p/5046415.html Python中的repr()函数解决方案与案例字原创 2021-11-16 11:12:18 · 832 阅读 · 0 评论 -
python查看包的依赖关系
问题与背景python在解决兼容性问题的时候,往往需要了解一个包的注意事项,比如版本号的要求,一个包的依赖包有哪些,一个包的具体情况等。参考资料https://www.cnblogs.com/longan-wang/p/15060789.html 查看python第三方库的依赖 _案例与解决方案查看某个包的概要情况、安装要求打开百度,利用pypi关键词搜索,如:pypi numpy查看某个已安装包的具体情况比如查看它依赖哪些包,授权文件等!pip show 库名称查看某个已安装原创 2021-11-15 17:14:02 · 11523 阅读 · 1 评论 -
anaconda环境迁移-1
问题与背景anaconda开发好的程序,在简单的项目中,需要部署到服务器上(此处专门针对win系统)。这里就一定会有一个移植的问题,往往问题点会出在:环境是内网,没有外网;安装的环境不能完全通过在线安装,也有安装包的形式;安装环境是混合的,不是单一的环境。 实际遇到的问题是:无网络状态先,实现ananconda虚拟环境的移植,作为python中间件服务的基础环境。参考资料https://zhuanlan.zhihu.com/p/87344422 conda环境的迁移方案与案例问题:环境迁移后,原创 2021-11-12 11:53:40 · 3801 阅读 · 0 评论 -
ananconda基础使用
问题与背景基于python做开发的时候难免会遇到项目与环境绑定的情况,针对这种情况,一开始知道anaconda有独立环境,但是觉得太重量级了,就使用的ananconda的venv,觉得很轻便,但是后期随着算法中间件中模型数量的增多,venv没有办法满足安装需求了,就迁移到了anaconda。参考资料https://www.jianshu.com/p/eaee1fadc1e9 anaconda 快速入门 --简书https://www.cnblogs.com/shierlou-123/p/11原创 2021-11-12 10:19:43 · 782 阅读 · 0 评论 -
python查看module的使用要求
问题python有很多轮子可以直接拿来使用,但是使用之前需要弄清楚这些轮子的使用要求,比如python版本支持到哪一个版本。解决方案以aiohttp为例,该轮子在发布博文的日期(2021年10月28日)要求是python版本必须>=3.6,如何确认呢?只需要百度输入:pypi aiohttp ,搜索到的第一个就是。点开之后,有详细的要求。...原创 2021-10-28 10:37:58 · 95 阅读 · 0 评论 -
python3基于vevn的异构平台移植(win->ubuntu)
问题与背景python项目从win的开发环境移动到ubuntu的部署环境会踩很多的坑,有python版本对应问题,pip源的问题,找不到合适版本依赖包的问题,ubuntu环境缺依赖包的问题。参考资料https://www.cnblogs.com/xuyaowen/p/pip-install-old-version.html pip 查看软件包 可用版本并安装; pip 查看 numpy 可用版本并安装https://www.runoob.com/w3cnote/pip-cn-mirror.htm原创 2021-10-20 17:22:48 · 282 阅读 · 0 评论 -
ubuntu18.04升级python3.6到python3.7
问题与背景安装好的ubuntu系统,默认是自带python2.7与python3.x的。但是python3.x有时候不是我们的开发版本,这时候就需要用到”升级“。本文用的策略也不是传统意义上的卸载重装,是安装之后,将python3指令指向新安装的内容。参考资料https://www.jb51.net/article/182392.htm 将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程https://blog.csdn.net/JasonDing原创 2021-10-20 16:27:48 · 2788 阅读 · 0 评论 -
python调用c#封装的dll库
问题与背景python调用dll库,可以分为两种情况,c++封装的可以使用ctypes,c#封装的可以使用pythonnet的cls。项目中使用到了c#封装halcon,然后封装为dll,供python中间件调用。参考资料https://www.cnblogs.com/snailrunning/p/9265360.html python获得路径的问题https://stackoverflow.com/questions/28840880/pythonnet-filenotfoundexcep原创 2021-10-12 14:27:19 · 3467 阅读 · 0 评论 -
python·venv进行项目的移植
问题与背景在不使用ananconda的前提下,python的venv虚拟环境,可以为项目提供一个干净的空间,没有多余的依赖,需要依赖可以自行安装,给开发提供了极大的便利,那么如何移植呢?一般根据现场的情况,以有无网络为分水岭,可以梳理出一份断网的解决方案,通吃所有情况。参考资料https://www.cnblogs.com/ybjourney/p/12521070.html Python离线项目迁移部署https://www.cnblogs.com/randomlee/p/11189867原创 2021-10-11 15:30:01 · 1208 阅读 · 0 评论 -
ubuntu18.04安装python3.7
背景与问题ubuntu18.04安装python3.7遇到的问题,主要参考了两篇博客。参考资料https://blog.csdn.net/qq_29837161/article/details/83616364 Ubuntu16.04安装python3.7及相应的piphttps://blog.csdn.net/u014775723/article/details/85213793 ubuntu安装python3.7,并更新python默认指向为python3.7案例与解决方案思原创 2021-10-09 14:40:34 · 440 阅读 · 0 评论 -
python包、路径、_init_.py的思考
背景与问题在python 的开发中,经常会遇到明明关联了module,单个文件运行的时候会报错找不到,尤其是找不到自己写的py文件的时候比较容易发生,出现问题的往往是相对路径出了问题,会遇到一种奇怪的情况:单个文件A运行没有问题,整个项目启动起来,就显示A文件找不到依赖的模块B,所以这里建议使用绝对路径,那么问题来了绝对路径是怎么界定的?参考资料https://blog.csdn.net/weixin_38256474/article/details/81228492 Python 3.x |原创 2021-10-09 10:22:03 · 283 阅读 · 0 评论 -
python实现grpc
背景python作为一种胶水语言,天然的是很好的中间件的语言首选。python拥有强大的兼容性,尤其是在科学计算领域,可以灵活的调用c++的dll库,调用pytorch和tensorflow等python算法框架。因此在我的项目中,使用python3.7作为算法中间件的实现语言,集成各类算法,对外提供服务。当然,这种方案也是有弊端的,就是python的性能,毕竟不如c++,但是相比较综合的使用成本,是由于c++的。参考资料https://www.zhihu.com/question/41609070/原创 2021-10-08 16:16:39 · 854 阅读 · 0 评论 -
fastapi+uvicorn的PRI访问异常的问题
背景使用fastapi搭建算法中间件的时候遇到一个问题。搭建完基础的功能之后,用自带的/doc的web UI测试功能没问题。用postman 测试也没有问题。问题出现在用okhttp发送请求给算法中间件的时候,报错了。内容如下:关键字:“RemoteProtocolError: illegal request line”、“PRI”、“invalid http request received”查了几乎国内外的资料,这个问题大家遇到了,但是都没有很好的解决方案。自己研究了一天,解决了!参考资料h原创 2021-09-28 21:07:16 · 7389 阅读 · 0 评论 -
1.关于python执行exe文件、bat文件,传参,反馈问题
背景在一些很扯淡的场景中,训练用的环境必须使用win的平台,就必须要考虑,在算法中间件的层面,如何在win上做训练,如果再加一些限制比如必须用python调用darknet.exe做模型训练,就需要考虑python如何调用exe文件了。参考资料https://blog.csdn.net/qq_36941368/article/details/103801362 python运行带参数传入的exe文件https://blog.csdn.net/weixin_42305206/article/det原创 2021-09-03 17:50:05 · 984 阅读 · 0 评论 -
2.python包-numpy总结01
numpy是一个科学计算库,专门用于矩阵,可以代替matlab的一些矩阵操作与计算。本篇内容的原型为某站200集AI教程的学习所得,后来经过博主结合其他博客,深化学习,产生了本篇博文。文章目录环境介绍numpy的IO库numpy建立矩阵shape打印矩阵形状dtype打印矩阵里面元素的类型numpy索引读取数据numpy切片参考资料环境介绍整个博文是在anaconda平台上基于pytho...原创 2019-10-04 22:29:15 · 137 阅读 · 0 评论 -
1.python新手常见错误SyntaxError: invalid character in identifier
问题描述python 错误 SyntaxError: invalid character in identifier,一般新手或者复制粘贴代码的时候很容易遇到这个错误。解决措施中英文,尤其是括号,逗号这种,在出问题的那一行排查一遍多余的空格出现在行首或者行尾,这种情况多出现于复制粘贴中,半天找不出来哪里不合法了,不妨看看是不是空格加多了,避免不必要的操作带来的问题。...原创 2019-09-18 15:28:12 · 7983 阅读 · 0 评论