图像算法题目

1,给定0-1矩阵,求连通域。(遇到过N次,笔试面试都有,最好做到能徒手hack代码或者伪代码。)

skimage.measure.label

2,写一个函数,求灰度图的直方图。

from matplotlib import pyplot
import cv2 as cv

def calHistogram(img): # 计算直方图上包含的灰度级数和个数,用字典存储
    if(len(img.shape) != 2):
        print("img size error")
        return None
    histogram = {}
    for i1 in range(img.shape[0]):
        for i2 in range(img.shape[1]):
            if histogram.get(img[i1][i2]) is None:
                histogram[img[i1][i2]] = 0
            histogram[img[i1][i2]] += 1
    # normalize
    for key in histogram:
        histogram[key] = float(histogram[key]) / (img.shape[0]*img.shape[1])
    return histogram

def drawHistoGram(histogram):
    pyplot.figure()
    #设置x轴的最小值,最大值。y轴的最小值,最大值
    pyplot.axis([0, 256, 0, 1])
    #显示网格线
    pyplot.grid(True)
    #key正好就是灰度
    keys = histogram.keys()
    #value是灰度的像素数量,这里是归一化之后的
    values = histogram.values()
    #这里正式绘制直方图
    pyplot.bar(tuple(keys), tuple(values))
    pyplot.show()
def testHistogram():
    test = cv.imread("/Users/xxx/Desktop/real_hotdog.png",0) # 参数1显示原图,参数0显示灰度图
    histogram = calHistogram(test)
    drawHistoGram(histogram)
    cv.imshow("test",test)
    cv.waitKey(0)

testHistogram()


3,写一个均值滤波(中值滤波)

#均值滤波
result = cv.blur(source, (5,5))

4,SIFT原理

1)DoG尺度空间构造(Scale-space extrema detection)提取所有模糊程度上的信息(sift特征),dog:高斯差分金字塔

2)关键点搜索与定位(Keypoint localization)

3)方向赋值(Orientation assignment)

4)关键点描述(Keypoint descriptor)


5,写出高斯算子,Sobel算子,拉普拉斯算子等,以及它们梯度方向上的区别


6,常用的特征提取方法。

sift: 在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出、不会因光照、仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。

hog: 通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。

神经网络:

7,拉普拉斯融合:

用来从图像金字塔低层图像中向上采样重建一个图像。


8,常用的目标检测方法

传统:Haar/LBP/积分HOG/ACF特征+Adaboost级联分类器、HoG+SVM、Discriminatively trained deformable part models(DPM)、模板匹配等。

深度学习方法。


9,常用的边缘提取方法:

基本边缘检测滤波器: Sobel、Prewitt、Roberts算子

 


常用的插值方法。
常用的图像分割算法。
写一个图像resize函数(放大和缩小)。
彩色图像、灰度图像、二值图像和索引图像区别?(索引图像到底是啥?)
深度学习中目标检测的常用方法,异同。
给定摄像头范围和图像大小求分辨率。
如何检测图片中的汽车,并识别车型,如果有遮挡怎么办?
数字识别的流程。
介绍神经网络、SVM、AdaBoost、kNN…(每一个都可能深入问各种细节)
写梯度下降代码。
卷积神经网络与神经网络的区别。
卷积层的作用、pooling层的作用,全连接层的作用。
过拟合和欠拟合分别是什么,如何改善。
1x1卷积核的作用。
计算卷积神经网络某一层参数量。

 

10,

RF和GBDT的区别

GBDT的优点和缺点

LR的原理和Loss的推导

center loss和triple loss(三元组)

难样本到底应不应该做为训练样本吗?为什么?

针对难样本优化的算法

oneclass svm的原理

oneclass svm的两种类型

python二叉树深度优先搜索(前、中、后序遍历)和广度优先搜索(层序遍历)的实现

朋友圈问题(n个节点,两两之间相连的边为1则为朋友,0不是朋友。朋友关系可以传递。如何确定有多少朋友圈)

判定两张人脸是不是同一张脸,如何确定阈值?

嵌入式中,用代码实现区分大端小端,参考1: https://blog.csdn.net/ambercctv/article/details/75270746

参考2:https://blog.csdn.net/kevin_weijc/article/details/53522688

 

bi-LSTM (双向lstm)

BN层的原理,gamma、beta参数的作用

什么样的情况下容易出现过拟合、如何解决

降低计算维度、减少参数个数

 

 

 

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页