跳至主要內容
荒地荒地

荒地

在荒地产出知识

YeeOnlineJudge
一个基于 Django 和 judge0 的 OnlineJudge
Multiple object tracking: A literature review

Abstract

Multiple Object Tracking (MOT) has gained increasing attention due to its academic and commercial potential. Although different approaches have been proposed to tackle this problem, it still remains challenging due to factors like abrupt appearance changes and severe object occlusions. In this work, we contribute the first comprehensive and most recent review on this problem. We inspect the recent advances in various aspects and propose some interesting directions for future research. To the best of our knowledge, there has not been any extensive review on this topic in the community. We endeavor to provide a thorough review on the development of this problem in recent decades. The main contributions of this review are fourfold: 1) Key aspects in an MOT system, including formulation, categorization, key principles, evaluation of MOT are discussed; 2) Instead of enumerating individual works, we discuss existing approaches according to various aspects, in each of which methods are divided into different groups and each group is discussed in detail for the principles, advances and drawbacks; 3) We examine experiments of existing publications and summarize results on popular datasets to provide quantitative and comprehensive comparisons. By analyzing the results from different perspectives, we have verified some basic agreements in the field; and 4) We provide a discussion about issues of MOT research, as well as some interesting directions which will become potential research effort in the future.


游日山原创大约 15 分钟Machine LeaningMachine LeaningMulti-object Tracking
DETRs Beat YOLOs on Real-time Object Detection

DOI: 10.48550/arXiv.2304.08069

Abstract

Recently, end-to-end transformer-based detectors (DETRs) have achieved remarkable performance. However, the high computational cost of DETRs limits their practical application and prevents them from fully exploiting the advantage of no post-processing, such as non-maximum suppression (NMS). In this paper, we first analyze the negative impact of NMS on the accuracy and speed of existing real-time object detectors, and establish an end-to-end speed benchmark. To solve the above problems, we propose a Real-Time DEtection TRansformer (RT-DETR), the first real-time end-to-end object detector to our best knowledge. Specifically, we design an efficient hybrid encoder to efficiently process multi-scale features by decoupling the intra-scale interaction and cross-scale fusion, and propose IoU-aware query selection to further improve performance by providing higher quality initial object queries to the decoder. In addition, our proposed detector supports flexible adjustment of the inference speed by using different decoder layers without the need for retraining, which facilitates the practical application in various real-time scenarios. Our RT-DETR-L achieves 53.0% AP on COCO val2017 and 114 FPS on T4 GPU, while RT-DETR-X achieves 54.8% AP and 74 FPS, outperforming the stateof-the-art YOLO detectors of the same scale in both speed and accuracy. Furthermore, our RT-DETR-R50 achieves 53.1% AP and 108 FPS, outperforming DINO-DeformableDETR-R50 by 2.2% AP in accuracy and by about 21 times in FPS.


游日山原创大约 8 分钟Machine LeaningMachine LeaningMulti-object Tracking
Multi-object tracking via deep feature fusion and association analysis

DOI: 10.1016/j.engappai.2023.106527

Abstract

We describe a tracking-by-detection framework for multi-object tracking (MOT). It first detects the objects of interest in each frame of the video, followed by identifying association with the object detected in the previous frame. A deep association network is described to perform object feature matching in the arbitrary two frames to infer association degree of objects, and then similarity matrix loss is used to calculate association between each object in different frames to achieve an accurate tracking. The novelty of the work lies in the design of a multi-scale fusion strategy by gradually concatenating sub-networks of low-resolution feature maps in parallel to the main network of high-resolution feature maps, in the construction of a deeper backbone network which can enhance the semantic information of object features, and in the use of a siamese network for training a pair of discontinuous frames. The main advantage of our framework is that it avoids missing detection and partial detection. It is particularly suitable for solving the problem of object ID switch caused by occlusion, entering and leaving of objects. Our method is evaluated and demonstrated on the publicly available MOT15, MOT16, MOT17 and MOT20 benchmark datasets. Compared with the state-of-the-art methods, our method achieves better tracking performance, and is therefore, more suited for MOT tasks.


游日山原创大约 16 分钟Machine LeaningMachine LeaningMulti-object Tracking
Conda 使用指南

什么是 Conda

以下摘自官网

Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.


游日山原创大约 2 分钟opsSSH
SSH 使用指北

Secure Shell (SSH)

以下摘自 Wikipedia

安全外壳协议(Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1]。SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接[2]。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持[3],Windows 10 1803版本已提供OpenSSH工具[4]。


游日山原创大约 3 分钟opsSSH
YeeOnlineJudge 接口文档

认证接口

提示

在请求除 AllowAny 和 IsAuthenticatedOrReadOnly 这两种权限的接口可以在 Header 部分不携带 Bearer Token,请求其余权限的接口请在 Header 中携带 Bearer Token。

{
    ...
    Authorization: Bearer <access_token>,
    ...
}

否则会出现 403 Forbidden ,Token 中含有当前用户的信息,用于鉴权。


游日山原创大约 40 分钟
YeeOnlineJudge 开发文档

此文档记录 YeeOnlineJudge 后端开发

项目依赖

Python 3.9.15

# requirements.txt

celery==5.2.7
Django==4.0
django-celery-beat==2.3.0
django-filter==22.1
django-redis==5.2.0
djangorestframework==3.13.1
djangorestframework-simplejwt==5.2.0
Markdown==3.4.1
Pillow==9.3.0
psycopg2-binary==2.9.5
requests==2.28.1

游日山原创大约 11 分钟
YeeOnlineJudge Getting Start

准备工作

安装 Docker EngineDocker Desktop

部署判题机

  1. 下载并解压判题机 Compose 文件

    wget https://github.com/judge0/judge0/releases/download/v1.13.0/judge0-v1.13.0.zip
    unzip judge0-v1.13.0.zip
    
  2. 修改配置文件

    cd judge0-v1.13.0
    vim judge0.conf
    

    修改数据库和 Redis 配置

    ################################################################################
    # Redis Configuration
    ################################################################################
    # Specify Redis host
    # Default: localhost
    REDIS_HOST=redis
    
    # Specify Redis port.
    # Default: 6379
    REDIS_PORT=
    
    # Specify Redis password. Cannot be blank.
    # Default: NO DEFAULT! MUST BE SET!
    REDIS_PASSWORD=<your-redis-password>
    
    ################################################################################
    # PostgreSQL Configuration
    ################################################################################
    # Specify Postgres host.
    # Default: localhost
    POSTGRES_HOST=db
    
    # Specify Postgres port.
    # Default: 5432
    POSTGRES_PORT=
    
    # Name of the database to use. Used only in production.
    # Default: postgres
    POSTGRES_DB=judge0
    
    # User who can access this database. Used only in production.
    # Default: postgres
    POSTGRES_USER=judge0
    
    # Password of the user. Cannot be blank. Used only in production.
    # Default: NO DEFAULT, YOU MUST SET YOUR PASSWORD
    POSTGRES_PASSWORD=<DB-password>
    

    (可选)修改认证授权配置

    ################################################################################
    # Judge0 Authentication Configuration
    ################################################################################
    # You can protect your API with (AUTHN_HEADER, AUTHN_TOKEN) pair.
    # Each request then needs to have this pair either in headers or
    # query parameters. For example let AUTHN_HEADER=X-Judge0-Token and
    # AUTHN_TOKEN=mySecretToken. Then user should authenticate by sending this
    # in headers or query parameters in each request, e.g.:
    # https://api.judge0.com/system_info?X-Judge0-Token=mySecretToken
    
    # Specify authentication header name.
    # Default: X-Auth-Token
    AUTHN_HEADER=
    
    # Specify valid authentication tokens.
    # Default: empty - authentication is disabled
    AUTHN_TOKEN=
    
    
    ################################################################################
    # Judge0 Authorization Configuration
    ################################################################################
    # Protected API calls can be issued with (AUTHZ_HEADER, AUTHZ_TOKEN) pair.
    # To see exactly which API calls are protected with authorization tokens
    # please read the docs at https://api.judge0.com.
    # API authorization ensures that only specified users call protected API calls.
    # For example let AUTHZ_HEADER=X-Judge0-User and AUTHZ_TOKEN=mySecretToken.
    # Then user should authorize be sending this in headers or query parameters in
    # each request, e.g.: https://api.judge0.com/system_info?X-Judge0-User=mySecretToken
    # Note that if you enabled authentication, then user should also send valid
    # authentication token.
    
    # Specify authorization header name.
    # Default: X-Auth-User
    AUTHZ_HEADER=
    
    # Specify valid authorization tokens.
    # Default: empty - authorization is disabled, protected API calls cannot be issued
    AUTHZ_TOKEN=
    

    (可选)文档作为首页

    # If true the documentation page will be used as a homepage, otherwise, the
    # homepage will be empty. You can always access the documentation page via /docs.
    # Default: false
    USE_DOCS_AS_HOMEPAGE=true
    

    其他可依据个人自行配置

  3. 运行判题机服务并等待片刻使判题机初始化

    docker-compose up -d db redis
    sleep 10s
    docker-compose up -d
    sleep 5s
    
  4. 运行成功后判题机默认监听 http://<your-server-ip-address>:2358,访问 http://<your-server-ip-address> 查看判题机文档


游日山原创大约 3 分钟
YeeOnlineJudge 需求文档

项目概述

文档简介

本文档主要描述YeeOnlineJudge的功能需求点及其结构流程信息,目的在于清晰地定义各模块的需求细节及逻辑流程

需求清单

C端部分

序号 需求名称 需求描述
1 注册/登录 用户使用学号/工号进行登录/注册
2 用户管理 查看和修改个人信息和账号的设置
3 题目、练习和竞赛 题目、练习和竞赛的列表与详情
4 判题 对于提交的题目进行判题
5 支持提交的判题语言 包括不限于 C、C++和 Java
6 排名 全局排名
7 判题状态 全局判题状态
8 公告 公告列表与详情

游日山原创大约 7 分钟
2