当前位置:   article > 正文

目标检测应用化之web页面(YOLO、SSD等)

目标检测图像化界面

在caffe源码目录下的examples下面有个web_demo演示代码,其使用python搭建了Flask web服务器进行ImageNet图像分类的演示。

首先安装python的依赖库:pip install -r examples/web_demo/requirements.txt

接下来,修改源码,仅三个代码文件:

  • app.py 这是主程序的入口
  • exifutil.py 辅助代码,解决skimage库不能处理exif标志的问题
  • templates/index.html 前端web页面

解决python2中的中文问题:

  1. import sys
  2. reload(sys)
  3. sys.setdefaultencoding('utf-8')

exifutil.py中删除img = np.asarray(im).astype(np.float32) / 255.这句归一化的代码(视情况自行修改)。

网络模型调用

将模型加载和前向传播计算的相关代码写在另外的新增的python代码中。如YOLO和SSD均提供了python使用模型进行测试的代码,稍作修改即可。

结果显示

结果框画框代码:

  1. from PIL import Image, ImageDraw
  2. def draw_rectangle(draw, coordinates, color, width=1, draw_ellipse=False):
  3. for i in range(width):
  4. rect_start = (coordinates[0] - i, coordinates[1] - i)
  5. rect_end = (coordinates[2] + i, coordinates[3] + i)
  6. if draw_ellipse:
  7. draw.ellipse((rect_start, rect_end), outline=color)
  8. else:
  9. draw.rectangle((rect_start, rect_end), outline=color)
  10. def draw_rectangles(image_pil,det_result):
  11. # draw rectangles
  12. draw = ImageDraw.Draw(image_pil)
  13. for idx, item in enumerate(det_result):
  14. x, y, w, h = item[2]
  15. half_w = w / 2
  16. half_h = h / 2
  17. box = (int(x - half_w+1), int(y - half_h+1), int(x + half_w+1), int(y + half_h+1))
  18. draw_rectangle(draw,box,(0, 255, 0),width=2,draw_ellipse=True)
  19. draw.text((x - half_w + 5, y - half_h + 5), str(idx + 1)+" : "+item[0], fill=(0, 0, 150))
  20. del draw

得到模型的预测结果之后使用上述画框代码画框后在flask.render_template时将画了结果框的图像显示在HTML页面上。

HTML页面内容适配

在调用如下代码时flask会将参数变量传给页面填充部分。

  1. flask.render_template('index.html', has_result=True, result=results,
  2. imagesrc=new_img_base64
  3. )

在html页面代码中可以使用{{ result }}的形式来获取这些参数变量的值,并且可以使用if...else, for等语句控制html代码的填充。此步要做的就是修改app.py和html适配的内容一致。

详细代码在此:https://github.com/makefile/objdet_web

效果图

转载于:https://www.cnblogs.com/makefile/p/objdet-web.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/128670?site
推荐阅读
相关标签
  

闽ICP备14008679号