Computer Vision COMP90086

Introduction
Finding correspondences between keypoints is a critical step in many computer vision applications. It can be used to align images when constructing a panorama from lots of separate photogtraps, and it is
used to find point correspondences between keypoints detetected in multiple views of a scene.
iuww520iuww520iuww520iuww520iuww520iuww520iuww520iuww520
This assignment uses a dataset generated from many views of the Trevi fountain in Rome. Finding correspondences between detected keypoints is a critical step in the pipeline for reconstructing a 3D representation of the fountain from individual photographs.
The dataset in this assignment is generated as a set of pairs of image patches taken centred at detected keypoints. The image patches are 64x64 pixels each and each training sample is made of two patches placed side by side to make a 128x64 image. For half the training set (10,000 examples in the '1good' subdirectory) the two patches are from two separate views of the same keypoint. For the other half (10,000 examples in the '0bad' subdirectory) the two patches are from two different keypoints. Figure
1 shows an example of each of these. The validation directory is similarly structured but contains four times as many non-matching pairs (2000 examples in '0bad') as matching pairs (500 examples in '1good').
Figure 1: Corresponding (left) and non-corresponding (right) pairs of image patches Your task is to create and train some neural networks that can tackle the problem of determining whether the two patches correspond or not.
1. Baseline Neural Network 2 pt
Run the baseline neural network implementation in the provided python notebook and in your report,
you should include the loss and accuracy curves for the training and validation sets in your report and
discuss what these imply about the baseline model.
The validation set contains more bad examples than good. Why might this be a sensible way of
testing for the task of finding feature correspondences? Should the training environment also reflect
this imbalance?
2. Regularizing your Neural Network 2pt
To regularize the network, your should try adding a regularization layer (see the Keras documenation for these layers). Try adding a Dropout() layer after Flatten() and try different rate values to see what the effect of this parameter is. Include the loss and accuracy plots in your report for three different
choices of the rate parameter. Describe the changes you see in these loss and accuracy plots in your report and suggest what the best choice of rate value is from the three you have reported.
3. Convolutional Neural Network 3pt
Design a Convolutional Neural Network to solve this challenge. If you use Conv2D() layers imme diately after the LayerNormalization layer these convolutions will apply identically to both image patches in each input sample. Try using one or two Conv2D() layers with relu activations. You should explore the value of having different numbers of filters, kernel sizes, and strides before the Flatten() layer.
Briefly describe the set of settings you tried in your report in a table (this should be around 10 settings).
For each setting, report the final training loss and accuracy as well as the validation loss and accuracy.
Include a discussion of the results of these experiments in your report. Identify your best performing
design and discuss why you think this may have been best.

相关推荐
戴西软件2 分钟前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化
十三画者8 分钟前
【文献分享】CANVAS:基于细胞构架与邻域信息的组织病理学虚拟空间肿瘤分析
人工智能·机器学习·数据挖掘·数据分析·数据可视化
燕卫博8 分钟前
借助AI的力量,将 ZYNQ 开发板改造成一个虚拟专用网络网关
人工智能·串口·嵌入式·zynq·reasonix·ser2mcp
sunneo12 分钟前
每周精选GitCode开源项目
人工智能
sinovoip14 分钟前
香蕉派BPI-M7S开源单板计算机采用瑞芯微RK3588s芯片设计,与树莓派产品尺寸一样
人工智能·开源·业界资讯
数据百晓通19 分钟前
2026 智能体重构数据治理:全链路 AI、云生态、场景嵌入赛道解析
大数据·运维·人工智能
特立独行的猫a22 分钟前
小鸿 AI新玩法:面向 AI Agent 的通用语音交互硬件技术方案
人工智能·atomgit·小鸿ai·贾维斯
Elivs37 分钟前
RMSNorm函数
人工智能·算法·机器学习
2401_8322981039 分钟前
AI安全与全球治理:构建可控可信的智能发展新秩序
人工智能
Akir.weiwen41 分钟前
跨层禁止:机器如何拦截非法语义绑定
人工智能·设计规范·语义