网站首页 > 编程文章 正文
目标检测是图像处理的重要组成部分。自动驾驶汽车必须检测车道,路面,其他车辆,人,标志和信号等。我们生活在一个动态的世界中,一切都在不断变化。对象检测的应用无处不在。
我们正在研究自动驾驶汽车的深度学习和计算机视觉。特征检测是对象检测的任务之一。那么,什么是特征检测?对于人类,我们了解图案,形状,大小,颜色,长度以及其他可识别物体的物体。它也有点类似于计算机。
特征可以是形状,边缘,长度等任何形式,也可以是所有特征的组合。在我们之前有DeepFake检测的项目,我们使用MSE(均方误差),PSNR(峰值信噪比),SSIM(结构相似性指数)和直方图作为特征从真实图像中识别DeepFake图像。
一个好的算法必须是可重复的和可扩展的。例如,假设目标是从大量图像中检测狗,其中还包含猫和其他动物的图像。
关于特征的表述,它必须是独特的,并且需要在大多数数据中显示。如果我们有大部分与上述两张图片相似的图片,那么这里的不好的特征是什么?
在这种情况下,一个不好的特征就是耳朵的大小。我们的理解是狗耳朵的大小通常较大。但这不是示例图像中的原因。在第一个图像中,狗的耳朵与猫相似,甚至更小。如果我们仅使用耳廓大小作为特征来仅使用这两个图像来训练模型,则我们将有50%的真阴性或假阳性。这带来了另一个重要的观点。如果您想在模型中获得更高的成功,则应谨慎选择该功能。大小尺寸也不是一个好的特征。
我们的目标是识别其他物体,例如道路上的卡车。我们可以使用哈里斯角点检测或精巧边缘检测之类的技术来检测边缘。我们需要将汽车,行人,标志与图像分开。我们可以使用OpenCV专门识别卡车。
import cv2
cv2.matchTemplate()
模板匹配只是一种将输入图像复制到模板图像上,并在模板图像下比较模板图像和输入图像的技术。它返回一个灰度图像,表示该模板与多少个像素匹配。OpenCV提供了许多模板匹配方法。这是相关系数的数学公式。
一旦在两个图像中都找到匹配项,它将选出相似点。OpenCV官方文档在此处提供了带有代码示例的详细信息。让我们找到路上的卡车。
import cv2
import numpy as np
import matplotlib.image as mpimg
from matplotlib import pyplot as plt
%matplotlib inline
image_color =cv2.imread('actual_truck.jpg')
plt.imshow(image_color)
我们从文件中读取图像。我们将在此图像中找到卡车。
图像高度和宽度
将图像转换为灰度
使用灰度的原因是使图像尽可能简单。不需要彩色图像。颜色增加了图像的复杂度,并增加了信噪比。
image_gray = cv2.cvtColor(image_color,cv2.COLOR_BGR2GRAY)
plt.imshow(image_gray,cmap ='gray')
创建模板图像
这是我们的模板图像。OpenCV使用此图像收集了特征并找到了卡车。
import cv2
import numpy as np
import matplotlib.image as mpimg
from matplotlib import pyplot as plt
%matplotlib inline
image_color =cv2.imread('sample_truck.jpg')
x= 235
y = 350
h = 200
w = 150
cropped=image_color[y:y+h, x:x+w]
plt.imshow(cropped)
status = cv2.imwrite('t.jpg', cropped)
print("Image written to file-system :",status)
执行模板匹配
# Perform template matching using OpneCV
result = cv2.matchTemplate(image_gray,template, cv2.TM_CCOEFF_NORMED)
print(result.shape)
plt.imshow(result)
找到卡车
min_val, max_val, min_loc, max_loc =cv2.minMaxLoc(result)
top_left = max_loc
bottom_right = (top_left[0] + w,top_left[1] + h)
cv2.rectangle(image_color, top_left,bottom_right, (10,10,255), 5)
plt.imshow(image_color)
结论
我们介绍了什么是图像处理及其应用。然后我们讨论有关cv2.matchTemplate()。最后,我们使用模板匹配来识别道路上的卡车。
- 上一篇: OpenCV的编译(opencv编译选项)
- 下一篇: 在PDF中,如何把彩色图片转为灰度图?
猜你喜欢
- 2025-03-26 OpenCV的编译(opencv编译选项)
你 发表评论:
欢迎- 最近发表
-
- 90岁老人科目三一把过火爆网络!考驾照、爱美甲……这群“90后”比年轻人潮
- DNF:遗忘之地任务流程,适用于新手起小号,装备修理白漂
- dnf手游:“首款流拍宝珠”,6位玩家眼睁睁看着500万泰拉丢失!
- dnf手游:小熊卡正式升级!可附魔到工会勋章,千万别卖!
- dnf手游:首张“涨抗魔”粉卡火了!以前3万没人要现在准备断货!
- dnf手游:团本币增加!3月26号打团有坑提前避开,浪费门票?
- dnf手游:涨价20倍!曾经没人要的,如今已是妥妥的T0材料!
- dnf手游:“官方鼓励回归”火了,白送玩家+20装备和王子卡等!
- dnf手游:无根之源千万别用!竞拍系统一定要抢否则错过崛起机会
- dnf手游:DNF手游各职业技能加点攻略、装备推荐!小白一看就会
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)