【Flask】YOLO挖掘机目标检测模型Python flask部署(附项目链接)

导读:本篇文章讲解 【Flask】YOLO挖掘机目标检测模型Python flask部署(附项目链接),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

我是一个甜甜的大橙子🍊,欢迎关注✉️!
我相信技术的力量💪
努力将所学分享给大家😎
你的点赞❤️分享🚀收藏📖就是对我最大的鼓励!

说明

利用YOLO训练好的挖掘机目标检测模型,通过Python flask进行部署,是一个比较直观快捷的模型展示方式。

flask项目结构及效果

通过前端上传所需识别图片,调用训练好的模型进行目标检测,将结果传回前端进行展示。
在这里插入图片描述

主程序代码

主程序代码如下:

from flask import Flask, request, jsonify
import numpy as np
from PaddleDetection.image import base64_to_PIL
from config import Args_config
FLAGS = Args_config(device='GPU')#是否需要更改为GPU
from PaddleDetection.deploy.python.infer import PredictConfig, Detector, infer_image
pred_config = PredictConfig(FLAGS.model_dir)

detector = Detector(
        pred_config,
        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)
print("***********MODEL LOADED!***********")

app = Flask(__name__)


@app.route('/api/', methods=["POST"])
def main_interface():
    response = request.get_json()
    data_str = response['image']
    point = data_str.find(',')
    base64_str = data_str[point:]  # remove unused part like this: "data:image/jpeg;base64,"
    # convert base64 string to PIL image, to numpy array
    try:
        img_arr = np.array(base64_to_PIL(base64_str))
    except:
        # todo
        img_arr = None
    # do object detection in inference function.
    try:
        results = infer_image(detector, img_arr, FLAGS)
    except:
        # todo
        results = {"results": []}
    print(results)

    return jsonify(results)


@app.after_request
def add_headers(response):
    response.headers.add('Access-Control-Allow-Origin', '*')
    response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
    return response


if __name__ == '__main__':
    app.run(debug=False, host='127.0.0.1', port=5000)

config.py代码

```# -*- coding: utf-8 -*-
class Args_config:
    def __init__(self, device):
        self.batch_size = 1
        self.cpu_threads = 1
        self.device = device
        self.use_gpu = False if device.upper() == 'CPU' else True
        self.enable_mkldnn = False
        self.image_dir = None
        self.image_file = 'PaddleDetection/test_imgs/test1.jpg'
        self.model_dir = 'PaddleDetection/inference_model/ppyolo_r50vd_dcn_voc'
        self.output_dir = 'PaddleDetection/output'
        self.reid_batch_size = 50
        self.reid_model_dir = None
        self.run_benchmark = False
        self.run_mode = 'fluid'
        self.save_images = False
        self.save_mot_txts = False
        self.threshold = 0.5
        self.trt_calib_mode = False
        self.trt_max_shape = 1280
        self.trt_min_shape = 1
        self.trt_opt_shape = 640
        self.use_dark = True
        # predict from video file or camera video stream
        self.camera_id = -1
        self.video_file = None

项目链接

文件比较大,下载本项目请点击:
基于YOLO的挖掘机目标检测模型+flask模型前端展示
环境配置有疑问可以留言或私信交流。
公众号:一个甜甜的大橙子
知识星球:知识的朋友
欢迎交流~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/63055.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!