Visualisation of concurrent and objectoriented programs
DEIF A S 高级图形界面数据表,AGI 400系列说明书
Advanced Graphical Interface, AGI 400 series●For dedicated HMI solutions●Advanced programming software●Designed for marine and harshenvironments●Available in 7", 10", 15" and 21"AGI 400 series data sheet 4921240564 UK1. General information1.1. Application and advantages (3)1.1.1. Application (3)1.1.2. Advantages (3)2. Functionallity2.1. Funtionallity (5)2.1.1. Remote access (5)2.1.2. Software functionality (6)2.1.3. Maximum resources (8)2.1.4. Communication protocols (9)3. Technical information3.1. Specifications (11)3.1.1. Product data and dimensions, AGI 407 (11)3.1.2. Product data and dimensions, AGI 410 (14)3.1.3. Product data and dimensions, AGI 415 (17)3.1.4. Product data and dimensions, AGI 421 (20)3.1.5. Connections (22)4. Ordering information4.1. Order specifications and disclaimer (23)4.1.1. Order specifications (23)4.1.2. Disclaimer (23)1. General information1.1 Application and advantages1.1.1 ApplicationA comprehensive HMI solution, DEIF’s AGI 400 series connects to all DEIF Multi-line controllers, as well as third party electronics, via standard defined communication protocols, featuring functionalities which eliminate the need for other instruments, thus saving you both space and wiring.The AGI 400 series is intended for visualisation and active control in multiple applications managed on board maritime vessels or platforms, where it provides full graphical overviews and user-friendly touch screen con-trol with a quality display that is easily readable even at sharp angles. Monitor or control multiple setups si-multaneously, or share data via Ethernet connections, effectively enabling the DEIF HMI to be used as a small SCADA system. AGI 400 supports multiple users levels and LAN clients, ensuring user control in sever-al levels.Application examples●Energy monitoring system - SEMSMonitor, track and store your energy production and consumption to optimise and implement the energy awareness on board the vessel.●Alarm handling and monitoringUse the AGI to monitor alarms. View historical alarm data and acknowledge active alarms.●Power management systems - control and supervisionWhen you have multiple gensets, bus tie breakers, etc., and you need to have the overall overview, the AGI can communicate with the controllers to create this overview and let you manage the PMS from one point.●Graphical interface - mechanical and electrical systemsInterface with mechanical and electrical equipment to have a system overview locally. Trend measured values to monitor operation performance or when making fault findings on the equipment.All systems mentioned above must comply with the guidelines of the classification societies.1.1.2 AdvantagesHardwareAGI 407, AGI 410:●TFT colour display, LED backlight 500cd/m2●24bit colour resolution●Capacitive touch screen, supporting multi-touch widgets● 3 Ethernet ports with individual MAC address with bridge option● 2 USB2.0 host ports●RS-232, RS-422 and RS-485 serial communication●SD card slot●Optional plug-in module for CANopen/J1939 communication●Slim design. Mounting depth less than 60 mm●Display backlight dimmable to 0 %●LED backlight timeout option, for extensive LED durabilityAGI 415, AGI 421:●TFT colour display, LED backlight 300cd/m2●24bit colour resolution●Capacitive touch screen, supporting multi-touch widgets● 3 Ethernet ports with individual MAC address with bridge option● 2 USB2.0 host ports●RS232, RS 422 and RS485 serial communication●SD card slot●Optional plug-in module for CANopen/J1939 communication●Slim design. Mounting depth less than 50 mm●Display backlight dimmable to 0 %●LED backlight timeout option, for extensive LED durabilitySoftwareThe AGI 400 series uses Linux RT operating system, and the platform has been designed to run the DEIF AGI software.●Full vector graphic support. Native support of SVG graphic objects. Transparency and alpha blending.●Full object dynamics: Control visibility and transparency, move, resize and rotate any object on screen.Change properties of basic and complex objects.●TrueType fonts.●Multi-language/alphabets and applications. Easily create and manage your applications in multiple lan-guages to meet global requirements.●AGI Creator supports easy third party translations and help to reduce development and maintenancecosts of the application, with its build in language tools.●Data display in numerical, text, bar graph, analogue gauges and graphic image formats.●Rich set of state-of-the-art HMI features: Data acquisition, alarm handling, scheduler and timed actions(daily and weekly schedulers, exception dates), recipes, users and passwords, email and RSS feeds.●Multiple drivers communication capability, see separate section in this document.●Mobile and tablet compatible WEB server embedded, for easy mobile platform implementation.●Remote monitoring and control. Client-server functionality. Mobile clients supported.●Offline simulation with AGI Creator.●Supports powerful Codesys PLC runtime for automating HMI applications.●Rich gallery of industrial standardiser symbols and objects.●Embedded own user gallery workspace for fast application development.●PDF reader for on-screen user guide reading.Application development support●DEIF specific application templates, free of charge.●DEIF importable communication setup files, compatible with a DEIF controller.●DEIF graphics included, covering over 4000 DEIF specific graphical elements.●DEIF templates include a fully customisable menu structure.●AGI system setting, included in templates.2. Functionallity2.1 Funtionallity2.1.1 Remote accessAGI 400 series offer the following option to connect and control remotely:Remote options availableAGI Client - an MS Windows parallel client YES (max.4)AGI WEB - tablet and smartphone access YES, via configurable AGI web server VNC server YESEmail client with SSL YESFTP server YES2.1.2 Software functionalityThe below table shows the software functionallityUser functionalityScreen image orientation Landscape 0°, portrait 90°, landscape 180° and por-trait 270°Multiple protocols YES, Please see protocol sectionData transfer between protocols YESRTC with NTP synchronisation YES, with internal maintenance free battery backup Time scheduled tasks YESLED back light off with custom timeout YESScreen saver with custom timeout YESLive trending curves YESAlarm handling YESTrend data logging YESHistorical data logging and export to SD card/USB YES (export trending)Logging events (audit trails)YESRetentive memory YESRecipe handling YESInternal buzzer YESIndustrial widgets YESCustom widget library YESPrinter and PDF reports YESPDF reader YESUser/access management YES, local and client/remoteMulti-touch support YES - swipe and pinch zoomIP camera support YES - monitor and controlHTML 5 webbrowser support YES - based on web kitTrueType fonts YES, support multiple alphabetsSVG images YESMulti-language YESObject dynamics YES, visibility, opacity, position, size, rotation JavaScripting YESCODESYS runtime add on YES, V3.5 (license needed to enable)AGI Creator - application designer softwareUpdate project via USB memory YESProgramming and updating over LAN YESPassword protection of projects YESUpload from AGI and re-work project YESSimulation online/offline YESImport/Export TAG list YESImport/Export alarm list YESConverting existing application to newest version YESLanguage list YES - import/export to spreadsheet file for transla-tion2.1.3 Maximum resourcesMaximum resources availableNumber of pages1000Number of basic widgets/objects2000 x pageNumber of tags10000Number of dialogue pages50 (max 5 can be opened simultaneously) Number of object of any types in one page2000Number of recipes32Number of parameter set for a recipe1000Number of elements for a recipe1000Number of user groups50Number of users50Number of concurrent clients4Number of schedulers30Number of alarms2000Number of template pages50Number of actions programmable per button32Number of trend buffers30Number of curves per trend widget5Number of curves per page10Number of samples per trend buffer/block200000Number of trend buffer samples for a project1200000Number of trend buffer tags200Number of messages in a message field1024Number of languages12Number of events per buffer2048Number of event buffers4Number of maximum data transfers1000JavaScript file size per page16 KbRetentive memory16 KbSize of project on disk60 MbMax. protocols42.1.4 Communication protocolsThe below table shows the supported communication protocols.Protocol Compatible hardware Modbus RTU GenericModbus RTU server GenericModbus TCP GenericModbus TCP server GenericOPC UA client GenericOPC UA server Generic (TAGS and variables)CANopen HMI GE FanucMoeller SAM GPM500 ISaGrafCODESYS V3Codesys V3 DEIF license is required CAN J1939DEIF CANopen module required NMEA 0183GenericEthernet/IP CIP Logix 5000Omron SysmacMicro800Allan Bradley DF1PLC3PLC5/10/12/15/25PLC5/40/40LPLC5/60/60LSLC500 fixed I/O SLC500 Modular I/O Micrologix 1000 Micrologix 1500 Ultra5000Allan Bradley DH 485SLC500 fixed I/OSLC500 Modular I/O Micrologix 1000 Micrologix 1500Allan Bradley ENET PLC 5 vie NET-ENIPLC5/10-25SLC/Micrologix/NET-ENI SLC500 Modular I/OBeckhoff ADS BC/BX PC/CXMitsubishi FX ETH FX1NFX2N FX3G FX3UMitsubishi FX SER FXFX0/FX0SFX0NFX1N FX1S FX2N FX3G FX3UMitsubishi Q/L ETH Q00J/Q00/Q01Q02/Q02H/Q06H/Q12H/Q25HQnUL02CPU L26CPU-BTQ170M-PLC CPU Q170M-Motion CPUOmron FINS ETH CJx/CS1x/CP1x Omron FINS SER CJx/CS1x/CP1xProtocol Compatible hardwareSiemens Simatic S7 ETH S7-300S7-313/314/315S7-412S7-413S7-414S7-416S7-315-2 DPS7-318-2 DP S7-417S7-319-3PN DPS7-1200 CPU 1211 / 1212 S7-1200 CPU 1214 / 1215 S7-1500 CPU 15xx LOGO! 0BA7ET200S IM151Siemens Simatic S7 MPI S7-300S7-313/314/315S7-412S7-413S7-414S7-416S7-315-2 DPS7-318-2 DPS7-417S7-319-3PN DPSiemens Simatic S7 PPI S7-212S7-214S7-215/216S7-221S7-222S7-224/226 S7-226XM3. Technical information3.1 Specifications3.1.1 Product data and dimensions, AGI 407DisplayType TFTResolution800x480 pixelActive display area7" diagonalAspect ratio H/V16:9Colours24 bit (16 million)Viewing angle (H/V)170/170Backlight LEDBrightness500 Cd/m2 typ.Backlight dimming 0-100%YesBacklight time out Yes, customisableBacklight service time50.000 h or more*System resourcesOperating system Linux RTCPU ARM Cortex-A9 iMX.6 Dual Core 1 GHzRAM 1 GB DDRUser memory 4 GB Flash/64 KB FRAMOperator interfaceTouch screen Projected capacitive, multi-touchInterfaceEthernet 2 pcs. 10/100 Mbit, 1 pcs. 10/100/1000 Mbit USB 2 x USB 2.0 (hosts) - max. 500 mASerial RS-232, RS-485, RS-422, software configurable Expansion slot 2 optional plug-insMemory card SD card slotRatingsPower supply voltage24 V DC (10 to 32 V DC)Current consumption0.7 A at 24 V DC (max.)Fuse Automatic, self-resettableWeight Approximately 1.3 kg (un-boxed)Battery Rechargeable Lithium battery, not user-replaceableEnvironmental conditionsOperating temperature-20° C to +55 °C (vertical installation)Storage temperature-30° C to +70 °COperating and storage humidity95 % RH Condensation IEC 60068-2-30 Db (Cyclic)Vibration IEC 60068-2-6 and IACS UR E10.2-13.2 Hz ±1 mm13.2-100 Hz 0.7 gShock IEC 60068-2-27, test Ea50 g 11 msProtection class IP66 (front)IP20 (rear)According IEC/EN 60529DimensionsFaceplate A x B187x147 mm (7.36x5.79“)Cutout C x D176x136 mm (6.93x5.35“)Depth E + F47+8 mm (1.85+0.31”)ApprovalsCE EN 61000-6-4 Emission, installation in industrial environmentsEN 61000-6-2 Immunity, installation in industrial environmentsEN 60945-2002 Maritime navigation and radio communication equipmentand systemsDNV GL IEC 60092-504 Electrical Installations in Ships - Part 504: Special fea-tures - Control and Instrumentation (IACS UR E10 Bridge and deck zone)IEC 60533 Electrical and electronic installations in ships – electromag-netic compatibility (IACS UR E10 Bridge and deck zone)DNV GL Type Approval Certificate (Pending)UL UL508 Listed (Pending)Haz. Loc. Class I, Division 2, Groups A, B, C and D (Pending)* Time of continuous operation until the brightness of the backlight reaches 50 % of the rated value when the surrounding air temperature is 25 °C. Extended use in environments where the surrounding air temperature is 40 °C or higher may degrade backlight quality/reliability/durability.Dimensions3.1.2 Product data and dimensions, AGI 410DisplayType TFTResolution1280x800 pixelActive display area10.1" diagonalColours24 bit (16 million)Aspect ratio H/V16:9Viewing angle (H/V)170/170Backlight LEDBrightness500 Cd/m2 typ.Backlight dimming 0-100 %YesBacklight time out Yes, customisableBacklight service time50.000 h or more*System resourcesOperating system Linux RTCPU ARM Cortex-A9 iMX.6 Dual Core 1 GHzRAM 1 GB DDRUser memory 4 GB Flash/64 KB FRAMOperator interfaceTouch screen Projected capacitive, multi-touchInterfaceEthernet 2 pcs. 10/100 Mbit, 1 pcs. 10/100/1000 MbitUSB 2 x USB 2.0 (hosts) - max. 500 mASerial RS-232, RS-485, RS-422, software configurable Expansion slot 2 optional plug-insMemory card SD card slotRatingsPower supply voltage24 V DC (10 to 32 V DC)Current consumption 1 A at 24 V DC (max.)Fuse Automatic, self-resettableWeight Approximately 1.7 kg (un-boxed)Battery Rechargeable Lithium battery, not user-replaceableEnvironmental conditionsOperating temperature-20° C to +55 °C (vertical installation)Storage temperature-30° C to +70 °C95 % RH Condensation IEC 60068-2-30 Db (Cyclic)Operating and storage humidi-tyVibration IEC 60068-2-6 and IACS UR E102-13.2 Hz ±1 mm13.2-100 Hz 0.7 gShock IEC 60068-2-27, test Ea50 g 11 msProtection class IP66 (front)IP20 (rear)According IEC/EN 60529DimensionsFaceplate A x B282x197 mm (11.10x7.80“)Cutout C x D271x186 mm (10.67x7.32“)Depth E + F56+8 mm (2.20+0.33”)ApprovalsCE EN 61000-6-4 Emission, installation in industrial environmentsEN 61000-6-2 Immunity, installation in industrial environmentsEN 60945-2002 Maritime navigation and radio communication equipmentand systemsDNV GL IEC 60092-504 Electrical Installations in Ships - Part 504: Special fea-tures - Control and Instrumentation (IACS UR E10 Bridge and deck zone)IEC 60533 Electrical and electronic installations in ships – electromagnet-ic compatibility (IACS UR E10 Bridge and deck zone)DNV GL Type Approval Certificate (Pending)UL UL508 Listed (Pending)Haz. Loc. Class I, Division 2, Groups A, B, C and D (Pending)* Time of continuous operation until the brightness of the backlight reaches 50 % of the rated value when the surrounding air temperature is 25 °C. Extended use in environments where the surrounding air temperature is 40 °C or higher may degrade backlight quality/reliability/durability.Dimensions3.1.3 Product data and dimensions, AGI 415DisplayType TFTResolution1366 x 768 pixelActive display area15.6" diagonalAspect ratio H/V16:9Colours24 bit (16 million)Viewing angle (H/V)160/160Backlight LEDBrightness300 Cd/m2 typ.Backlight dimming 0-100%YesBacklight time out Yes, customisableBacklight service time50.000 h or more*System resourcesOperating system Linux RTCPU ARM Cortex-A9 iMX.6 Quad Core 1 GHzRAM 2 GB DDRUser memory8 GB Flash/64 KB FRAMOperator interfaceTouch screen Projected capacitive, multi-touchInterfaceEthernet 2 pcs. 10/100 Mbit, 1 pcs. 10/100/1000 MbitUSB 2 x USB 2.0 (hosts) - max. 500 mASerial RS-232, RS-485, RS-422, software configurable Expansion slot 2 optional plug-insMemory card SD card slotRatingsPower supply voltage24 V DC (10 to 32 V DC)Current consumption 1.2 A at 24 V DC (max.)Fuse Automatic, self-resettableWeight Approximately 4.1 kg (un-boxed)Battery Rechargeable Lithium battery, not user-replaceableEnvironmental conditionsOperating temperature-20° C to +55 °C (vertical installation)Storage temperature-30° C to +70 °COperating and storage humidity95 % RH Condensation IEC 60068-2-30 Db (Cyclic)Vibration IEC 60068-2-6 and IACS UR E102-13.2 Hz ±1 mm13.2-100 Hz 0.7 gShock IEC 60068-2-27, test Ea50 g 11 msProtection class IP66 (front)IP20 (rear)According IEC/EN 60529DimensionsFaceplate A x B422x267 mm (16.6x10.5“)Cutout C x D411x256 mm (16.18x10“)Depth E + F56+8 mm (2.20+0.33”)ApprovalsCE EN 61000-6-4 Emission, installation in industrial environmentsEN 61000-6-2 Immunity, installation in industrial environmentsEN 60945-2002 Maritime navigation and radio communication equipmentand systemsDNV GL IEC 60092-504 Electrical Installations in Ships - Part 504: Special fea-tures - Control and Instrumentation (IACS UR E10 Bridge and deck zone)IEC 60533 Electrical and electronic installations in ships – electromag-netic compatibility (IACS UR E10 Bridge and deck zone)DNV GL Type Approval Certificate (Pending)UL UL508 Listed (Pending)Haz. Loc. Class I, Division 2, Groups A, B, C and D (Pending)* Time of continuous operation until the brightness of the backlight reaches 50 % of the rated value when the surrounding air temperature is 25 °C. Extended use in environments where the surrounding air temperature is 40 °C or higher may degrade backlight quality/reliability/durability.Dimensions3.1.4 Product data and dimensions, AGI 421DisplayType TFTResolution1920x1080 pixelActive display area21,5" diagonalAspect ratio H/V16:9Colours24 bit (16 million)Viewing angle (H/V)189/189Backlight LEDBrightness300 Cd/m2 typ.Backlight dimming 0-100%YesBacklight time out Yes, customisableBacklight service time50.000 h or more*System resourcesOperating system Linux RTCPU ARM Cortex-A9 iMX.6 Quad Core 1 GHzRAM 2 GB DDRUser memory8 GB Flash/64 KB FRAMOperator interfaceTouch screen Projected capacitive, multi-touchInterfaceEthernet 2 pcs. 10/100 Mbit, 1 pcs. 10/100/1000 MbitUSB 2 x USB 2.0 (hosts) - max. 500 mASerial RS-232, RS-485, RS-422, software configurable Expansion slot 2 optional plug-insMemory card SD card slotRatingsPower supply voltage24 V DC (10 to 32 V DC)Current consumption 1.7 A at 24 V DC (max.)Fuse Automatic, self-resettableWeight Approximately 6.1 kg (un-boxed)Battery Rechargeable Lithium battery, not user-replaceableAGI 400 series data sheet 4921240564 UK Technical informationEnvironmental conditionsOperating temperature-20° C to +55 °C (vertical installation)Storage temperature-30° C to +70 °COperating and storage humidity95 % RH Condensation IEC 60068-2-30 Db (Cyclic)Vibration IEC 60068-2-6 and IACS UR E102-13.2 Hz ±1 mm13.2-100 Hz 0.7 gShock IEC 60068-2-27, test Ea50 g 11 msProtection class IP66 (front)IP20 (rear)According IEC/EN 60529DimensionsFaceplate A x B552x347 mm (21.7x13.66“)Cutout C x D541x336 mm (21.3x13.23“)Depth E + F56+8 mm (2.20+0.33”)ApprovalsCE EN 61000-6-4 Emission, installation in industrial environmentsEN 61000-6-2 Immunity, installation in industrial environmentsEN 60945-2002 Maritime navigation and radio communication equipmentand systemsDNV GL IEC 60092-504 Electrical Installations in Ships - Part 504: Special fea-tures - Control and Instrumentation (IACS UR E10 Bridge and deck zone)IEC 60533 Electrical and electronic installations in ships – electromag-netic compatibility (IACS UR E10 Bridge and deck zone)DNV GL Type Approval Certificate (Pending)UL UL508 Listed (Pending)Haz. Loc. Class I, Division 2, Groups A, B, C and D (Pending)* Time of continuous operation until the brightness of the backlight reaches 50 % of the rated value when the surrounding air temperature is 25 °C. Extended use in environments where the surrounding air temperature is 40 °C or higher may degrade backlight quality/reliability/durability.3.1.5 ConnectionsBelow you will find the connection location, valid for all screen sizes.AGI 400 series data sheet 4921240564 UK Ordering information4. Ordering information4.1 Order specifications and disclaimer4.1.1 Order specificationsTouch displayItem no.Type2912460020.01AGI 4072912460020.02AGI 4102912460020.03AGI 4152912460020.04AGI 4212912460010.08AGI PC Runtime, MS Windows® Runtime licenseAccessories and software licencesItem no.Type2912990120.01EXM CAN CANopen extension module2912990120.02AGI Creator licence (includes 10 activations)2912990120.05Codesys PLC runtime activation license2912990120.08Table stand small, for 7" and 10" (set of 5 pcs.)2912990120.09Table stand large, for 15" and 21" (set of 2 pcs)4.1.2 DisclaimerDEIF A/S reserves the right to change any of the contents of this document without prior notice.The English version of this document always contains the most recent and up-to-date information about the product. DEIF does not take responsibility for the accuracy of translations, and translations might not be up-dated at the same time as the English document. If there is a discrepancy, the English version prevails.。
Visor++ A visualisation tool for concurrent object-oriented programs
2 RELATED WORK
There are relatively few examples of the application of program visualisation to the concurrent object-oriented paradigm. One possible reason is that the paradigm is relatively new. Some of these visualisation tools are discussed below. MVD (Monitoring, Visualisation and Debugging) 5] is a set of tools for visualising the execution of C++ 4] programs. C++ itself is a concurrent language, extending C++ with four basic abstractions: coroutines, monitors, coroutine-monitors, and tasks. The visualisation support that MVD provides focuses on these abstractions, to the extent that only these abstractions and their interactions are visualised. Other entities, such as object member function invocations, are not included. C++ programs are visualised by using trace visualisation, which is visualisation based on program execution traces. MVD also supports statistical visualisation, in which statistics of program execution is displayed, such as task activity status, and stack high-water marks. The TAU 2, 13] visualisation tools are part of the pC++ programming language system 1]. pC++ itself is an extension of C++, with several additional constructs to support data parallelism. The TAU tools are implemented as a graphical hypertool, in which it is a composition of several tools, each of which supports unique capabilities. The tools are divided into two categories. The rst category consists of static analysis tools, including fancy for browsing global functions and class methods, cagey for displaying the static program call graph, and classy for displaying the static class hierarchy. The second category comprises dynamic analysis tools, such as racy for displaying usage proles of functions and concurrent object member functions, easy for displaying program events on an X-Y graph, and breezy, a breakpoint-based debugger. Similar to C++, the pC++ system provides the necessary support to instrument and obtain trace information from its programs. The LAMINA program visualisation tool is used to visualise the execution of LAMINA 8] programs. This tool provides a number of views which can be used for performance debugging. The network-operator view displays the processor-network view, along with the load on each processor, and communication among them. Latency and utilisation on each processor are also displayed. Another view, the activity table, displays textually the activities of each concurrent object, such as the number of messages that have been processed, and the average execution time. Another example is the visualisation system for PARC++ 18] programs. Similar to C++ and pC++, this language is derived from C++. It extends C++ with the necessary abstractions to support concurrency, such as thread management, thread communication, and thread synchronisation. PARC++ programs can be visualised by using several tools, thereby providing di erent angles of visualisation. Some important program elements, however, do not seem to be visualised in the views. For example, the tool Visit 18] does not provide views of monitors, and the tool POPAI 18] does not visualise thread executions, while both monitors and threads are important concepts in PARC++. Visualisation in PARC++ does not provide views of static
Teaching constructors A difficult multiple choice
Teaching Constructors:A Difficult MultipleChoiceNoa Ragonis and Mordechai Ben-AriDepartment of Science TeachingWeizmann Institute of ScienceRehovot76100Israelntnoa@wis.weizmann.ac.il,moti.ben-ari@weizmann.ac.il Abstract.We carried out research on teaching OOP to high-school stu-dents;the understanding of constructors turned out to be a major issue.This paper surveys different structures of declarations for constructors,their semantic context and their influence on programming and students’comprehension.We found that the professional style of declaring a con-structor to initialize attributes from parameters is to be preferred eventhough it seems difficult to learn.Other“simpler styles caused seriousmisconceptions.1IntroductionA constructor is a special method which creates an object;executing a con-structor creates an instance of a type(instantiation).Instantiation is a central concept because it parallels creation of an object in the real world,a metaphor that is often used in teaching.Constructors and instantiation are complex con-cepts which are difficult to learn and teach,but they can’t be avoided.A further complication arises in the instantiation of a class that includes attributes of another class.In this paper we focus on students’understanding of different paradigms for constructors,though obviously other aspects such as memory allocation and syn-tactic differences can also influence understanding.This research was conducting using Java,though we believe that the results would be similar for other OOP languages.The different paradigms of constructor declaration will be demon-strated using a simple example,which is built using the main concepts of OOP in a way so as to avoid misconceptions identified in[1].Then,we describe their semantic context,their influence on programming and students’comprehension. Finally,we give our recommendations for teaching.2Related WorkCorradi and Leonardi[2]discuss static vs.dynamic object creation.Object cre-ation is static before program execution,but dynamic during program execution.2Fleury[3],in her research on how beginners’students understand the construc-tion and use of objects in Java,found that students construct a rule:“The only purpose of invoking a constructor is to initialize the instance variable of an ob-ject.”El-Qawasmeh and Mahafzah[4]point out that some of the effect of the execution of a constructor is hidden even when the constructor is defined by the programmer.Textbook writers teach constructors at different stages.In Koff-man and Wolz[5],thefirst examples do not declare constructors.Subsequently, they describe the default constructor and only much later they explain how to define constructors.Bishop[6],on the other hand,refers to constructors at the very outset.3The ResearchThe experimental course was taught to tenth-grade students with no background in computer science.The approach of the course is objects-first,and our main interest is in evaluating the possibility of replacing a procedural-programming course.The population included19students during thefirst year the course was taught and30students during the second year.The data about students com-prehension,and their difficulties and misunderstandings was collected according to qualitative research methods by observations on all the lessons,worksheets and homework,and interviews with the students who submitted this work.The lab exercises are carried out using the BlueJ environment for teaching OOP[7]. BlueJ supports visualization of classes and objects,and execution of individual methods on objects without writing a test harness.4The Multiple ChoiceIn this section,we present one of thefirst examples in our course and the various constructor paradigms that we have used during the past two years.The source code of the examples is available on our web site.Class Pepper represents the vegetable pepper whose attributes(fields in Java) are:the weight,the number of pieces and its color(for which we use String type for simplicity).The methods of Pepper include mutators and accessors for each attribute,and two simple methods:cutIntoTwoPieces()which cuts each piece of the pepper into two pieces,and cutIntoNumPieces(int n)which cuts each piece of the pepper into n pieces.Class PepperSalad represents a pepper salad containing three attributes of type Pepper,each of which is intended to be of a different color:green,red and yellow.The methods of PepperSalad include mutators and accessors,and two simple methods corresponding to those in the Pepper class: cutIntoTwoPieces which cuts each piece of the pepper salad into two pieces,and cutIntoNumPieces(int n)which cuts each piece of the pepper salad into n pieces.We will describe four paradigms in each of two contexts,simple and composed classes.A class whose attribute types are primitive is called a simple class,and a class whose attribute types include user-defined types is called a composed class.The different paradigms relate to the constructor method definition and to3 the initialization of attributes:(1)An empty constructor;attributes get default values.(2)An empty constructor;attribute values are initialized by values in their declaration.(3)A constructor method that initializes the attributes with constant values.(4)A constructor method that includes parameters for each of the class attributes;attributes are initialized by the corresponding parameters.The following table describes the four main paradigms for each of the two categories of classes.Each version is denoted by a three-letter acronym:class category(S=Simple class,C=Composed class),whether attributes are ini-tialized in their declarations or not(V=attributes initialized by Value,N=No values in declaration),and the form of the constructor(E=Empty constructor, V=initialize attributes Values,P=initialize attributes by Parameters values). Version Class category Attributes initialized Constructor formin the declaration1-S/N/E Simple No values Empty2-S/V/E Simple Values Empty3-S/N/V Simple No values Constant values4-S/N/P Simple No values Parameters5-C/N/E Composed No values Empty6-C/V/E Composed Values Empty7-C/N/V Composed No values Constant values8-C/N/P Composed No values Parameters5Comparing ParadigmsWe will analyze the paradigms according to the semantic context,the operational consequences which appear when you instantiate an object and assigns values to attributes,and how students analyze and understand the application.5.1The semantic contextFor each paradigm you can associate a semantic context based on how the appli-cation relates to a real-world problem.The creation of an“empty”object with default values(1-S/N/E,5-C/S/E)does not correspond with the real world, nor does the creation of all objects with the same values for all the attributes (2-S/V/E,3-S/N/V,6-C/V/E,7-C/N/V).Similarly,there is no real-world cor-respondence in the creation of simple objects in the process of creation the com-posed class object(6-C/V/E,7-C/N/V).The professional paradigm(4-S/N/P, 8-C/N/P)closely corresponds with the real world,in which each attribute gets a relevant value.In the composed class it is also better to previously create its components from the simple class and only later associate them with the corresponding attributes using parameters.45.2Influence On ProgrammingOO programs almost invariably begin by creating objects.If we choose one of the paradigms,except for the professional paradigm,we have to execute mutator methods in order to specify a value for each of the attributes,or in order to change the constant values for specific objects.In the professional paradigm,no further actions are needed.Another issue is the constraints on the possible combination of the paradigms in a project that contains both simple classes and composed classes.Some combi-nations are not possible,for example,if the composed class invokes constructors with parameters,the constructor for the simple class must also have parameters.5.3Students’ComprehensionIn this section,we summarize aspects of students comprehension,based upon our research results,obtaining from teaching different paradigms.Some diffi-culties were paradigm-specific,while others were common to some or all of the paradigms.–For all paradigms:Students have difficulty understanding instantiation.Some of them thought that the declaration of the constructor method is sufficient to instantiate an object.–For all paradigms:It is difficult to understand the new statement,because it causes both object allocation as well as constructor invocation.–For all paradigms:Students had difficulty understanding the meaning of the constructor method and its place within the class.For example students said:“The attributes belong to the class,the constructor method belongs to the object because it creates an object.”There is confusion between the static class declaration which includes the constructor declaration,and the dynamic object creation in executing the constructor method.–1-S/N/E paradigm:Students had difficulty in understanding an“empty”instantiation,they asked:“What is an empty value?”or“What is an empty creation;is there an object or not?”.–1-S/N/E paradigm:Students forgot to invoke the mutator methods after the creation of an empty object,and before using it.–2-S/V/E paradigm:The distinction between a class and an object is difficult for novice OOP-students.From the sentence:“Attributes are declared in the class,and attributes values describe a specific object of the class,”some students drew a wrong conclusion about constructors:“[The constructor]is an object because attributes have values,and values belong to objects and not to classes.”–2-S/V/E paradigm:Students thought that if attributes have already been initialized with values,then there is no need to instantiate the object.One comment was:“If you are saying that attributes belong to classes and values belong to specific objects,then why doesn’t the assignment of values to attributes mean that there is an object already?”5–2-S/V/E and3-S/N/V paradigms:Students saw a false correlation between reality and the created objects.They asked:“Do all the objects have the same attribute values?”–4-S/N/P paradigm:The complexity of the parameter mechanism makes this paradigm difficult to understand by novice students.–For composed paradigms(5–8):It is difficult to understand that the type of an attribute can be a user-defined class.They said:“The attributes of the PepperSalad are weight,number of pieces and color,”when in fact there are three attributes of used-defined type Pepper.–8-C/N/P paradigm:Students assumed that if the component objects have already been created,there is no need to create the object of the composed class.6DiscussionWhen we combined all these criteria,we came to the conclusion that the4-S/N/P and8-C/N/P paradigms are preferable.This preference is justified as follows:–Constructors should be taught at an early stage because they are always used,even if implicitly,so there is no advantage to avoiding explicit teaching of this concept.–The reasons to reject the1-S/N/E paradigm are:(a)Default values are usually irrelevant to a given problem.(b)Initialization by invoking mutators is complicated,because they also require the introduction of parameters.(c) This paradigm is not consistent with the concept of instantiation.–The reasons to reject the2-S/V/E and3-S/N/V paradigms are:(a)Initial-ization of all objects with the same values rarely corresponds to the real word.(b)Assigning constant values in the class declaration confuses stu-dents.However,there are some advantages to these paradigms:They prevent accessing an uninitialized attribute,and there is no need to invoke large num-bers of mutators.Between the two paradigms,we prefer3-S/N/V,because it concentrates the initialization within the constructor method.–We prefer the4-S/N/P and8-C/N/P paradigms because they allow us to emphasize good OOP principles:•The constructor is very important,so it is better to expose it than to conceal it.•Initializing an object with values for its attributes is more in accordance with the real world.•Creation of simple objects before creation of composed class object is also more in accordance with the real world.•Initializing values to attributes in the constructor method avoids access to default values.•Parameters are needed anyway at an early stage for mutators,so they are not an extra burden in constructors.6•Assigning values to parameters in each instantiation emphasizes the cre-ation of different objects with possibly different values.•Learning this paradigm in simple classes makes it easier to understand the property of composed classes where attributes are the objects them-selves and not the attributes of the objects.7ConclusionFrom our experience in teaching OOP to novices,we found that one of the ma-jor difficulties is to understand the creation of object by the constructor.We believe constructors should be taught from the beginning and in the common professional paradigm.This is not trivial but not impossible.The key to success is to devote sufficient time to learning basic concepts such as classes,objects, attributes and methods with parameters,and only then to study their implemen-tation in Java.We use verbal and graphic representations of classes and objects, and the students practice instantiation and method invocation within the BlueJ learning environment.When students begin programming in Java,they continue to use the paradigm which becomes familiar.The teaching process must empha-size the instantiation process.Each object has its own set of attribute values,and we have to instantiate it accordingly,maintaining a correspondence with the real world.We believe that these principles will enable successful teaching to novice students of the constructor concept as it is used in professional programming. References[1]Holland,S.,Griffiths,R.,Woodman,M.:Avoiding object misconceptions.SIGCSEBulletin29(1997)131–134[2]Corradi,A.,Leonardi,L.:Static vs.dynamic issues in object oriented programminglanguages.Journal of Object-Oriented Programming(October2000)[3]Fleury,A.E.:Programming in java-students-construct rules.SIGCSE Bulletin32(2000)197–201[4]El-Qawasmeh,E.,Mahafzah,B.:Poorly designed features of c++constructors.Journal of Object-Oriented Programming(March2001)[5]Koffman,E.,Wolz,U.:Problem solving with Java.Addison-Wesley(1999)[6]Bishop,J.:Java Gently.Addison-Wesley(2001)[7]K¨o lling,M.:Teaching object orientation with the BlueJ environment.Journal ofObject-Oriented Programming12(1999)14–23。
X(1) X(0) One can show X(a1) ∨ · · · ∨ X(ak) is provable iff a1 ∨ · · · ∨ ak = 1
Infinite objects in constructive mathematicsThierry CoquandMar.20,2005Infinite objects in constructive mathematics(2)[1]Krull dimensionLet L be a distributive lattice.The theory of primefilters of L is the theory T(X)X(a∨b)→[X(a)∨X(b)]X(a∧b)↔[X(a)∧X(b)]X(1)¬X(0)One can show:X(a1)∨···∨X(a k)is provable iffa1∨···∨a k=1Quite simple Nullstellensatz1Infinite objects in constructive mathematics(2)[2]Krull dimensionIt is convenient to have the topological intuition from Stone duality:the models form a space Spec(L)where the basic open are precisely the elements of a of LX∈D(a)↔X(a)In this case,the basic open D(a)are precisely the compact open subsets of this space Spec(L)2Infinite objects in constructive mathematics(2)[3]Krull dimensionOne considers now the theory T C of chain of primefilters T(X0,...,X n) saying that each X i is a primefilter and that we have X i+1⊆X i X i+1(a)→X i(a)To say that L is of Krull dimension<n is to say that we cannot have a proper chain;this means that for any a1,...,a n we haveT C X0(a1)∧···∧X n−1(a n)→X1(a1)∨···∨X n(a n)Some results on constructive theory of Krull dimension for rings and lattices were obtained by Joyal and Espanol(1981)3Infinite objects in constructive mathematics(2)[4]Krull dimensionBy looking systematically for a notion of Nullstellensatz identities for the theory T C one obtains the following new characterisationTheorem L is of Krull dimension<n ifffor any a1,...,a n there exists x1,...,x n such thata1∧x1=0,a2∧x2≤a1∨x1,...,a n∧x n≤a n−1∨x n−1,1=a n∨x n For instance L is of Krull dimension0iffany element has a complement iffL is a Boolean algebra4Infinite objects in constructive mathematics(2)[5]Krull dimensionOne gets a nicer characterisation by working in the cHa of idealsDimension0:a∨¬a=1(classical logic)Dimension1:a∨(a→(b∨¬b))=1Dimension2:a∨(a→(b∨(b→(c∨¬c))))=1Intermediate logic??Arefinitely generated algebrasfinite?5Infinite objects in constructive mathematics(2)[6]Krull dimensionAfinite distributive lattice L is the lattice of downward closed set of afinite poset,which can be identified with Spec(L)The Krull dimension is exactly the height of the Hasse diagram associated to the poset Spec(L)For Kripke model,we have a way to express as formulae the height of the associated poset6Infinite objects in constructive mathematics(2)[7]BoundaryAnalysing this definition suggests to introduce the following notion:if a∈L let the boundary of a be the ideal B a=a∨¬a={x∨y|x≤a,y∧a=0}“Geometrically”this definition corresponds to the topological boundary of D(a)We get then the following inductive definition:Definition:Kdim(L)<0iff1=L0and Kdim(L)<n+1ifffor any a∈L we have Kdim(L/B a)<n7Infinite objects in constructive mathematics(2)[8]BoundaryWe can transpose this definition to rings:if a∈R let the boundary of a be the ideal B a generated by a and all elements x such that ax is nilpotent Definition:Kdim(R)<0iff1=L0and Kdim(R)<n+1ifffor any a∈R we have Kdim(R/B a)<n8Infinite objects in constructive mathematics(2)[9]BoundaryUnfolding this definition,we get the following NullstellensatzTheorem:Kdim(R)<n ifffor any a1,...,a n there exists k1,...,k n and u1,...,u n such thata k11(a k22(...a k n n(1−a n u n)···−a2u2)−a1u1)=0We have yet another example of a reduction of aΠ11statement to aΣ01 statementUsing this characterisation,one can give a simple constructive proof of Kdim(Q[X1,...,X n])=n9Infinite objects in constructive mathematics(2)[10]A simple exampleA basic result in algebra is the following.Theorem:Afinitely generated projective module over a local ring R is free Projective module:a direct factor of a free moduleLocal ring:has only one maximal idealThese conditions can be expressed more concretely to get somethingfirst-order10Infinite objects in constructive mathematics(2)[11]A simple exampleOnly one maximal ideal:this should be the set of elements that are not invertibleWe replace this by the following simpler(logically)definition:R is local iffInv(x+y)→[Inv(x)∨Inv(y)]for all x,y iffInv(x)∨Inv(1−x)for all xwhere Inv(x)means that x is invertible11Infinite objects in constructive mathematics(2)[12]A simple exampleAfinitely generated projective module can be represented by an idempotent matrixIt is represented by an idempotent matrix F,since M is a direct factor of some R nThe elements of M are the vector F X for X∈R n12Infinite objects in constructive mathematics(2)[13]A simple exampleIn this way we can simplify the abstract statement to a statement about idempotent matrix F over a local ring.The statement of this theorem,for afixed size of F isfirst-order and geometric.The statement in this new form suggest the algorithm form of the proof:given F of size n we should construct X1,...,X k with k≤n such that F X1,...,F X k is a basis of the image of FThe only“subprogram”we can use is given by∀x.Inv(x)∨Inv(1−x)13Infinite objects in constructive mathematics(2)[14]A simple exampleThe concrete version is:Theorem:If F is an idempotent square matrix over a local ring R then F is similar to a matrix of the formI000We can effectively build an invertible P such that P F P−1is of this form14Infinite objects in constructive mathematics(2)[15]A simple exampleWe have afirst-order classical derivation,that we can transform by proof-theoretic methods(Friedman’s translation)to a constructivefirst-order derivationWe know a priori that the proof should have a simple form and can only use the disjunction Inv(x)∨Inv(1−x)It may be that the proof,as afirst-order proof function of the size of the matrix,is not uniform in the size(but this is not likely)15Infinite objects in constructive mathematics(2)[16]Serre’s splitting-offtheorem1958(J.P.Serre)theorem of existence of free summands in projective modules (which representsfiber bundles over the maximal spectrum of a ring)1964(O.Forster)bounds on the number of generators of a module,in term of the prime spectrum of a ring1967R.Swan refines Forster’s result for maximal spectrumAll these results were about Noetherian ringsWhat about nonNoetherian rings??16Infinite objects in constructive mathematics(2)[17]Serre’s splitting-offtheoremBreakthrough in1984Heitmann obtained a nonNoetherian version of Forster’s theorem,and some nonNoetherian version of Serre’s and Swan’s theorem(which does not generalise these theorems however)In2004:simple constructive proofs of these results(that can be thought of as algorithms)As a side product,we got an improvement of Heitman’s results,and a nonNoetherian generalisation of Serre and Swan’s theorems17Infinite objects in constructive mathematics(2)[18]Serre’s splitting-offtheoremSerre(1958)represents algebraically the notion of a vector bundleExample:tangent bundle of a manifold,on S1and S2When is a vector bundle trivial??A necessary condition is that it admits a non vanishing sectionExample:tangent bundle over S2is not trivial18Infinite objects in constructive mathematics(2)[19]Serre’s splitting-offtheoremHeuristically,if the dimension of eachfibers is big w.r.t.the dimension of the base space,one canfind a non vanishing sectionSerre obtained a purely algebraic version of this resultIf X is a simplical complex,and we have afiber bundle E(x),x∈X,wefind a nowhere vanishing continuous section s(x)∈E(x)by defining it stepwise on simplices of higher and higher dimensionThe key fact is that if we have a continuous function on the boundary of [0,1]n to S n we can extend it to[0,1]n(i.e.πk(S n)=0if k<n)19Infinite objects in constructive mathematics(2)[20]Algebraic formulationThe base space is represented by the maximal spectrum Max(R)of a (commutative)ring R,with the Zariski topologyThe vector bundle is represented by a module M over R20Infinite objects in constructive mathematics(2)[21]Serre’s splitting-offtheoremIntuitively:R ring of functions over Max(R)and M represents the module of sections of thefiber bundleWe consider onlyfinitely generated modules over RSerre shows that the vector bundles correspond exactly to the projective modules over MThe points x of Max(R)are maximal ideals,and the vector spacefiber at x is the module M/xM over thefield R/x.Its dimension is written r x(M) If s∈M we can write s(x)the equivalence class of s in M/xM and M(x) for M/xM21Infinite objects in constructive mathematics(2)[22]Serre’s splitting-offtheoremSerre considers the dimension jdim(R)which is the Krull dimension of Max(R) (as a subspace of Spec(R))Assume that R is Noetherian and jdim(R)<kTheorem:(Serre,1958)If k≤r x(M)for all x∈Max(R)then there exists a non vanishing section s∈M,i.e.an element s∈M such that s(x)=0for all x∈Max(R)We give afirst-order formulation of a non Noetherian version of this statement, which becomes a schema of theorems in thefirst-order theory of commutative rings22Infinite objects in constructive mathematics(2)[23]Swan’s theoremAssume that R is Noetherian and jdim(R)=dTheorem:(Swan,1967)Assume that r x(M)=r for all x∈Max(R)then M can be generated by r+d elements(Interestingly the concrete version of the this and Serre’s theorem are almost the same)Can this be generalised to the nonNoetherian cases?For instance Vascancelos and Wiegand,1978,obtained the bound r(d+1) for the number of generators in the nonNoetherian cases23Infinite objects in constructive mathematics(2)[24]Concrete versionHow to represent concretely afinitely generated projective module M?It is represented by an idempotent matrix F,since M is a direct factor of some R nThe elements of M are the vector F X for X∈R n24Infinite objects in constructive mathematics(2)[25]Concrete versionHow to represent k≤r x(M)for all x∈Max(R)?1=∆k(F)where∆k(F)is the ideal generated by all the minors of F of order kIndeed for each x∈Max(R)the matrix F should be of rank≥k over the field R/xRThus the ideal generated by∆k(F)is not included in xThis means1=∆k(F)25Infinite objects in constructive mathematics(2)[26]Concrete versionSerre’s theorem becomes for a Noetherian ring R such that jdim(R)<kTheorem:If F is an idempotent matrix and1=∆k(F)then there exists X∈R n such that F X is unimodularA vector(a i)∈R n is unimodular iffthere exists u i∈R such thatΣu i a i=1Unimodular vector:for each x∈Max(R)at least one component does not belong to x(the ideal generated by the a i is contained in no ideal maximal)26Infinite objects in constructive mathematics(2)[27]Concrete versionIndeed we want s∈M such that s(x)=0for all x∈Max(R)This means:we want X∈R n such that F X=(a i)is not0modulo x,for any x∈Max(R)This means that the ideal generated by(a i)is not included in x for any x∈Max(R)This is equivalent to:1belongs to the ideal generated by(a i)27Infinite objects in constructive mathematics(2)[28]Heitmann dimensionFor the hypotheses Noetherian Heitmann discovered in1984that it is probably not necessaryInterestingly the heart of the matter for eliminating the Noetherian hypotheses is directly connected to our inductive definition of dimensionThis is presented by Heitmann as a trivial,but crucial,remark similar to the fact that to quotient a ring by a boundary ideal reduces the dimension28Infinite objects in constructive mathematics(2)[29]Heitmann dimensionHeitmann in his argument uses a refinement of Krull dimension(to talk about maximal spectrum)which can be formulated in afirst-order wayThe intersection of all maximal ideals(Jacobson radical)is the set J(R)of elements a∈R such that1−ax invertible for all xWe redefine the boundary H a of a as the ideal generated by a and the set of elements x such that ax∈J(R)Definition:Hdim(L)<0iff1=L0and Hdim(L)<n+1ifffor any a∈L we have Hdim(L/H a)<n29Infinite objects in constructive mathematics(2)[30]Heitmann dimensionThe statement Hdim(R)<n is expressed by afirst-order formula which is prenexIts logical complexity increases with nHdim(R)<1means that for any a there exists x such that a(1−ax)∈J(R)Hdim(R)<2means that for any a we have Hdim(R/H a)<1which means that for any b there exists y such that b(1−by)∈J(R/H a),which means that for any z there exists t,u we have a(t(1−zb(1−by))−ua)∈J(R)∀a,b.∃y.∀z.∃t,u∀v∃w....30Infinite objects in constructive mathematics(2)[31]Heitmann dimensionThe schema offirst-order theorems we prove isTheorem:If Hdim(R)<k then given a m×n rectangular matrix F such that∆k(F)=1there exists X∈R n such that F X is unimodularThe proof was obtained by looking at the case of a3×2matrix with k=2, which is formulated by a purelyfirst-order statementThe proof in this special case generalises directly31Infinite objects in constructive mathematics(2)[32]Heitmann dimensionThe statement has the formA→(t=0→∃x.u=0)where A is prenexWe know a priori that if it is provable,it is provable intuitionistically32Infinite objects in constructive mathematics(2)[33]Heitmann dimensionThis theorem generalises also Swan’s theorem:we get as a corollary that if a f.g.module M is locally generated by r elements over a ring R such that Hdim(R)=d then R is generated by d+r elements,as in Swan’s theorem33Infinite objects in constructive mathematics(2)[34]Heitmann dimensionUsing this,L.Ducos could obtain a nonNoetherian version of Bass cancellation theoremTheorem:If Hdim(R)<n and P,Q,N arefinitely generated projective modules such that P is of rank≥n and P⊕N Q⊕N then P Q34Infinite objects in constructive mathematics(2)[35] Where the method may not workStatement in algebra of the form R Noetherian ...Regular Element Theorem:if R Noetherian and ifa1x=···=a n x=0→x=0then there exists u∈<a1,...,a n>such that ux=0→x=035Infinite objects in constructive mathematics(2)[36]ConclusionOne can make sense in constructive mathematics of relatively recent results of commutative algebraThe statements and proofs get simpler for this example36Infinite objects in constructive mathematics(2)[37]ConclusionQuite simple considerations on the logical complexity of the statements in algebra seem already to be useful;for instance,the fact that the elements of a ring are“simpler”than the prime idealsUsing relatively simple Nullstellensatz theorems one can reduce the logical complexity of statements and guess a priori an expected complexity for the proofCan one apply proof theoretic techniques for proofs that use a Noetherian hypotheses?Is there a general metatheorem allowing to guess when a Noetherian assumption can be eliminated?37Infinite objects in constructive mathematics(2)[38] Example:Kronecker’s theoremKronecker in section10ofGrundz¨u ge einer arithmetischen Theorie der algebraischen Gr¨o ssen.J.reine angew.Math.92,1-123(1882)proves a theorem which is now stated in the following wayAn algebraic variety in C n is the intersection of n+1hypersurfacesIf we look at the own statement of(direct followers of)Kronecker wefind something close to the formal statement that for any g1,...,g n+2∈Q[x1,...,x n] there exists f1,...,f n+1such that[X(g1)∧···∧X(g n+2)]↔[X(f1)∧···∧X(f n+1)]38Infinite objects in constructive mathematics(2)[39] Example:Kronecker’s theoremThus the formal approach should be closer here to the original statement of KroneckerOne works with the system of equations and provability rather than with the solutions in C n39Infinite objects in constructive mathematics(2)[40] The meaning of Kronecker’s theoremFor Kronecker,the solutions were purely formal,like in the present explanation of infinite objects as theoriesWhen is f=0a consequence of g0=···=g m=0?How to deduce consequences?We have two principlesIf we have A=0,B=0we have also rA+sB=0If we have A2=0we have A=0This is exactly to say that f belongs to the radical of the ideal generated by g0,...,g m40Infinite objects in constructive mathematics(2)[41]BoundaryThe argument of Kronecker,which uses elimination theory,was simplified(?) later by van der WaerdenTheorem:If a ring R is Noetherian and such that Kdim(R)≤n then any f.g.ideal is radically generated by at most n+1elementsGeneral abstract argument,but uses Noetherianity41Infinite objects in constructive mathematics(2)[42]BoundaryIt turns out that one can prove directly by using the inductive definition of Krull dimensionTheorem:If Kdim(R)≤n then any f.g.ideal is radically generated by at most n+1elementsThis result is due to Heitmann(1984)Using our definitions,we get a direct elementary proofThis can be expected a priori by completeness(and cannot be guessed if one uses a formulation with prime ideals)42Infinite objects in constructive mathematics(2)[43]BoundaryThis argument can be instantiated in the case of R=Q[x1,...,x n]gives an algorithm for the following problem:Given n+2polynomials g1,g2,...,g n+2in n indeterminates with rational coefficients,construct n+1polynomials f1,f2,...,f n+1in the same indeterminates with rational coefficients that are zero mod g1,g2,..., g n+2and have the property that,for each i,some power of g i is zero mod f1,f2, ...,f n+1Furthermore the solution,though inspired by“ideal”methods,uses only methods that Kronecker would have accepted43Infinite objects in constructive mathematics(2)[44]ReferencesTh.C.,H.Lombardi,M.-F.RoyAn elementary characterisation of Krull dimensionto appear(2005)Th.C.Sur un th´e or`e me de Kronecker concernant les vari´e t´e s alg´e briquesC.R.Acad.Sci.,Paris,Ser I338(2004),Pages291-294Th.C.,H.Lombardi,C.Quitt´eGenerating non-Noetherian modules constructivelyManuscripta Mathematica,1115,513-520(2004)L.DucosTh´e or`e mes de Forster-Swan et Bass.Preprint(2004)44Infinite objects in constructive mathematics(2)[45]ReferencesR.Heitmann“Generating non-Noetherian modules efficiently”Michigan Math.J.31(1984),167-180O.Forster“¨Uber die Anzahl der Erzeugenden eines Ideals in einem Noetherschen Ring”Math.Z.841964,80-87J.-P.Serre“Modules projectifs et espacesfibr´e s`afibre vectorielle”S´e minaire P.Dubreil,Ann´e e1957/1958R.G.Swan“The Number of Generators of a Module”Math.Z.102(1967),318-32245Infinite objects in constructive mathematics(2)[46]ReferencesCoste M.,Lombardi H.,Roy M.F.“Dynamical method in algebra:Effective Nullstellens¨a tze”J.P.A.A.155(2001)L.Ducos,H.Lombardi,C.Quitt´e and M.Salou.Th´e orie algorithmique des anneaux arithm´e tiques,de Pr¨u fer et de Dedekind. Journal of Algebra281,(2004),604-650.46。
the pascal visual classes(voc) challenge
Int J Comput Vis(2010)88:303–338DOI10.1007/s11263-009-0275-4The P ASCAL Visual Object Classes(VOC)Challenge Mark Everingham·Luc Van Gool·Christopher K.I.Williams·John Winn·Andrew ZissermanReceived:30July2008/Accepted:16July2009/Published online:9September2009©Springer Science+Business Media,LLC2009Abstract The P ASCAL Visual Object Classes(VOC)chal-lenge is a benchmark in visual object category recognition and detection,providing the vision and machine learning communities with a standard dataset of images and anno-tation,and standard evaluation anised annu-ally from2005to present,the challenge and its associated dataset has become accepted as the benchmark for object detection.This paper describes the dataset and evaluation proce-dure.We review the state-of-the-art in evaluated methods for both classification and detection,analyse whether the meth-ods are statistically different,what they are learning from the images(e.g.the object or its context),and what the meth-odsfind easy or confuse.The paper concludes with lessons learnt in the three year history of the challenge,and proposes directions for future improvement and extension. Keywords Database·Benchmark·Object recognition·Object detectionM.Everingham( )University of Leeds,Leeds,UKe-mail:m.everingham@L.Van GoolKU Leuven,Leuven,BelgiumC.K.I.WilliamsUniversity of Edinburgh,Edinburgh,UKJ.WinnMicrosoft Research,Cambridge,UKA.ZissermanUniversity of Oxford,Oxford,UK 1IntroductionThe P ASCAL1Visual Object Classes(VOC)Challenge con-sists of two components:(i)a publicly available dataset of images and annotation,together with standardised eval-uation software;and(ii)an annual competition and work-shop.The VOC2007dataset consists of annotated con-sumer photographs collected from theflickr2photo-sharing web-site.A new dataset with ground truth annotation has been released each year since2006.There are two princi-pal challenges:classification—“does the image contain any instances of a particular object class?”(where the object classes include cars,people,dogs,etc.),and detection—“where are the instances of a particular object class in the image(if any)?”.In addition,there are two subsidiary chal-lenges(“tasters”)on pixel-level segmentation—assign each pixel a class label,and“person layout”—localise the head, hands and feet of people in the image.The challenges are issued with deadlines each year,and a workshop held to compare and discuss that year’s results and methods.The datasets and associated annotation and software are subse-quently released and available for use at any time.The objectives of the VOC challenge are twofold:first to provide challenging images and high quality annotation, together with a standard evaluation methodology—a“plug and play”training and testing harness so that performance of algorithms can be compared(the dataset component);and second to measure the state of the art each year(the compe-tition component).1P ASCAL stands for pattern analysis,statistical modelling and compu-tational learning.It is an EU Network of Excellence funded under the IST Programme of the European Union.2http://www.fl/The purpose of this paper is to describe the challenge: what it is,and the reasons for the way it is.We also describe the methods,results and evaluation of the challenge,and so in that respect are describing the state-of-the-art in object recognition(at least as measured for these challenges and by those who entered).We focus mainly on the2007challenge, as this is the most recent at the time of writing,but also discuss significant changes since earlier challenges and why these were made.1.1Relation to Other DatasetsChallenge datasets are important in many areas of research in order to set goals for methods,and to allow comparison of their performance.Similar datasets and evaluation method-ologies are sprouting in other areas of computer vision and machine learning,e.g.the Middlebury datasets for stereo, MRF optimisation,and opticalflow comparison(Scharstein and Szeliski2002).In addition to organised challenges,there are several datasets contributed by the vision community which are re-lated to that collected for the VOC challenges.The“Caltech101”Dataset(Fei-Fei et al.2006)contains im-ages of101categories of object,and is relatively widely used within the community for evaluating object recogni-tion.Each image contains only a single object.A principal aim of the Caltech datasets is to evaluate multi-category ob-ject recognition,as a function of the(relatively small)num-ber of training images.This is complementary to the aims of the VOC challenge,which measures performance on a smaller number of classes and without such constraints on the amount of training data available.A common criticism of this dataset,addressed by the VOC challenge,is that the images are largely without clutter, variation in pose is limited,and the images have been man-ually aligned to reduce the variability in appearance.These factors make the dataset less applicable to“real world”eval-uation than the images provided for the VOC challenge. The“Caltech256”Dataset(Griffin et al.2007)corrected some of the deficiencies of Caltech101—there is more vari-ability in size and localisation,and obvious artifacts have been removed.The number of classes is increased(from101 to256)and the aim is still to investigate multi-category ob-ject recognition with a limited number of training images. For the most part there is only a single object per image–as is required to support the1-of-m evaluation adopted(“which one of m classes does this image contain?”).The“LabelMe”Dataset(Russell et al.2008)at MIT is most similar to the VOC challenge dataset in that it con-tains more-or-less general photographs containing multiple belMe has been ground-breaking in providing a web-based annotation interface,encouraging casual and professional users alike to contribute and share annotation. Many object categories are labelled,with annotation con-sisting of a bounding polygon and category,with some ob-jects additionally being labelled with pose and object parts. For the most part the dataset is incompletely labelled—volunteers are free to choose which objects to annotate,and which to omit.This means that,while a very valuable re-source for training images,the dataset is unsuitable for test-ing in the manner of the VOC challenge since precision and recall cannot accurately be estimated.Recently the LabelMe organisers have proposed subsets of the database to use for training and testing,which are completely annotated with a set of seven object(person,car)and“stuff”(building,sky, etc.)classes.However,no evaluation protocol is specified. The“TREC Video Retrieval Evaluation”(TRECVID,3 Smeaton et al.2006)is also similar to the VOC challenge in that there is a new dataset and competition each year,though the dataset is only available to participants and is not pub-licly distributed.TRECVID includes several tasks,but the one most related to VOC is termed“high-level feature ex-traction”,and involves returning a ranked list of video shots for specified“features”.For the2008competition these fea-tures include scene categories(such as classroom,cityscape or harbour),object categories(such as dog,aeroplanefly-ing or telephone)and actions/events(such as a demonstra-tion/protest).Annotation is not provided by the organisers, but some is usually distributed amongst the participants.The submissions are scored by their Average Precision(AP).The evaluation of the ranked lists is carried out by the organis-ers using a mixture of ground truth labelling and“inferred ground truth”(Yilmaz and Aslam2006)obtained from high ranked results returned by the participants’methods.The Lotus Hill Dataset(Yao et al.2007)is a large,recently produced dataset,a small part of which is made freely avail-able to researchers.It contains8data subsets with a range of annotation.Particularly we highlight(a)annotations provid-ing a hierarchical decomposition of individual objects e.g. vehicles(9classes,209images4),other man-made objects (75classes,750images)and animals(40classes,400im-ages);and(b)segmentation labelling of scenes to a pixel level(444images).As this dataset has only recently been released there has not yet been a lot of work reported on it. The datasets look to have a useful level of annotation(es-pecially with regard to hierarchical decompositions which have not been attempted elsewhere),but are somewhat lim-ited by the number of images that are freely available.3/projects/trecvid/4The number of images quoted is the number that are freely available.1.2Paper LayoutThis paper is organised as follows:we start with a summary of the four challenges in Sect.2,then describe in more de-tail in Sect.3the datasets—their method of collection;the classes included and the motivation for including them;and their annotation and statistics.Section4describes the eval-uation procedure and why this procedure was chosen.Sec-tion5overviews the main methods used in the2007chal-lenge for classification and detection,and Sect.6reports and discusses the results.This discussion includes an analysis of the statistical significance of the performances of the differ-ent methods,and also of which object classes and images the methodsfind easy or difficult.We conclude with a dis-cussion of the merits,and otherwise,of the VOC challenge and possible options for the future.2Challenge TasksThis section gives an overview of the two principal chal-lenge tasks on classification and detection,and on the two subsidiary tasks(“tasters”)on pixel-level segmentation,and “person layout”.2.1ClassificationFor each of twenty object classes,predict the presence/ absence of at least one object of that class in a test image. Participants are required to provide a real-valued confidence of the object’s presence for each test image so that a preci-sion/recall curve can be drawn.Participants may choose to tackle all,or any subset of object classes,for example“cars only”or“motorbikes and cars”.Two competitions are defined according to the choice of training data:(1)taken from the VOC training/validation data provided,or(2)from any source excluding the VOC test data.In thefirst competition,any annotation provided in the VOC training/validation data may be used for train-ing,for example bounding boxes or particular views e.g.“frontal”or“left”.Participants are not permitted to perform additional manual annotation of either training or test data. In the second competition,any source of training data may be used except the provided test images.The second com-petition is aimed at researchers who have pre-built systems trained on other data,and is a measure of the state-of-the-art.2.2DetectionFor each of the twenty classes,predict the bounding boxes of each object of that class in a test image(if any),with associated real-valued confidence.Participants may choose to tackle all,or any subset of object classes.Two compe-titions are defined in a similar manner to the classification challenge.2.3Segmentation TasterFor each test image,predict the object class of each pixel, or“background”if the object does not belong to one of the twenty specified classes.Unlike the classification and detec-tion challenges there is only one competition,where training data is restricted to that provided by the challenge.2.4Person Layout TasterFor each“person”object in a test image(if any),detect the person,predicting the bounding box of the person,the pres-ence/absence of parts(head/hands/feet),and the bounding boxes of those parts.Each person detection should be out-put with an associated real-valued confidence.Two compe-titions are defined in a similar manner to the classification challenge.3DatasetsThe goal of the VOC challenge is to investigate the perfor-mance of recognition methods on a wide spectrum of nat-ural images.To this end,it is required that the VOC datasets contain significant variability in terms of object size,orien-tation,pose,illumination,position and occlusion.It is also important that the datasets do not exhibit systematic bias, for example,favouring images with centred objects or good illumination.Similarly,to ensure accurate training and eval-uation,it is necessary for the image annotations to be con-sistent,accurate and exhaustive for the specified classes. This section describes the processes used for collecting and annotating the VOC2007datasets,which were designed to achieve these aims.3.1Image Collection ProcedureFor the2007challenge,all images were collected from the flickr photo-sharing web-site.The use of personal photos which were not taken by,or selected by,vision/machine learning researchers results in a very“unbiased”dataset,in the sense that the photos are not taken with a particular pur-pose in mind i.e.object recognition research.Qualitatively the images contain a very wide range of viewing conditions (pose,lighting,etc.)and images where there is little bias to-ward images being“of”a particular object,e.g.there are images of motorcycles in a street scene,rather than solely images where a motorcycle is the focus of the picture.The annotation guidelines(Winn and Everingham2007)pro-vided guidance to annotators on which images to annotate—essentially everything which could be annotated with confi-dence.The use of a single source of“consumer”images ad-dressed problems encountered in previous challenges,suchFig.1Example images from the VOC2007dataset.For each of the20classes annotated,two examples are shown.Bounding boxes indicateall instances of the corresponding class in the image which are markedas“non-difficult”(see Sect.3.3)—bounding boxes for the other classesare available in the annotation but not shown.Note the wide range ofpose,scale,clutter,occlusion and imaging conditionsas in VOC2006where images from the Microsoft ResearchCambridge database(Shotton et al.2006)were included.The MSR Cambridge images were taken with the purposeof capturing particular object classes,so that the object in-stances tend to be large,well-illuminated and central.Theuse of an automated collection method also prevented anyTable1Queries used to retrieve images fromflickr.Words in bold show the“targeted”class.Note that the query terms are quite general—including the class name,synonyms and scenes or situations where the class is likely to occur–aeroplane,airplane,plane,biplane,monoplane,aviator,bomber, hydroplane,airliner,aircraft,fighter,airport,hangar,jet,boeing, fuselage,wing,propellor,flying–bicycle,bike,cycle,cyclist,pedal,tandem,saddle,wheel,cycling, ride,wheelie–bird,birdie,birdwatching,nest,sea,aviary,birdcage,bird feeder, bird table–boat ship,barge,ferry,canoe,boating,craft,liner,cruise,sailing, rowing,watercraft,regatta,racing,marina,beach,water,canal,river, stream,lake,yacht–bottle,cork,wine,beer,champagne,ketchup,squash,soda,coke, lemonade,dinner,lunch,breakfast–bus,omnibus,coach,shuttle,jitney,double-decker,motorbus, school bus,depot,terminal,station,terminus,passenger,route–car,automobile,cruiser,motorcar,vehicle,hatchback,saloon,con-vertible,limousine,motor,race,traffic,trip,rally,city,street,road, lane,village,town,centre,shopping,downtown,suburban–cat,feline,pussy,mew,kitten,tabby,tortoiseshell,ginger,stray–chair,seat,rocker,rocking,deck,swivel,camp,chaise,office,stu-dio,armchair,recliner,sitting,lounge,living room,sitting room–cow,beef,heifer,moo,dairy,milk,milking,farm–dog,hound,bark,kennel,heel,bitch,canine,puppy,hunter,collar, leash–horse,gallop,jump,buck,equine,foal,cavalry,saddle,canter, buggy,mare,neigh,dressage,trial,racehorse,steeplechase,thor-oughbred,cart,equestrian,paddock,stable,farrier–motorbike,motorcycle,minibike,moped,dirt,pillion,biker,trials, motorcycling,motorcyclist,engine,motocross,scramble,sidecar, scooter,trail–person,people,family,father,mother,brother,sister,aunt,un-cle,grandmother,grandma,grandfather,grandpa,grandson,grand-daughter,niece,nephew,cousin–sheep,ram,fold,fleece,shear,baa,bleat,lamb,ewe,wool,flock–sofa,chesterfield,settee,divan,couch,bolster–table,dining,cafe,restaurant,kitchen,banquet,party,meal–potted plant,pot plant,plant,patio,windowsill,window sill,yard, greenhouse,glass house,basket,cutting,pot,cooking,grow–train,express,locomotive,freight,commuter,platform,subway,un-derground,steam,railway,railroad,rail,tube,underground,track, carriage,coach,metro,sleeper,railcar,buffet,cabin,level crossing –tv/monitor,television,plasma,flatscreen,flat screen,lcd,crt, watching,dvd,desktop,computer,computer monitor,PC,console, gameselection bias being introduced by a researcher manually performing image selection.The“person”category provides a vivid example of how the adopted collection methodology leads to high variability;in previous datasets“person”was essentially synonymous with“pedestrian”,whereas in the VOC dataset we have images of people engaged in a wide range of activities such as walking,riding horses,sitting on buses,etc.(see Fig.1).In total,500,000images were retrieved fromflickr.For each of the20object classes to be annotated(see Fig.1), images were retrieved by queryingflickr with a number of related keywords(Table1).No other query criteria,e.g.date of capture,photographer’s name,etc.were specified—we return to this point below.For a given query,flickr is asked for100,000matching images(flickr organises search results as“pages”i.e.100 pages of1,000matches).An image is chosen at random from the returned set and downloaded along with the cor-responding metadata.A new query is then selected at ran-dom,and the process is repeated until sufficient images have been downloaded.Images were downloaded for each class in parallel using a python interface to theflickr API,with no restriction on the number of images per class or query. Thanks toflickr’s fast servers,downloading the entire image set took just a few hours on a single machine.Table1lists the queries used for each of the classes, produced by“free association”from the target classes.It might appear that the use of keyword queries would bias the images to pictures“of”an object,however the wide range of keywords used reduces this likelihood;for exam-ple the query“living room”can be expected to return scenes containing chairs,sofas,tables,etc.in context,or the query “town centre”to return scenes containing cars,motorcycles, pedestrians,etc.It is worth noting,however,that without using any keyword queries the images retrieved randomly fromflickr were,subjectively,found to be overwhelmingly “party”scenes containing predominantly people.We return to the problem of obtaining sufficient examples of“minor-ity”object classes in Sect.7.1.All exact duplicate and“near duplicate”images were re-moved from the downloaded image set,using the method of Chum et al.(2007).Near duplicate images are those that are perceptually similar,but differ in their levels of com-pression,or by small photometric distortions or occlusions for example.After de-duplication,random images from the set of 500,000were presented to the annotators for annotation. During the annotation event,44,269images were considered for annotation,being either annotated or discarded as un-suitable for annotation e.g.containing no instances of the20 object classes,according to the annotation guidelines(Winn and Everingham2007),or being impossible to annotate cor-rectly and completely with confidence.One small bias was discovered in the VOC2007dataset due to the image collection procedure—flickr returns query results ranked by“recency”such that if a given query is sat-isfied by many images,more recent images are returnedfirst. Since the images were collected in January2007,this led to an above-average number of Christmas/winter images con-taining,for example,large numbers of Christmas trees.To avoid such bias in VOC2008,5images have been retrieved using queries comprising a random date in addition to key-words.5/challenges/VOC/voc2008/3.2Choice of ClassesFigure2shows the20classes selected for annotation in the VOC2007dataset.As shown,the classes can be considered in a taxonomy with four main branches—vehicles,animals, household objects and people.6Thefigure also shows the year of the challenge in which a particular class was in-cluded.In the original VOC2005challenge(Everingham et al.2006a),which used existing annotated datasets,four classes were annotated(car,motorbike,bicycle and person). This number was increased to10in VOC2006,and20in VOC2007.Over successive challenges the set of classes has been expanded in two ways:First,finer-grain“sub-classes”have been added e.g.“bus”.The choice of sub-classes has been motivated by(i)increasing the“semantic”specificity of the output required of systems,for example recognising differ-ent types of vehicle e.g.car/motorbike(which may not be visually similar);(ii)increasing the difficulty of the discrim-ination task by inclusion of objects which might be consid-ered visually similar e.g.“cat”vs.“dog”.Second,additional branches of the notional taxonomy have been added e.g.“an-imals”(VOC2006)and“household objects”(VOC2007). The motivations are twofold:(i)increasing the domain of the challenge in terms of the semantic range of objects cov-ered;(ii)encouraging research on object classes not widely addressed because of visual properties which are challeng-ing for current methods,e.g.animals which might be con-sidered to lack highly distinctive parts(c.f.car wheels),and chairs which are defined functionally,rather than visually, and also tend to be highly occluded in the dataset.The choice of object classes,which can be considered a sub-tree of a taxonomy defined in terms of both seman-tic and visual similarity,also supports research in two areas which show promise in solving the scaling of object recog-nition to many thousands of classes:(i)exploiting visual properties common to classes e.g.vehicle wheels,for exam-ple in the form of“feature sharing”(Torralba et al.2007); (ii)exploiting external semantic information about the rela-tions between object classes e.g.WordNet(Fellbaum1998), for example by learning a hierarchy of classifiers(Marsza-lek and Schmid2007).The availability of a class hierarchy may also prove essential in future evaluation efforts if the number of classes increases to the extent that there is im-plicit ambiguity in the classes,allowing individual objects to be annotated at different levels of the hierarchy e.g.hatch-back/car/vehicle.We return to this point in Sect.7.3.6These branches are also found in the Caltech256(Griffin et al. 2007)taxonomy as transportation,animal,household&everyday,and human—though the Caltech256taxonomy has many otherbranches.Fig.2VOC2007Classes.Leaf nodes correspond to the20classes. The year of inclusion of each class in the challenge is indicated by superscripts:20051,20062,20073.The classes can be considered in a notional taxonomy,with successive challenges adding new branches (increasing the domain)and leaves(increasing detail)3.3Annotated AttributesIn order to evaluate the classification and detection chal-lenges,the image annotation includes the following at-tributes for every object in the target set of object classes:–class:one of:aeroplane,bird,bicycle,boat,bottle,bus, car,cat,chair,cow,dining table,dog,horse,motorbike, person,potted plant,sheep,sofa,train,tv/monitor.–bounding box:an axis-aligned bounding box surround-ing the extent of the object visible in the image.The choice of an axis aligned bounding-box for the anno-tation is a compromise:for some object classes itfits quite well(e.g.to a horizontal bus or train)with only a small pro-portion of non-class pixels;however,for other classes it can be a poorfit either because they are not box shaped(e.g.a person with their arms outstretched,a chair)or/and because they are not axis-aligned(e.g.an aeroplane taking off).The advantage though is that they are relatively quick to anno-tate.We return to this point when discussing pixel level an-notation in Sect.3.6.1.In addition,since VOC2006,further annotations were introduced which could be used during training but which were not required for evaluation:–viewpoint:one of:front,rear,left,right,unspecified.This annotation supports methods which treat different view-points differently during training,such as using separate detectors for each viewpoint.–truncation:an object is said to be“truncated”when the bounding box in the image does not correspond to the full extent of the object.This may occur for two reasons: (a)the object extends outside the image e.g.an image of a person from the waist up;(b)the boundary of the object is occluded e.g.a person standing behind a wall.The aim of including this annotation was to support recognitionFig.3Example of the“difficult”annotation.Objects shown dashed have been marked difficult,and are excluded from the evaluation.Note that the judgement of difficulty is not solely by object size—the distant car on the right of the image is included in the evaluation methods which require images of an entire object as train-ing data,for example assuming that the bounding boxes of the objects can be aligned.For the VOC2008challenge,objects are additionally an-notated as“occluded”if a high level of occlusion is present. This overcomes a limitation of the VOC2007dataset that “clean”training examples without occlusion cannot auto-matically be identified from the available annotation.–difficult:labels objects which are particularly difficult to detect due to small size,illumination,image quality or the need to use significant contextual information.In the challenge evaluation,such objects are discarded,although no penalty is incurred for detecting them.The aim of this annotation is to maintain a reasonable level of difficulty while not contaminating the evaluation with many near-unrecognisable examples.Figure3shows an example of the“difficult”annotation. The criteria used to judge an object difficult included confi-dence in the class label e.g.is it certain that all the animals in Fig.3are cows?(sometimes we see sheep in the same field),object size,level of occlusion,imaging factors e.g. motion blur,and requirement for significant context to en-able recognition.Note that by marking difficult examples, rather than discarding them,the data should remain useful as methods able to cope with such examples are developed. Furthermore,as noted,any current methods able to detect difficult objects are not penalised for doing so.3.4Image Annotation ProcedureThe VOC2007annotation procedure was designed to be:–consistent,so that the annotation of the images is consis-tent,in terms of the definition of the classes,how bound-ing boxes are placed,and how viewpoints and truncation aredefined.Fig.4Summary of the entire VOC2007dataset.Histogram by class of the number of objects and images containing at least one object of the corresponding class.Note the log scale–accurate,so that there are as few annotation errors as pos-sible.–exhaustive,so that all object instances are labelled.Consistency was achieved by having all annotation take place at a single annotation“party”at the University of Leeds,following a set of annotation guidelines which were discussed in detail with the annotators.The guidelines cov-ered aspects including:what to label;how to label pose and bounding box;how to treat occlusion;acceptable im-age quality;how to label clothing/mud/snow,transparency, mirrors,and pictures.The full guidelines(Winn and Ever-ingham2007)are available on the WWW.In addition,dur-ing the annotation process,annotators were periodically ob-served to ensure that the guidelines were being followed. Several current annotation projects rely on untrained anno-tators or have annotators geographically distributed -belMe(Russell et al.2008),or even ignorant of their task e.g.the ESP Game(von Ahn and Dabbish2004).It is very difficult to maintain consistency of annotation in these cir-cumstances,unlike when all annotators are trained,moni-tored and co-located.Following the annotation party,the accuracy of each an-notation was checked by one of the organisers,including checking for omitted objects to ensure exhaustive labelling. To date,only one error has been reported on the VOC2007 dataset,which was a viewpoint marked as unspecified rather than frontal.During the checking process,the“difficult”annotation was applied to objects judged as difficult to recognise.As checking the annotation is an extremely time-consuming process,for VOC2008this has been incorpo-rated into the annotation party,with each image checked for completeness and each object checked for accuracy,by one。
A Vision of Visualization in Teaching Object-Oriented Programming
A Vision of Visualization in Teaching Object-Oriented ProgrammingM.Ben-Ari,N.Ragonis,R.Ben-Bassat LevyDepartment of Science Teaching,Weizmann Institute of Science,Rehovot76100Israelmoti.ben-ari@weizmann.ac.il1IntroductionIn this paper we wish to consider the visualization of programs in the context of teaching an introduc-tory course in object-oriented programming(OOP).We are investigating an objects-first approach, which is based on the premise that students should study OOP from the beginning so as to avoid a shift of the programming paradigm that occurs in an objects-late approach.However,objects-first is also problematical because the students are required to simultaneously master:(a)general concepts re-lating to computation,such as source code,compilation,execution,(b)paradigm-independent aspects of programming,such as assignment,procedure and function declaration and invocation,parameter passing,as well as(c)OOP-specific concepts,such as class,object,constructor,accessor,mutator.Our perspective is that of teachers of elementary computer science,so we will attempt to specify what we think an ideal visualization environment should look like,without attempting to investigate the feasibility of any particular aspect of the specification.Nevertheless,we are not working in a vac-uum.Our objects-first teaching has made extensive use of the popular and successful BlueJ(K¨o lling, 1999)educational integrated development environment for OOP programs in Java.It will be conve-nient to present our proposal as suggested modifications and extensions of BlueJ.Our proposal was also influenced by our use of the Jeliot(Haajanen et al.,1997;Ben-Bassat Levy et al.,2002)program visualization system;in particular,we have adopted the principle that program animation should be complete and continuous(Ben-Bassat Levy et al.,2002).Section2will set the background:why the complexity of the execution of OO programs seems to require visualization.In Section3,we discuss some of the difficulties and misconceptions that arose when teaching an objects-first course using BlueJ.Then in Section4,we will specify our vision of a visualization system.Section5discusses the complications caused byfields whose values are themselves objects.2Problems with visualizing OOPThe dynamics of the execution of an object-oriented program are quite complex when spelled out in complete detail,but these details are essential for a proper understanding of OOP by a student.Here are the two main scenarios that occur:•Object creation:The class declaration is consulted to determine thefields so that the correct amount of memory can be allocated to the object.After performing default or explicit initializa-tions of thefields,the constructor is executed.The instructions of constructor are again obtained from the class declaration.Since constructors are most frequently used to initializefields,the flow of data is from actual parameters to formal parameters and then by the assignment state-ment to thefields of this object.•Invocation of a method on an object:The class declaration is consulted to obtain the instruction sequence of the method.The actual parameters are evaluated and passed to the formal parame-ters.The instructions are then executed,where references to identifiers are to identifiers that are declared in the class,while the values themselves are in thefields of the object.These scenarios are central to any understanding of OOP and must be understood by the student, whether or not the teacher explicitly teaches these details!In the terminology of constructivism,anon-viable models.Of particular importance is the interplay between the static declarations of fields and methods in the class,and the dynamic access and modification of values in each object of the class.(See Corradi and Leonardi (2000)for a further discussion of the relation between static and dynamic concepts in OOP.)Some of the misconceptions that we have found in teaching objects-first arise from misunderstand-ings related to the following elements of OOP:1.The di fference between a class and an object of the class.2.The execution of a constructor as part of object creation.3.Operations can only be invoked on objects.4.The state of an object (i.e.the values of its fields)and the fact that an operation will usually change the state.5.The connection between the execution of an operation and its source code.6.Actual vs.formal parameters.7.The “uses”relation between classes,in particular,the value of a field of an object can itself be an object.3Teaching OOP with BlueJBlueJ (K¨o lling,1999)is an integrated development environment for teaching OOP in Java.It includes a multi-window text editor,an interface to the Java compiler and interpreter,and a debugger.The environment itself displays a class diagram of a program which shows the “uses”and inheritance relationships among the classes.A separate panel contains icons for each object that has been directly created.Schematically,the BlueJ display is shown in Figure 1.Objects User interface Menu bar Class diagramFigure 1:BlueJ user interfaceThe special attraction of BlueJ for teaching is that objects can be interactively created from a classpractice,we encountered misconceptions that can be attributed to the use of BlueJ.This may be since BlueJ emphasizes visualization of OO concepts and implicitly assumes a knowledge of general com-puting concepts and elementary programming concepts,such as those mentioned in thefirst paragraph of the paper.Here are some difficulties we encountered:1.In graphics programs(such as the example Shapes supplied in the BlueJ distribution),studentsfound it difficult to differentiate between the object(the icon in the environment)and the window that the object happens to display.Similar problems can be found differentiating the name of an object and the title of a window.2.Object icons are labeled only with their names and types.While the list of methods is easily seenin a popup menu adjacent to the icon,thefields and their values can only be seen by popping up a separate window.The object state is not highlighted and therefore students do not become familiar with the concept.3.Actual parameters of the invocation of methods and constructors are entered interactively;stu-dents learn that they are literal values(or actual objects)and then have difficulty understanding that an actual parameter can be any expression.4.Paradoxically,interactive invocation is the source of some misunderstandings,because it isdifficult to make the transition to the invocation of a method by another method.For example, if a method returns a value,BlueJ pops up a window displaying that value;this behavior is quite reasonable,but does not help the student understand that in a real program,something must be done with the value.Students became confused,because they were not able to integrate these individual actions into a coherent entity(“a program”),especially those students with previous exposure to writing or executing programs.Their favorite complaint was a sports metaphor:“I can’tfigure out who is playing whom.”The strong point of BlueJ is its visualization of the static structure in the class diagram,but there is,in effect,no dynamic visualization of the execution of a program.The type of coherent,dynamic animation that we are looking for is demonstrated in Jeliot(Ben-Bassat Levy et al.,2002).The next section presents our vision for a Jeliot-like animation within the framework of BlueJ.Petre and Green (1993)noted that experts and novices have different requirements for visualization.Our proposal is for a system for total novices learning objects-first.If the suggestions are implemented within a framework such as BlueJ,there would have to be the option of reducing the detail of the visualization as students become more experienced.Onefinal note:the authors of this paper have not been able to come to a consensus as to whether visualization for total novices should be implemented as a special mode of a more advanced system like BlueJ or whether it would be better to have a separate visualization tool for thefirst few weeks or months.Similarly,we do not agree whether the general computing and programming principles should be visualization within a OOP tool like BlueJ or perhaps initially studied and visualized out of context,like parameter passing in PSVE(Naps and Stenglein,1996).We are looking forward to discussing these issues at the workshop.4A vision of OOP visualizationIn this section,we will propose a visualization system for teaching OOP to novices,and we will describe two scenarios,one for constructing objects and the other for invoking a method on an object. Figure2shows the proposed screen layout.The environment panel will be toggled between the class diagram and the code of a selected class. The line-of-code panel will display the source code of the current line being visualized.The execution animation is performed on the stage(a term taken from Jeliot).The objects panel will have an iconbar will be used,but in initial examples,a typical object will contain only 2-3fields and these can all be shown (Figure 3).(See the Appendix for the source code of the examples.)Now for the description of the creation of an object.Since some of the actions are complex,it may be advisable to pause the animation at intermediate points,but we leave this consideration to the detailed design of the system.Some of the actions are the same as those in BlueJ,so we are assuming familiarity with that system.1.After loading the project,the class diagram will be displayed in the environment window.2.A right-click on a class icon will bring up a menu with a list of the constructors;a constructor can be chosen and invoked with actual parameters entered interactively.The line-of-code panel will show a constructor invocation,for example:Song song1=new Song("Waterloo","Abba",197);Objects Environment Line of codeStageFigure 2:Proposed user interfacename ="Waterloo"performer ="Abba"length =294Song song1¨¨¨¨¨¨¨¨Song song1name ="Waterloo"performer ="Abba"length =2943.The object declaration Song song1will be highlighted,and an icon will appear,labeled with name and class of the object.In the environment panel,the source code for the class will appear,and it will scroll until the list of fields is shown.(Obviously,there will have to be conventions dictating that all fields are declared together,perhaps at the start of the class.)Each field declaration will be animated and it will appear with a default initial value.4.The constructor invocation Song("Waterloo","Abba",197)will be highlighted and the source code will scroll until the code of the constructor is displayed.On the stage,temporary cells containing the actual arguments will appear,and as in Jeliot,they will be animated as moving into formal parameters and then into the fields in the object icon.5.Following the execution of the constructor,the stage and line-of-code panels will be cleared,and the environment panel restored to display the class diagram.Let us now turn to the invocation of a method on an object.1.As in BlueJ,the invocation will commence with right-clicking on the object icon,selecting a method and entering the actual parameters.The resulting invocation will be displayed in the line-of-code panel:song1.setLength(231);2.The source code of the object’s class will be displayed in the environment window and will scroll until the code of the method appears.The matching of the actual and formal parameters will be animated,followed by the animation of the execution of the statements of the method,similarly to the animation of Jeliot.If there is a return value,it will be displayed on the stage.3.Following execution,the stage and line-of-code panels will be cleared,and the environment panel restored to display the class diagram.5Fields with object valuesOne of the most di fficult OOP concepts to teach is that fields can be of a reference type and therefore the value of the field will be an object itself.In BlueJ,this relationship is not visualized.To create an object of class Disc (see Appendix),you would create two objects of class Song and then make them actual parameters to the constructor of Disc .(Conveniently,it is possible to click on a formal parameter field and then on the icon of an object in order to interactively indicate that the object is the actual parameter.)All three of the objects will appear as icons,but the visual connection between the objects is lost.If you double-click on the Disc object icon,you receive a textual list of its field values,including the notation <object reference>.Double clicking again will then list the field values of this object.But it is left to the student to make the association between the state containing object values (not names!)and the object icons.We propose that this relationship be visualized,either by arrows (Figure 4),or perhaps by color-coding,where the field is of the same color as the object icon.The di fficult task is to design a visu-name =...performer = =...performer =...Song songXSong songY song1=song2=Disc disc166alization for the invocation of a method on the contained objects,for example,invoking the method getTotalLength on the object disc1will in turn invoke the method getLength on the two objects of class Song.We propose that a method invocation cause a new window to be popped up,with the code of invocation displayed in the line-of-code panel,and the source code of the class of the method in the environment panel.There would be no need for an additional object panel.The invocation is animated as before,but after returning from the invocation,the cascaded window would be removed. This would help visualize the stack execution mechanism,though we would not explicitly mention it in an introductory course.6ConclusionThe visualization proposed here tries to achieve several objectives:•Visualize the relationship between dynamic execution and the static source code.•Display a continuous and complete animation of the execution of object creation and method invocation,so that the student can follow the entire dataflow.•Suggest a way to display as much information as possible in a single window,rather than scat-tering it over overlapping windows which are difficult for novices to work with.We wish to iterate that while the description of our vision has been based on BlueJ and Jeliot,we do not necessarily advocate modifying either of these systems to implement our suggestions.It is quite possible that the best solution may turn out to be a special-purpose visualization for use only in the first month or so of teaching OOP.Once the concepts have been mastered,the student may be able to work freely with a more advanced system.ReferencesRonit Ben-Bassat Levy,Mordechai Ben-Ari,and Pekka A.Uronen.The Jeliot2000program anima-tion puters&Education,2002.(in press).A.Corradi and L.Leonardi.Static vs.dynamic issues in object oriented program-ming languages.Journal of Object-Oriented Programming,13(6):11–24,October2000. /joop/article.asp?id=4388&mon=10&yr=2000.J.Haajanen,M.Pesonius,E.Sutinen,J.Tarhio,T.Ter¨a svirta,and P.Vanninen.Animation of user algorithms on the web.In Proceedings of VL’97IEEE Symposium on Visual Languages,pages 360–367,1997.Michael K¨o lling.Teaching object orientation with the bluej environment.Journal of Object-Oriented Programming,12(2):14–23,1999.Thomas L.Naps and Jeremy Stenglein.Tools for exploration of scope and parameter passing in a programming languages course.SIGCSE Bulletin,28(1):305–309,1996.Marian Petre and Thomas R.G.Green.Learning to read graphics:Some evidence that‘seeing’an information display is an acquired skill.Journal of Visual Languages and Computing,4:55–70, 1993.Appendix-Example programclass Song{String name;String performer;int length;Song(String n,String p,int l){name=n;performer=p;length=l;}void setLength(int newLength){length=newLength;}int getLength(){return length;}}class Disc{Song song1;Song song2;Disc(Song s1,Song s2){song1=s1;song2=s2;}int totalLength(){return song1.getLength()+song2.getLength(); }}。
形态鉴别特征 英语
形态鉴别特征英语When it comes to distinguishing between two similar objects, the first thing you'll notice is often their size. One might be noticeably larger or smaller than the other, giving an instant visual cue. The shape, too, can be a giveaway. One object might be round and smooth, while the other could be angular and jagged.Colors are another vital aspect to consider. Some creatures or plants have distinctive color patterns that set them apart from others. Maybe one has a bright red hue, while the other is a muted green. These color differences can be striking and easy to identify.Texture is another distinguishing factor. Some materials feel smooth and silky to the touch, while others might be rough and bumpy. You can often tell a lot about an object just by feeling its surface.For more intricate objects, details like patterns ormarkings can be key. A particular bird might havedistinctive stripes or spots on its feathers, while a leaf might have a unique vein pattern. These tiny butsignificant differences can help you identify one object from another.Lastly, the behavior or movement of an object can also be a telltale sign. Animals, for instance, have unique ways of moving and interacting with their environment. By observing these behaviors, you can often distinguish between similar species. So, whether it's size, shape, color, texture, details, or behavior, there are always ways to distinguish between objects and creatures in the natural world.。
Adobe Acrobat SDK 开发者指南说明书
This guide is governed by the Adobe Acrobat SDK License Agreement and may be used or copied only in accordance with the terms of this agreement. Except as permitted by any such agreement, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe. Please note that the content in this guide is protected under copyright law.
一种基于深度计算的图像增强现实系统实现
收稿日期:2019-11-10基金项目:2019年陕西省教育厅专项科研项目(19JK0288)作者简介:翟丽杰(1984-),女,讲师,硕士,主要研究方向为图像检索、增强现实、高速实时信号处理一种基于深度计算的图像增强现实系统实现翟丽杰(渭南师范学院物理与电气工程学院,陕西渭南714099)摘要:为解决在低能见度条件下由于景物无法辨识而无法进行增强现实的问题,以及在增强现实中虚拟物体与真实物体之间的深度一致性问题,研究了增强现实技术原理,给出了低能见度条件下增强现实方案,并设计了一个基于深度计算的图像增强现实系统.该系统可利用双目摄像机实时采集目标图像,并利用校正标定后得到的视差图像,采用半局部匹配方法(SGBM )算法和深度计算实现虚拟物体的跟踪配准.在不同环境下的实验表明,该系统具有良好的实时性、光不变性和深度一致性.关键词:低能见度;增强现实;深度计算;深度一致性;半局部匹配方法中图分类号:TP 391.9;TP 317文献标识码:AImplementation of an Image Augmented Reality SystemBased on Depth CalculationZHAI Lijie(Department of Physics and Electrical Engineering ,Weinan Normal University ,Weinan 714099,Shaanxi China )Abstract :In order to solve the problem that the scene can not be identified in low visibility and the depth consistency between the virtual object and the real object in augmented reality ,the principle of augmented reality technology is studied.The augmented reality scheme in low visibility is given ,and image augmented reality system based on depth calculation is designed.The system can use binocular camera to collect real-time target image ,and get better parallax image after calibration.The Semi Local Matching Method (SGBM )algorithm and depth calculation are usedto realize the tracking and registration of virtual object.Experiments in different environments show that the system has good real-time ,light invariance and depth consistency.Key words :low visibility ;augmented reality ;depth calculation ;deep consistency ;semi local matching method增强现实(Augmented Reality ,AR ),是一种将虚拟世界信息附加在真实世界环境中,通过使用者视觉观察来获得全新真实体验的新技术.该技术不仅展现真实世界的信息,而且能够同时展现计算机产生的虚拟信息,两种信息互相补充、叠加为一个画面,无缝集成在一个空间[1-3].增强现实技术在许多应用领域都有建树,诸如汽车导航、飞行器的研制与开发、数据模型的可视化、虚拟操作演练.在医疗领域中,医生可以通过增强现实技术,将虚拟的X 光投影在病人身上以展示病人相应的内脏器官.在文物考古等领域中,通过增强现实技术,可以在残缺的古迹上虚拟重构出原始文物的样貌,同时也能提供给参观者实时的古文物信息,方便用户了解所需内容[4-6].一般来说,增强现实技术涉及许多新的前沿技术,包括计算机模式识别、人机交互、计算机图像处理、计算机视觉和显示技术.为了使场景更加真实,需要准确地获取虚拟物体与真实物体之间的深度关系.在增强现实系统中,虚实物体的深度一致性一直是研究的热点,这个深度一致性与虚实物体的遮挡密切相关[7-10].针对增强现实中的遮挡问题,提出了两种解决方案.一种是基于模型的虚拟真实遮挡方案,另一种是基于深度信息的虚拟真实遮挡方案[11-12].随着计算机图形学和图像技术的飞速发展,一些学者提出了单眼图像的虚拟真实遮挡方法.该方法不需要预先估计真实场景中的目标结构和深度信息,它只需要利用图像处理技术实时获取场景的每一帧,实时跟踪每一帧中的对象,确定对象之间的遮挡关系.为了实现遮挡关系,需要去除提取的场景部分,针对现有方法存在的实时性差、深度信息获取不准确、真实感弱、应用领域有限等缺点,本文以计算机立体视觉、图像处理等技术为基础,研究了基于空间颜色和深度一致性的实时图像增强技术,并设计了一个基于深度计算的图像增强现实系统.1空间保色的图像增强方法低照度图像本质上是由于场景的低照度造成的.事实上,在大多数低照度图像中,光的不均匀分布会导致图像中出现较亮和较暗的区域,这就给图像的增强带来了困难.为了恢复低照度图像,我们希望放大较暗区域的像素值并保留较亮区域的像素值[13-14].获得准确的光强分布是恢复低照度图像的关键,本文采用暗通道先验方法获得图像的光强分布.在自然场景中,图像可以描述为:I ()x =J ()x t ()x +A ()1-t ()x ,(1)其中:I 为观察图像;J 为期望场景的真实辐射值;A 为光强分布图;t 为光线通过媒体传输到相机时未散射的部分.低照度图像增强的目的是从I 中恢复J 、A 和t ,为了得到图像的照度图像,必须先提取图像的暗通道图像.暗通道的先验值是在正常光照下观察室外图像得到的,也就是说在户外无雾图像中(非天空区域)的大部分局部区域,存在一些像素点(暗像素)在至少一个颜色通道中具有非常低的值,趋近于0.三个通道每个像素RGB 的最小值定义为I min :I min ()i ,j =min c ∈{}R ,G ,B ()I c()i ,j .(2)相应的暗通道图像B 是:B ()i ,j =min (x ,y )∈Q ()i ,j ()I min ()x ,y ,(3)其中:Q ()i ,j 是以I ()i ,j 为中心,大小为以N ×N 像素的图像块,并且()x ,y 是Q ()i ,j 中的任何像素点.根据公式(2)和(3),可以得到低照度图像I 的暗通道图像B .根据公式(1):B ()i ,j =A ()i ,j ()1-t .(4)本文不讨论雨雾的影响.对于景深相同的场景,如室内和街道,t 可以看作是一个常数.因此,可以获得低照度图像的部分光强图A ,即:A ()i ,j =B ()i ,j /()1-t .(5)可见,对于图像I ,光强分布A 与固定系数为1-t 的暗通道图像B 之间存在一定的比例关系,如何得到准确的暗通道图像B 将是准确估计图像光强分布的关键.由于t 将在随后的计算中减少,因此不必估计它.为了满足图像平滑的要求,对于图像I 上的每个点,以其中心和M×M 的大小的窗口中的所有像素由以下公式线性近似:E =a k D +b k ,(6)其中:D 为图像I 中以每个点为中心的M×M 的大小的窗口的所有像素实际值;E 为图像I 中以每个点为中心的M×M 的大小的窗口的所有像素线性近似值.在确定M 值之后,由近似参数a k 和b k 确定线性近似的结果,当a k 和b k 的值变化时,线性近似的结果E 也将改变.E 和D 之间的差异由以下公式给出:引用格式:翟丽杰.一种基于深度计算的图像增强现实系统实现[J ].河南科学,2020,38(2):188-193.--189第38卷第2期河南科学2020年2月R ()a k ,b k =∑x ∈W k ()()a k D -D +b k 2+εa 2k ,(7)其中:ε是一个非常小的常数,以防止a k 过大.通过求R ()a k ,b k 的最小值,确定了线性近似参数a k 、b k .采用线性回归方法,R ()a k ,b k 的最小值为:a k =∑x ∈W k ()u kD -u 2k ||C count ()W ()δ2k +ε,b k =u k ()1-a k ,(8)其中:δ2k 和u k 分别是窗口W k 中D k 的方差和平均值;C count ()W 是窗口W 中的像素数.在获得所有窗口W k 的线性近似解a k 和b k 之后,由于像素可能同时存在于多个窗口中,当获得最终平滑结果时,包括这一点的所有窗口W k 的a k 和b k 的平均值计算出来,也就是说:E =-a k D +-b k .(9)在获得所需的光强度后,根据像素的光强度与所需的光强度之比,将低照度图像I 中每个像素的RGB 通道的灰度值放大成不同的大小,得到增强图像,具体的低照度图像增强公式为:J ()i ,j =I ()i ,j ×()1+P ×exp ()-()E ()i ,j /I d ,(10)其中:J 为增强的低照度图像;I d 为图像I 中每个像素的RGB 通道的灰度值;P 为图像增强的比例系数,当原始场景中的平均光强较低时,需要用较大的系数放大图像通道,则P 应为较大的值.当原始场景中的平均光强度较高时,需要放大系数较小的图像通道.此时,P 应该是一个较小的值,即P×B meangray 是一个常量值.由以上理论,本文提出的低照度图像增强方法包括以下步骤:1)输入图像,转换成RGB 颜色空间,得到RGB 三通道图像;2)计算RGB 通道中每个像素的最小值,得到输入图像的暗通道图像;3)为解决暗通道先验原理不适用于白色区域的问题,确定图像中的白色区域,修改白色区域像素的暗通道值,得到初始光强分布图;4)为了消除暗通道先验原理引起的块效应,对暗通道的修正图像进行线性平滑处理,得到平滑后的光强分布;5)根据平滑后图像像素的灰度与期望光强的比值,对图像中不同像素的三个RGB 通道进行增强,完成图像增强.2基于深度计算的增强现实系统设计本文在前人理论研究的基础上,设计了一个基于深度计算增强现实系统,解决了虚拟物体和真实物体之间的深度一致性问题[15].该系统主要涉及双目立体视觉技术、双目摄像机标定和一些开放式GL 三维绘制技术,主要包括四个模块:双目摄像机标定模块、视差采集模块、三维点云重建模块和虚拟真实深度一致性处理模块.系统架构如图1所示.该系统首先对摄像机进行初始化:选择摄像机的分辨率和摄像机的设备序列号,然后启动系统进入双目立体摄像机的校准模块.主要有两部分:摄像机标定和双目标定.双目摄像机标定有两种方式:一种是直接从摄像机采集标定板图像;另一种是就地读取标定板图像.为了使系统具有实时性,本文重点研究了第一种获取标定板图像的形式.标定后的视频图像在进入立体匹配模块前需要进行校正和裁剪.其目的是使左右视频画面的投影中心原点一致,左右投影平面共面且与极线垂直对齐,从而减少对后续获取双目视差的影响.本文采用布格极坐标立体校正算法对图像进行校正.在深度信息获取过程中,首先采用半局部匹配方法(SGBM )实时获取密集视差图;然后根据双目立体标定结果和双目视差,利用三角法获得真实场景中物体的三维信息,解决了虚拟物体和真实物体的深度一致性问题.--1902.1摄像机校准和校准模块该系统首先利用早期足够多的双目立体摄像系统捕捉真实场景中物体的原始图像帧,然后对采集到的图像进行去噪等操作.本文采用张正友的黑白棋盘标定方法对双目立体摄像机进行标定,得到摄像机的内外参数[16].最后,对双目图像对进行校正,为后续的立体匹配和视差图像采集做好准备.该系统利用早期的双目立体摄像机从不同方向采集模板图像,识别图像中的特征点.在特征点识别过程中,采用Harris 角点提取方法.如果识别成功,则使用不同的颜色连接成功提取的特征点.根据标定后获取的摄像机内外参数,进行双目图像校正.通过上述步骤,在获得双目相机的外部参数以及对双目相机采集的图像对进行校正后,可以得到更多的标准图像对,从而获得更精确的视差图像.2.2立体匹配及深度采集模块该模块主要包括双目立体匹配、视差采集、三维信息采集等.由于系统需要实时性,基于半全局匹配算法实现了图像对的立体匹配,得到了稠密的视差图.然后利用三角相似测量原理,利用双目摄像机标定的密集视差和内外参数,得到三维数据.在270lx 光强条件下,本节测试的三组不同场景的结果如图2所示,其中上图像为原始图像,下图像为原始图像对应的视差.图1有遮挡物的增强现实处理系统Fig.1Augmented reality processing system with occlusion图2实验结果图Fig.2Experimental result images引用格式:翟丽杰.一种基于深度计算的图像增强现实系统实现[J ].河南科学,2020,38(2):188-193.--191第38卷第2期河南科学2020年2月在实验过程中,以图2中的第一组原始图像为例,得到如表1所示的3D 数据示例.其中Z 坐标值是本文提到的深度信息值.表13D 采样数据Tab.13D sampling dataX2.5653.0543.2842.6322.8760.8781.382Y4.6844.6324.7264.5644.1683.8523.878Z 43.52343.67743.72843.28543.17442.24642.736X 2.9253.1623.0382.2482.8932.9142.885Y 4.7214.5694.4744.1764.4694.4754.079Z 43.57843.42743.38943.22543.27443.47543.274同时,对得到的深度信息值与实际距离值的相对误差进行了测试,实验测试结果见表2和图3.测试结果表明,当物体的深度值在55cm 以内时,系统得到的深度值误差较小,相机与物体的距离越远,误差越大.本文测试了320×240帧图像实时采集和处理所需的时间,并通过200次实时采集和10次随机采样计算了平均处理时间.在计算获取深度数据的过程中,平均时间为0.50339ms ,满足实时性要求.2.3虚拟与真实物体深度一致性处理模块虚拟对象和真实对象的深度一致性处理模块是系统的最后一个重要模块.为解决虚拟物体与真实物体之间的深度一致性问题,提出了基于双目摄像机的深度计算方法[17].根据场景对象的三维数据信息,即获取对象在真实场景中相对于摄像机坐标的深度信息,进而处理虚拟对象与真实对象的深度一致性处理关系.该模块主要包括两个部分:一是虚拟对象的创建和渲染;二是虚拟对象和真实对象的深度一致性处理.1)虚拟对象的创建和渲染创建虚拟对象的常用方法包括使用第三方软件3D StudioMax 进行建模,以及使用Open GL 库功能设计三维模型.由于前一种方法的复杂性,该系统使用Open GL 函数库自动生成虚拟对象.2)虚拟与真实对象的深度一致性处理针对虚拟物体与真实物体的深度一致性问题,提出了一种解决深度一致性问题的方法,并根据得到的深度值判断虚拟物体与真实物体的深度关系.其思想是:首先利用标定后的双目立体视觉系统的外参数旋转矩阵R 和平移矩阵T ,将真实物体转移到打开的GL 窗口中.其次,将虚拟对象的深度设置为Z 0.最后,通过将真实场景中物体的Z 轴坐标值(Z 1)与实验距离/cm 错误率/%测量深度值/cm 605040302010测试结果数值0246810次数图3实验测试结果Fig.3Test results 表2实验测试结果Tab.2Experimental test results 实验次数12345678910实验距离/cm 10152025303540455055测量深度值/cm10.56715.52820.48625.56730.65635.99641.23246.58651.99457.234错误率/%5.673.532.432.272.192.853.083.523.9884.06--192引用格式:翟丽杰.一种基于深度计算的图像增强现实系统实现[J].河南科学,2020,38(2):188-193.虚拟物体的深度值Z0进行比较,当Z0大于Z1时,虚拟物体将呈现在融合场景中,否则,真实场景中的物体将被绘制在合成场景中.具体步骤如下:第一步:根据获取的真实场景中真实物体的深度信息,主要利用Open CV网站提供的对象数据集和Open CV函数库中的对象识别CV Haar detect objects()函数进行识别.第二步:在跟踪阶段,本文采用光流算法,其思路是利用图像的两个连续帧之间的差异来实现目标跟踪.为了提高跟踪的显示效果,采用矩形盒包含整个人的头部图像,并在不同场景下对目标进行跟踪.第三步:利用旋转矩阵R和平移矩阵T将人像框映射到GL三维窗口中,在窗口中以固定深度绘制虚拟物体.第四步:在打开的GL三维窗口中,如果虚拟对象的深度值大于对象的深度值,则使用图像技术在融合场景中渲染对象.如果虚拟对象的深度小于对象的深度,则在融合场景中渲染虚拟对象.通过以上步骤,可以解决虚拟信息与真实物体的深度一致性问题,并在显示器上显示正确的虚拟-真实融合场景.3结论本文在大量相关文献研究的基础上,对基于空间颜色和深度一致性的图像实时增强现实技术进行了分析和研究.本文着重分析了增强现实系统中虚拟深度与真实深度的一致性,探讨了深度的计算,为了实现无缝的虚拟现实融合效果,增强现实系统必须首先保持虚拟现实场景的几何一致性,即保持虚拟现实场景的几何关系在相对位置、透视投影等方面的一致性.基于以上设计了一种增强现实系统.该系统可以利用双目摄像机实时采集目标图像,并通过校正标定后的图像得到更好的视差图像.采用SGBM匹配算法和深度计算实现虚拟物体的跟踪配准.在不同环境下的实验表明,该系统具有良好的实时性、光不变性和深度一致性.参考文献:[1]朱秀庆,刘玉庆,周伯河.载人航天领域增强现实技术应用研究进展[J].航天医学与医学工程,2014,27(5):373-379.[2]孟凡皓,朱智慧,张小辉,等.虚拟现实和增强现实技术在口腔医学领域中应用的研究进展[J].山东医药,2018,58(34):101-103.[3]王卉,李金城.增强现实技术在图书出版领域的应用研究[J].中国出版,2015(17):38-40.[4]严雷,杨晓刚,郭鸿飞,等.结合图像识别的移动增强现实系统设计与应用[J].中国图像图形学报,2016,21(2):184-191.[5]顾长海.增强现实(AR)技术应用与发展趋势[J].中国安防,2018(8):30-32.[6]王聪.虚拟现实和增强现实技术及其标准化研究[J].信息技术与标准化,2016(9):27-31.[7]HUANG H,HUA H.High-performance integral-imaging-based light field augmented reality display using freeform optics[J].Optics Express,2018,26(13):17578.[8]LEE A,LEE J H,KIM J.Data-driven kinematic control for robotic spatial augmented reality system with loose kinematic specifications[J].ETRI Journal,2016,38(2):337-346.[9]刘瑞剑.低能见度条件下图像清晰化处理研究[D].太原:中北大学,2008.[10]周自顾,曹杰,郝群,等.保留边界特征的深度图像增强算法研究[J].应用光学,2018(2):57-60.[11]DOSHI A,SMITH R T,THOMAS B H,et e of projector based augmented reality to improve manual spot-welding precision and accuracy for automotive manufacturing[J].The International Journal of Advanced Manufacturing Technology,2017,89(5-8):1279-1293.[12]RIERA A S,REDONDO E,FONSECA D.Geo-located teaching using handheld augmented reality:Good practices to improve the motivation and qualifications of architecture students[J].Universal Access in the Information Society,2015,14(3):363-374.[13]CARRERA C C,AVARVAREI B V,CHELARIU E L,et al.Augmented reality as a digital teaching environment to develop spatial thinking[J].The American Cartographer,2017,44(3):259-270.[14]周自顾,曹杰,郝群,等.保留边界特征的深度图像增强算法研究[J].应用光学,2018(2):57-60.[15]赵洋,刘国良,田国会,等.基于深度学习的视觉SLAM综述[J].机器人,2017(6):32-35.[16]陆平.移动增强现实中的图像处理关键技术研究及应用[D].南京:东南大学,2015.[17]ZEHAO H E,XIAOMENG S,YAN Z,et al.The development trend of virtual reality and augmented reality technology based on holographic optics[J].Science&Technology Review,2018,36(9):8-17.(编辑张继学)-193-。
虚实互馈的英文表述
虚实互馈的英文表述Virtual and Reality Intercommunication.In the realm of computer science and human-computer interaction, the concept of "virtual and reality intercommunication" plays a pivotal role in bridging the gap between the digital and physical worlds. This article delves into the intricate interplay between virtual and real environments, exploring its underlying principles, applications, and implications for future technological advancements.Bridging Virtual and Physical Realms.Virtual reality (VR) and augmented reality (AR) technologies have revolutionized our perception of digital experiences. VR immerses users in fully simulated environments, while AR overlays digital elements onto the real world. The convergence of these technologies enables seamless intercommunication between virtual and reality.At the heart of this intercommunication lies theability for virtual elements to influence the physical world and vice versa. Through sensory feedback devices such as haptic suits and motion trackers, VR experiences can provide tangible and immersive interactions with virtual objects. Conversely, real-world data can be captured and integrated into virtual environments, creating a hybrid reality where the boundaries between the two realms blur.Applications in Diverse Fields.The intercommunication between virtual and reality has profound implications across various industries and applications:Healthcare: VR simulations facilitate surgical planning, rehabilitation, and immersive medical training. AR-enhanced surgeries provide real-time guidance and visualization of internal structures.Education: Virtual worlds create interactive learningenvironments, enhancing student engagement and enabling hands-on exploration of complex concepts. AR overlays digital content onto textbooks, bringing abstract subjects to life.Manufacturing: Virtual prototyping and testing reduce development time and costs. AR-assisted assembly lines guide workers through complex procedures, improving efficiency and safety.Retail: VR showrooms allow customers to experience products virtually, fostering informed decision-making and reducing returns. AR applications enable shoppers to visualize furniture and décor in their homes before making purchases.Entertainment: VR and AR transform gaming, entertainment, and art installations, offering immersive and interactive experiences that transcend traditional boundaries.Technical Foundations.The intercommunication between virtual and reality relies on a confluence of technological advancements:High-Resolution Displays: VR headsets and AR glasses provide crisp and immersive visual experiences.Motion Tracking: Sophisticated sensors accurately capture user movements, enabling realistic virtual interactions and seamless blending with the real world.Haptic Feedback: Wearable devices simulate physical sensations, enhancing the immersion and realism of virtual experiences.Artificial Intelligence (AI): AI algorithms process and interpret real-world data, enabling virtual environments to respond dynamically to user actions and environmental changes.Challenges and Future Directions.While the intercommunication of virtual and reality offers immense potential, it also presents challenges:Sensory Overload: Excessive immersion in virtual environments can lead to disorientation and fatigue.Privacy Concerns: Data collected from VR and AR devices raises privacy and security considerations.Accessibility: Ensuring that these technologies are accessible to all users, regardless of physical or cognitive abilities, is crucial.Ongoing research and development aim to address these challenges and push the boundaries of virtual and reality intercommunication. Advances in AI, sensory feedback, and spatial computing promise even more immersive and interconnected experiences in the years to come.Conclusion.The intercommunication of virtual and realityrepresents a paradigm shift in the way we interact with the world around us. By seamlessly blending digital and physical experiences, these technologies empower us to learn, work, and play in ways that were once unimaginable. As this field continues to evolve, we can anticipate transformative applications that shape the future of human-computer interaction and reshape our perception of reality itself.。
我们的视觉感知:第2部分。感知运动、形状和深度的视觉难题说明书
Our Sense of Sight: Part 2. Perceiving motion, form, and depthVisual PuzzlesFeaturing a “Class Experiment” and “Try Your Own Experiment”WHAT STUDENTS WILL DO• TEST their depth perception using one eye and then two• CALCULATE the class averages for the test perception tests• DISCUSS the functions of depth perception• DEFINE binocular vision• IDENTIFY monocular cues for depth• DESIGN and CONDUCT further experiments on visual perception, for example:• TEST people’s ability to interpret visual illusions• CONSTRUCT and test new visual illusions•DEVISE a “minimum difference test” for visual attentionSETTING UP THE LABSuppliesFor the Introductory ActivityTwo pencils or pens for each studentFor the Class ExperimentFor each group of four (or other number) students:Measuring tools (cloth tape or meter sticks)Plastic cups, beakers or other sturdy containersSmall objects such as clothespins, small legos, paper clipsFor “Try Your Own Experiment!”Visual illusion figures, found at the end of this Teacher GuidePaper and markers or pensRulersOther Preparations•For the Class Experiment and Do Your Own Experiment, students can write results on a plain sheet of paper.•Construct a chart on the board where data can be entered for class discussion.•Decide the size of the student groups; three is a convenient number for these experiments—a Subject, a Tester, and a Recorder. Depending on materials available, four or five students can comprise a group.•For “Try Your Own Experiment!,” prepare materials in the Supply list and put them out on an “Explore” table.•Modify activities for exceptional students:•Make sure a student who has low vision is seated in a well-lighted area•Provide other activities for blind students: some may be interested in teaching the class how to read Braille or in explaining how they navigate without sight. They may be able to explain modifications they have for their computers or otherequipment.INTRODUCTORY ACTIVITIESGive students initial informationIntroduce Visual Perception to the class according to your teaching practices; e.g., with reading, lecture, and discussion before lab work: the Teacher Resource accompanying this unit gives background information on perception. In addition to information on the cells and pathways of the system, for the experiments on depth perception, students will need to know the concepts of monocular and binocular vision, monocular cues for depth and distance, and retinal disparity.For the investigations in the “Try Your Own Experiment” section, discuss how our brains integrate current visual information with past experience and how our attention is progressively directed from a whole scene to its parts. Use some of the references in the Teacher Resource section to introduce students to visual illusions so they will be able to use those you make available to them from the Teacher Guide for devising tests. Introduce lab activities with a demonstrationWhen students enter the classroom on lab day, introduce the activities with an “eye-catching” short activity:Have each student hold a pencil or pen in each hand at arms length in front of theface. Ask everyone to touch the tips (e.g., erasers of pencils) together while closing one eye (pencils can be held horizontally—end to end, or vertically—one abovethe other.) Next have them open both eyes and repeat the activity.Use the activity to open a short discussion of the importance of binocular visionand depth perception.Visual PuzzlesCLASS EXPERIMENTThe sections below match those in the Student Guide. The comments guide teachers in preparing and teaching the labs.LAB QUESTIONAfter demonstrating the concept of depth perception with the pencils, briefly review various aspects of visual perception, and help students to write the following Lab Question or one that matches it closely:PLANS AND PREDICTIONSEncourage students to add their own knowledge and experiences in order to make predictions after you have provided background information. Ask if it is easy to misjudge how far away something is, and if this changes under different circumstances. PROCEDURE1.Introduce safety precautions:Follow all standard lab safety guidelines for preparing and teaching the activity; e.g., take precautions to avoid germ spread; wash hands; dispose of chemicals properly; use equipment properly.2.Establish the number of students in each group3.Explain the steps in the Class Experiment. These are listed in the Student Guide,under Procedure.4.When students test monocular vs. binocular cues at a distance (step 9 underProcedures), have everyone measure the same distance, about 8 to 10 feet, socalculations can be made from similar data.5.Remind students to clean up the lab when they finish.DATA AND OBSERVATIONSSee that students are recording observations on paper.Have the data recorders from each group list their results in a prepared chart on the board.When all results are written, have students calculate the class average for the number of successful drops with one eye and then with two eyes, for each of the distances tested. ANALYSIS: THINK ABOUT IT!The following questions can encourage thinking about the activity; add your own questions. (See also the specific questions in the Analysis section of the Student Guide.)•What features of our eyes and brains allow us to perceive depth and the solidity of objects?•How do your results compare with those of other groups?•Can you explain the differences you see among the observations? (For scores with monocular vision: differences in how well people are able to use monocular cues,“lucky guesses;” for scores with binocular vision: some people may have visionproblems that interfere in a general way—astigmatism, myopia; even “normal”people vary in their acuity and visual processing—this is presumably a result of genes that may give people more or fewer cone cells in the fovea, or determine how well the axons from one place to another are “wired up,” for example.)•Do you have any direct evidence from your experiment to show that such a thing as retinal disparity exists and results in stereoscopic vision? (There is no direct evidence from these activities; this would require investigation, with special instruments, of images falling on the retina, and recordings from cells in the cortex to show that some cells receive input from both retinas.)•Discuss what the results mean in terms of the concepts learned in the Background lecture and discussion on visual perception.CONCLUSIONSStudents should:•State how the Lab Question was answered in their experiments.•List three things (or a number you choose) they think are important about today’s experiment. Focus students by asking such questions as: How is depth perception important to us? What do our brains do with sensory (particularly visual)information? Can you investigate some questions on your own? Do scientists know everything there is to know about visual perception?•List ways to improve this experiment or further things to test.Visual Puzzles TRY YOUR OWN EXPERIMENT! LAB QUESTIONAfter the students have completed the Class Experiment, refresh their memories about visual perception in general, so they will be ready for experiments beyond depth perception. Remind them that the phrase “visual perception” refers to more than just depth perception: it is a broad term that refers to how we interpret the meaning of what we see.When we use our depth perception, we interpret some objects as being closer than others, and we comprehend that, for example, a globe is a solid sphere, not a flat circle. In interpreting other visual information, we use our past experience. As explained in the Teacher Resource for this unit, when we see a friend at some distance, we recognize the person and know that this is a normal human, even though the image on the retina is much smaller than that of a person standing right next to us. We are using cues from the rest of the scene—we notice that the trees and buildings also appear small, and realize from experience that this means that the person is some distance away, and is not a miniature human!Because we use cues like this, pictures that mix up the cues can fool us. Parts of the brain that associate memories with what we are currently seeing are responsible for visual perception, and these “higher brain centers” are frequently tricked by visual illusions. Ask questions to encourage thinking about how our eyes and brains can be tricked. Have any of them used the Magic Eye books (see the Reference List at the end of this unit)? Have any been to illusion halls at a science center or museum? How have they been fooled?After this review, indicate the lab bench where additional materials are available for “Try Your Own Experiment” and let students explore the items. Then brainstorm with them for ideas such as how visual illusions trick us, or how to extend the depth perception study.PLANS AND PREDICTIONSSUGGESTIONS FOR EXPERIMENTS(Add your own ideas to this list. The Student Guide also suggests some of these experiments but does not contain all details given here.)•Make the visual illusions at the end of this unit (or others you may find—see the Reference list) available to students who want to work with illusions. They should devise tests for classmates to see how they score. For example, students can testpeople for their ability to see if two objects are the same size in a visual illusion. For the control experiment, show the subjects two identical circles. To change a variable, add a series of small circles around one of the original circles, and a series of large circles around the other original circle, and repeat the test. (One of the visual illusions at the end of this unit shows these figures.) Be sure students formulate a labquestion and prediction, and that they measure responses and calculate results.•Construct your own visual illusions, for example, a picture with opposite cues for size and distance. Test your classmates.•To investigate visual attention, devise a “minimum difference test” to see how different one or one group of objects in a set must be from the others, in order forpeople to notice it readily. As suggested in the Student Guide, students can draw a field of identical smiley faces, with one that is different, and work to see howdifferently they must draw it to get virtually instant recognition of this one face in the field. Again, they should make predictions about which drawings will fool people and which they will quickly recognize.•In a variation on this minimum difference test, students can use a copy of a famous picture (Mona Lisa) or of a well-known person (one of the U. S. Presidents). Make careful alterations to one picture; for example, thicken the eyebrows or change the hairstyle, then present the original and the altered copy both upside down to theSubject. How much alteration is necessary for people to immediately discern thechange?•Extend the depth perception study to find out if there is a distance limit to the idea that two eyes are better than one. Students may need to go outside to finish thisexperiment. Theoretically, monocular cues take over from stereoscopic vision atdistances beginning at about 100 feet, but ability to drop a small object into a small container will probably fade before that.HOW CAN YOU DESIGN A GOOD EXPERIMENT?The following section is reproduced from the Student Guide.In designing experiments to answer questions like these, keep in mind what a successful investigator must do:•Ask a very specific question: not, for example, “Can I fool someone with a visual illusion?,” but rather, “With this visual illusion on relative sizes of objects, what percentage of subjects will give the wrong answer?” It’s good to have the general question in mind, but ask a narrow question for each experiment.•Be sure you understand the control condition for your experiment, and then change only one thing, or variable, in the experiment.•For example, if you plan to test people for their ability to see if two objects are the same size in a visual illusion, for the control experiment show the subjects twoidentical circles. To change a variable, add a series of small circles around one of the original circles, and a series of large circles around the other original circle, and repeat the test. Do not let your Subject know you are using the same original circles!•Follow this same plan with other kinds of visual illusions: in this way you will make your activity a real experiment, with a prediction and a test for the prediction. Then analyze—think about—your results and make conclusions.For example, create a test to see how different one object in a group of identicalobjects must be for people to identify it quickly. For example, draw a page ofidentical smiley faces in rows. Make one smiley face a little different—make thesmile a bit less curved. How long does it take someone to point to the differentone? To change a variable, make a frowning face in a sea of smiley faces. Canyou think of another kind of variable to change? If all the objects are a dull color, are the results different from what you get if all are brightly colored? Do certaincolors make identification harder?•Researchers try to change only one variable in a new experiment after they do a control experiment. Sometimes this is difficult, but at least they must be aware of other variables and think about what effects they might have.•Keep good records of everything you do.PROCEDURE•Introduce safety precautions:Follow all standard lab safety guidelines for preparing and teaching the activity; e.g., take precautions to avoid germ spread; wash hands; dispose of chemicals properly; use equipment properly.•If time is limited, restrict the number of materials you put out for experimenting.•Before students begin their experiments, have each group write a simple plan that includes a question, a prediction, a list of steps they will take to answer the question, and data sheets and graphs (if needed).•The list of steps in the experiments should include comments on the control system and on the variable being tested.•Approve each group’s experiment before they begin.•Remind students to keep good records.•Students should clean up the lab when they finish.DATA AND OBSERVATIONS•Make supplies available to students.•Suggest that students create any data sheets and graphs they need. ANALYSIS: THINK ABOUT IT!The following questions can encourage thinking about the activity; add your own ideas. (See also the specific questions in the Analysis section of the Student Guide.)•Have each group present its findings in a quick oral presentation (two to three minutes).•How do your data help answer your lab question?•What was the control experiment or condition for your experiment? What did you change or add as your variable?•Did you make sure to change only one variable? Were there variables you could not control?CONCLUSIONS(See also the questions in the Student Guide.)Ask students how certain they are of their conclusions. Would they need more evidence to make their conclusions more secure?Each group should write a final conclusion, making sure it addresses their Lab Question. MORE VISUAL PERCEPTION ACTIVITIESFind out more about visual perception and puzzles by searching the World Wide Web or your library. Can you find out how “3-D” movies are made? What is “motion blindness?”Here are some good Web sites to visit for visual perception information: at the Optometrists’ Network, this site shows you theMagic Eye book type of illusion. Go to Magic Eye 3D./gallery M.C. Escher’s famous drawings/index.html lots of illusions/chudler/chvision.html/sensessee: The Strange Symptoms of Blindness to Motionclick on Motion Integration, then on Stereograms/explorations/0492melzak.html#sidebar Scientific American article on “phantom seeing and hearing,” similar to phantom limbexperiencesILLUSIONSThe following illusions are from Neuroscience for Kids,/chudler/chvision.html1.Is the center circle on the right the same size as the center circle on the left? It appearsthat the circle that is surrounded by the small circles is larger that the circle that is surrounded by the larger circles. Measure the diameters of the two center circles to see.2.This inverted "T" has two lines: are they the same length--- is the vertical line longerthan the horizontal line? Measure them yourself.3. Which arc comes from the circle with the largest diameter?It probably looks as though arc C is part of the largest circle. However, all the arcs are actually from the SAME circle. Look at the same figure again, with the right and left sides of the larger 2 arcs blocked off. All arcs come from circles of identical size.4.Which of the lines shown below is longer?Measure them—measure only the horizontal lines, not the place where the arrowheads end. You may be surprised to find out that they are the same length. This is called the Muller-Lyer illusion. We see the lines as different because we have been "taught" to use specific shapes and angles to tell us about size.5.This is the famous Poggendorff Illusion (created by Johann Poggendorff in 1860). Isthe line behind the rectangle straight or not? It looks like it does not go straight across, but check by placing a straight-edge on the line.6.Do you see a vase or a face in the figure below? This type of figure was firstillustrated by Edgar Rubin (a psychologist) in 1915. Notice that it is very difficult to see both the faces and the vase at the same time. This may happen because we tend to focus our attention on only one part of the image...either the faces or the vase.。
基于被动双目立体视觉的三维重构方法分析
ABSTRACTAfter several decades of development, computer vision has become an important r esearch area of computer science. Binocular stereo vision as an important branch ofc omputer vision has been the focus of the study and hot spots. Binocular stereo visiond irectly simulate the process of human vision, and it can be flexible in a variety ofc onditions to measure three-dimensional information, and binocular stereo vision technology has the advantages of getting depth information from two-dimensional images of objects from images obtained, which has a very important significance on whether it is from the perspective of visual physiology or specific engineering applications.Based on the computer vision theory of Marr, the paper makes a research on the process of achieving functional modules, which has 3-D scenes, imaging model, imaging transformation, camera calibration, image feature selection, image feature matching, t hree-dimensional reconstruction. Using the open source OpenCV library and IPL library d eveloped by Intel and VC++6.0, the paper implements the contents of function modules.In this paper, we choose pinhole imaging distortion model, which has several imaging m ajor transformations: the world coordinate system to the camera coordinate system, the c amera coordinate system to the imaging plane coordinate system, the imaging plane c oordinates to the computer digital image coordinate.In camera calibration, the traditional radial alignment constraint (RAC) of the two-step method is used. Under the pinhole imaging with distortion model and in accordance with the radial distortion of restrictive conditions, this calibration method calculates the internal parameter matrix of the camera, which mainly uses a distortion of the initial value and iterative.Harris corner of the image is selected as the characteristic of the image. Firstly, the corners are matched initially based on the relevant gray of the corners; then, we may get the corners set that may be matched, and calculate the epipolar geometry and the fundamental matrix, through 8-point algorithm, RANSAC algorithm and LMEDS algorithm; secondly,we screen out the wrong or ambiguous match points and get a more robust matching points set, and then use the robust matching points to precise calculate of the epipolar geometry and fundamental matrix precisely; thirdly, through the LMEDS algorithm and the epipolar geometry, we may get a new matching points set and all these matching points can be used t o reconstruct the 3D scene.According to the matching points set and the fundamental matrix and the internalparameter matrix of the camera, we may calculate the essential matrix and the external parameter matrix of the camera. Thus, in this paper, through the parameters of the camera matrix and the matching points, we calculate 3D coordinates using matching points and then get the depth information (distance information) of the object in the scenes information. And finally, through the discrete three-dimensional coordinates, we may reconstruct and display 3D scene.Key words: binocular stereo vision, imaging model, three-dimensional reconstruction, camera calibration, feature extraction, stereo matching.论文独创性声明本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研究成果。
分辨虚拟和现实英语作文
分辨虚拟和现实英语作文Title: Distinguishing Between the Virtual and the Real。
In today's fast-paced world, the line between thevirtual and the real has become increasingly blurred. With the rise of technology and the prevalence of virtual experiences, it can sometimes be challenging todifferentiate between what is virtual and what is real. In this essay, we will explore the distinctions between thetwo realms and examine how they shape our perceptions and experiences.Firstly, let us define what we mean by the virtual and the real. The virtual refers to anything that exists or occurs in a digital or simulated environment, often created by technology. This includes virtual reality simulations, online interactions, and digital representations ofphysical objects or experiences. On the other hand, thereal encompasses the tangible, physical world that we experience through our senses. It includes our interactionswith other people, our surroundings, and the natural environment.One of the key differences between the virtual and the real lies in the nature of experience. In the virtual realm, experiences are mediated through technology and often lack the sensory richness of real-world experiences. For example, while a virtual reality simulation may provide a visually immersive experience, it cannot replicate the tactile sensations or emotional depth of real-life interactions. In contrast, real-world experiences are characterized by their immediacy and authenticity, engaging all of our senses and emotions in a way that virtual experiences often cannot match.Another important distinction is the level of control and agency we have in each realm. In the virtual world, we often have a greater degree of control over our environment and experiences. We can manipulate digital objects, create new identities, and explore virtual landscapes withrelative freedom. However, this control is ultimatelylimited by the constraints of the digital environment andthe algorithms that govern it. In the real world, our agency is constrained by physical laws, social norms, and the actions of others. While we may have more freedom toact in the real world, we are also subject to itslimitations and uncertainties.Furthermore, the consequences of our actions differ in each realm. In the virtual world, the impact of our actions is often limited to the digital domain, with few real-world consequences. For example, we can engage in virtual combatin a video game without causing harm to ourselves or others. In contrast, actions taken in the real world can have far-reaching effects on ourselves and others, influencing relationships, communities, and the environment. The stakes are higher in the real world, requiring us to consider the ethical and moral implications of our choices more carefully.Despite these differences, it is important to recognize that the virtual and the real are not mutually exclusive categories. In fact, they often intersect and influenceeach other in complex ways. For example, our interactionsin virtual spaces can shape our perceptions and behaviors in the real world, and vice versa. The rise of virtual communication platforms has blurred the boundaries between online and offline social interactions, leading to new forms of identity expression and social connection.In conclusion, while the virtual and the real may seem distinct at first glance, they are intricately intertwined in our modern world. By understanding the differences between them, we can navigate the complexities of digital technology more effectively and make informed choices about how we engage with both realms. Ultimately, it is ourability to critically reflect on our experiences and cultivate a balanced relationship between the virtual and the real that will enable us to thrive in an increasingly digital age.。
关于视觉的讨论英语作文
关于视觉的讨论英语作文Title: Exploring the Wonders of Vision。
Introduction:Vision, the remarkable sense that allows us to perceive and interpret our surroundings, is an intricate marvel of biology and cognitive processing. From the intricate workings of the eye to the complex neural pathways of the brain, the study of vision offers profound insights into both the human experience and the broader realm of sensory perception.The Anatomy of Vision:At the heart of vision lies the eye, a sophisticated optical instrument capable of capturing and focusing light onto the retina. Comprising structures such as the cornea, lens, and retina, the eye undergoes a series of precise mechanisms to convert light stimuli into neural signals.The retina, in particular, houses specialized photoreceptor cells known as rods and cones, which play a pivotal role in translating light energy into electrical impulses.Visual Processing in the Brain:Upon receiving neural signals from the retina, the brain embarks on a remarkable journey of visual processing. Information from the eyes travels along the optic nerve to the brain's visual cortex, where it undergoes a complex series of transformations. Through processes such as edge detection, motion perception, and object recognition, the brain constructs a rich and coherent representation of the visual world.Perception and Interpretation:Vision extends far beyond mere sensory input; it encompasses the intricate interplay between perception and interpretation. The brain's ability to extract meaning from visual stimuli allows us to navigate our environment, recognize familiar faces, and appreciate the beauty of artand nature. However, perception is not always a faithful reflection of reality; it is influenced by factors such as prior experiences, cultural context, and cognitive biases.The Role of Technology:In recent years, advancements in technology have revolutionized our understanding and manipulation of vision. From sophisticated imaging techniques that unveil the inner workings of the eye to cutting-edge artificial intelligence algorithms that mimic human visual processing, technology continues to push the boundaries of what is possible in the realm of vision science. Moreover, innovations such asvirtual reality and augmented reality offer immersive experiences that challenge traditional notions ofperception and reality.Challenges and Considerations:While vision is undoubtedly a remarkable faculty, it is not without its limitations and challenges. Vision impairment affects millions of people worldwide,highlighting the need for ongoing research and innovationin the field of ophthalmology and vision rehabilitation. Furthermore, the ubiquity of visual media in the digital age raises important questions about the impact of screen time on eye health and cognitive development, underscoring the importance of promoting responsible and mindful engagement with visual technologies.Conclusion:In conclusion, the study of vision offers a fascinating journey into the intricate workings of the human mind and the complexities of sensory perception. From the anatomy of the eye to the intricacies of visual processing in the brain, vision encompasses a diverse array of disciplines and perspectives. By unraveling the mysteries of vision, we gain not only a deeper understanding of ourselves but also invaluable insights into the nature of perception and cognition. As we continue to explore the wonders of vision, may we strive to harness its potential for the betterment of humanity and the advancement of knowledge.。
忒修斯之船作文题目
忒修斯之船作文题目英文回答:The Ship of Theseus, also known as Theseus' Paradox, raises an interesting philosophical question about identity and change. The paradox goes like this: if a ship is gradually replaced, piece by piece, until none of the original parts remain, is it still the same ship?To answer this question, we need to consider what defines the identity of an object. Is it the physical components that make up the object or is it something more abstract, such as its purpose or history?If we focus solely on the physical components, then it would seem that once all the parts of the ship have been replaced, it is no longer the same ship. After all, none of the original parts remain. However, if we consider the purpose and history of the ship, then we might argue that it is still the same ship.For example, let's say I have a favorite pen that I've had for many years. Over time, the ink runs out, so I replace the ink cartridge. Then, the grip starts to wear down, so I replace that too. Eventually, every single partof the pen has been replaced. Is it still my favorite pen?I would argue yes, because despite the physical changes, it still serves the same purpose and holds the samesentimental value for me.Similarly, if we apply this reasoning to the Ship of Theseus, we can argue that as long as the ship continues to fulfill its purpose and carries the same historical significance, it remains the same ship. Even though the physical components may have changed, the essence of theship remains intact.中文回答:忒修斯之船,也被称为忒修斯的悖论,引发了一个关于身份和变化的有趣哲学问题。
2013年英语专业晨读美文励志篇:ThePowerofImagination
[00:03.45]The Power of Imagination[00:05.07]Imagination is the ability to form a mental image of something [00:10.56]that is not perceived through the senses.[00:12.77]It is the ability of the mind to built mental scenes,[00:16.50]objects or events that do not exist,[00:19.10]are not present or have happened in the past.[00:22.63]Memory is actually a manifestation of imagination.[00:26.49]Everyone possesses some imagination ability.[00:30.33]In some it may be highly developed and[00:33.93]in others it may manifest in a weaker form.[00:36.92]It manifests in various degrees in various people.[00:40.35]It manifests in various forms, one of which is daydreaming. [00:45.54]Though too much idle daydreaming may make one impractical, [00:49.36]some daydreaming, when not being engaged in something [00:53.26]that requires attention, provides some temporary happiness, [00:56.77]calmness and relief from stress.[00:59.51]In your imagination you can travel anywhere in the speed of light [01:03.77]without any obstacles. It can make you feel free,[01:07.58]though temporarily, and only in the mind, from tasks,[01:11.54]difficulties and unpleasant circumstances.[01:14.64]A developed and strong imagination[01:17.60]does not make you a daydreamer and impractical.[01:21.05]On the contrary, it strengthens your creative abilities,[01:25.11]and is a great tool for recreating[01:28.08]and remodeling your world and life.[01:30.62]This is a great power that can change your whole life.[01:33.73]It is used extensively in magic,[01:36.44]creative visualization and affirmations.[01:39.35]It is the creator of circumstances and events.[01:42.75]When you know how to work with it,[01:45.29]you can make your hearts' desires come true.[01:48.28]Imagination has a great role and value in each one's life. [01:52.05]It is much more than just idle daydreaming.[01:55.18]We all use it, whether consciously or unconsciously,[01:58.88]in most of our daily affairs.[02:01.30]We use our imagination whenever we plan a party,[02:05.33]a trip, our work or a meeting.[02:07.24]We use it when we describe an event,[02:10.01]explain how to arrive to a certain street, write,[02:13.67]tell a story or cook a cake.[02:16.11]Imagination is a creative power[02:18.84]that is necessary for inventing an instrument,[02:21.34]designing a dress or a building,[02:23.29]painting a picture or writing a book.[02:26.06]The creative power of imagination has an important role [02:30.44]in the achievement of success in any field.[02:33.20]What we imagine with faith and feelings comes into being. [02:37.16]It is the power beyond creative visualization,[02:40.76]positive thinking and affirmations.[02:43.22]Visualizing an object or a situation,[02:46.78]and repeating often this mental image,[02:49.21]attracts the object or situation into our lives.[02:52.70]This opens for us new, vast and fascinating opportunities. [02:57.86]This means that we should think only in a positive manner [03:01.74]about our desires, otherwise we may create[03:05.51]and attract into our lives, events,[03:07.25]situations and people that we don't really want.[03:10.91]This is actually what most of us do,[03:13.53]because we don't use the power of imagination correctly. [03:17.24]If you do not recognize the importance of[03:20.18]the power of the imagination, and let it run riot,[03:24.21]your life may not be as happy and successful[03:27.50]as you would have wanted it to be.[03:29.70]Lack of understanding of the power of the imagination is[03:33.61]responsible for the suffering, incompetence,[03:36.45]difficulties, failures and unhappiness people experience.[03:41.19]For some reason, most people are inclined to think in a negative way. [03:46.70]They do not expect success. They expect the worst,[03:50.54]and when they fail, they believe that fate is against them.[03:54.33]This attitude can be changed, and then life will improve accordingly. [03:59.49]Understanding how to use your imagination correctly,[04:02.56]and putting this knowledge into practice,[04:05.13]for your own and others' benefit,[04:07.37]will put you on the golden path to success,[04:10.05]satisfaction and happiness.。
This work-in-progress paper has been submitted to the Middleware
Optimizing the CORBA Component Model forHigh-performance and Real-time ApplicationsNanbor Wang and David Levine Douglas C.Schmidtnanbor,levine@ schmidt@ Department of Computer Science,Washington University Electrical and Computer Engineering Dept.St.Louis,MO63130,USA University of California,Irvine,CA92697This work-in-progress paper has been submitted to the Mid-dleware2000Conference,IFIP/ACM,Palisades,New York,April3-7,2000.AbstractWith the recent adoption of the CORBA component model(CCM),application programmers now have a standard wayto implement,manage,configure,and deploy components thatimplement and integrate CORBA services.The CCM stan-dard not only enables greater software reuse for servers,italso provides greaterflexibility for dynamic configuration ofCORBA applications.Thus,CCM appears to be well-suitedfor general-purpose client/server applications.Due to the complexity of the standard and relative immatu-rity of implementations,however,CCM is not yet appropriatefor mission-critical applications with high-performance andreal-time quality-of-server(QoS)requirements.Therefore,wehave begun a project to identify,prototype,benchmark,op-timize,and deploy the key patterns and framework compo-nents necessary to mature the CCM standard so it can be ap-plied successfully to mission-critical applications with strin-gent QoS requirements.There are two contributions of our research project.First,we are identifying the performance bottlenecks and other ob-stacles that impede the use of CCM for high-performance andreal-time applications.Second,we are demonstrating the ef-fectiveness of our methodology of applying optimization prin-ciple patterns to alleviate these obstacles.1IntroductionResearch background:The demand for distributed objectcomputing(DOC)middleware,such as OMG’s Common Ob-ject Request Broker Architecture(CORBA)[1],is growingrapidly as deregulation and global competition makes it in-creasingly hard to develop and maintain complex middleware1We focus on CORBA because it is an open standard.However,the pat-terns resulting from this project will largely generalize from CORBA to otherDOC middleware component technologies,such as COM and EJB.velop and deploy reusable core building blocks for business applications and services.In theory,the adoption of CCM will make it possible to integrate components needed to implement services and applications with less effort and greater portabil-ity.In addition,CCM will simplify the reconfiguration and replacement of existing application services by standardizing the interconnection among components and interfaces.In practice,however,the CCM standard and implementa-tions are as immature today as the underlying CORBA stan-dard and ORBs were three to four years ago.Moreover, the CCM vendor community is largely focusing on the re-quirements of e-commerce,workflow,report generation,and other general-purpose business applications.The middleware requirements for these applications generally focus on func-tional interoperability,with little emphasis on assurance of or control over mission-critical QoS aspects,such as timeliness, precision,dependability,or minimal footprint[19].As a re-sult,it is not feasible to use off-the-shelf CCM implementa-tions for high-performance and real-time systems.Solution approach and expected results:To address these shortcomings,we are conducting a research project to iden-tify,prototype,benchmark,optimize,and deploy the key pat-terns and QoS-enabled framework components necessary to mature the standard CORBA Component Model so it can be applied successfully to high-performance and real-time appli-cations.This project focuses on aspects of the CCM spec-ification that are critical to these types of applications.The goals of this research are to leverage our previous experience with QoS-enabled middleware[20,19],add optimized high-performance and real-time support to TAO’s CCM implemen-tation,and transfer the results to the CORBA standardization effort.2Technical Rationale2.1Overview of CORBA Component Model 2.1.1Background and Existing Limitations Historically,the CORBA specification[1]has concentrated on defining interfaces,which define contracts between clients and servers.An interface defines how clients view and access ob-ject services provided by a server.Although this model has certain virtues,such as location transparency,it has the fol-lowing limitations:Lack of standardized servant interaction model:The CORBA specification has made little effort to define how to implement servants.Although the Portable Object Adapter (POA)specificationfirst introduced in CORBA2.2[21]stan-dardized the interactions between servants and ORBs,server developers are still responsible for determining how servants are implemented and how they interact.As a result,the lack of a standardized servant interaction model has yielded tightly coupled,ad-hoc servant implementations,which increase the complexity of software upgrades and reduce the reusability andflexibility of CORBA-based software.Increased time and space overhead:The original CORBA object model treats all interfaces as client/server contracts.To maintain the interface contract and increase reusability,there-fore,developers must still model a servant using a general CORBA interface,even if the service will only be used inter-nally within a server.This constraint incurs unnecessary large memory footprints and programming complexity.In addition, it may incur unnecessary communication overhead for ORBs that do not implement collocation optimizations[22].2.1.2OMG Solution the CORBA Component Model The OMG has addressed the limitations outlined above by defining the CORBA Component Model(CCM).Figure1 shows an overview of the run-time architecture of the CCM model.This section gives a brief overview of the CCM ar-ExternalInterfacesExternalInterfacesFigure1:Overview of the CCM Run-time Architecturechitecture.A more detailed overview can be found in Ap-pendix A.Components are the implementation entities that export a set of interfaces to ponents support predefined in-terfaces called ports that the CCM uses to facilitate interaction among component and other ORB resources.Ports include Facets,Receptacles,Event Sources/Sinks,and Attributes.Inaddition,components can inherit from one or more supported interfaces,which so-called“component-unaware”clients use to access the component.Moreover,components define stan-dard interfaces to support additional navigable interfaces,ac-cept object references for delegating responsibilities,generate and receive events,and support dynamic configuration of com-ponents.Home interfaces provide a factory service that man-ages the lifecycle for components.Moreover,a home implementation may choose to index component in-stances with a primary key,which are user-implemented classes that identify component instances and derive from Component::PrimaryKeyBase.A container provides the run-time environment for a com-ponent.A container’s run-time environment consists of var-ious pre-defined hooks that provide strategies,such as per-sistence,event notification,transaction,and security,to the managed component.Each container manages one compo-nent and is responsible for initializing the managed compo-nent and connecting it to other components and ORB services. The CCM deployment mechanism implements the contain-ers through developer-specified metadata,which instructs the CCM deployment mechanism on how to create these contain-ers.In addition to the building blocks outlined above,the CCM standardizes component implementation,packaging,and de-ployment.A Component Implementation Framework(CIF) is defined to automate the component implementation and persistent state management in a language independent way. CIF uses the Component Implementation Definition Language (CIDL)to generate component implementation skeletons.The CCM also extends the Open Software Description(OSD), which is a vocabulary of XML defined by W3C,to address component packaging and deployment requirements.2.2Implementing and Optimizing the CCM Section2.1.2outlines the key features defined in the CCM, focusing on the overall model and how certain features inter-act.This section outlines how we plan to implement and op-timize the CCM for high-performance and real-time applica-tions.Section2.2.1outlines key optimization principle pat-terns[23]that can be applied to resolve design challenges arising from targeting CCM for high-performance and real-time applications.Optimization principle patterns document rules for avoiding common design and implementation prob-lems that degrade the efficiency,scalability,and predictability of complex systems.Section2.2.2illustrates how these opti-mization principle patterns can be applied to improve key QoS aspects of specific CCM features.2.2.1Resolving Key CCM Design ChallengesAs shown in Section2.1.2,the CCM requires a significant number of new classes and interfaces to support its specified features.These requirements may cause problems for high-performance and real-time applications due to unnecessary time and space overhead incurred when components are col-located within the same process or machine.To build a robust CCM implementation and remove these overheads,therefore, we are applying optimization principle patterns gleaned from our previous experience[24,12]optimizing TAO for high-performance and real-time applications.Some important op-timization principle patterns include optimizing for the com-mon case,avoiding gratuitous waste,shifting computation in time via precomputing,replacing general-purpose functions with special-purpose ones,passing hints between layers,stor-ing redundant state to speed up expensive computation,and using efficient data structures.Challenge:Enhancing component transparency: Context:A key benefit of the CCM is component trans-parency.The following transparencies are important for high-performance and real-time applications:Location transparency–References to components and objects can be passed among processes that may be dis-tributed or collocated in different system configurations.CCM applications should not be concerned whether com-ponents are distributed or are collocated on the same pro-cess or host.In particular,CCM applications should not and cannot detect the location of an object reference and should invoke an operation using the same method re-gardless of where the object resides.In particular,com-ponent location should not affect the semantics of opera-tions,such as location forwarding,concurrency and dis-patch policies,Current state,and interceptor invoca-tions.Performance transparency–An ORB supporting the CCM should provide different mechanisms to optimize operation invocations based on the location of the objects.However,CCM applications should be able to invoke an operation using the most efficient method available for each configuration.This must be done automatically,i.e., without developer intervention,so that applications can obtain optimal performance and avoid unnecessary over-head without being reprogrammed.Predictability transparency–No matter where the object resides and what mechanism is used to invoke an oper-ation,a CCM implementation must not incur overhead that degrades latency and increases jitter.For instance,synchronization contention should be minimized,unnec-essary dynamic memory management should be elimi-nated in the critical path,priority-based queuing should be used for all communication mechanisms,and priority inversion should be minimized or eliminated.Problem:When a reference is passed back to the same process,or to the same machine where the originating object resides,many ORBs still use remote stubs to invoke opera-tions via the reference.Thus,collocated references lack per-formance transparency.Although it is sometimes possible to use proprietary mechanisms to override this behavior,these mechanisms hinder the locality transparency of collocated ob-ject references.Some ORBs use short-circuited object ref-erences to forward in-process collocated invocation directly to servants.However,this approach impedes the predictabil-ity transparency of collocated references because direct for-warding deviates from the semantics of the CORBA object model[22].Solution Collocation optimizations:To improve the performance and predictability of collocated component communication,we will apply the following optimizations to TAO’s CCM implementation:Process-collocation–Process-collocation improves the performance and predictability transparencies for objects that reside in the same address space with the servant, while maintaining locality transparency.To implement process-collocation,the ORB must identify the location of the component’s reference without explicit application programmer intervention and without violating the poli-cies specified by POAs and the component containers.Once the ORB determines that this reference is collocated in the same process,all operation invocations can be for-warded to a special collocation stub’s method.The goal of the process-collocation is to ensure the performance of accessing in-process collocated components is compa-rable to accessing regular C++components,while still providing predictability transparency in the framework.Host-collocation–For a host-collocated component,it is also necessary to identify the location of a component ref-erence transparently.Because TAO allows applications to plug in various transport protocols into an ORB[25],we plan to implement a shared memory transport protocol for TAO.This pluggable transport will allow operations host collocated components and objects to be invoked trans-parently and efficiently via shared memory. Collocation optimizations illustrate the principle patterns of(1)avoiding gratuitous waste by avoiding invoking col-located operations using remote stubs and(2)replacing in-efficient general-purpose operations with optimized special-purpose ones by creating special collocated stubs for invok-ing collocated operations.Our previous experience[12,22] shows that collocation can reduce the overhead of many high-performance and real-time applications significantly,without affecting the semantics defined by the CORBA object model. Challenge:Enhancing component configurability and cus-tomizability:Context:As shown in Section2.1.2,the CCM is a very large and complex specification.In particular,a substantial number of features must be implemented to support the com-plete specification.Problem:Many real-time applications are deployed in systems with very stringent memory limits.Often,they run in relatively stable configurations once they are deployed.Thus, much of middleware required to implement certain CCM fea-tures will be largely unused.This rarely used code may con-sume excessive memory,which is often a limited resource for real-time systems.When applications do require certain fea-tures,however,it should be possible to configure themflexibly.Solution Dynamic configuration of components: To reduce unnecessary memory usage,while still allowing applications to use certain features when necessary,we are improving the dynamic configurability of TAO.Previous re-search[26]demonstrates that ORB middleware can be dynam-ically reconfigured at run-time by dynamically linking in the necessary components.We will take this work to the next level by addressing the following topics:Configurable ORB-level middleware–We will explore how to further partition TAO’s internal structure to max-imize its configurability.In particular,we will examine different configurable communication mechanisms,such as shared memory and high-speed backplanes,by extend-ing TAO’s existing pluggable protocols framework[25] to support dynamically linkable protocols and marshal-ing/demarshaling.Configurable component and component infrastructure –We will enable the stub and skeleton code generated by TAO’s IDL compiler to be linked dynamically from shared libraries.Other CCM mandated interfaces that support the semantics of component implementations can be linked dynamically,as well.For example,a com-ponent may support several supported interfaces,even though only a subset will be used in certain configura-tions.In CCM,a component can be used to support another col-located component.The interfaces for these supporting component require no remote stubs and skeletons.Thisfiner partitioning will allow CCM applications to store system implementation components in secondary stor-age.Thus,only those portions that are required for the proper functioning of a particular configuration will be linked dynamically,without losing the generality of the standard CORBA Component Model.The use of dynamic configuration outlined above applies the optimization principle pattern of avoid gratuitous waste by avoiding loading in software that is not needed at run-time.2.2.2Implementing the CCM for High-performance andReal-time SystemsThis section outlines the major areas that we will apply the op-timization principle patterns and techniques identified in Sec-tion2.2.1to our real-time,high-performance CCM implemen-tation.ORB extensions:Three major extensions are required to the current ORB specification.Of them,the addition of local-ity constrained interfaces has the most impact on the over-all performance of CORBA applications.This addition de-fines the local keyword to the IDL syntax to support lo-cality constrained object interfaces.The local keyword al-lows programmers to define and use their own locality con-strained objects to avoid unnecessary network traffic and mar-shaling/demarshaling operations.It is an example of the opti-mization principle pattern of avoiding gratuitous waste. Component model:As mentioned in Section2.1,the CCM specifies several component APIs that support core compo-nent features.These APIs allow application developers to interconnect components and objects together.Although the addition of local interface keyword in the CCM specifica-tion improves the performance locality constrainted compo-nents,there are still cases where a component can be used both locally and remotely.In this case,we will apply the principle patterns avoiding gratuitous waste and replacing in-efficient general-purpose operations with optimized special-purpose ones by invoking methods via a special collocated ob-ject reference on a collocated component.In contrast,invok-ing the operation through the remote interface stub would im-pose unnecessary performance overhead from parameter mar-shaling/demarshaling and transport protocol traffic/latency. Containers:Containers provide interconnections for man-aged components,as described in Section2.1.The CCM employs several common ORB services to manage resources within containers.In general,the Object Transactions Service may not be relevant for real-time applications with determin-istic QoS requirements due to the overhead associated with this service.Conversely,the Notification Service has been identified as a useful component for real-time telecommuni-cation management applications.Therefore,we are optimiz-ing TAO’s existing real-time Events Service[27]to support key Notification Service features,such as eventfiltering,so it can be integrated into our CCM implementation for high-performance and real-time applications.Packaging and deployment tools:The packaging the de-ployment tools defined in CCM allow software to be com-posed into packages(files)and be deployed using an applica-tion server.Most environments for real-time applications have very stringent memory requirements.Therefore,it is impor-tant to explore ways to minimize the extra memory footprint incurred by the component model throughfiner partitioning of libraries and dynamic configuration.We will support an XML-based packaging and deployment tool and integrate the dynamic configuration support outlined in Section2.2with this tool.The use of XML simplifies the maintenance of packaging and deployment descriptions be-cause it is human-readable.Moreover,because XML is exten-sible and supports namespaces,the standard component APIs can be extended without violating the CCM specification.3Related WorkThe following work on middleware and component technolo-gies is related to our project.EJB:The Enterprise Java Bean[6]is Java’s solution to the component model.It supports binary program compatibil-ity within various Java run-time environments.Although the write-once/run-anywhere philosophy of Java simplifies com-ponent deployment,having to support all the native OS mech-anisms limits Java applications’flexibility and performance. The requirement of automatic garbage collection,which can be started at anytime and run for undetermined amount of time,also makes Java unsuitable for many real-time appli-cations.Moreover,the lack of a Java event demultiplexing mechanism forces developers to use threads to service multi-ple event sources,which does not scale well[28].While the CCM is modeled closely on the EJB specifica-tion[16],the CCM is arguably moreflexible.First,because CCM is based on CORBA,it can work on any platform and language.In contrast,EJB is focused on Java-only systems. Second,CCM developers are not limited to the use of threads to service multiple event services since CORBA defines a wider range of concurrency models,including reactive dis-patching and thread pools.Although packaging and deploying CCM components for heterogeneous platforms may be com-plicated to maintain due to the number of platform/OS com-binations,this is rarely a problem for real-time applications, which run on largely homogeneous environments.Component Object Model(COM+):COM+is Microsoft’s distributed object computing architecture.It is an integra-tion of COM,DCOM,and Microsoft Transaction Server (MTS)[29].Unlike CORBA,which was developed for dis-tributed object computing,COM+was originally developed for local object access and later added extra layers for remote accessibility[3].While Microsoft claims that COM+is binary compatible on all platforms,it is used primarily on Microsoft platforms,none of which are real-time operating systems.2 Reflective ORBs:Kon and Campell[26]demonstrate that TAO can be reconfigured at run-time by dynamically linking in the required components.Although their research provides a proof-of-concept for dynamic configurable middleware frame-work,their research does not explore performance implica-tions and optimizations related to component-based middle-ware.We expect the CCM’s packaging and deployment frame-work will supersede their ComponentConfigurator and will define standard strategies and patterns for packaging com-ponents.Our proposed research on dynamic configuration will concentrate on reducing memory footprint for supporting component model,without compromising the completeness of the model.COM interceptors:Hunt and Scott[30]described how to implement interceptors in COM.The concept they used to im-plement interceptors is similar to TAO’s collocated stub[22], in that both use alternative stubs to masquerade as operation targets.While this concept is effective,their work was done in the context of COM.Therefore,our research will explore the effects of applying these concepts to CCM.Active Badge System:Szymaszek,Uszok,and Zieli´n ski built a component-oriented system using Orbix’s smart proxy facility in their work on the Active Badge System[31].In this case study,they used the smart proxies to provide the compo-nent framework and stringed the system entities with various ORB services like Event Service,Persistency Service and Se-curity Service.Although the work is not directly related to the CCM,it identifies the key services used by the CCM and the importance of local objects and collocation optimizations that are the focal points in our research.4Current Status and Future WorkWe have just begun work on the research described in this paper.TAO already implements some basic collocation op-timizations[22]and supports dynamic configuration of TAO internal component at application startup time[32].Many is-sues are still unresolved,however.The following outlines the future tasks for our research project:object computing middleware based on CORBA[26,33, 34,35,36,37,38,24].Therefore,we believe it is essen-tial to start leveraging experience in designing,optimizing, and tuning QoS-enabled ORB middleware to ensure stan-dard CORBA Component Model(CCM)implementations will be sufficiently mature before they are considered for high-performance and real-time systems.Reducing the memory footprint required to support the CCM is another area of concern for many real-time appli-cations.Therefore,our research will implement a highly-flexible,just-in-time dynamic linking framework.This frame-work will reduce the memory footprint of TAO and CCM via dynamic configuration of middleware infrastructure,compo-nents,and services.Based on our past experience on benchmarking,developing, optimizing,and deploying high-performance,real-time ORBs, we will identify the performance bottlenecks in conventional CCM implementations.We will apply optimization principle patterns so that developers in the high-performance and real-time communities can enjoy the advantages provided by the new CCM standard.References[1]Object Management Group,The Common Object Request Broker:Architecture and Specification,2.3ed.,June1999.[2]M.Henning and S.Vinoski,Advanced CORBA Programming WithC++.Addison-Wesley Longman,1999.[3] D.Box,Essential COM.Addison-Wesley,Reading,MA,1997.[4]Sun Microsystems,“Jini Connection Technology.”/jini/index.html,1999.[5] A.Wollrath,R.Riggs,and J.Waldo,“A Distributed Object Model forthe Java System,”USENIX Computing Systems,vol.9,November/December1996.[6]Anne Thomas,Patricia Seybold Group,“Enterprise JavaBeansTechnology.”/products/ejb/white[32] D.C.Schmidt,D.L.Levine,and C.Cleeland,“Architectures andPatterns for Developing High-performance,Real-time ORBEndsystems,”in Advances in Computers,Academic Press,1999. [33]G.Ambrosini,G.Mornacchi,C.Ottavi,and M.Romano,“PerformanceEvaluation of PowerPC VME Boards Running a Real-Time UNIXSystem.”atddoc.cern.ch/,September1997.[34] t and M.Gergeleit,“Preserving Real-Time Behavior in DynamicDistributed Systems,”in Proceedings of the IASTED InterationalConference on Intelligent Information Systems1997,IEEE,Dec.1997.[35] D.C.Schmidt,R.Bector,D.L.Levine,S.Mungee,and G.Parulkar,“An ORB Endsystem Architecture for Statically Scheduled Real-time Applications,”in Proceedings of the Workshop on Middleware forReal-Time Systems and Services,(San Francisco,CA),IEEE,December1997.[36] D.C.Schmidt,S.Mungee,S.Flores-Gaitan,and A.Gokhale,“Alleviating Priority Inversion and Non-determinism in Real-timeCORBA ORB Core Architectures,”in Proceedings of the IEEEReal-Time Technology and Applications Symposium,(Denver,CO),IEEE,June1998.[37] D.L.Levine,C.D.Gill,and D.C.Schmidt,“Dynamic SchedulingStrategies for Avionics Mission Computing,”in Proceedings of the17th IEEE/AIAA Digital Avionics Systems Conference(DASC),Nov.1998.[38] D.L.Levine,D.C.Schmidt,and S.Flores-Gaitan,“An EmpiricalEvaluation of OS Support for Real-time CORBA Object RequestBrokers,”in Proceedings of the Multimedia Computing and Networking 2000(MMCN00)conference,(San Jose,CA),ACM,Jan.2000. [39]Object Management Group,Notification Service Specification,OMGDocument telecom/99-07-01ed.,July1999.[40] C.O’Ryan,D.C.Schmidt,and D.Levine,“Applying a ScalableCORBA Events Service to Large-scale Distributed InteractiveSimulations,”in Proceedings of the Workshop on Object-orientedReal-time Dependable Systems,(Montery,CA),IEEE,Nov.1999. [41]Object Management Group,PIDL&Pseudo-Objects Policy Paper,OMG Document ab/98-01-02ed.,January1998.A Overview of the CORBA Compo-nent Model SpecificationThis section presents a detailed overview of the CCM archi-tecture.Components:A component is a basic CORBA meta-type, i.e.,it can be referenced by multiple object references of dif-ferent types.Each component has a set of supported interfaces that it inherits from other interfaces or components.A compo-nent encapsulates a design entity and is referenced by a com-ponent reference.For“component-unaware”clients,compo-nent references behave just like regular object references,i.e., clients can invoke operations defined in supported interfaces. As shown in Figure2,components interact with external en-tities,such as ORB services or other components,through the following port mechanisms:Facets:A facet,also called a provided interface,is an interface contract exposed by a component.Facets are similar(Supported interface)InterfacesProvidedComponent referenceFigure2:Architecture of a CCM Componentto COM’s component model[3]in that they allow a compo-nent to support unrelated interfaces.Unrelated interfaces ex-posed through facets need not be related through inheritance to the component’s supported interfaces.The CCM’s component model allows clients to navigate among provided interfaces and the equivalent interface de-fined by a component.In contrast,regular CORBA objects only allow clients to traverse interfaces in their inheritance trees.Clients that use components need not be component-aware.Only component-aware clients,however,can use the CCM navigation mechanism to traverse through the interfaces offered by a component.Receptacles:Components may connect to other objects and invoke methods upon those objects.Receptacles are used to specify the object connections among components and ob-jects.Receptacles also provide a generic way to connect cer-tain types of objects to a component.A receptacle can have single or multiple connections.Event Sources/Sinks:Components can express their interests to each other by supplying and consuming events through event sources and event sinks.The CCM event inter-faces defines a subset of the CORBA Notification Service[39] as its event delivery mechanism,although the use of CORBA Notification Service is not required and component developers may choose to implement their own notification mechanism. The ability to connect various parts of a system using the noti-fication mechanism is a common use-case in event-driven real-time systems[27,40].Attributes:A component can use attributes to represent the states of an entire ponent attributes differ from interfaces attributes,which describe the internal states of individual ponent attributes provide a standard mechanism for setting component states and are intended to be used by the CCM framework to configure component.For instance,a configure。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
visual aspects of program visualisation can make these tasks easier. A simple model of program development cycle is illustrated in Figure 1. First, a programmer creates a mental model of the software/program. This original mental model is then transformed into the corresponding static model using program development tools, such as text editors, CASE tools, and compilers. In this context, a static model comprises source code, the associated binary code, and other intermediate code forms. After the static model is created, it is transformed into the corresponding dynamic model. This model refers to the run-time behaviour of the program. The mapping is done by using program environment run-time control, such as operating systems. This dynamic model can furthermore be mapped into the programmer's mental model, which is a mental representation of the program execution. This mapping is important 4], because it enables the programmer to superimpose the execution mental model with the original mental model to nd the di erences between the initial program speci cations and the nal run-time outputs, or in other words, to identify bugs. Several methods exist to derive an execution mental model of a program from the dynamic program model, such as traditional software testing methods and reverse engineering. Generally, these methods heavily use non-graphical representations. As a result, a programmer may have to exert a considerable amount of e ort to construct this execution model. By using program visualisation tools, this problem is alleviated. The reason is that the tools provide information through visual representation of program execution or elements. Since pictorial information is generally easier to understand, the visual representation provides a matrix or skeleton from which programmers can derive their own mental models. In e ect, this accelerates the whole process of software development. It is worth noting that the use of visualisation tools acts more as
1 Introduction
Program visualisation is the use of graphical artifacts to represent both the static and dynamic aspects of a program 15, 19]. It takes advantage of the human visual ability to perceive pictorial representations of a program faster than the corresponding textual information. Generally, such visualisation is used to enhance human understanding of a program or algorithm 19]. Program visualisation can be used for many programming paradigms, including the concurrent and object-oriented paradigms. Each paradigm needs a di erent approach, as they utilise di erent methods of problem solving, and can bene t from visualisations which emphasise those aspects particular to that paradigm. Visualisation can also be used throughout the program development life-cycle, e.g. during the testing, veri cation and maintenance steps 14]. The
Programmer’s Execution Mental Model
Figure 1: Mental, static, and dynamic models of a program. a complement to the use of other traditional software development tools, such as CASE tools, and textual debuggers. It can not replace the use of these tools. Used in this way, program visualisation adds more perspectives and understanding of the overall software or program. Based on the above discussion, the use of program visualisation for concurrent and object-oriented programs is very important. There are two reasons for this. The rst reason is that complex run-time structures and relationships among program elements may be produced by such programs. This complexity cannot be well captured and represented merely by using textual-representation tools, such as conventional program debuggers and program browsers. Such tools usually provide only snapshots of run-time program structures and states. Basically, they do not convey information holistically. The second reason is that these snapshots and textual information require re-interpretation by the programmer. As previously stated, the use of program visualisation tools can help programmers more easily derive a mental model from the visual representation of program execution or elements. This paper discusses Visor++, a program visualisation tool for concurrent and object-oriented programs. Section 2 discusses the motivation and goals for building the tool, while Section 4 describes the architecture and the approach used to build the tool. Some work related with Visor++ is discussed in Section 6. Section 7 concludes the whole discussion.