文章目录[隐藏]
torchvision
包含众多流行数据集和图像处理方法
目标检测算法
常见的计算机视觉任务可以归纳为图像分类、目标检测、语义分割等。
在图片数据中找到指定的物体,并能够正确定位位置,这就是典型的目标检测任务。
边界框与锚框
边界框用来描述目标位置,是一个矩形框,由左上角坐标和右下角坐标来共同确定。
在运行目标检测算法时,通常会在图像中采样多个候选区域,不同的目标检测算法所使用的采样算法也不一样,而YOLO系列算法则通过定义锚框来提取,锚框是指以每一个像素为中心,生成多个大小和宽高比不同的边界框集合
交并比(Intersection of Union)
当有多个边界框覆盖了图像中的物体时,如果该物体的真实的边界框已知,那么需要有一个衡量预测边界框好坏的指标。在目标检测领域,我们使用交并比来衡量。
基于候选区域的目标检测算法(二阶段)
第一阶段:先产生所有可能的目标候选区
第二阶段:再对候选区做分类和回归
- R-CNN
- Fast R-CNN
- Faster R-CNN
单阶段目标检测
与二阶段不同,它仅仅使用一个卷积神经网络直接预测不同目标的类别与位置,不需要预先选取候选区域,因此,在效果上,基于区域的算法要比单阶段算法准确度高,但速度较慢;相反,单阶段算法比基于区域的算法速度快,但准确率要低。
方法实现
使用Flask-SocketIO作为服务端和客户端之间的通信框架,可以轻松实现服务端和客户端的双向通信。
Flask-SocketIO基础
服务端创建
初始化服务端:
from flask import Flask,render_template
from flask_socketio import SocketIO
app=Flask(__name__)
app.config['SECRET_KEY']='secret'
socketio=SocketIO(app)
if __name__ == '__main__':
socketio.run(app)
为了能响应连接的客户端请求,在服务端定义处理函数
@socketio.on('my event')
def test_message(message):
emit('my response',{'data':message['data']})
FedAvg
def updata_weights(self,client_weights,client_sizes):
#clients_weight存储每一个客户端上传的模型参数列表
#clients_sizes存储每一个客户端的本地样本数量
total_size=np.sum(client_sizes)
new_weights=[np.zeros(param.shape) for param in client_weights[0]]
#FedAvg集合
for c in range(len(client_weights)):
for i in range(len(new_weights)):
new_weights[i]+=(client_weights[c][i]*client_sizes[c]/total_size)
self.current_weights=new_weights
客户端创建
使用socketIO-client创建client
from socketIO_client import SocketIO
def test_response(data):
print(data)
sio=SocketIO(host,port,None)
sio.on('my_response',test_response)
sio.emit('my event')
sio.wait()
PyTorch基础
Tensor是PyTorch的基础数据结构,是一个高维的数组,其作用类似于Numpy中的ndarray。
pip list 查看python包和版本
#查询文件默认存储路径
import os
print(os.path.abspath('.'))
Bibliography
版权声明:本文为CSDN博主「鸽先生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangyi0626/article/details/122549646
暂无评论