Multidisciplinary Project Proposal Digital Photo Booth

Document Sample
Multidisciplinary Project Proposal Digital Photo Booth Powered By Docstoc
					Multidisciplinary Project Proposal

       Digital Photo Booth




                 Kyle Farnung
                 Nate Prosser
                David Winiarski
         Instructor: Roy Czernikowski

         Date Submitted: 3/13/2008
Table of Contents
Project Overview........................................................................................................................................... 3
   System Diagrams....................................................................................................................................... 3
   Interconnection Diagram .......................................................................................................................... 4
   Program Flow Concept.............................................................................................................................. 5
Analytical Component Analysis ..................................................................................................................... 6
Specifications ................................................................................................................................................ 6
Software Components .................................................................................................................................. 7
   Graphical User Interface ........................................................................................................................... 7
   Image Processing ...................................................................................................................................... 7
       Brightening Photos................................................................................................................................ 7
       Adding Texture to an Image.................................................................................................................. 8
       Creating Charcoal Sketches................................................................................................................... 9
       Creating an Oil Blob Image.................................................................................................................. 10
Hardware Use ............................................................................................................................................. 11
   Camera .................................................................................................................................................... 11
   Printing .................................................................................................................................................... 12
Cost Estimates ............................................................................................................................................. 12
Project Schedule ......................................................................................................................................... 13
Testing Strategy .......................................................................................................................................... 14
   Graphical User Interface ......................................................................................................................... 14
   Coin Acceptor .......................................................................................................................................... 14
   Camera .................................................................................................................................................... 14
   Image Processing .................................................................................................................................... 14
   Final Photograph Handling...................................................................................................................... 14
Deliverables................................................................................................................................................. 14
Feasibility Summary .................................................................................................................................... 14
Contact information .................................................................................................................................... 15
Project Overview
The objective of this project is to provide a modern digital photo booth, improving on models from
previous decades. The photo booth will provide an easy to use interface to allow users to have their
picture taken, perform different operations on the image to enhance and modify the image, then allow
the user to print the image if desired or upload it to a web server.

A physical booth will be constructed to hold all of the various elements of the photo booth. A PC will be
the main component. A display will be mounted inside the booth, providing a Graphical User Interface
that allows the users to interact with the system. Users will use an input device to navigate the GUI. A
webcam will capture the pictures, and a photographic printer will be used to print copies of the final
images.

System Diagrams
These two diagrams show a rough sketch of the booth design. The booth will need to have controlled
lighting, not relying on the ambient lighting in the room around it. This will have a large impact on both
the effective frame rate of the camera, and the image quality. It may be possible for the diffuse
fluorescent lights provided in the booth to provide all the required light, or it may be necessary to add a
separate flash bulb for adequate lighting at exposure time.

The booth design also has to accommodate cooling needs of the computer without having loud,
annoying fans. Additionally, data will have to be collected on optimum spacing between chair and
camera (both for comfort and image quality), and what type of backdrop to use. Curtains may or may
not be provided to block distracting visuals from outside of the booth.

Interconnection Diagram




This diagram is a fairly simple connection diagram. To control the program, the optimal plan is to use a
touch screen LCD monitor. However, large touch screen monitors (15” and greater) cost several hundred
dollars more than an equivalent LCD monitor without touch sensing capability. If for cost or any other
reason a touch screen is not used, the program will be designed to seamlessly work with a video game
console trackball and button.
Program Flow Concept

                Photobooth
                                                            Video Feed to Setup Poses                                  Video Feed to Setup Poses
                     Insert Coins to Begin
                                                                                                                                                           3x


              (Stock Images Sliding Across)
                                                                   Take Photo!                                         (Timer for posing)




           Image                                        Image               Select for Printing
                                    Effects
          Choice 1                                     Choice 1

                                       1      2                               Web Retrieval                                   Current Image
           Image                                        Image
          Choice 2                                     Choice 2
                                       3      4                                E-Mail/MMS
           Image                                        Image
          Choice 3                     5      6        Choice 3                                                         (Printing/Uploading/
                                                                             USB Thumbdrive                              Sending Progress)

                ·    Select and image and
                     then effects                                                                                                  OR
                ·    The preview will be
                     updated to reflect
                     choices                                 (Text Field for E-Mail, etc.)


                                                                                                                              Current Image
                                                                                                                                                           If uploaded
                                                                                                                                                              to web
                                                              (On-Screen Keyboard)


                                                                                                                        (Text Field for E-Mail, etc.)




                                                                                                                  Uploaded      Uploaded        Uploaded
                                                                                                                  Image 1       Image 2         Image 3

                                                                                                  Back to Start

                                                                                                                          www.<yoursite>.com
                                                                                                                          Your access code is:
                                                                                                                         <unique access code>




                           This diagram shows a rough idea for a software user interface. Normal program flow is shown.
Analytical Component Analysis
Due to the nature of the proposed system there are not many analytical components, and the errors
that might be introduced into the system through input devices and sensors would not be critical.

If the touch screen monitor is incorporated into the system this would introduce a large possibility for
error. In preliminary testing, using calibration data found on the internet the touch screen was off by
five centimeters in every direction. For example when trying to move the mouse cursor to the left,
when the screen was touched the cursor was five centimeters to the right of where our finger was. This
same pattern was found when moving in all directions. Further calibration allowed the screen to
become much more accurate. In order to compensate for the little bit of inaccuracy that remains, the
GUI will be designed with buttons which are not small or too close together.

Another minor analytical component that could hinder the proposed system is the image capturing
device used. Since the proposed project will allow the user to do custom image processing after the
image is captured it is desired that this image be as raw a format as possible. Other factors about this
data will also be important, including the resolution of the image, and the format in which the image is
sent to the system. However, these variations will not be critical to the system as long as they are
known, and the technical design is made to accommodate them accordingly.


Specifications
This project will not be under any tight performance specifications as it does not have any tight time
constraints for completing the desired task. The main components of the system will be the
performance of the computer which will affect both the performance of the graphical user interface and
the image capture/processing algorithms. In order to keep these activities fluid and transparent to the
user, a relatively modern PC with a processor faster than 2.0 GHz and 512MB of RAM should be able to
provide the required experience.

Another factor is the performance of the camera, the underlying capture system, and the computer
which could restrict the number of frames captured per second. Ideally the system should be able to
display an image at 30 frames per second in order to get a smooth image which allows the user to pose
for the picture. This number could be slightly lower, but anything lower than 15 fps would be unusable
for this function. This may prove to be a factor which requires a higher powered processor, but more
testing is necessary to determine this.

In order to support the upload of images to the internet via either e-mail or a website, the deployment
location will require a relatively fast broadband internet connection which will allow for a relatively
quick upload of the images. An upload queue will need to be maintained to deal with possible speed
drops in the connection which may delay the final image delivery, but will guarantee end service to the
user. This system could possibly run through some sort of dial-up connection, but this is not the
designed behavior and would not be supported.
Software Components

Graphical User Interface
After weighing several possible options for graphical user interface development, the GTK+ library and
the Glade user interface builder were chosen to implement this project. The main attraction to this
package of development tools was the ease with which the GUI would integrate with the Linux
operating system. Alternatives such as Java would not integrate so well, possibly being unable to
maintain the exclusive full screen mode which is desirable for this GUI. Also, the libraries used for
interfacing with other hardware are more robust in the C programming language which can also be used
for GTK+ development. The combination of GTK+ and the C programming language should provide all of
the necessary functionality to implement the project successfully.

Image Processing
The Image Magick will be used to perform various processing on the images captured by the camera.
Magick++ is a C++ Application Programming Interface for Image Magick. It is extensively documented
online.

Brightening Photos
This sequence will make an under exposed image brighter. The following command will produce an
image that is brighter than the original.

       convert in.jpg -sigmoidal-contrast 4,0% out.jpg




                                     Figure 1. Brightening an image.
Adding Texture to an Image
This sequence will overlay a texture on the image provided. To do this a separate file containing the
grayscale texture that is to be laid over the image must also exist. Thus, for the following command to
work, a texture file named texture.gif must already be produced. This will be useful because different
types of textures could be created, one possible for fabric, another for a stained glass effect, without
having to write additional code. The first command will convert the original texture image into a
grayscale version, while the second will apply the texture to the desired image. Figure 2 shows one such
transformation.

        convert texture.gif -colorspace gray                -normalize -fill gray50
              -colorize 70% texture_grey.gif

        composite texture_grey.gif            in.jpg     -tile -compose Hardlight out.jpg




                                    Figure 2. Image with texture added.
Creating Charcoal Sketches
A single command must be run to create charcoal sketches based off an existing image. Here a black
and white image will be created, losing much of the finer details of the image, but producing a sketch
that appears to be done using charcoal. Different levels of detail can be preserved in charcoal. The N
parameter in the command controls this. Figures 2 and 3 show charcoal transformations with N = 2, 10
respectively.

          convert in.jpg -charcoal N out.gif




                                  Figure 3. Charcoal sketch with N = 2.




                                  Figure 4. Charcoal sketch with N = 10.
Creating an Oil Blob Image
An oil blob image simply takes an existing image and makes it look like an oil painting by creating ‘blobs’
of color within the image. The size of the blobs used can be varied via the N parameter in the command.
Figures 4, 5, and 6 show oil blob transformations with N = 3, 5 and 10 respectively.

        convert in.jpg -paint N out.gif




                                    Figure 5. Oil blob painting with N = 3.




                                    Figure 6. Oil blob painting with N = 5.




                                   Figure 7. Oil blob painting with N = 10.
Hardware Use

Camera
Although several options, including a FireWire camera and a Canon digital still camera, were considered,
it was eventually decided that using a 2.0 megapixel USB webcam would allow for the greatest
flexibility, especially at the price point we were targeting.

The USB Video Class (UVC) is a relatively new standard for webcam interface which is well supported in
Linux. It allows for high resolution video feed transfers over USB 2.0 using only the open-source Linux
UVC driver, which is often built into the kernel of Linux operating systems.

With this information in hand, the Logitech Quickcam 9000 Pro was chosen. It is a USB 2.0 webcam that
is fully compatible with the UVC specification and can take still images at up to 2.0 megapixels. It was
also rated very highly for overall picture quality.




                                   Figure 1 Logitech QuickCam Pro 9000
Printing
The printer that will be used is an HP Photosmart D5360. It also interfaces with the computer using USB.
It is supported in Linux by the HPLIP/HPIJS driver. It can print either normal 8.5 x 11” paper, or 4 x 6”
photo paper.




                                      Figure 2 HP Photosmart D5360




Cost Estimates
   Qty      Item                                                          Price ($)          Vendor
    1       Coin Door                                                      24.00             Ultimarc
    1       Coin Mech                                                      29.00             Ultimarc
    1       15” ELO Touch Screen                                           600.00            Buy.com
    1       I-PAC2 Interface USB                                           43.00             Ultimarc
    6       3/4X49X97" MDF                                                 150.00             Lowes
    1       Misc. Fasteners                                                50.00              Lowes
    1       Chair                                                          25.00              Lowes
    1       Fluorescent Light                                              30.00              Lowes
    1       LGA775 Motherboard                                             40.00             Newegg
    1       Intel Celeron 420                                              40.00             Newegg
    1       512MB PC2-4200                                                 15.00             Newegg
    1       80GB Hard Drive                                                45.00             Newegg
    1       CD-ROM Drive                                                   15.00             Newegg
    1       Logitech QuickCam Pro 9000                                     90.00            CircuitCity
    1       HP Photosmart D5360                                            70.00            CircuitCity
            Total                                                         1166.00
Project Schedule
                                Expected                    Modified
             Task                          Responsible                     Comments
                                  Date                   Completion Date
Hardware
 WebCam
    Output Video Stream        3/20/08     NTP
    Capture Still Image        3/20/08     NTP
 Printer
   Print Picutures             4/3/08      DMW
 Coin Acceptor
   Interface with Linux        4/3/08      DMW
 Touch Screen
   Calibrate Touch Screen      3/6/08      KJF
 USB Storage Interface
   Test Different USB Drives   3/27/08     NTP
   Drive Location Algorithm    4/6/08      NTP
   Write to Drive Algorithm    4/13/08     NTP

Software
 Graphical User Interface
   Initial Prototype           3/20/08     KJF
   Video Interface             3/27/08     KJF
 Internet Uploads
   Website Design              4/6/08      KJF
   Image Transfer Protocol     4/13/08     KJF
 Backend Processing
   Image Processing
     Image Correction          3/27/08     DMW
     Fun Image Effects         3/27/08     DMW
   Image File Management       3/20/08     DMW

Booth Construction
 Booth Design                  3/13/08     KJF
 Booth Built                   4/10/08     ALL

PC Setup
 Hardware Setup                3/6/08      KJF
 OS & Software Setup           3/13/08     ALL

Final Stages
  System Verification          4/24/08     ALL
  Software Package Creation    5/1/08      ALL
  Poster                       5/1/08      ALL
  User Reference Guide         5/1/08      ALL
 Final Report and CD-Rom       5/1/08      ALL
Testing Strategy
An incremental testing strategy will be followed throughout the construction of the Digital Photo Booth,
with exhaustive regression testing. As different units on the Digital Photo Booth are completed various
aspects of the functionality will be tested, described below.

Graphical User Interface
As the graphical user interface (GUI) provides the main mechanism to control the Digital Photo Booth it
must be thoroughly tested in two ways. The first series of tests will ensure that the GUI properly goes
through the correct sequence as the user is interacting with the system, from accepting a coin to taking
picture and so on. Once the proper flow of the GUI has been verified then testing all errors that the GUI
could encounter must be performed.

Coin Acceptor
The coin acceptor will be tested to ensure that when a user inserts the coin the Digital Photo Booth
recognizes this. This is seen by incrementing the users funds by $0.25 and also adjusting the options
available to the user through the GUI accordingly.

Camera
The next step is to test the camera’s functionality, as this is crucial to the Digital Photo Booth. The
camera must be tested to ensure that a video feed can be acquired and then displayed in the GUI. The
second function of the camera that must be tested is the ability to capture a still photograph.

Image Processing
Once an image is captured properly from the camera it must resize the image for use in the GUI. A script
will be used to create different sized images, and this must be tested. Also the interaction between the
Digital Photo Booth and the Magick++ software must be tested to verify that the correct image
processing is done by the system.

Final Photograph Handling
It must be tested that the system can properly handle the finished photo, in saving the file to a USB
drive, uploading to a web server or printing the photo.


Deliverables
The deliverable for this project will be an all-in-one kiosk which allows the user to sit down, insert
money into the machine and begin taking pictures immediately using a custom-designed touch screen
interface. The kiosk, or booth, will provide the user with a place to sit with proper lighting to ensure a
good exposure.


Feasibility Summary
Since the operating system is not known at this point in time, some difficulties could arise in interfacing
the external devices with the operating system, especially because we are leaning toward using some
form of Linux to save on cost. Because of this it is crucial to select a webcam and printer that have well
documented and maintained Linux drivers. Aside from drivers, the interface might prove difficult for
our purposes. Trying to print in Linux can be a challenge at times.

Another difficulty foreseen for the completion of this project is the full-screen GUI which will need to be
developed for Linux, probably in either Java or GDK+. Although Java is a more familiar and cross-
compatible method, using GDK+ would provide a much more seamless interface for the user where no
part of the operating system will show. As far as the user is concerned, the operating system should be
a transparent utility, so a full-screen interface is absolutely necessary. This shouldn’t be a very hard
thing to do, but will require a certain amount of research and study prior to the development of the
actual GUI. Investigating possible implementation libraries may be a good topic for investigation in
order to find the best possible one.


Contact information
Kyle Farnung
284-5 Colony Manor Dr
Rochester, NY 14623
(585) 760-4574
kfarnung@gmail.com

Nathan Prosser
129D Perkins Rd
Rochester, NY 14623
(716) 969-2791
icarus4586@gmail.com

David Winiarski
153 Colony Manor Dr
Rochester, NY 14623
(585) 944-4461
dwiniarski@gmail.com

				
DOCUMENT INFO
Shared By:
Tags:
Stats:
views:52
posted:11/1/2011
language:English
pages:15