技术文章

保姆教程 | YOLOv5在建筑工地中安全帽佩戴检测的应用

孤街浪徒 提交于 2021-02-17 04:31:21
点击上方 “ 机器学习与生成对抗网络 ”,关注"星标" 获取有趣、好玩的前沿干货! 教程来自: https://github.com/PeterH0323/Smart_Construction 编辑:AI深度前沿视线 一、YOLO v5训练自己数据集教程 1.1 创建自己的数据集配置文件 1.2 创建每个图片对应的标签文件 1.3 文件放置规范 1.4 聚类得出先验框(可选) 1.5 选择一个你需要的模型 1.6 开始训练 1.7 看训练之后的结果 二、侦测 三、检测危险区域内是否有人 3.1 危险区域标注方式 3.2 执行侦测 3.3 效果:在危险区域里面的人体会被 红色框 选出来 四、生成 ONNX 五、增加数据集的分类 该项目是使用 YOLOv5 v2.x 来训练在智能工地安全领域中头盔目标检测的应用,先来一波演示! 指标 yolov5s 为基础训练, epoch = 50 分类 P R mAP0.5 总体 0.884 0.899 0.888 人体 0.846 0.893 0.877 头 0.889 0.883 0.871 安全帽 0.917 0.921 0.917 对应的 权重文件 :https://pan.baidu.com/share/init?surl=ELPhtW-Q4G8UqEr4YrV_5A,提取码: b981 yolov5m 为基础训练, epoch =

总结:被MySQL UTF8编码坑的惨痛教训...

旧城冷巷雨未停 提交于 2021-02-17 04:30:30
最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑的惨痛教训,记录一下,警示自己。 曾几何时,每次建库都选utf8,觉得自己比那些用乱七八糟编码的人不知道酷到哪里去了。直到好多年前的某次课程设计做项目的时候,愉快的建了个用户表: CREATE TABLE `test_user` ( `id` int ( 11 ) unsigned NOT NULL AUTO_INCREMENT, `name` varchar ( 32 ) DEFAULT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET =utf8; 然后愉快的新增用户:INSERT INTO test_user(name) VALUES("我是😁"),接着愉快的反思人生: Incorrect string value : '\xF0\x9F\x98\x81' for column 'name' at row 1 我是谁?我来自哪里?我在干嘛?难道是我代码里面的字符集用错了?不对啊我所有地方都用的utf8啊…… # MySQL 的UTF8编码是什么? 首先来看官方文档: The character set named utf8 uses a maximum of three bytes per character and contains

Gradle sync failed: Plugin is too old,

不羁的心 提交于 2021-02-17 04:24:15
在创建一个项目的时候,直接报出了如下错误: Gradle sync failed: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to "e877086ba74456e68d4c929dc482539df9ffac38" Consult IDE log for more details (Help | Show Log) 然后直接修改了 top build.gradle(非app/build.gradle)文件: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { // classpath 'com.android.tools.build:gradle:2.0.0-alpha9' classpath 'com.android.tools.build:gradle:2.1.0-alpha1' // NOTE: Do not place your

前端与后端性能分析

元气小坏坏 提交于 2021-02-17 04:23:37
一个用户去访问一个页面的请求过程,如下图: 数据传输时间 从浏览器输入网址。敲回车,开始------------真实的用户场景请不要忽略数据传输时间, 当我们发一个请求,到服务器接收到这个请求需要时间,系统处理完后,将处理结果返回给我们也需要时间。 网络传输时间往往也很难模拟真实的场景,因为你网站的用户可能来自世界各地,总不能在世界各地都搞一个客户端,就算可以,我们通过什么方式让他们“同时”发送请求给服务器呢?所以,我们的性能测试都是放在局域网里进行的,就是为了尽量降低传输时间,模拟并发。 客户端处理时间 从浏览器得到响应数据开始----------浏览器拿到返回的数据后,只是一些HTML、JS、CSS、图片的资源,更底层当然是二进制数据,需要时间把它们渲染成我们想要的网页。 然而,我们在LoadRunner、Jmeter进行性能测试的时候,是没有客户端处理时间,你当然可以打开100个网页(多线程+Selenium实现)访问某网站试试,这没对服务器产生多大压力,先把自己的电脑搞挂了。 系统处理时间 从系统得到请求后开始------------这是我们的性能测试主要关心的时间,当系统得到请求后,需要对请求进行处理,可能需要查询数据库服务,也可能调用其他服务,最终生成处理结果并返回给客户端。 基于以上问题,我们所做的性能测试是无法模拟真实的情况,网络传输时间太过复杂

专业商标制作,免费logo在线设计

落爺英雄遲暮 提交于 2021-02-17 04:22:43
logo标志具有同一性的特点,代表着企业的经营理念,价值取向以及文化特色等,因此在设计标志的时候一定要遵循事实。 Logo在线设计:http://logo.xunjietupian.com logo设计的主要组成部分: 1、图形logo 图形logo是指由点,线,面不规则的图形组成。创造出新的图形,而且这组图形在生活中是不存在的。 2、字体logo 字体logo是指使用中文,英文,阿拉伯数字经过艺术设计美化后,形成的图形。 3、图像logo 图像logo是指使用动物,人物,植物,几何图形组成的图像,而且这组图像有提示性地说明某物某事。 企帮手在线logo设计,有专业的团队制作, 全心全意完成每一个logo作品。 还有免费logo在线设计,可以自己体会一下当设计师的感觉。打开页面的“在线生成”端口,然后就可以进入到自由搭配页面 在这里我们可以根据自己的实际情况或是随意模拟进行 logo设计,首先需要对行业和logo的风格进行选择 然后将店铺或是公司的名字填写进去,最后系统就可以根据你的选择进行设计了 来源: oschina 链接: https://my.oschina.net/u/4048880/blog/3004027

ZUK Z2 AospExtended-v6.7 Android 9.0可用的谷歌相机Mod.md

妖精的绣舞 提交于 2021-02-17 04:22:24
[TOC] 参考资料 Google Camera Port: Arnova8G2 apks Google Camera Mods & Other Cameras - Sup… | Lenovo ZUK Z2 (Plus) Downloads Recommended Version for 8.x - oreo GoogleCamera-Pixel2Mod-Arnova8G2-V6.apk or, MGCB_7.0H_C2API_v.4.0_AllinOne_Full_Manual.apk Recommended Version for 7.1.2 - Nougat Note: Use only in those Nougat roms with APi2 support with this config Click Here GCam_5.1.018_by_SerJo87_1.6RC2_test3.apk 系统版本: AospExtended-v6.7-z2_plus-20190821-1940-OFFICIAL.zip Android版本=9.0 cstark27 ×PXv4.1.1_GoogleCamera_7.2.014.apk 信息: Camera PX(com.google.android.GoogleCameraPX4)v7.2.014.278150624

缓慢变化维(SCD)处理方式

孤人 提交于 2021-02-17 04:21:42
维度可以根据变化剧烈程度主要分为无变化维度、缓慢变化维度和剧烈变化维度。例如一个人的相关信息,身份证号、姓名和性别等信息数据属于不变的部分,政治面貌和婚姻状态属于缓慢变化部分,而工作经历、工作单位和培训经历等在某种程度上属于急剧变化字段。 对于剧烈变化维度,通常情况下都是一分为二进行处理的,把其中不常变动的部分单独抽出来作为一个维表,按照缓慢变化维方式进行处理;另外一部分也单独抽取出来,通常作为维度的属性进行处理。 大多数维度表随时间的迁移是缓慢变化的。比如增加了新的产品,或者产品的ID号码修改了,或者产品增加了一个新的属性,此时,维度表就会被修改或者增加新的记录行。这样,在设计维度和使用维度的过程中,就要考虑到缓慢变化维度的处理。 缓慢渐变维,即维度中的属性可能会随着时间发生改变,比如包含用户住址Address的DimCustomer维度,用户的住址可能会发生改变,进而影响业务统计精度,DimCustomer维度就是缓慢渐变维(SCD),对于SCD,处理方式通常有以下几种: Type 1 :完全不记录历史变化信息,在ETL将数据载入SCD的时候,对于会产生变化的属性值直接覆盖,比如对于DimCustomer的Address,每次都会将新的地址update到该字段,因此这个SCD实际上总是最新的当前信息,却没能包含历史信息 更新前: emp_rid(代理键) emp_id(自然键)

spring boot学习01【搭建环境、创建第一个spring boot项目】

折月煮酒 提交于 2021-02-17 04:21:13
1、给eclipse安装spring boot插件 Eclipse中安装Spring工具套件(STS): Help -> Eclipse Marketplace... 在Search标签或者Popular标签中,选择Spring Tool Suite插件,安装: 点击install进行插件的安装,该过程会自动下载安装包进行安装,待所有的包下载完成之后点击下一步(confirm) 选择同意之后条约之后,点击finish,在安装的过程中如果弹出警告提示时一直点击install anyway即可,待所有包安装完成之后点击restart Now 重新启动eclipse,插件安装步骤完成。 2、创建一个spring boot项目 在创建spring boot项目的向导下完善一下内容: 在选择java版本的时候应该确认本机的安装的java版本 运行 --cmd --- java -version查看安装的java jdk的版本 完成如上步骤点击next 进行如下配置:选择spring boot的版本 添加一个web的依赖,该依赖会自动导入Tomcat服务器等相关的包,在Acaliable输入web进行筛选,勾选web下面的web选项,点击finish。至此我们已经成功创建一个新的spring boot项目。 创建好的spring boot项目的如下: 3、如何部署项目、如何创建一个控制器

PLSQL中的三种参数模式IN、OUT、IN OUT

送分小仙女□ 提交于 2021-02-17 04:19:49
原文链接:https://www.cnblogs.com/zbj815/p/6854108.html 1、IN模式 IN模式是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。 错误例子: 1 create or replace procedure in_proc ( 2 p_a in number , -- 形参, 这里的值是调用处传递的实参 3 p_b in number 4 ) as 5 begin 6 p_a := 10 ; --实参被传递进来以后,在这个程序体中值就不可能被改变了 7 p_b := 20 ; 8 DBMS_OUTPUT.PUT_LINE(p_a) ; 9 DBMS_OUTPUT.PUT_LINE(p_b) ; 10 end ; 错误日志: 1 LINE / COL ERROR 2 -- ------ ------------------------------------------- 3 6 / 5 PL / SQL: Statement ignored 4 6 / 5 PLS - 00363: 表达式 ' P_A ' 不能用作赋值目标 5 7 / 5 PL / SQL: Statement ignored 6 7 / 5 PLS - 00363: 表达式 ' P_B ' 不能用作赋值目标 注意:红色区域是错误的代码

Fastjson漏洞复现

南笙酒味 提交于 2021-02-17 04:15:07
前言 前不久传的沸沸扬扬的FastJson反序列化漏洞,相信有不少企业都中招了,当然我司也未能幸免,基于次漏洞更具官方给的补漏措施,已完全可以避免在这不再阐述。本文就拿它从一个简单的FastJson 漏洞开始,搭建漏洞环境,分析漏洞成因,使用条件等。从入门者的角度看懂并复现漏洞触发,拥有属于自己的一套漏洞调试环境。 以下便是部分官方公告: 0x01 Fastjson简介 “Fastjson” 是Alibaba的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。 https://github.com/alibaba/fastjson 0x02 环境搭建 JDK 版本:8u112 、fastjson: 1.2.67、shiro: 1.5.1、slf4j-nop: 1.7.25 0x1 添加依赖包 为了快速添加项目所需要的jar包,创建Maven项目如下 Maven文件:pom.xml 导入工程之后右键pom.xml ,点击下载源码source和document。 0x2 Idea中JDK版本选择 此漏洞应该选择:JDK 8u112 0x3 手动漏洞代码 此时在main文件夹中,添加漏洞代码核心在于调用了fastjson.JSON的parseObject 两函数 0x03