<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ByYastal的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ByYastal</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ByYastal]]></copyright><item><title><![CDATA[Windows 多python源如何切换pip安装]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/121212122</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/121212122</guid><author>ByYastal</author><pubDate>Mon, 08 Nov 2021 17:20:44 +0800</pubDate><description><![CDATA[参考链接：https://www.jianshu.com/p/98abc8a72241

]]></description><category></category></item><item><title><![CDATA[java的日常使用]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/119490629</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/119490629</guid><author>ByYastal</author><pubDate>Sat, 07 Aug 2021 18:52:29 +0800</pubDate><description><![CDATA[1. 输入输出流处理
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
sc.nextInt(); //下一个整数
sc.nextDouble(); //下一个浮点数
sc.nextLine(); //下一行
sc.hasNextLine(); //是否有下一行
sc.hasNext(); //是否有下一个输入

30 20 35 40
20 18 25 30
50
public class Main {
    public st]]></description><category></category></item><item><title><![CDATA[flask带日志的微服务封装]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/118960438</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/118960438</guid><author>ByYastal</author><pubDate>Wed, 21 Jul 2021 10:21:28 +0800</pubDate><description><![CDATA[flask的具体实例用法
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
# @Time    : 2020-05-18 16:11:10
# @Author  : Bakuya Liu
# @File    : getCourtInformation_flask.py

Description:

"""
from flask import Flask, render_template, request, Response, jsonify
from f]]></description><category></category></item><item><title><![CDATA[Redis学习笔记]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/118701496</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/118701496</guid><author>ByYastal</author><pubDate>Tue, 13 Jul 2021 20:26:37 +0800</pubDate><description><![CDATA[1. Redis下载安装
官网下载：https://redis.io/
解压：tar -zxvf *.tar,gz
检查编译环境：make
安装到指定目录，默认为/usr/local/bin
make PREFIX=... install


后台启动的方法：先复制redis.conf文件，然后修改里面的daemon为yes开启守护进程。

2. redis操作

进入redis数据库：

 ./redis-cli -p 7000 -a root


操作五个类型的数据，string、hash、list、s]]></description><category></category></item><item><title><![CDATA[python 日志模块logging]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/118256057</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/118256057</guid><author>ByYastal</author><pubDate>Sat, 26 Jun 2021 23:04:57 +0800</pubDate><description><![CDATA[日志logging

logging提供了一组便利的函数，用来做简单的日志。它们是 debug()、 info()、 warning()、 error() 和 critical()。
logging函数根据它们用来跟踪的事件的级别或严重程度来命名


使用

日志logging类使用，直接复制，用log = Logger(‘all.log’,level=‘debug’)初始化
保存下的日志按照时间自动划分
在需要打log的地方对应加上log.logger.debug(‘message’)即可

import]]></description><category></category></item><item><title><![CDATA[RabbitMQ 消息队列]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/117964086</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/117964086</guid><author>ByYastal</author><pubDate>Wed, 16 Jun 2021 18:11:03 +0800</pubDate><description><![CDATA[python结合pika操作rabbitmq
学习链接：https://www.cnblogs.com/pyedu/p/11866829.html
配套视频：https://www.bilibili.com/video/BV12A411q7dE?p=10&amp;spm_id_from=pageDriver
RabbitMQ和kafka的区别
1.应用场景方面
RabbitMQ：用于实时的，对可靠性要求较高的消息传递上。
kafka：用于处于活跃的流式数据，大数据量的数据处理上。
2.架构模型方面
prod]]></description><category></category></item><item><title><![CDATA[高并发部署策略 多副本服务+nginx均衡负载]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/117958172</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/117958172</guid><author>ByYastal</author><pubDate>Wed, 16 Jun 2021 15:13:20 +0800</pubDate><description><![CDATA[多副本web服务

单个flask服务封装的模型推理，在单机上支持的并发连接请求数量无法满足要求，压测为300左右的数量级别，压测代码如下：
通过客户端传输base64字节流到服务端处理，返回抠图结果

import base64
import cv2,os
import numpy as np
import requests
import json
import threading
import time

img_path = 'E:/mission/img'
out_path = 'E:/missio]]></description><category></category></item><item><title><![CDATA[牛客网输入输出python]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/115721422</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/115721422</guid><author>ByYastal</author><pubDate>Thu, 15 Apr 2021 13:28:18 +0800</pubDate><description><![CDATA[多行输入：
import sys
for line in sys.stdin:
    line = line.split(" ")
    line = [int(x) for x in line]
    sum =0 
    for num in line:
        sum+=num
    print(sum)

字符创处理：
# 删除开头结尾的空格
str.strip(" ") lstrip()
# 或者使用切片思想
str[:-1]
# 字符串转list会带\n转行
str.repla]]></description><category></category></item><item><title><![CDATA[Python技巧]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114597688</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114597688</guid><author>ByYastal</author><pubDate>Wed, 10 Mar 2021 09:30:18 +0800</pubDate><description><![CDATA[解包
def func(a, *args, **kargs):
    print('a ', a)
    print('*args ', args)
    print('**kargs ', kargs)

func(1, 2, 3, 4, k1 = 1, k2 = 2, k3 = 3)
#a  1
#*args  (2, 3, 4)
#**kargs  {'k1': 1, 'k2': 2, 'k3': 3}


zip(*A)
def zip(*iterables):
    # zip('ABCD]]></description><category></category></item><item><title><![CDATA[ptam 前置安装依赖]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114537354</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114537354</guid><author>ByYastal</author><pubDate>Mon, 08 Mar 2021 17:57:08 +0800</pubDate><description><![CDATA[g2opy安装
git clone https://github.com/uoip/g2opy.git
cd g2opy
# 安装依赖，libqglviewer-headers可能会命名不同
sudo apt-get install cmake libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-headers
mkdir build
cd build
cmake -DPYBIND11_PYTHON_VERSION=3.6 .]]></description><category></category></item><item><title><![CDATA[视觉里程计 三维空间点的投影]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114369169</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114369169</guid><author>ByYastal</author><pubDate>Mon, 08 Mar 2021 16:37:36 +0800</pubDate><description><![CDATA[3D-2D: PnP

优化：先定义一个误差，然后不断优化该误差。
DLT



需要解释的是，我们这里的 x1 使用了归一化平面坐标，去掉了内参矩阵 K 的影响——这是因为内参 K 在 SLAM 中通常假设为已知。如果内参未知，那么我们也能用 PnP去估计 K, R, t 三个量。然而由于未知量的增多，效果会差一些。
P3P



从 P3P 的原理上可以看出，为了求解 PnP，我们利用了三角形相似性质，求解投影点 a, b, c 在相机坐标系下的 3D 坐标，最后把问题转换成一个 3D 到 3D 的位姿]]></description><category></category></item><item><title><![CDATA[python 定义类和继承类的一些知识]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114385272</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114385272</guid><author>ByYastal</author><pubDate>Fri, 05 Mar 2021 10:40:30 +0800</pubDate><description><![CDATA[python之子类继承父类时进行初始化的一些问题
https://www.cnblogs.com/xiximayou/p/12142888.html
装饰器的一些知识点
https://www.runoob.com/w3cnote/python-func-decorators.html
# 装饰器类
from functools import wraps
 
class logit(object):
    def __init__(self, logfile='out.log'):
        sel]]></description><category></category></item><item><title><![CDATA[GO语言学习——go的命令]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114326008</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114326008</guid><author>ByYastal</author><pubDate>Thu, 04 Mar 2021 09:43:37 +0800</pubDate><description><![CDATA[基础组成
Go 语言的基础组成有以下几个部分：

包声明
引入包
函数
变量
语句 &amp; 表达式
注释
注意：当标识符（包括常量、变量、类型、函数名、结构字段等等）以一个大写字母开头，如：Group1，那么使用这种形式的标识符的对象就可以被外部包的代码所使用（客户端程序需要先导入这个包），这被称为导出（像面向对象语言中的 public）；标识符如果以小写字母开头，则对包外是不可见的，但是他们在整个包的内部是可见并且可用的（像面向对象语言中的 protected ）。

无效标识符：
1ab（以数字开头]]></description><category></category></item><item><title><![CDATA[Go语言学习——介绍和编译]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114321732</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114321732</guid><author>ByYastal</author><pubDate>Wed, 03 Mar 2021 16:59:07 +0800</pubDate><description><![CDATA[Go语言的核心特性
协程goroutine

内存回收GC

内存分配

编译

网络编程

函数多返回值

异常处理

优势



编译

打开官网：golang.org
ubuntu下先解压

sudo tar -xzf *.tar.gz -C /usr/local


配置环境变量
vim /etc/profile

export GOPATH=/usr/local
export GOROOT=/usr/local
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

]]></description><category></category></item><item><title><![CDATA[基于深度学习的图像隐写分析综述 阅读]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114299858</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114299858</guid><author>ByYastal</author><pubDate>Wed, 03 Mar 2021 16:23:53 +0800</pubDate><description><![CDATA[背景
隐写术英文为Steganography。
现有的通信安全保障主要分为加密和信息隐藏:加密主要对秘密信息本身进行操作,但经过特殊处理后的明文更加容易受到第三方的怀疑;而信息隐藏则隐藏秘密数据的存在性,使秘密数据在不引起第三方的怀疑下进行隐蔽通信。
囚徒模型中,可以很好地阐述隐写术中各方的角色:Alice和Bob是监狱中不同牢房的犯人,他们之间的通信需要在狱警Eve的监视下完成;同时,Eve能够看见他们的通信内容.为了降低狱警Eve防范心的同时完成通信,隐写术孕育而生.Alice将想要传达的秘密信息进行隐]]></description><category></category></item><item><title><![CDATA[视觉里程计VIO——前半]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/114253348</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/114253348</guid><author>ByYastal</author><pubDate>Wed, 03 Mar 2021 09:39:11 +0800</pubDate><description><![CDATA[视觉里程计VIO
1. 学习目标

2. 特征点法

角点在可区分性里面效果比较显著。
特征点由关键点（Key-point）和描述子（Descriptor）两部分组成。比方说，当我们谈论 SIFT 特征时，是指“提取 SIFT 关键点，并计算 SIFT 描述子”两件事情。关键点是指该特征点在图像里的位置，有些特征点还具有朝向、大小等信息。描述子通常是一个向量，按照某种人为设计的方式，描述了该关键点周围像素的信息。描述子是按照“外观相似的特征应该有相似的描述子”的原则设计的。因此，只要两个特征点的描述子在向量]]></description><category></category></item><item><title><![CDATA[关于将彩色点云ply模型转化成带贴图的obj模型]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/112406067</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/112406067</guid><author>ByYastal</author><pubDate>Sat, 09 Jan 2021 21:01:00 +0800</pubDate><description><![CDATA[输入文件
test.ply
使用工具
MeshLab2020.06
简要步骤
1. import Mesh
2. Compute normals


3.Surface Reconstruction


4. Get texture

修改成4096 0 Basic

5.Save project



6.Transfer color to texture

第一个选Possion的另一个

最后保存obj模型


参考视频：https://www.youtube.com/watch?v=6wP_e37t]]></description><category></category></item><item><title><![CDATA[nodejs安装错误尝试（非官网下载）]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/112344809</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/112344809</guid><author>ByYastal</author><pubDate>Fri, 08 Jan 2021 09:23:33 +0800</pubDate><description><![CDATA[由于需要用到nodejs的相关环境依赖，在尝试安装是报了错，如下：
sudo apt install npm


亲测解决方法：
sudo apt remove npm  //卸载npm
sudo apt remove node //卸载node
cd /usr/local/bin   //进入该目录中，若有node或者npm文件，将他删除删除

sudo apt-get install nodejs-dev node-gyp libssl1.0-dev
sudo apt-get install npm

]]></description><category></category></item><item><title><![CDATA[Python3 flask 接返回的json数据并打印]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/112315277</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/112315277</guid><author>ByYastal</author><pubDate>Thu, 07 Jan 2021 15:47:17 +0800</pubDate><description><![CDATA[FLASK服务器
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
from flask import jsonify
from flask import render_template
from app import app
 
 
@app.route("/")
def index():
    return render_template("index.html")
 
@app.route("/hello", methods=['GET', 'POST]]></description><category></category></item><item><title><![CDATA[Linux环境下重装opencv]]></title><link>https://blog.youkuaiyun.com/ByYastal/article/details/111607351</link><guid>https://blog.youkuaiyun.com/ByYastal/article/details/111607351</guid><author>ByYastal</author><pubDate>Thu, 24 Dec 2020 14:47:55 +0800</pubDate><description><![CDATA[文章目录Opencv卸载查询Opencv版本安装新版本Opencv
Opencv卸载
首先要找到当初安装opencv的build目录，进入该build目录执行卸载操作。
sudo make uninstall
cd ..
rm -rf build
sudo apt remove libopencv-dev

查询Opencv版本
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv

安装新版本O]]></description><category></category></item></channel></rss>