飞雪团队

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6445|回复: 0

如何识别图像边缘?

[复制链接]

5344

主题

5432

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
18354
发表于 2020-8-6 11:56:41 | 显示全部楼层 |阅读模式
图像识别(image recognition)是现在的热门技术。
                                                                                                                文字识别、车牌识别、人脸识别都是它的应用。但是,这些都算初级应用,现在的技术已经发展到了这样一种地步:计算机可以识别出,这是一张狗的照片,那是一张猫的照片。
47b2870412b315f62422900196654555.jpg

这是怎么做到的?
a371525e8bd791df084627a1b8bc5da8.jpg

让我们从人眼说起,学者发现,人的视觉细胞对物体的边缘特别敏感。也就是说,我们先看到物体的轮廓,然后才判断这到底是什么东西。
计算机科学家受到启发,第一步也是先识别图像的边缘。
6d7bdc35a8dd7c1c8b6e29d3447c7c31.png

加州大学的学生 Adit Deshpande 写了一篇文章《A Beginner's Guide To Understanding Convolutional Neural Networks》,介绍了一种最简单的算法,非常具有启发性,体现了图像识别的基本思路。
bde21b5b471e5d1d6f8440b81fe199b7.png

首先,我们要明白,人看到的是图像,计算机看到的是一个数字矩阵。所谓"图像识别",就是从一大堆数字中找出规律。
怎样将图像转为数字呢?一般来说,为了过滤掉干扰信息,可以把图像缩小(比如缩小到 49 x 49 像素),并且把每个像素点的色彩信息转为灰度值,这样就得到了一个 49 x 49 的矩阵。
然后,从左上角开始,依次取出一个小区块,进行计算。
a26f5f88c1fb6c62362db79639f5b78e.png

上图是取出一个 5 x 5 的区块。下面的计算以 7 x 7 的区块为例。
接着,需要有一些现成的边缘模式,比如垂直、直角、圆、锐角等等。
653fd3dc5a687454fe98783b9f5f9bb2.png

上图右边是一个圆角模式,左边是它对应的 7 x 7 灰度矩阵。可以看到,圆角所在的边缘灰度值比较高,其他地方都是0。
现在,就可以进行边缘识别了。下面是一张卡通老鼠的图片。
9aee3e0349a04170970d61467b1c21e0.png

取出左上角的区块。
633cc2725f36e88b5f360d34dbca91de.png

取样矩阵与模式矩阵对应位置的值相乘,进行累加,得到6600。这个值相当大,它说明什么呢?
fa376a85e3827c9c89433afd0681f49c.png

取样矩阵移到老鼠头部,与模式矩阵相乘,得到的值是0。
乘积越大就说明越匹配,可以断定区块里的图像形状是圆角。通常会预置几十种模式,每个区块计算出最匹配的模式,然后再对整张图进行判断。
(完)
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|飞雪团队

GMT+8, 2024-11-24 06:04 , Processed in 0.078546 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表