
python
1.python处理文件的一些脚本
2.python处理文本内容的脚本
2.python做数据清洗的一些脚本
3.python-opencv进行抽帧以及图像处理的脚本
4.python封装http接口——FastApi
陈 洪 伟
这个作者很懒,什么都没留下…
展开
-
python封装http接口——FastApi
1.代码备份1.1main.pyimport osimport sysimport uvicornimport numpy as npimport cv2import globimport datetimeimport jsonimport shutilfrom eval import *from pydantic import BaseModelfrom fastapi import FastAPIargs.image = "00000.jpg:0.png"w原创 2021-05-26 09:21:50 · 4921 阅读 · 0 评论 -
使用GDB调试python调用的C++共享库
目录1.首先编写python调用C++的demo2.gdb调试python程序3.全速运行程序4.查看堆栈信息当我们用Python调用C++的库,并且C++库中存在段错误崩溃时,首先想到的还是用gdb进行调试,具体使用方法如下:1.首先编写python调用C++的demohttps://blog.youkuaiyun.com/u013171226/article/details/109806072上面这篇博客中已经编写了一个python调用C++的demo,并且demo中故意写了一个段错原创 2020-11-19 11:50:12 · 1451 阅读 · 1 评论 -
将Linux中的screen命令封装成class类并使用它在代码中执行相应命令
可以用screen -ls查看所有会话,比如。原创 2023-12-08 14:49:03 · 546 阅读 · 0 评论 -
父子进程继承问题:OSError: [Errno 88] Socket operation on non-socket错误记录
基本上没有什么有用信息,于是我想那我就去Python的flask库源码里面看看,然后我在flask库源码里面添加了打印,至于在哪些代码添加打印,从报错可以看到代码执行顺序,所以按照报错信息提示的代码执行流程去添加打印。这里很明显有个问题,就是我传进去的port是10000,然后第一次打印确实是10000,但是第二次打印为什么变成0了,于是去找第二行打印那里的代码。修改完之后再次执行程序,现在发现两行打印的端口号是统一的了,第二行打印不再是0了,程序也不再报错了,问题解决。然后我运行程序,发现打印内容如下。原创 2023-12-06 13:58:24 · 1404 阅读 · 0 评论 -
利用flask将yolov5算法封装成在线推理服务
本脚本主要参考了yolov5工程文件夹下面的detect.py,将yolov5算法封装成了一个在线的推理服务,可以接受app请求,然后推理图片,并将检测结果以json返回,该服务可以供数据标注平台请求。原创 2023-12-05 17:40:55 · 1003 阅读 · 0 评论 -
利用opencv/暗通道方法检测图像是否有雾-利用opencv/暗通道方法对深度学习目标检测算法结果进行二次识别提高准确率
本来利用yolov5检测浓雾的,但是发现yolov5的检测结果会把一些正常天气检测成雾天,这种时候其实可以通过增加正常类,也就是将正常天气被误检成浓雾的图片当成一个正常类别去训练,但是不想标注图片,也不想重新训练算法了,因此想是不是可以用opencv对yolov5检测到的图像进行二次识别,从而提高准确率,结果发现是可以的。原创 2023-11-22 14:14:31 · 981 阅读 · 0 评论 -
conda环境使用过程中的两个错误记录
然后就是提示没有相应的包,我用screen -r连接到那个screen看了,他也激活conda环境了,问题原因在:我是在某个conda环境中执行的这个脚本,那相当于我在conda环境中开的screen,然后再在screen中激活另一个conda环境,这就不成功。具体根本原因我也没细究,为了项目进度,解决问题的方法就是,先退出当前的conda环境再激活某个screen,再进入另一个conda环境就好了,所以把上面的代码增加一行就好了。运行提示没有pynvml报的问题,于是那我当然用下面的命令去安装这个包,原创 2023-11-10 17:03:46 · 572 阅读 · 0 评论 -
使用python_opencv比较图像差异/使用python_opencv找出两张图像的差异范围
发现效果还是不对,这是因为我想反了,其实diff图中,右下角黑色那块,黑色的的像素值低, 所以,我thresh不应该设置成230,要设置成20,这样保留的就是右下角那块黑色的了。其实增加了三个if判断,对矩形进行过滤之后,上面的那个图片已经能够检测出差异了,但是我还有其他图片,发现效果还是不好,单纯这种优化方法还是不够,还需要继续优化。其实从diff图来看,opencv已经能够很明显的发现右下角的差异了,那么说明用这种方法其实是可以解决我这个问题的,那为什么最后的效果不好呢,我看了下我的diff图,原创 2023-10-20 14:09:28 · 1198 阅读 · 2 评论 -
python将标注平台的数据格式转换成yolov5的txt格式
python将标注平台的数据格式转换成yolov5的txt格式原创 2023-02-15 11:22:10 · 457 阅读 · 0 评论 -
利用python批量下载百度图片
利用python批量下载百度图片原创 2023-02-13 17:30:53 · 331 阅读 · 0 评论 -
VGG Face人脸识别数据集多线程下载与处理
1 下载原始图片首先去官网:Visual Geometry Group - University of Oxford下载vgg_face_dataset.tar.gz,并解压然后利用下面脚本进行下载,每个人的图片单独放在一个文件夹中,图片名字命名为num_x1_y1_x2_y2.jpg#!/usr/bin/python3#-*- coding: utf-8 -*-import sysimport osimport threadingimport socketimport url原创 2022-04-20 14:38:28 · 1613 阅读 · 9 评论 -
PubFig人脸公开数据集下载以及处理脚本
编写python脚本下载PubFig人脸公开数据集,每个人的人脸放到一个以人名命名的单独文件夹中,并且根据坐标裁剪人脸子图,最终得到原始图片和人脸子图图片。import osimport sysimport urllib.request as requestfrom urllib.request import urlretrieveimport socketimport requests'''下载Pubfig人脸数据集,下载下来之后根据坐标裁剪人脸,并且每个人的人脸图片放到单独的一.原创 2022-04-19 09:15:08 · 2621 阅读 · 3 评论 -
rknn-toolkit推理yolov5-face.rknn模型--python代码
import osimport urllibimport tracebackimport timeimport sysimport numpy as npimport cv2from rknn.api import RKNNONNX_MODEL = 'yolov5s.onnx'RKNN_MODEL = 'yolov5s.rknn'IMG_PATH = './bus.jpg'DATASET = './dataset.txt'QUANTIZE_ON = TrueBOX_THR.原创 2022-03-08 19:01:46 · 2538 阅读 · 16 评论 -
将onnx模型转化为RV1126平台的rknn模型
以下是将onnx模型转化为RV1126平台的rknn模型的脚本。import osimport sysimport numpy as npfrom rknn.api import RKNNONNX_MODEL = 'mask.onnx'RKNN_MODEL = 'yolov5s_mask.rknn'if __name__ == '__main__': # Create RKNN object rknn = RKNN(verbose=True) # pre-p原创 2022-03-08 10:46:08 · 3654 阅读 · 1 评论 -
alphapose的26个关键点顺序简单记录_备忘
def ajust(xmin,ymin,xmax,ymax,h,w): if xmin<0: xmin=0 if ymin<0: ymin=0 if xmin>xmax: temp=xmin xmin=xmax xmax=temp if ymin>ymax: temp=ymin ymin=ymax ymax=temp .原创 2022-01-12 13:49:57 · 1883 阅读 · 7 评论 -
python数组操作中的 “:” “:: ” [:-1] 和[::-1]
目录1.python数组下标2.b=a[i:j]3.b=a[i:j:k]1.python数组下标python下标有两套,一套是正的,一套是负的,a='python'的下表如下p y t h o n正下标 0 1 2 3 4 5负下标 -6 -5 -4 -3 -2 -1使用正下标时,下标i取值范围为0 <= i < len(a) 超出范围为越界使用负下标时,下标i取值范围为-1>= i >-len(a)-1 超出范围为越界2.b=a[i:转载 2022-01-12 10:04:52 · 4999 阅读 · 0 评论 -
python对query和gallery进行比对
import osimport globimport pandas as pdimport numpy as npfrom tqdm import tqdmimport jsonfrom sklearn.preprocessing import normalizedef read_dat(path): return np.fromfile(path, dtype=np.float32)test_query_path = glob.glob('../query_feature_A/.原创 2022-01-11 16:43:37 · 780 阅读 · 0 评论 -
python利用sorted函数对字典按key或value进行排序
1.按照key排序dict1 = sorted(dit.items(),key = lambda x:x[0]) #升序dict1 = sorted(dit.items(),key = lambda x:x[0],reverse = True) #降序而这里key参数对应的lambda表达式的意思则是选取元组中的第一个元素作为比较参数,也就是按照key比较,注意排序后原来的字典并没有发生变化,要将sorted函数的返回值赋值给一个新的字典得到排序后的字典。2.按照value排序dict原创 2022-01-11 13:42:54 · 2176 阅读 · 0 评论 -
python读取二进制dat文件
import numpy as npmyarray = np.fromfile("./query_feature_A/00056451.dat", dtype=float)print("len(myarray)::", myarray.size)for item in myarray: print(item)原创 2022-01-10 14:41:09 · 1433 阅读 · 0 评论 -
labelImg 标注的xml文件转换为yolov5所需要的txt文件
import xml.etree.ElementTree as ETimport pickleimport osfrom os import listdir, getcwdfrom os.path import joindef convert(size, box): x_center = (box[0] + box[1]) / 2.0 y_center = (box[2] + box[3]) / 2.0 x = x_center / size[0] y = .转载 2022-01-06 14:26:18 · 1690 阅读 · 0 评论 -
gdb调试python的segmentation fault错误
方法1:gdb调试gdbfile pythonrun xxx.py arg1 arg2(base) root@boyun-DGX-1-with-V100-32:/data/chw# gdbGNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1Copyright (C) 2018 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/lic原创 2021-10-29 14:41:24 · 397 阅读 · 0 评论 -
vscode怎么查看python库的源代码/vscode打开conda环境
用vscode远程打开ubuntu的python代码,python插件也安装了,但是查看python库里面的函数时找不到,原因是vscode里面没有打开conda环境,打开方法如下1.单击vscode左下角,如下图所示2.选择某个conda环境...原创 2021-10-15 16:32:15 · 3957 阅读 · 0 评论 -
python复制文件,将不同文件夹里面的文件复制汇总到另一个文件夹
#coding=utf8import cv2import osimport shutil root_dir = r"./20210923标注"image_dst = r'./images_20210923'json_dst = r'./jsons_20210923' if __name__ == '__main__': countNum = 0 for root, dirs, files in os.walk(root_dir): fo.原创 2021-09-27 17:03:30 · 303 阅读 · 0 评论 -
labelme自动化标注脚本
用labelme标注图片时,有时会存在这种情况,图片中的某一个静止的物体需要标注,这时静止的目标坐标是一样的,循环标效率太低,于是标注完一个之后,直接用脚本处理json文件。脚本如下:# -*- coding: utf-8 -*- import osimport jsondef ListFilesToTxt(dir,wildcard,recursion): exts = wildcard.split(" ") files = os.listdir(dir)原创 2021-08-26 16:49:39 · 3079 阅读 · 0 评论 -
Python opencv对图片进行旋转
# 顺时针旋转90度def RotateClockWise90(img): trans_img = cv2.transpose(img) new_img = cv2.flip(trans_img, 1) return new_img# 逆时针旋转90度def RotateAntiClockWise90(img): trans_img = cv2.transpose(img) new_img = cv2.flip(trans_img, 0) retu.原创 2021-07-22 13:35:22 · 1009 阅读 · 1 评论 -
NVIDIA Jetson xavier__10412 Illegal instruction (core dumped) python
我写了一个简单的auto.sh,里面内容如下:#!/bin/bashsource /root/miniforge3/bin/activate /root/miniforge3/envs/ailooker36python /data/test/main.py执行之后提示最后一行有错误:/data/test/auto.sh: line 4: 10412 Illegal instruction (core dumped) python /data/test/main.py解决方..原创 2021-06-25 15:36:36 · 534 阅读 · 0 评论 -
Nvidia jetson NX 安装scipy1.1.0
1.安装依赖首先需要安装scipy需要的依赖:sudo apt-get install libblas-devsudo apt-get install liblapack-dev在安装上面两个依赖的时候,可能会提示有依赖没有安装.1.1错误1: libblas-dev : Depends: libblas3 (= 3.6.0-2ubuntu2) but it is not going to be installed,那么先安装libblas3然后再安装libblas-dev.s原创 2021-06-21 16:18:24 · 676 阅读 · 0 评论 -
Python操作sqlite3数据库--增删改查,利用sqlite3实现轻量级图像搜索底库
#coding=utf8import sqlite3import osimport numpy as np#下面十个特征值仅用来做测试,feature0 = [-4.382546,-1.907722,3.957601,-1.649950,2.271955,-3.160072,-3.399295,-9.906655,-2.748945,4.792392,-1.652369,-5.804037,-4.493183,4.631711,-7.879868,-5.704821,-0.437358,1..原创 2021-06-01 20:17:58 · 530 阅读 · 0 评论 -
python将具有负数的字符串转换为float列表
111原创 2021-05-31 17:29:11 · 3044 阅读 · 0 评论 -
python中数组与列表相互转换——记一个bug
某项目中,想返回一个json格式的内容,代码如下:print("contours[index][:,0,:]::::::::::",contours[index][:,0,:])result["contours"] = contours[index][:,0,:]print("result:::", result)然后contours[index][:,0,:]打印内容如下:然后把它放到字典中之后,打印内容如下:可以发现放到字典中之后,内容发生了变化,多了array,而我不想要原创 2021-05-25 13:49:14 · 387 阅读 · 0 评论 -
python-opencv对图像进行旋转
#coding=utf8import os,cv2,shutilimport numpy as npimport random #旋转任意度数,旋转之后图像的宽高并没有交换def rotate(image, angle, scale=1): w = image.shape[1] h = image.shape[0] #rotate matrix M = cv2.getRotationMatrix2D((w/2,h/2), angle, scale) #r.原创 2021-03-24 10:12:14 · 1003 阅读 · 1 评论 -
深度学习的数据增强(亮度,对比度,旋转)
import os,cv2,shutilimport numpy as npimport random#对比度和亮度def Contrast_and_Brightness(alpha, beta, img): blank = np.zeros(img.shape, img.dtype) # dst = alpha * img + beta * blank...原创 2020-03-26 15:56:00 · 1187 阅读 · 0 评论 -
sift特征匹配Python代码
1.安装opencv-contrib-python首先要安装opencv-contrib-python,否则会提示如下错误:Traceback (most recent call last):File "sift.py", line 7, in <module>sift = cv2.xfeatures2d.SIFT_create()AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d'安装时要注意,ope原创 2021-03-05 14:56:27 · 2565 阅读 · 0 评论 -
get_map.py
计算mAP的代码备份import globimport jsonimport osimport shutilimport operatorimport sysimport argparseimport mathimport numpy as npMINOVERLAP = 0.5 # default value (defined in the PASCAL VOC2012 challenge)parser = argparse.ArgumentParser()parser.add_原创 2021-02-04 16:21:00 · 1178 阅读 · 0 评论 -
python处理ReId公开数据集_MSMT17.zip_Market-1501-v15.09.152.zip_DukeMTMC-reID.zip_cuhk03_release.zip
利用Python处理ReId的公开数据集,把quary数据拷贝到每个单独的文件夹中,地库数据也拷贝到单独的文件夹中,一个文件夹一个reid。#coding=utf-8import cv2import osimport shutillib_images_src = "./query"test_images_src = "./bounding_box_test"lib_images_dest = "./lib_images"test_images_dest = "./test_ima原创 2021-01-19 19:07:21 · 870 阅读 · 0 评论 -
从数据集中挑选红色区域大于某一阈值的图片
#!usr/bin/env python#-*- coding:utf-8 _*-import osimport shutilimport numpy as npimport cv2lower_red = np.array([0, 127, 128]) # 红色阈值下界higher_red = np.array([10, 255, 255]) # 红色阈值上界lower_green = np.array([35, 110, 106]) # 绿色阈值下界higher_g...原创 2020-12-17 17:09:24 · 2010 阅读 · 1 评论 -
Python调用C/C++库
目录1.首先编写C++的源文件和头文件2.编写C++调用demo3.使用makefile进行编译4.Python脚本开发时会遇到python调用C/C++库的情况,下面写了一个简单的demo看一下python怎么调用C/C++库。1.首先编写C++的源文件和头文件头文件如下:#include <mutex>#include <vector>#include <stdint.h>#include <thread>ext原创 2020-11-19 11:45:15 · 2830 阅读 · 0 评论 -
python获取命令行参数
#!/usr/bin/env python2.7# pylint: disable=bad-indentation, no-member, invalid-name, line-too-longimport shutilimport argparseimport multiprocessingimport numpy as npimport caffefrom caffe.proto import caffe_pb2from google.protobuf import text_for.原创 2020-11-06 14:53:50 · 279 阅读 · 0 评论 -
解决python Matplotlib绘图中文字体乱码问题_centos
在使用python的matplotlib话图时,中文显示乱码,程序中使用的代码如下,matplotlib.rcParams['font.family'] = 'SimHei'执行之后程序报如下的错误,并且画出来的图中文显示乱码。findfont: Font family ['SimHei'] not found. Falling back to DejaVu Sans./usr/local/lib64/python3.6/site-packages/matplotlib/backends.原创 2020-11-06 11:43:57 · 2627 阅读 · 0 评论 -
python数据处理:修改文件夹名字和图片名字,并将图片分别拷贝到底库文件夹和测试文件夹
#coding=utf-8import osimport shutil"""1.修改文件夹名字为0 1 2...,并且文件夹里面的图片用文件夹名字加数字的方式重命名。2.拷贝5张图片到测试文件夹,剩余的图片拷贝到底库文件夹。"""image_dir = "./images"lib_images = "./lib_images"test_images = "./test_images""""首先修改文件夹的名字为0 1 2 3 . . . ."""def modif.原创 2020-10-30 11:07:12 · 498 阅读 · 0 评论