ILSVRC竞赛详细介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ILSVRC竞赛详细介绍相关的知识,希望对你有一定的参考价值。
参考技术A ILSVRC(ImageNet Large Scale Visual Recognition Challenge)是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一,代表了图像领域的最高水平。ImageNet数据集是ILSVRC竞赛使用的是数据集,由斯坦福大学李飞飞教授主导,包含了超过1400万张全尺寸的有标记图片。ILSVRC比赛会每年从ImageNet数据集中抽出部分样本,以2012年为例,比赛的训练集包含1281167张图片,验证集包含50000张图片,测试集为100000张图片。
ILSVRC竞赛的项目主要包括以下几个问题:
(1)图像分类与目标定位(CLS-LOC)
图像分类的任务是要判断图片中物体在1000个分类中所属的类别,主要采用top-5错误率的评估方式,即对于每张图给出5次猜测结果,只要5次中有一次命中真实类别就算正确分类,最后统计没有命中的错误率。
2012年之前,图像分类最好的成绩是26%的错误率,2012年AlexNet的出现降低了10个百分点,错误率降到16%。2016年,公安部第三研究所选派的“搜神”(Trimps-Soushen)代表队在这一项目中获得冠军,将成绩提高到仅有2.9%的错误率。
目标定位是在分类的基础上,从图片中标识出目标物体所在的位置,用方框框定,以错误率作为评判标准。目标定位的难度在于图像分类问题可以有5次尝试机会,而在目标定位问题上,每一次都需要框定的非常准确。
目标定位项目在2015年ResNet从上一年的最好成绩25%的错误率提高到了9%。2016年,公安部第三研究所选派的“搜神”(Trimps-Soushen)代表队的错误率仅为7%。
(2)目标检测(DET)
目标检测是在定位的基础上更进一步,在图片中同时检测并定位多个类别的物体。具体来说,是要在每一张测试图片中找到属于200个类别中的所有物体,如人、勺子、水杯等。评判方式是看模型在每一个单独类别中的识别准确率,在多数类别中都获得最高准确率的队伍获胜。平均检出率mean AP(mean Average Precision)也是重要指标,一般来说,平均检出率最高的队伍也会多数的独立类别中获胜,2016年这一成绩达到了66.2。
(3)视频目标检测(VID)
视频目标检测是要检测出视频每一帧中包含的多个类别的物体,与图片目标检测任务类似。要检测的目标物体有30个类别,是目标检测200个类别的子集。此项目的最大难度在于要求算法的检测效率非常高。评判方式是在独立类别识别最准确的队伍获胜。
2016年南京信息工程大学队伍在这一项目上获得了冠军,他们提供的两个模型分别在10个类别中胜出,并且达到了平均检出率超过80%的好成绩。
(4)场景分类(Scene)
场景分类是识别图片中的场景,比如森林、剧场、会议室、商店等。也可以说,场景分类要识别图像中的背景。这个项目由MIT Places团队组织,使用Places2数据集,包括400个场景的超过1000万张图片。评判标准与图像分类相同(top-5),5次猜测中有一次命中即可,最后统计错误率。
2016年最佳成绩的错误率仅为9%。
场景分类问题中还有一个子问题是场景分割,是将图片划分成不同的区域,比如天空、道路、人、桌子等。该项目由MIT CSAIL视觉组织,使用ADE20K数据集,包含2万张图片,150个标注类别,如天空、玻璃、人、车、床等。这个项目会同时评估像素及准确率和分类IOU(Intersection of Union)
官网: http://www.image-net.org/challenges/LSVRC/
2017 年 7 月 26 日,将标志着一个时代的终结。
那一天,与计算机视觉顶会 CVPR 2017 同期举行的 Workshop——“超越 ILSVRC”(Beyond ImageNet Large Scale Visual Recogition Challenge),将宣布计算机视觉乃至整个 人工智能 发展史上的里程碑——IamgeNet 大规模视觉识别挑战赛将于 2017 年正式结束,此后将专注于目前尚未解决的问题及以后发展方向。
基于Java+vue实现高校学科竞赛项目系统详细设计
博主介绍:✌公司项目主程、全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌
🍅文末获取源码联系🍅
前言介绍:
随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。大学生学科竞赛报名管理系统,主要的模块包括查看首页、个人中心、用户管理、竞赛学科管理、竞赛等级管理、竞赛信息管理、竞赛报名管理、取消报名管理、竞赛成绩管理、获奖通知管理、留言板管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。要想实现大学生学科竞赛报名管理系统的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的信息,并由此分析得出的关联信息等大量的数据都由数据库管理。本文中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。本系统的开发使获取大学生学科竞赛报名管理系统信息能够更加方便快捷,同时也使大学生学科竞赛报名管理系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作。
系统设计:
系统架构图属于系统设计阶段,系统架构图只是这个阶段一个产物,系统的总体架构决定了整个系统的模式,是系统的基础。大学生学科竞赛报名管理系统的整体结构设计如图所示。
功能截图:
大学生学科竞赛报名管理系统,在系统的首页可以查看首页、竞赛信息、竞赛资讯、留言反馈、个人中心、后台管理等信息进行详细操作,如图5-1所示。
竞赛信息列表页面:
竞赛信息,在竞赛信息页面中可以查看竞赛标题、竞赛学科、封面图、竞赛等级、报名时间、竞赛要求、组织方、竞赛时间、竞赛地点、发布日期等信息,如图5-2所示。
留言反馈页面、用户可以留言评论交流
用户注册,在用户注册页面通过填写用户名、密码、姓名、学校、联系电话、邮箱等信息完成用户注册,如图所示。在个人中心页面通过填写用户名、密码、姓名、性别、学校、联系电话、邮箱等信息进行个人信息修改操作,还可对我的收藏进行相对应操作,如图所示。
管理员功能模块
管理员登录,管理员通过输入用户名、密码、选择角色等信息,然后点击登录就能登录到系统进行系统的使用了,如图5-5所示。
管理员登录进入系统之后,就可以对所有的信息进行查看,可以查看到首页、个人中心、用户管理、竞赛学科管理、竞赛等级管理、竞赛信息管理、竞赛报名管理、取消报名管理、竞赛成绩管理、获奖通知管理、留言板管理、系统管理等,并且还可以对其进行相应的操作管理,如图5-6所示。
用户管理,在用户管理页面中可以对索引、用户名、姓名、头像、性别、学校、联系电话、邮箱等信息进行详情,修改或删除等操作,如图5-7所示。
竞赛学科管理,在竞赛学科管理页面中可以对索引、竞赛学科等信息进行详情,修改或删除等操作,如图5-8所示。
竞赛信息管理,在竞赛信息管理页面中可以对索引、竞赛标题、竞赛学科、封面图、竞赛等级、报名时间、组织方、竞赛时间、竞赛地点、发布日期等信息进行详情、查看评论、修改或删除等操作,如图5-9所示。
竞赛报名管理,在竞赛报名管理页面中可以对索引、报名编号、竞赛标题、竞赛学科、报名时间、状态、用户名、姓名、联系电话、学校、审核回复、审核状态、审核等信息进行详情、成绩、修改或删除等操作,如图5-10所示。
竞赛成绩管理,在竞赛成绩管理页面中可以对索引、报名编号、竞赛标题、竞赛学科、竞赛成绩、登记日期、备注、用户名、姓名、学校等信息进行详情、获奖、修改或删除等操作,如图5-11所示。
获奖通知管理,在获奖通知管理页面中可以对索引、报名编号、竞赛标题、竞赛学科、获奖情况、获奖日期、用户名、姓名、学校等信息进行详情,修改或删除等操作,如图5-12所示。
留言板管理,在留言板管理页面中可以对索引、用户名、留言内容、回复内容等信息进行详情、回复、修改或删除等操作,如图5-13所示。
系统管理,在竞赛资讯页面中可以对索引、标题、图片等信息进行详情,修改或删除等操作,还可对轮播图管理进行操作,如图5-14所示。
5.3用户后台功能模块
用户登录进入系统后台可以查看首页、个人中心、竞赛报名管理、取消报名管理、竞赛成绩管理、获奖通知管理、我的收藏管理等信息进行详细操作,如图5-15所示。
竞赛报名管理,在竞赛报名管理页面中可以对索引、报名编号、竞赛标题、竞赛学科、报名时间、状态、用户名、姓名、联系电话、学校、审核回复、审核状态等信息进行详情、取消、删除等操作,如图5-16所示。
取消报名管理,在取消报名管理页面中可以对索引、报名编号、竞赛标题、竞赛学科、报名时间、取消原因、取消时间、备注、用户名、联系电话、学校、审核回复、审核状态等信息进行详情,修改或删除等操作,如图5-17所示。
获奖通知管理,在获奖通知管理页面中可以对索引、报名编号、竞赛标题、竞赛学科、获奖情况、获奖日期、用户名、姓名、学校等信息进行详情操作,如图5-18所示。
代码实现:
/**
* 竞赛成绩
* 后端接口
* @author
* @email
* @date 2022-03-22 11:09:03
*/
@RestController
@RequestMapping("/jingsaichengji")
public class JingsaichengjiController
@Autowired
private JingsaichengjiService jingsaichengjiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,JingsaichengjiEntity jingsaichengji,
HttpServletRequest request)
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu"))
jingsaichengji.setYonghuming((String)request.getSession().getAttribute("username"));
EntityWrapper<JingsaichengjiEntity> ew = new EntityWrapper<JingsaichengjiEntity>();
PageUtils page = jingsaichengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingsaichengji), params), params));
return R.ok().put("data", page);
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,JingsaichengjiEntity jingsaichengji,
HttpServletRequest request)
EntityWrapper<JingsaichengjiEntity> ew = new EntityWrapper<JingsaichengjiEntity>();
PageUtils page = jingsaichengjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingsaichengji), params), params));
return R.ok().put("data", page);
/**
* 列表
*/
@RequestMapping("/lists")
public R list( JingsaichengjiEntity jingsaichengji)
EntityWrapper<JingsaichengjiEntity> ew = new EntityWrapper<JingsaichengjiEntity>();
ew.allEq(MPUtil.allEQMapPre( jingsaichengji, "jingsaichengji"));
return R.ok().put("data", jingsaichengjiService.selectListView(ew));
/**
* 查询
*/
@RequestMapping("/query")
public R query(JingsaichengjiEntity jingsaichengji)
EntityWrapper< JingsaichengjiEntity> ew = new EntityWrapper< JingsaichengjiEntity>();
ew.allEq(MPUtil.allEQMapPre( jingsaichengji, "jingsaichengji"));
JingsaichengjiView jingsaichengjiView = jingsaichengjiService.selectView(ew);
return R.ok("查询竞赛成绩成功").put("data", jingsaichengjiView);
/**
* 后端详情
*/
@RequestMapping("/info/id")
public R info(@PathVariable("id") Long id)
JingsaichengjiEntity jingsaichengji = jingsaichengjiService.selectById(id);
return R.ok().put("data", jingsaichengji);
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/id")
public R detail(@PathVariable("id") Long id)
JingsaichengjiEntity jingsaichengji = jingsaichengjiService.selectById(id);
return R.ok().put("data", jingsaichengji);
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody JingsaichengjiEntity jingsaichengji, HttpServletRequest request)
jingsaichengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jingsaichengji);
jingsaichengjiService.insert(jingsaichengji);
return R.ok();
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody JingsaichengjiEntity jingsaichengji, HttpServletRequest request)
jingsaichengji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jingsaichengji);
jingsaichengjiService.insert(jingsaichengji);
return R.ok();
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody JingsaichengjiEntity jingsaichengji, HttpServletRequest request)
//ValidatorUtils.validateEntity(jingsaichengji);
jingsaichengjiService.updateById(jingsaichengji);//全部更新
return R.ok();
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids)
jingsaichengjiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
/**
* 提醒接口
*/
@RequestMapping("/remind/columnName/type")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map)
map.put("column", columnName);
map.put("type", type);
if(type.equals("2"))
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null)
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
if(map.get("remindend")!=null)
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
Wrapper<JingsaichengjiEntity> wrapper = new EntityWrapper<JingsaichengjiEntity>();
if(map.get("remindstart")!=null)
wrapper.ge(columnName, map.get("remindstart"));
if(map.get("remindend")!=null)
wrapper.le(columnName, map.get("remindend"));
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu"))
wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
int count = jingsaichengjiService.selectCount(wrapper);
return R.ok().put("count", count);
论文参考:
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信获取联系方式👇🏻👇🏻👇🏻
打卡 文章 更新 268/ 365天
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻
以上是关于ILSVRC竞赛详细介绍的主要内容,如果未能解决你的问题,请参考以下文章
VGG 系列的探索与pytorch实现 (CIFAR10 分类问题) - Acc: 92.58 % (一文可通VGG + pytorch)