当前位置: 首页 > wzjs >正文

宁波跨境电商公司排名前十营销型网站优化

宁波跨境电商公司排名前十,营销型网站优化,wordpress 主题 空白,网站做轮播图的意义参考 【小陈的学习笔记】使用PaddleDetection训练自己的数据集_哔哩哔哩_bilibili 项目地址 https://github.com/PaddlePaddle/PaddleDetection 项目文档地址 欢迎使用 PaddleDetection! — PaddleDetection 0.1 文档 详细的操作方式你可以看这个文档,不详细的可以…

参考 【小陈的学习笔记】使用PaddleDetection训练自己的数据集_哔哩哔哩_bilibili

项目地址 https://github.com/PaddlePaddle/PaddleDetection

项目文档地址 欢迎使用 PaddleDetection! — PaddleDetection 0.1 文档 详细的操作方式你可以看这个文档,不详细的可以看下面的

目录

1  使用环境

2  验证项目能不能用

3  准备数据集

3.1  VOCdevkit

3.2  get_label_list.py 与 label_list.txt

3.3  get_train_val.py 与 test.txt 与 trainval.txt

4  调整网络

4.1  __BASE__

4.2  num_classes

4.3  epoch

4.4  use_gpu

5  训练模型

6  预测模型

6.1  导出预测模型

6.2  使用预测模型

7  服务预测

7.1  修改代码

7.2  开启服务

7.3  请求服务

8  遇到的问题

8.1  paddle3.0以上版本预测时会提示要model.json


1  使用环境

paddlepaddle-gpu 2.6.2 python3.10

  • 后又用paddlepaddle3.0的cpu版本,也能走完全程

之后安装项目中的requirement

2  验证项目能不能用

需要运行 /ppdet/modeling/test/test_architectures.py 这个文件,在设置的时候注意这两个画红线的位置就行了

正常的运行结果是这样的。他这里就是检查库装没装,还有文件少没少,基本上没问题

3  准备数据集

我搞的是VOC数据集。这个文档里面需要准备的数据集比较麻烦,我简单整了一下,至少需要这几种东西,位置要和我这里面的一样

在项目路径下有个dataset

里面有个voc

voc里面画红框的是需要你准备的东西,没画红框的是他自带的(不用管他,愿意删可以删掉)

3.1  VOCdevkit

里面有个VOC2007

  • 名称要一致

VOC2007里面有Annotations和JPEGImages这两个文件夹

Annotations放xml格式文件

JPEGImages放的是图像文件

  • 无论是jpg还是png或者是其他的图像类型都是可以的,但最好统一,不然后面要改一下代码

3.2  get_label_list.py 与 label_list.txt

get_label_list.py是用来生成label_list.txt这个文件的

  • 如果你有别的方式生成label_list.txt,你也可以不用get_label_list.py

get_label_list.py内容如下

label_list.txt内容如下

  • 实际就是标签的名字,最后多一行空行无所谓
  • label_list.txt的文件名最好叫这个,不然后面要有改动

3.3  get_train_val.py 与 test.txt 与 trainval.txt

get_train_val.py是生成test.txt与trainval.txt的

get_train_val.py的内容如下

test.txt内容如下

  • test.txt是评估集,实际就是前面是图像地址,然后中间放个空格,最后是xml地址

trainval.txt内容如下

4  调整网络

PaddleDetection这个项目中所有可用的神经网络都在configs这个文件夹里面

我用的神经网络是 yolov3_mobilenet_v1_270e_voc.yml

  • 这个名字大概是这个意思
    • yolov3 是神经网络
    • mobilenet 是轻量级网络,就相对于yolov3里面它属于轻量级的,可以理解是这个意思
    • v1 版本1。其他版本是什么我不清楚
    • 270e 270个epoch
    • voc 用的是voc格式数据集

网络中可以调整的参数有很多,我们挑几个重要的说一下

4.1  __BASE__

__BASE__ 这个是不需要改的,里面的这些yml文件是总yml引用的文件,相当于voc.yml这个文件被yolov3_mobilenet_v1_270e_voc.yml这个文件引用了

4.2  num_classes

num_classes是种类数,是必改的参数,参数在 configs/datasets/voc.yml 中

是几分类就写几

4.3  epoch

epoch是训练的轮数,参数在 configs/yolov3/_base_/optimizer_270e.yml 中

4.4  use_gpu

在项目路径下的 config/runtime.yml 中

如果不用gpu可以把它搞成false

5  训练模型

实际上你只用把类别数改了,就可以训练了。执行python tools/train.py -c [总yml文件的路径] -o use-gpu=true就可以训练了

  • -o是覆盖前面的选项,即使你在yml中对use_gpu设置为false,如果你在这里对use-gpu设置为true,那么就会覆盖掉之前在yml中的设置

第一次训练会自动下载预训练模型

每5个epoch它会进行保留1次,它默认保留在项目路径下的output中,对于咱们来讲只需要下面画框的这两个文件

6  预测模型

6.1  导出预测模型

在output创建与yml同名的文件夹

然后把上面画红框的两个文件放到这个文件夹中

执行 python -u tools/export_model.py -c [总yml文件路径] --output_dir=./inference_model

执行完毕后在 项目路径下会生成一个inference_model

6.2  使用预测模型

执行 python deploy/python/infer.py --model_dir=[模型所在的文件夹路径] --image_file=[要预测的图像路径]

预测完毕后会把预测的结果图像保存到项目路径下的output中

7  服务预测

paddle_serving_cline0.9.0这个版本是不能配合paddlepaddle3.0使用的,所以按照官方的方式部署API(导出服务模型,然后用命令开开启预测的服务)是行不通的

所以还是自己整一个比较好

7.1  修改代码

我们可以看到在 deploy/python/infer.py 的这里

会得到预测的信息。result依次是 id,置信度,左上角x值,左上角y值,右下角x值,右下角y值

我复制了infer.py然后命名为infer_server.py,之后再infer_server.py中把 main() 函数和下面的所有东西都删掉,然后把下面的代码粘贴上

 

def pic_predict(img,label_list):if FLAGS.use_fd_format:deploy_file = os.path.join(FLAGS.model_dir, 'inference.yml')else:deploy_file = os.path.join(FLAGS.model_dir, 'infer_cfg.yml')with open(deploy_file) as f:yml_conf = yaml.safe_load(f)arch = yml_conf['arch']detector_func = 'Detector'if arch == 'SOLOv2':detector_func = 'DetectorSOLOv2'elif arch == 'PicoDet':detector_func = 'DetectorPicoDet'elif arch == "CLRNet":detector_func = 'DetectorCLRNet'detector = eval(detector_func)(FLAGS.model_dir,device=FLAGS.device,run_mode=FLAGS.run_mode,batch_size=FLAGS.batch_size,trt_min_shape=FLAGS.trt_min_shape,trt_max_shape=FLAGS.trt_max_shape,trt_opt_shape=FLAGS.trt_opt_shape,trt_calib_mode=FLAGS.trt_calib_mode,cpu_threads=FLAGS.cpu_threads,enable_mkldnn=FLAGS.enable_mkldnn,enable_mkldnn_bfloat16=FLAGS.enable_mkldnn_bfloat16,threshold=FLAGS.threshold,output_dir=FLAGS.output_dir,use_fd_format=FLAGS.use_fd_format)img_list = []img_list.append(img)result = detector.predict_image(img_list,FLAGS.run_benchmark,repeats=100,visual=FLAGS.save_images,save_results=FLAGS.save_results)results_list = []for i in result['boxes']:result_list = []result_list.append(label_list[int(i[0])])result_list.append(i[1])result_list.append(int(i[2]))result_list.append(int(i[3]))result_list.append(int(i[4]))result_list.append(int(i[5]))results_list.append(result_list)return results_listpaddle.enable_static()
parser = argsparser()
FLAGS = parser.parse_args()
print_arguments(FLAGS)
FLAGS.device = FLAGS.device.upper()
assert FLAGS.device in ['CPU', 'GPU', 'XPU', 'NPU', 'MLU', 'GCU'], "device should be CPU, GPU, XPU, MLU, NPU or GCU"
assert not FLAGS.use_gpu, "use_gpu has been deprecated, please use --device"assert not (FLAGS.enable_mkldnn == False and FLAGS.enable_mkldnn_bfloat16 == True
), 'To enable mkldnn bfloat, please turn on both enable_mkldnn and enable_mkldnn_bfloat16'yaml_position = "/root/PaddleDetection-release-2.8.1/inference_model/yolov3_mobilenet_v1_270e_voc/infer_cfg.yml"
with open(yaml_position, 'r') as file:label_list = yaml.safe_load(file)["label_list"]from flask import Flask,requestapp = Flask(__name__)
@app.route('/server_predict',methods=['POST'])
def server_predict():img_base64 = request.json['img_base64']img_base64 = base64.b64decode(img_base64)img_base64 = np.fromstring(img_base64,np.int8)img_base64 = cv2.imdecode(img_base64,cv2.IMREAD_COLOR)cv2.imwrite('test.png',img_base64)return str(pic_predict("test.png",label_list))if __name__ == '__main__':app.run(host='0.0.0.0',debug=False)
  • 这里实际上是给图像存储下来了,应该也可以不存储下来,我找了找在process这个函数中应该是能操作一下,但看起来比较麻烦,回来有需要再弄

7.2  开启服务

执行 python deploy/python/infer_server.py --model_dir=[模型文件夹] 就可以开启服务了

7.3  请求服务

然后我们搞个图请求一下

发现可以成功预测

8  遇到的问题

8.1  paddle3.0以上版本预测时会提示要model.json

这里不知道哪里蹦出来一个model.json

这个时候需要对infer.py做一些修改,在997行代码对paddle的版本进行了判断。屏蔽掉它,然后把else部分的缩进前提一级,就能预测了

http://www.dtcms.com/wzjs/373534.html

相关文章:

  • 国内用JSP做的网站有哪些域名交易中心
  • 如何给公司注册网站私域运营软件
  • app开发与网站建设难度百度seo优化排名软件
  • 网站的详细设计关键词优化工具有哪些
  • 萧江做网站想做网络推广如何去做
  • wordpress电影站开发软文营销什么意思
  • go做网站深圳网络推广哪家好
  • 如何让客户主动找你做网站怎么在百度制作自己的网站
  • 自己给公司做网站难不难网络营销技巧和营销方法
  • 做六合彩网站商城全网推广运营公司
  • 新网站怎样做优化百度免费发布信息网站
  • 企业网站排名要怎么做如何快速推广网站
  • 网站开发及建设赔偿条款广告公司网站
  • 清河县做网站seo关键技术有哪些
  • 分析可口可乐网站建设的目的个人网站制作软件
  • sgs网站开发公司百度股市行情上证指数
  • 菏泽厚德网站建设公司怎么样北京出大大事了
  • wordpress去除手机版东莞网站推广优化公司
  • 网站建设的程序清远新闻最新
  • 网站建设模式有哪些内容一篇好的营销软文
  • 网站的网站制作网络推广与优化
  • 网站上做旅游卖家要学什么软件优化服务内容
  • b2b网站大全至勤推广普通话手抄报内容50字
  • 网站项目建设流程图百度指数的数值代表什么
  • wordpress登录系统天津seo外包
  • 网站建设安全协议网站推广方法
  • 全球网站域名聚名网官网
  • 做游戏网站全媒体运营师培训
  • 平度那里有做网站的优化水平
  • 青岛网站如何制作不受国内限制的搜索引擎