Automated Planetary Terrain Mapping of Mars Using Image Pattern Recognition

Similar documents
Foundation Level Syllabus Usability Tester Sample Exam Answers

Usability Testing Methods An Overview

Foundation Level Syllabus Usability Tester Sample Exam

Folsom Library & RensSearch Usability Test Plan

Keras: Handwritten Digit Recognition using MNIST Dataset

iinview Research First Click Analysis & Other User Metrics

Software testing A.A. 2018/2019

USER-CENTERED DESIGN KRANACK / DESIGN 4

Keras: Handwritten Digit Recognition using MNIST Dataset

Who we tested [Eight] participants, having the following profile characteristics, evaluated [product name].

Improving Government Websites and Surveys with Usability Testing

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

Concepts of Usability. Usability Testing. Usability concept ISO/IS What is context? What is context? What is usability? How to measure it?

arxiv: v1 [cs.lg] 31 Oct 2018

Usability Testing CS 4501 / 6501 Software Testing

Usability Report. Author: Stephen Varnado Version: 1.0 Date: November 24, 2014

IBM MANY EYES USABILITY STUDY

USABILITY REPORT A REPORT OF USABILITY FINDINGS FOR OFF THE BEATEN PATH WEBSITE

BUSINESS DECISION MAKING. Topic 1 Introduction to Statistical Thinking and Business Decision Making Process; Data Collection and Presentation

Dreamweaver Domain 6: Evaluating and Maintaining a Site by Using Dreamweaver CS5

A Tutorial on The Jini Technology

Saving the Project Brief document under its own name

PLT: Inception (cuz there are so many layers)

University of Florida CISE department Gator Engineering. Data Preprocessing. Dr. Sanjay Ranka

Table of Contents. Preface... xxi

HOMEPAGE USABILITY: MULTIPLE CASE STUDIES OF TOP 5 IPTA S HOMEPAGE IN MALAYSIA Ahmad Khairul Azizi Ahmad 1 UniversitiTeknologi MARA 1

Applying Usability to elearning

Towards Systematic Usability Verification

Data Preprocessing. Data Preprocessing

BPS Suite and the OCEG Capability Model. Mapping the OCEG Capability Model to the BPS Suite s product capability.

Usability Testing Methodology for the 2017 Economic Census Web Instrument

Learnability of software

Web Systems Staff Intranet Card Sorting. Project Cover Sheet. Library Staff Intranet. UM Library Web Systems

Usability Report for Online Writing Portfolio

Discovering Information through Summon:

CHAPTER 1 INTRODUCTION

Automatically Improving 3D Neuron Segmentations for Expansion Microscopy Connectomics. by Albert Gerovitch

These Are the Top Languages for Enterprise Application Development

User Testing & Automated Evaluation. Product Hall of Shame! User Testing & Automated Evaluation. Visual Design Review. Outline. Visual design review

7.1 Analysis 7.2 Design 7.3 Development and Testing 7.4 Implementation 7.5 Documentation 7.6 Evaluation

Biometric quality for error suppression

This course is designed for anyone who needs to learn how to write programs in Python.

The Website. Teaching Thoughts. Usability Report. By Jon Morris

Web Evaluation Report Guidelines

CS 160: Evaluation. Outline. Outline. Iterative Design. Preparing for a User Test. User Test

TESTING SOFTWARE QUALITY CHARACTERISTICS

CS 170 Algorithms Fall 2014 David Wagner HW12. Due Dec. 5, 6:00pm

Safety Perception Survey s: Interviewing & Sampling Method Considerations

Logistic Regression with a Neural Network mindset

How to Add Usability Testing to Your Evaluation Toolbox

INTRODUCTION TO DEEP LEARNING

Unit Maps: Grade 7 Math

Introduction CHAPTER1. Strongly Recommend: Guidelines that, if not followed, could result in an unusable application.

Big Data Methods. Chapter 5: Machine learning. Big Data Methods, Chapter 5, Slide 1

Big Mathematical Ideas and Understandings

Deep Tracking: Biologically Inspired Tracking with Deep Convolutional Networks

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

CSc 238 Human Computer Interface Design Chapter 5 Designing the Product: Framework and Refinement. ABOUT FACE The Essentials of Interaction Design

Get the most value from your surveys with text analysis

Requirement Engineering within an Agile Environment BY KEJI GIWA. Digital Bananas Technology

Multimedia Design and Authoring

Class 1 Introduction to Selenium, Software Test Life Cycle.

Usability Testing Essentials

Adapting Software to NetCDF's Enhanced Data Model

The LUCID Design Framework (Logical User Centered Interaction Design)

CUE-10: Moderation Page 1. Comparative Usability Evaluation 10. Moderation. Observing usability test moderators

17 th IEA World Congress

Hyacinth Macaws for Seniors Survey Report

Questionnaire Specification Database for Blaise Surveys

CS 160: Evaluation. Professor John Canny Spring /15/2006 1

Gesture Recognition: Hand Pose Estimation. Adrian Spurr Ubiquitous Computing Seminar FS

Layout Appropriateness: A metric for evaluating user interface widget layout

Prepared by: Marysol Ortega & Diana Arvayo

DATA SCIENCE INTRODUCTION QSHORE TECHNOLOGIES. About the Course:

NANOS SURVEY NANOS SURVEY

Acceptance Test Plan. for WAVED. Version 3.0. Prepared By: Sean Bluestein, Kristian Calhoun, Keith Horrocks, Steven Nguyen, Hannah Pinkos

Software Test Plan Version 1.0

Introduction to Data Science. Introduction to Data Science with Python. Python Basics: Basic Syntax, Data Structures. Python Concepts (Core)

Overview of Today s Lecture. Analytical Evaluation / Usability Testing. ex: find a book at Amazon.ca via search

(Milano Lugano Evaluation Method) A systematic approach to usability evaluation. Part I LAB HCI prof. Garzotto - HOC-POLITECNICO DI MILANO a.a.

BPS BIRT General Designer Usability Improvements Specification

SWEN 444 Human Centered Requirements and Design Project Breakdown

Object-Based Classification & ecognition. Zutao Ouyang 11/17/2015

Applications of Machine Learning on Keyword Extraction of Large Datasets

Safety-enhanced Design EDIS 2014 R (a)(1) Computerized Provider Order Entry

Introduction to Spark

Users Satisfaction with OPAC Services and Future Demands Of Govt. College University, Lahore

Unit title: IT in Business: Advanced Databases (SCQF level 8)

Machine Problem 8 - Mean Field Inference on Boltzman Machine

USABILITY TEST REPORT

Project Management Professional Exam Prep Plus

Tools Control Point Comparison QA-QC Analysis

A Java-based Course in Human-Computer Interaction. Eileen Kraemer. The University of Georgia. Athens, GA interface.

Unit Maps: Grade 7 Math

Data Mining with Oracle 10g using Clustering and Classification Algorithms Nhamo Mdzingwa September 25, 2005

Web Systems Policies Database Guerilla Testing. Project Cover Sheet. Policies Database Usability Evaluation. UM Library Web Systems

Cognitive Walkthrough Evaluation

2011 INTERNATIONAL COMPARISON PROGRAM

Usability Test Plan for Blogger Mobile Application

SWEN 444 Human Centered Requirements and Design Project Breakdown

Transcription:

Automated Planetary Terrain Mapping of Mars Using Image Pattern Recognition Test Plan Version 2.0 Team Strata: Sean Baquiro Matthew Enright Jorge Felix Tsosie Schneider

Table of Contents 1 Introduction. 2 2 Unit Testing. 2 3 Integration Testing. 6 4 Usability Testing........ 7 1

1 Introduction Team Strata has agreed to work with client Ryan Anderson of the US Geological Survey Astrological Science Center (USGS), to create a computer program that would be beneficial to the research being conducted on Mars surface. This document will address the details of the activities required to prepare for and support testing, details that define the sources of information used to prepare the test plan, different standards that will apply to the unit, integration and usability testing of the specified system, as well as define the various testing strategies and testing tools used to complete the testing life cycle of this project. The product being tested is a computer program that automates terrain mapping of Mars surface using convolutional neural networks. 2 Unit Testing The Automated Terrain Mapping of Mars project involved various functions implemented in Python and C++. The C++ functions were written using a C++ library called boost.python in order to enable interoperability between C++ and the Python programming language. This allowed us to use all of our functions through Python and only using C++ as the language to create Python functions that would process large JP2 and TIFF images quicker. With all the functions being used through one programming language, we were able to create a unit testing plan involving only Python. Python provides a variety of unit testing libraries including its standard testing module called PyUnit. PyUnit is a Python unit testing framework, essentially it is the Python language version of JUnit (Java testing framework). The unittest module supports test automation, aggregation of tests into collections, and independence of the tests from the reporting framework. Other important concepts unittest supports include test fixture, test cases, test suites, and a test runner. We will be able to create a collection of test cases and/or suites and use the test runner to execute the tests created and receive the outcome. Below is a detailed plan for unit testing our code in subsets of our system. 2.1 Unit Testing of Extension Plan: The unit testing of the image processing module will consist of testing individual extension functions. These include: getdims: Extracts dimensional image metadata getimage: Populates a numpy array with pixel data 2

gettraining: Populates a numpy array with pixel label information getlabel: Assigns a classification to a given numpy array writeimage: Writes a numpy image representation to disk The functions serve as tools to obtain all the information necessary from the images and presents it in a constrained format required by the neural network architecture. As these functions make use of image files and numpy array s tests will make use of established python libraries for verification of certain aspects. 2.1.1 Test getdims The setup for testing this function makes use of the python image library (PIL) in order to compare the dimensions returned by this function. This test makes use of an image created by PIL and opened as a numpy array. The shape of the PIL opened numpy is compared to the results returned by the getdims function. 2.1.2 Test getimage This test uses a PIL created image, this image is then loading into a numpy array. A seperate numpy array with dimensions obtained from getdims filled with ones is then allocated. The numpy image containing only ones is then passed to the getimage function. The two numpy arrays are then compared element wise for equality. 2.1.3 Test gettraining The testing of this function will make use of a PIL created image. Since the function makes use of a bitwise XOR when an image is exclusively or d with itself the result will be a numpy array of the given dimension where all elements are 0. The numpy passed to the gettraining function is then compared element wise to a numpy XOR d array for equality. 2.1.4 Test getlabel The test setup of this function makes use of a 25600 by 25600 numpy array initialized with zeros. The array is then processed so 256 by 256 blocks along the diagonal are set to 255. A four depth nested loop is then used to test the getlabel function based on varying thresholds and image block dimensions. 3

2.1.5 Test writeimage The setup of this test involves the creation of a numpy array with the dimensions 25600 by 25600. This numpy array is then written to disk. A second numpy array with the desired dimensions is passed to getimage function to load the pixel information that had been written to disk. The numpy used to write the image is then compared element wise to the numpy populated with getimage for equality. 2.2 Unit Testing of Convolutional Neural Network Plan: The unit testing of the convolutional neural network system will consist of testing individual functions. These include: get_labeled_data: Read input array of the image and image labels and returns a list of tuples. trainnetwork: Begins training of the neural network on a test and training file makepredictions: Makes predictions on an input image and writes to an image which gets saved to the directory with marked predictions. getpredictiondata: Creates the prediction data for the input file name taken in. Image must be in the same directory. loaddataset: Loads testing and training images into numpy arrays. convolutionalneuralnetwork: Creates a convolutional neural network and takes the number of epochs as an argument. Download_image: downloads a hirise image when filename follow naming convention i.e., PSP_009650_1755_RED.JP2 The unit testing of the convolutional neural network will consist of testing individual methods and functions. These include get_labeled_data, trainnetwork, makepredictions, getpredictiondata, loaddataset, convolutionalneuralnetwork, and download_image. The functions and methods serve as components that are dependent on each other to make up the neural network behavior and architecture. It should be noted that running the tests will replace and get rid of any file named net.pickle, so all pretrained networks should be renamed or moved in a different location prior to running the tests. 4

2.2.1 Test get_labeled_data Loads a sample test and training image and checks that the function returns the correct shape and type of the data and the correct number of labels for the particular set of images. 2.2.2 Test trainnetwork Tests that the function creates a network with the sample test and train images. To be sure the function fully works, it creates the pretrained pickle data and checks if it exists in the system. 2.2.3 Test makepredictions Creates a neural network instance of five epochs and loads the sample test and train images. After predictions are made, the output image dimensions are compared to the original image dimensions. The test passes if they are the same. 2.2.4 Test getpredictiondata Tests the function on the sample test image and creates image blocks of the default size 32. The output shape is then verified to be of size four (num images, channel, height, width). The dimensions of the output image are also compared to the original image. 2.2.5 Test loaddataset Tests that the function loads the sample test and train images and verifies that the shape is equal to four dimensions and one dimension respectively. 2.2.6 Test convolutionalneuralnetwork This test function makes sure that the return type is of the Neural Network type by checking for its input layer and verifying that it is not none. 5

2.2.7 Test download_image This test simply tests that the url is working and that a user can grab an image using the filename. 3 Integration Testing The integration testing of our system will be broken up into three major modules and will help identify any incorrect exchanges of data between modules. The three major modules will include testing the pre processing of a JP2/TIFF image into numpy arrays, testing the accuracy of the neural network, and testing the writing of a JP2/TIFF image using numpy arrays. The pre processing and writing of a JP2/TIFF image will be tested by performing unit tests on the writeimage function. To train the accuracy of the convolutional neural network we will be using the K fold cross validation technique. More information on the plan of conducting the cross validation technique can be found below in section 3.1. 3.1 10 Fold Cross Validation As part of the integration testing, we will be using the 10 fold cross validation technique to test the efficiency and accuracy of our convolutional neural network. Currently our input and output formats are large scale JP2 and compressed TIFF images that the neural network uses to test and train on detecting terrain features. The Python machine learning library, Lasagne, contains its own cross validation step when training and testing the convolutional neural network. The cross validation step occurs during the training of the neural network. It splits the input data into 80 percent for training and then tests on the remaining 20 percent. This can been seen in figure 1 below. The table below is outputted during the training of the neural network and during each epoch we get the training loss which is the error on the training set of data, validation loss which is the error after running the validation set of data through the trained network, train/val which is the ratio between the two, validation accuracy, and the duration of each epoch. As the epochs increase, both validation and training error may drop. As the training error continues to drop, the network learns the data better and better. While this happens, if the validation error begins to rise, this is known as overfitting. 6

Figure 1: Neural Network in Training In addition to the cross validation occurring during the training of the neural network, we will be conducting our own 10 fold cross validation testing after the network has been trained. This technique is used to evaluate predictive models. In our case it will evaluate whether the convolutional neural network can or cannot detect a terrain type of interest in an image block of the overall image. The original image will be divided into ten equally sized sub datasets. Of the ten samples nine will be used to train the neural network and the remaining one will be used as the validation data to test the neural network. This procedure will then be repeated 10 times until every sub dataset is used for validation once. One of the advantages of using this method is that every sub dataset gets used for testing exactly once and gets to be part of the training nine times. The only disadvantage of using the 10 fold cross validation technique is that the training of the convolutional neural network needs to be rerun ten times. This may be an issue since training the network once over 10 epochs can take about an hour. Using this method will potentially increase our testing time by ten, and even more so if the network should be trained over more epochs to improve accuracy. Using this technique will allow us to estimate the accuracy of our prediction model and allow us to detect and/or prevent overfitting. We will be able to detect overfitting by analyzing the predictions and seeing if we only get results through the use of one testing image. Prevention of overfitting will be done by training the convolutional neural network on ten different images instead on just one. 4 Usability Testing 4.1 Overview The usability testing of our system will help confirm that it is ready for operational use and aid in identifying any problems that impact the ease of use, ease of learning, and overall satisfaction of the user. The scope of this testing will include evaluations 7

developed for the appropriate user of the command line interface of the system. The results of the testing will be used to refine the system and command line interface. 4.2 Target Audience A crucial element of usability testing is selecting users with abilities and backgrounds that are representative of the system s intended typical user. For our project there is currently at this time only one intended user of the system, our sponsor Dr. Ryan Anderson. Therefore all usability evaluations will be designed for this specific user. Ideally, we would test at least five users to create a reasonable confidence in the results. Testing on a single user would normally be a risk, but since Dr. Anderson is the only user the system was designed for at this time, we can be confident in the results received from testing the system with this specific user. 4.3 Testing Process Usability testing will be conducted on site at the US Geological Survey Astrogeology Science Center (USGS) where Dr. Ryan Anderson s office is located. At the start of the evaluation a brief introduction and description of the usability test will be provided to the user. Then the user will be instructed to complete a list of tasks such as loading an image, training the network, and predicting on an input image, without any guidance using the command line interface of the system and encouraged to think aloud and talk through their steps, problems if any, and opinions during the evaluation. The user s activity during evaluation will be monitored and documented by the test team in order to collect qualitative data. Once the user has completed the tasks, an evaluation questionnaire will be provided to the user. Each task included in the task list completed by the user will have an associated question and evaluation scale. The user will answer the questions by circling the appropriate number on the scale and writing any additional comments in the Feedback section provided. In addition, the user will also be asked to verbally share any likes, dislikes, or suggestions with the testers. After the user has completed the questionnaire, a verbal interview will be completed if any problems occurred during the usability testing that need to be explored in more detail to find the answer to the following two questions: 8

1. What did the user find difficult about the task? 2. How could the task be improved or made easier? Figure 2: AToM Questionnaire example 4.4 Goals Specific quantitative and qualitative usability goals were defined to evaluate areas of concern for testing. These goals will help guide the development of the tasks and evaluation questionnaire that will be used in the testing of the command line interface of the system. Goals defined: User will be able to successfully complete tasks without asking for assistance User will be able to successfully complete tasks with provided instructions User will be able to successfully complete tasks within a specific time limit User will be able to successfully complete task on their first try User will feel that the time and effort required is appropriate for each task 9

User will feel that task process is easy to understand and goes along with their own mental model of the process User will find the command line interface simple and effective User will not feel that tasks require any unnecessary steps User will be satisfied with command line interface and feel it provides all the functionality desired 4.5 Methodology Usability will be measured based on a user s performance on a defined set of tasks using the command line interface of the system. Data will be collected through the use of a thinking out loud process practiced by the user during evaluation while the testers take notes, as well as an evaluation questionnaire and verbal interview. Metrics to be collected: Success rate (was the user able to complete the task?) Number of times user asked for help Number of positive/negative remarks made during evaluation Time required for a task Number and type of errors received during a task Overall Satisfaction with the system 10