Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >自识别标记(self-identifying marker) -(1) 简介

自识别标记(self-identifying marker) -(1) 简介

作者头像
用户1150922
发布于 2018-01-08 08:30:08
发布于 2018-01-08 08:30:08
1.8K0
举报
文章被收录于专栏:计算机视觉life计算机视觉life

一、什么是自识别标记(Self-identifying marker)?

自识别标记在不同的论文中有不同称谓,比如self-identifying marker, self-identifying marker pattern, fiducial marker等, 在此我们统称为自识别标记。 自识别标记乍一看有点类似我们常见的二维码,其每个标记具有唯一性。和二维码不同的是,自识别标记在实际应用中通常由多个一起组合成规则的标记阵列图案(如下图1为8 x 4阵列)。

图1 自识别标记阵列图案示例

二、自识别标记有哪些应用?

自识别标记主要有如下应用:相机标定、安防监控机器人视觉导航、电影拍摄中的特效制作,以及最近风头正盛的增强现实等。下面举例说明。

1、相机标定

自识别标记图案的一个重要应用就是相机标定。相机标定方法有:传统相机标定法、主动视觉相机标定方法、相机自标定法。在此我们主要关注传统相机标定法。 传统相机标定法需要使用尺寸已知的标定物,通过建立标定物上三维空间坐标已知的点与其在一幅图像或多幅图像上二维投影点之间的对应关系,利用一定的算法获得相机模型的内外参数。根据标定物的不同可分为三维标定物和平面标定物(比如棋盘格)。三维标定物可由单幅图像进行标定,标定精度较高,但高精密三维标定物的加工和维护较困难。平面标定物比三维标定物制作简单,一般可以打印张贴在平面上,方便易用,精度也可以保证,但必须采用多幅不同角度拍摄的图像才能完成标定。 根据对应关系来计算相机模型的内外参的算法已经研究的比较深入,比较有名的有张正友标定法,加州理工标定法等。那么问题来了,这个对应关系怎么找?实际上关于确定对应关系的方法研究的人比较少。这是因为,传统的标定方法是个离线的、一劳永逸的过程,一个人可以依靠人工的方法去确定对应关系,通俗点说,就是靠人眼大法,一个一个去数棋盘格上的角点的图像坐标,再分别计算出其对应的三维空间坐标,这样就一一对应起来了。这种方法不仅耗时耗力,而且非常容易出错,在对少量的相机进行标定还勉强可以忍受。随着多媒体技术迅速发展,现在智能设备(如双摄像头手机、全景监控摄像头、虚拟现实眼镜等)中集成的摄像头的数目也越来越多,并且相机的参数也经常改变,许多场景下需要对多个摄像头进行快速标定,这对传统的建立对应关系的方法提出了很大的挑战。 自识别标记阵列图案不仅自带棋盘格,而且其内部包含唯一的识别码,所以可以自动建立标定物上三维空间坐标已知的点与其图像上二维投影点之间的对应关系,这使得用自识别标记图案来标定相机非常方便,仅仅通过拍摄多张不同角度的自识别标记图案即可完成标定,完全不需要人工介入,标定效率很高,而且还可以处理遮挡、大倾斜角度、镜头畸变等情况。

2、机器人导航

自识别标记在机器人视觉导航领域也有很大的用武之地。2013年国际微型飞行器大赛(IMAV2013)第一名就使用了自识别标记用于室内地图和障碍物的标记。如下图2,他们在室内关键位置放置自识别标记,作为无人机视觉导航的“灯塔”,从而实现了无人机自主室内巡航。

图2 单个自识别标记在无人机视觉导航的应用 视频链接在这里:http://www.vision4uav.com/?q=node/386

3、增强现实

在增强现实领域,自识别标记图案可以作为识别图布置在自然场景下,用户通过摄像头识别标记图案,可用于互动游戏、创意广告等应用。 视频An Interactive Augmented Reality Chess就是利用自识别marker技术用于增强现实互动国际象棋游戏,非常有趣。如下图3、4,通过pad摄像头对自识别标记图案进行实时识别,渲染出国际象棋棋盘,视频链接:https://www.youtube.com/watch?v=sqAIvO6wCQI

图3 设计好的自识别标记图案

图4 经过算法处理后呈现在pad上的实时互动游戏

三、网上有什么资料?

1、一个好网站

ArUco: a minimal library for Augmented Reality applications based on OpenCV,网址链接http://www.uco.es/investiga/grupos/ava/node/26 里面有很多资源,包括源码、应用视频、相关论文等。 此外github上还有不少论文作者给出的相关的代码。

2、几篇论文

2008年发表在Machine Vision and Application上的论文:Self-identifying patterns for plane-based camera calibration 2010发表在Vision Modeling and Visualization上的论文CALTag High Precision Fiducial Markers for Camera Calibration

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【云端架构】弹性网卡如何与云服务器绑定
本来看ENI文档没发现什么问题,考虑到社区小伙伴们部分刚上云还是新手。文档写的有点深度就看不懂了,所以更一篇文章写官方文档中没出现的实践操作部分。
墨色明月
2018/07/27
12.9K0
【云端架构】弹性网卡如何与云服务器绑定
基于腾讯云自建高可用DNS方案实践
本篇主要介绍如何在腾讯云平台下自建高可用DNS环境,来满足企业在云上的内外网域名解析的需求。这里主要介绍两种方案的实现方式,方案一: 基于Centos 系统自带的Bind软件构建智能解析方案; 方案二:基于CoreDNS与ETCD来构建CoreDNS高可用方案,在阐述两个方案实现的前,咱们一起回顾下DNS的基础概念及原理。
Rocky-QQ
2022/03/04
7.8K0
如何构建一台网络引导服务器(一)
有些计算机网络需要在各个物理机器上维护相同的软件和配置。学校的计算机实验室就是这样的一个环境。 网络引导 服务器能够被配置为基于网络去提供一个完整的操作系统,以便于客户端计算机从一个中央位置获取配置。本教程将向你展示构建一台网络引导服务器的一种方法。
用户8639654
2021/10/19
1.6K0
DRBD+Heartbeat+NFS高可用性配置笔记
DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中.本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用
星哥玩云
2022/06/30
7170
DRBD+Heartbeat+NFS高可用性配置笔记
制作CentOS6基础镜像
搭建私有云时需要制作一些操作系统的基础镜像,这里也有一些持巧,在这里记录下来以备忘。 安装CentOS6操作系统 这里没有太多好说的,我是从这里下载最小安装ISO进行安装的,安装的硬盘大小为20G。安装时大部分选项都是默认的,只有分区采用了自定义分区方案,200M的boot分区,其它全部作为根分区。如果需要交换分区,以后可以使用文件分区,使用文件分区的操作方法如下: dd if=/dev/zero of=/swapfile bs=1G count=2 chmod 600 /swapfile mkswap -
jeremyxu
2018/05/10
2.7K0
自定义AWVS的Docker镜像
(1)之前发布了AWVS14批量漏洞扫描Docker篇,看到后台很多小伙伴留言问是如何搭建的,故而有此文做个记录
小生观察室
2022/02/16
2.1K0
自定义AWVS的Docker镜像
Linux EIP直通手动配置步骤
步骤一:配置静态IP(先备份ifcfg-eth0,然后清空,粘贴之前需要把里面的斜体具体化)
Windows技术交流
2019/12/20
4.5K1
Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
本文主要介绍了如何使用 Docker 部署一个 Django 应用,包括创建 Docker 镜像、编写 Dockerfile、运行容器和连接主机上的应用。同时,还提供了在启动容器时使用的命令和参数,以及将主机上的目录映射到容器内的方法。最后,文章还对一些可能出现的问题和错误进行了排查和解决。
田飞雨
2016/07/20
9.4K1
Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
Snova基础篇(二):原生环境greenplum集群编译安装
本节主要从snova原生环境-greenplum编译安装入手,熟悉原生环境操作及使用。
snova-最佳实践
2019/12/20
9050
Snova基础篇(二):原生环境greenplum集群编译安装
TKE操作笔记02
本次笔记主要讲述了如何在腾讯云控制台创建并使用你的第一个kubernetes集群,创建过程中每个步骤的区别以及如何选择,保证自己的集群资源达到最优。
聂伟星
2020/06/02
1.6K0
TKE之DNS解析
TKE集群中使用的DNS解析是采用coreDNS,Kubernetes 1.11 和更高版本中,CoreDNS 位于 GA 并且默认情况下与 kubeadm 一起安装
聂伟星
2020/06/27
16.1K0
RocketMQ入门(二)
这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用,可以用于本地测试。
传说之下的花儿
2023/11/28
4870
RocketMQ入门(二)
大数据环境搭建-Linux基础环境配置
或者 链接:https://pan.baidu.com/s/1JdPCMMEq178hXV5V4Ild3Q 密码:03l1
码客说
2022/06/04
1.2K0
大数据环境搭建-Linux基础环境配置
ubuntu网络的设置方式
ubuntu系统进行网络配置有的时候用图形界面不起作用,这种情况下可以直接修改某些启动脚本或配置文件 Ubuntu系统进行网络配置涉及到几个配置文件1./etc/network/interfaces 2./etc/resolv.conf 操纵步骤: 1.打开ubuntu的/etc/network/interfaces文件默认的内容如下: auto lo iface lo inet loopback 动态获取的配置方法: auto eth0 iface eth0 inet dhcp 静态分配的配置方法: auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.1 根据配置要求(是动态分配还是自动获取)修改该配置文件保存。
零式的天空
2022/03/02
2.6K0
ubuntu网络的设置方式
TKE上如何扩容PVC大小?
此专栏是为了“补货”一些官网没有的操作文档,大家走过路过,可以留言告诉我,哪里写的不清不楚的地方,洒家给他整明白了、
pengsiryan
2019/12/27
1.6K0
0558-01-如何在Redhat7上安装FreeIPA
FreeIPA是一个Linux环境下开源的身份管理系统,它提供了用户管理和身份验证,就跟Fayson前面介绍的Microsoft Active Directory或OpenLDAP。FreeIPA集成了Directory Server、Kerberos、PKI、DNS、Certmonger、NTP Server、WebUI、Trusts、Client等组件,也就是说在Hadoop集群要统一用户管理和安全认证一个它就足够了。本篇文章Fayson主要介绍如何在Redhat7上安装FreeIPA。
Fayson
2019/11/28
1.3K0
利用bind实现内网域名解析走内网默认dns,其他域名解析走公网公共dns或自建dns
如果是非AD要用别的DNS,但又不想云平台的内网域名解析不了,那就添加内网域名解析到hosts或者参考如下方法配置。
Windows技术交流
2021/09/17
48.5K2
如何在CentOS 7上添加Swap
使服务器响应更快,并防止应用程序中出现内存不足错误的最简单方法之一是添加一些swap空间。Swap是存储驱动器上的一个区域,操作系统可以在该区域临时存储无法再保存在内存中的数据。
温浪
2018/07/31
3.5K1
TKE创建的容器如何被别的vpc下云主机访问?
此专栏是为了“补货”一些官网没有的操作文档,大家走过路过,可以留言告诉我,哪里写的不清不楚的地方,洒家给它整明白了、
pengsiryan
2020/01/03
3.4K0
TKE操作指南 - 创建TKE CVM容器集群(八)
现在跳转到了私有网络创建界面,由于容器集群网络只支持私有网络,点击现在新建(容器集群网络只支持私有网络),输出私有网络名称(fengliang-vpc),和子网名称(fengliang-subnet-vpc),可用区我这里选择的是广州三区,点击创建。
亮哥说TKE
2019/08/02
2.3K0
相关推荐
【云端架构】弹性网卡如何与云服务器绑定
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档