- Python 使用 Detectron2 进行目标检测 (Detectron2, CenterNet2, Detic)
Eric Woo X
PythonAIUbuntupython目标检测开发语言
代码说明代码主要是一个用来演示如何使用Detectron2进行目标检测的脚本。它可以从摄像头或视频文件中读取图像,并应用指定的配置文件进行目标检测。其中,Detectron2结合了CenterNet2和Detic进行目标检测。主要库介绍Detectron2Detectron2是由FacebookAIResearch开发的一个用于目标检测和实例分割的开源库。它提供了一系列预训练模型和灵活的配置系统,
- OSError: [WinError 126] 找不到指定的模块---caffe2_detectron_ops_gpu.dll
努力的小柚
python运行问题pythonpytorch
代码复现记录:问题:OSError:[WinError126]找不到指定的模块。Errorloading"C:\Anaconda\Anaconda3\envs\TIN\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll"oroneofitsdependencies.在搜索很多关于无法查找到caffe2_detectron_ops_gpu
- 使用Dockerfile构建一个包含NVIDIA的PyTorch和Detectron2的镜像
fydw_715
Detectron2pytorch人工智能python
查看Dockerfile以下是详细的解释:#使用更具体的标记来固定基础镜像版本,确保环境一致性FROMnvcr.io/nvidia/pytorch:23.01-py3#设置工作目录和环境变量WORKDIR/rootENVDETECTRON2_PATH/root/detectron2#复制并安装Detectron2COPYdetectron2$DETECTRON2_PATHRUNpipinstall
- 基于detectron2框架的深度学习模型载入自定义数据集
Midsummer-逐梦
解决方案深度学习人工智能计算机视觉
基于detectron2框架的深度学习模型载入自定义数据集一、前言最近在做微光目标检测的研究工作,使用了Rank_DETR;这个模型是基于detrex框架,而detrex框架又是基于detectron2的。找了一圈没找到载入数据集的地方,后面查阅了资料得知要用API进行注册。二、步骤注册数据集:在脚本中,我们首先要注册数据集。Detectron2提供了多种注册数据集的方式,常用的是register
- PyTorch深度学习实战(26)——多对象实例分割
盼小辉丶
深度学习pytorch人工智能
PyTorch深度学习实战(26)——多对象实例分割0.前言1.获取并准备数据2.使用Detectron2训练实例分割模型3.对新图像进行推断小结系列链接0.前言我们已经学习了多种图像分割算法,在本节中,我们将学习如何使用Detectron2平台以及Google开放图像数据集执行多对象实例分割任务。Detectron2是Facebook团队打造的人工智能框架,其中包括了高性能的对象检测算法实现,包
- 解决:源码安装caffe时遇到libcudnn.so: file not recognized问题
Gracie丹妮
参考教程(19条消息)ubuntu16.04下Detectron+caffe2(Pytorch)安装配置过程_张家坎的博客-CSDN博客_caffe2_detectron_ops_gpu.dllhttps://blog.csdn.net/u014236392/article/details/81117287安装caffe2执行sudomakeinstall之后遇到如下问题:/home/Xdn/cu
- detectron2的read_image方法
月起星九
python人工智能
在看代码的时候,看到一行注释:usePIL,tobeconsistentwithevaluation说是用PIL方法加载,却又看见了BGR这种表述,后面的调用也都是cv2格式:那我就要看下这里面是怎么实现的了,找到了read_image函数,如下:defread_image(file_name,format=None):"""Readanimageintothegivenformat.Willap
- Detectron2在windows10下的配置
simple_whu
python深度学习python深度学习windows
Detectron2在windows10下的配置预备安装内容MSVC(2017版本及以上,其他版本未经测试),python3.7,pytorch>=1.4,对应的CUDA(注意环境变量的设置),pycocotools>=2.0,fvcore…修改内容1.参考这篇博客修改cocoeval.cpp第483行:localtime_s(&local_time,&rawtime);//changedbymc
- MaskFormer数据加载器构建及遇到的Too many open files error问题
木鱼未来
pythonpytorch深度学习
一、问题:Toomanyopenfileserror问题讨论:Toomanyopenfileserror·Issue#11201·pytorch/pytorch(github.com)解决方法:二、MaskFormermaskformer官方代码依赖detectron2库,我没有安装成功,直接把源码下载下来,然后将里面的detectron2包拷贝的MaskFormer的项目目录下,可以正常使用。2
- win10下安装detectron2-0.5(0.6应该也可以)
燃梅
python人工智能计算机视觉深度学习神经网络
最近从github上下载的实例分割代码是detectron2-0.5的记录下配置过程。1、前面什么pytorch基本步骤网上教程很多,对着项目的要求下就行2、到这里一般都是让你去下一个detectron2,但是我们从github上白嫖的项目都是有detectron2的,所以只需要找到那个setpu.py文件,然后安装它,即pythonsetup.pybuilddevelop过程中如果提示xxxx下
- 【MMdetection】MMdetection从入门到进阶1
资料加载中
深度学习
前言所有模型均在上coco_2017_train进行训练,并在上进行测试coco_2017_val。我们使用分布式训练。ImageNet上所有pytorch风格的预训练主干都来自PyTorch模型zoo,caffe风格的预训练主干是从detectron2新发布的模型转换而来的。为了与其他代码库进行公平比较,我们将GPU内存报告为所有8个GPU的最大值torch.cuda.max_memory_al
- yolov8 小目标物体检测、分割加强方法
loong_XL
图像CV深度学习YOLO目标检测人工智能
常见下列三种方法加强小物体检测:Detectron2(这个与yolov8不大相关,这篇不做多介绍,meta算法)SAHI算法:SlicingAidedHyperInference(切片辅助超推理)通过图像切片的方式来检测小目标。YOLOv8变体YOLOv8-P2,旨在提高检测小物体的性能。1、SAHI算法学习参考:https://docs.ultralytics.com/guides/sahi-t
- 在 docker 中安装 GLEE
wujpbb7
模式识别dockerGLEE
1、安装detectron2。2、gitcloneGLEE。gitclonehttps://github.com/FoundationVision/GLEE.gitdocker中没有git,可以通过共享主机文件夹,在主机中做gitclone。3、删除GLEE/app/requirements.txt中的torch和torchvision,再pip。root@e86d0af48236:/host_s
- 通过 conda 安装 的 detectron2
wujpbb7
模式识别condadetectron2
从detectron2官网发现预编译的版本最高支持pytorch1.10、cuda11.3。(2023-12-26)1、安装conda环境。condacreate--namedetectron2python=3.82、安装pytorch1.10和cuda11.3。pip3installtorch==1.10.0+cu113torchvision==0.11.1+cu113torchaudio==0
- 利用maskFormer/mask2Former配置环境并训练自己的数据集
TracyGC
深度学习人工智能pythonpytorch
1.配置环境:使用detectron2配置的环境,所以也是复制之前电脑上用过detectron2的环境condacreate-nmask2former--clonePatchDCTcondaactivatemask2former然后在requirement里面下载需要的包另外在mask2former中还需要make一下:2.数据集配置利用之前配置好的coco数据集,但由于maskFormer/ma
- 在开发板上安装detectron2环境
TracyGC
教研室工作pythonpycharm深度学习
1.创建并激活detectron2环境condacreate-nmaskrcnnpython=3.8condaactivatemaskrcnn2.安装对应的pytorch和tochvision根据sudojetson_release命令查看jetson版本号以及与它适配的cuda、cudnn、TensorRT、OpenCV等等版本,详情见我之前的博客JetsonAGXORIN硬件初始化和环境部署-
- ResNeSt 2020 论文阅读笔记
Kloping
ResNeSt:Split-AttentionNetworksGithub:https://github.com/zhanghang1989/ResNeStDetectron2版本Github:https://github.com/zhanghang1989/detectron2-ResNeSt1.Introduction主要谈了一下目前一些ResNet的变体网络存在的问题最近大部分的下游应用还是
- detectron2的安装和测试
sophia_xw
detectron2ubuntu1804安装和测试
安装方式1Python>=3.6在anaconda中构建新环境,condacreate-nxinwenpython=3.6condaactivatexinwenPyTorch1.3【报错安装】也是官网给出的安装方式condainstallpytorch=1.3torchvisioncudatoolkit=10.1-cpytorch后面都能正确安装,但是在测试用例时会发现第一次启动花销很长时间甚至卡
- 复现Detectron2-blendmask之冰墩墩雪容融自定义数据集语义分割
光芒再现robotliang
detectron2计算机视觉视觉检测人工智能机器学习计算机视觉目标检测
第一节——Detectron2-BlendMask论文综述1-1Detectron2-BlendMask论文摘要实例分割是计算机视觉中非常基础的任务。近来,全卷积实例分割方法得到了更多的注意力,因为它们要比双阶段的方法(如MaskR-CNN)更简单、高效。到目前为止,在计算复杂度相同的情况下,几乎所有的方法在掩码准确率上都落后于双阶段的MaskR-CNN方法,给了很大的提升空间。本文将实例级别信息
- detectron2环境搭建及自定义coco数据集(voc转coco)训练
似忆
计算机视觉
detectron2建议ubuntu进行环境搭建,Windows大概率报错一环境搭建创建虚拟环境condacreate-ndetectron2python=3.8-ycondaactivatedetectron2后面下载源代码建议存到git中再gitclonegitclonehttps://github.com/facebookresearch/detectron2.gitpython-mpipi
- python 深度学习 解决遇到的报错问题8
水w
#深度学习深度学习人工智能python开发语言vscode
本篇继python深度学习解决遇到的报错问题7-CSDN博客目录一、OSError:[WinError127]找不到指定的程序。Errorloading"D:\my_ruanjian\conda-myenvs\deeplearning\lib\site-packages\torch\lib\caffe2_detectron_ops.dll"oroneofitsdependencies.二、proj
- detectron2部署
pl9632008
pytorch计算机视觉pythonpytorch
转成caffe2需要安装以下依赖pipinstallgraphvizsudoapt-getinstallgraphvizpipinstallpydot较新的onnx.optimizer删除了,改为了onnxoptimizer。export_model.py修改如下#!/usr/bin/envpython#Copyright(c)Facebook,Inc.anditsaffiliates.impor
- detectron2训练自己的数据实现目标检测和关键点检测(一) ubuntu18.04安装测试detectron2
王二小、
#目标检测#关键点检测detectron2人工智能关键点检测目标检测图像算法
detectron2训练自己的数据实现目标检测和关键点检测——ubuntu18.04安装测试detectron21.配置1.1环境要求2.环境安装2.1torch和torchvision2.2cocoapi(pycocotools)2.3下载安装detectron23.测试detectron21.配置基本配置版本号CPUIntel®Core™
[email protected]×6GPUGeFor
- OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “D:\DevelopmentTools\anaconda\envs\yolov5\lib\
初学者5213
YOLO人工智能机器学习
在使用yolov5训练的时候报错OSError:[WinError1455]页面文件太小,无法完成操作。Errorloading“D:\DevelopmentTools\anaconda\envs\yolov5\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll”oroneofitsdependencies.由于worker设置过大,得
- Detectron2 安装踩坑
Immortal stars
pytorch人工智能
在服务器上安装Detectron2:设备:NVIDIAGeForceRTX3090显卡驱动和cuda:安装detectron2时,报错为:Installingcollectedpackages:detectron2Runningsetup.pydevelopfordetectron2error:subprocess-exited-with-error×pythonsetup.pydevelopdi
- Win10+MX350+CUDA10.2+Python3.9配置Detectron2
-小透明-
2pcnetpython人工智能深度学习
配置步骤:1.创建一个新的虚拟环境`condacreate-n2pcnetpython=3.9`(事先安装好Anaconda3)2.激活并进入环境:`activatenew_env`3.安装CUDA查看电脑显卡型号:控制面板-管理工具-计算机管理-设备管理器-显示适配器(我的是MX350)确定显卡支持的CUDA版本:右键-NVIDIA控制面板-帮助-系统信息-组件,查看CUDA版本(我的是10.2
- detectron2安装填坑--2020-05-14
shah2010
安装detectron2python3.6,cuda10.1,1)安装detectron2参考下面几个文档,但出现RuntimeError:NotcompiledwithGPUsupport,一直没解决(更改了detectron的clone方式和安装方式不再出现),便新建conda环境,使用第二种方法okhttps://blog.csdn.net/sophia_xw/article/details
- FastInst: A Simple Query-Based Model for Real-Time Instance Segmentation 代码解析
举焰
机器视觉深度学习python
FastInst:ASimpleQuery-BasedModelforReal-TimeInstanceSegmentation在自己的数据集上训练1首先将数据集改为coco的实例分割格式在detectron2/data/datasets/builtin.py目录下,将我的数据集名称加入到字典中_PREDEFINED_SPLITS_COCO["coco"]={"coco_2014_train":(
- 深度学习算法
Zack_Liu
深度学习深度学习
深度学习算法1.各种网络框架及其联系1.1两阶段与一阶段区别1.1.1detectron算法框架套路:1.1.2multi-stage1.1.3two-stage算法1.1.4one-stage算法2.常用算法2.1SS(选择性搜索算法,SelectiveSearch)3.神经元模型4.神经网络分类4.1前馈神经网络深度学习比较典型的应用领域,包括人脸识别,物体识别,语音识别,以及自然语言处理(机
- 云端配置detectron2环境
TranquilGlow
Pythonpythonpytorch
云端配置detectron2环境以及别的环境选择云服务器我选择这个AutoDL云服务器,1.价格因为这个云服务器感觉相比其他的,价格更便宜,同时GPU的数量也挺多的4090才需要2.6元一个小时,同时这个3090是1.62080Ti才0.9元一个小时2.可存储镜像的空间大小你可以在镜像盘中存储你配置好的环境,下次打开的时候就不用重新进行配置了免费空间是30个G,超出部分,1G一毛钱,感觉这个价格真
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数