Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
1(6) Group no. Course CDT310, Software Engineering Date Proj. mgr. E-mail 1 5/8/2017 Jenny Jutterström jjm05001 Requirements Definition Project Biological Vision DISTRIBUTION Steering group: Frank Lüders Farhang Nemati Yue Lu Project group: Marcus Adolfsson Sven Almgren Mario Cardador Martin Ulrika Hjälmgården Johan Holmqvist Jenny Jutterström Tord Karlsson Mikael Svensson Jonatan Treijs Others: Baran Cürüklü CONTENTS 1 2 3 Introduction .......................................................................................................... 2 1.1 Background ................................................................................................. 2 1.2 General Description .................................................................................... 2 1.3 Definitions .................................................................................................. 2 Requirements........................................................................................................ 2 2.1 How the Requirements Are Organized in the Document ........................... 2 2.2 Main Requirements ..................................................................................... 3 2.3 Additional Requirements ............................................................................ 4 Future Development ............................................................................................ 5 2(6) Course CDT310, Software Engineering 1 1.1 Group no. 1 Date 5/8/2017 Introduction Background The Blind Cortex software development team has been requested to create a software utility which is of great interest to our customer, Baran Cürüklü. The software will be a helpful tool for the customer needs. Besides, it will contribute to the scientific research about the Primary Visual Cortex in the brain. This document describes the requirements and constraints on the software to be developed, and briefly describe what the final product will be like in terms of functionality. The document should be distributed to the Blind Cortex steering group, which is in charge of the quality assurance of the project, and also to the customer to make sure that we are in agreement of the requirements on the product to be developed. 1.2 General Description Seen from the outside, the product will be a piece of software that can take images as input and process them to detect edges. The output is a new image showing which edges were detected. On the inside, the software will be more complicated, since it will perform the image processing based on a plausible biological model, simulating how edge detection works in the human eye and brain. To complete these tasks the product will use a neural network simulation, which is going to be the image analyser and output producer. Some information about image orientation will also be represented in the output image. Interaction with the user will be through a friendly graphical user interface (GUI) which will accept some common image formats as input. 1.3 Definitions Terms NEST Python 2 2.1 Definitions The Neural Simulation Technology Initiative: http://www.nestinitiative.org/index.php/Software:About Python Programming Language: http://www.python.org/doc/faq/general/#what-ispython Requirements How the Requirements Are Organized in the Document The requirements are organized into two subsections; Main Requirements (2.2) and Additional requirements (2.3). 3(6) Course CDT310, Software Engineering Group no. 1 Date 5/8/2017 The main requirements define the requirements needed to make the project make sense, and describe on a high level what the software is supposed to do. The tools and platforms we will use for the implementation of the software are also defined as main requirements. The additional requirements are not critical for the project, but describe what we want the finished product to be like. Each requirement has an identity code on the form: R-XX-NNN. R simply stands for “requirement”, XX is combination of letters describing what type of requirement it is and NNN is a number simply counting the requirements of each type. The letter codes: IO: Requirements dealing with input and output to/from the software. DC: Requirements dealing with design constraints on the software. DE: Requirements dealing with the development environment for the software. UI: Requirements dealing with the user interface of the software. 2.2 Main Requirements Identity R-IO-001 Prio. 1 R-IO-002 1 R-IO-003 1 R-DC-001 1 R-DE-001 1 R-DE-002 1 Description Still image analysis Definition: The software must be able to detect edges in still images. Motivation: This is the main purpose of the software. Dominant orientation output Definition: The software should output some representation of the dominant orientations in each spot of the visual field. Motivation: Detecting orientations of line fragments is an important part of biological edge detection, and should be shown in the output. Image output Definition: The software should output an image showing the detected edges. Motivation: It is important to get a visual result to confirm that the software really can detect edges. Human vision simulation Definition: The software must detect edges by simulating neurons in the human primary visual cortex. Motivation: The purpose of the project is to simulate human vision. NEST simulation tool Definition: The neural networks in the software should be modelled using the NEST simulation tool. Motivation: Building our own neural networks would be a project in itself. Python language Definition: The programming language used to develop the software utility should be Python. Motivation: Writing code in Python is compatible with the NEST Source Baran Cürüklü (customer) Baran Cürüklü (customer) Baran Cürüklü (customer) Baran Cürüklü (customer) Baran Cürüklü (expert) Baran Cürüklü (expert) 4(6) Course CDT310, Software Engineering R-DE-003 2.3 1 Group no. 1 Date 5/8/2017 simulation tool and they will work together in order to get the neural network functionality. LINUX platform Definition: Development of the software should be done under LINUX platform environment/operating system. Motivation: Needed NEST utilities as well as Python language has been tested under this kind of environment. Baran Cürüklü (expert) Additional Requirements Identity R-UI-001 Prio. 2 R-UI-002 2 R-UI-003 2 R-UI-004 2 R-IO-005 1 R-IO-006 1 R-IO-007 1 R-UI-005 1 R-UI-006 1 Description Graphic user interface Definition: The software should include a simple windowing system to allow the user to interact with it. Motivation: A GUI would make it much easier to use the finished program. GUI image loading Definition: From the GUI, the user should be able to choose an image and load it into the simulation model for processing. Motivation: It should be easy to test the system with different images. GUI output viewing Definition: When the processing of an image is done, the user should be able to chose to view the result from the GUI. Motivation: It is desirable to have an easy way of presenting the output to the user. Neural network parameters Definition: Width and height of simple cell receptive fields and number of spots should be adjustable. Motivation: This could be used to tweak the application to produce optimal output for a specific image. JPEG image format Definition: The software should be able to process images of JPEG format. Motivation: JPEG is a very common image format. If the software can handle this format, it will be able to process most images out there. Bitmap image format Definition: The software should be able to process images of Bitmap format. Motivation: Bitmap is a common image format and it would be desirable to be able process images of this format. Spiking times Definition: The software should give some output of the spiking times of the neurons (store it away in a file). Motivation: The customer is interested in seeing this. Abort process Definition: It should be possible to abort a simulation from the GUI. Motivation: Processing large images can be very time consuming. You should not have to wait 5 hours for loading the wrong file. Simulation time estimate Source Blind Cortex project group Blind Cortex project group Blind Cortex project group Blind Cortex project group Baran Cürüklü (customer) Baran Cürüklü (customer) Baran Çürüklü (customer) Blind Cortex project group Blind Cortex 5(6) Course CDT310, Software Engineering Group no. 1 Date 5/8/2017 Definition: The GUI should output an estimate of the time required to project group process a selected image. Motivation: Process times can be long; it would be good for users to know how long they would have to wait for the processing to be done. 3 Future Development The original plan for the project was to develop a product based on biological vision that could detect edges in moving images from web cameras. However, the accomplishment of this goal was unrealistic with the limited time frame of the project, and we instead agreed to develop a system that could detect edges in still images (still using the primary visual cortex model). In an eventual continuation of the project we (the Blind Cortex project group) believe it would be possible to attach a module to the system that splits up moving images to stills so they can be processed by the existing software, and then play the output as a movie when the processing is done. 6(6) Course CDT310, Software Engineering Group no. 1 Date 5/8/2017 REVISION Rev. Page (P) Description ind. Chapt.(C) 001 P3 C1 Added general description 002 P5 C2 Defined main requirements R-IO-001, R-IO-002, R-IO-003, R-DC-00, R-DE-001, R-DE-002, R-DE-003 003 P6 C2 Defined additional requirements R-IO-004 004 P3 C1 Added partial background information 005 P3 C1 Added definitions: Python, NEST 006 P6 C2 Added details for requirements R-DE-002, R-DE-003 007 P3 C1 Added customer as receiver of the Requirements Definition document to the background information. 009 P2,3 C2 Filled out the section about organization of requirements 010 P4 C3 Described eventual future development 011 P4 C2 Removed requirement R-IO-004 (Moving image analysis) 012 P3,4 C2 Edited the misspelling of Baran’s name 013 P4 C2 Added additional requirements R-UI-001, R-UI-002, R-UI-003, R-UI-004. 014 P3 C2 Updated definition of R-DC-001 015 P4 C3 Added requirements R-IO-005 and R-IO-006 016 P3 C2 Updated definition of R-IO-001 017 P5 C2 Updated definition of R-UI-004 018 P2 C1 Removed TBD 019 P5 C2 Added additional requirement R-IO-007 020 P2 C1 Updated Background and General description. 021 P3 C2 Updated motivation of R-IO-002 022 P2 C1 Removed Related documents section (there were no such documents) 023 P4 C2 Added additional requirement R-UI-005 and R-UI-006 024 P5 C2 Updated definition of R-UI-004 Date Initials 20080402 UH 20080402 UH 20080402 UH 20080406 MC 20080406 MC 20080406 MC 20080406 UH 20080411 UH 20080411 UH 20080411 UH 20080411 UH 20080411 UH 20080411 UH 20080411 UH 20080411 UH 20080416 MA 20080416 JJ 20080421 UH 20080421 UH 20080421 UH 20080421 UH 20080421 UH 20080430 MA