user manual

Transcription

user manual
Phenotiki – How to setup the Phenotiki device
Author: Massimo Minervini∗
Software version: 1.1
June 6, 2016
Abstract
This document provides detailed instructions to setup and operate
the Phenotiki device for affordable plant phenotyping. First, we
provide a general overview of the RaspiCam image sensor and the
web-based interface to operate the device using a browser. Next, we
describe how to setup the device.
Contents
1
2
3
∗
A smart sensing device based on the Raspberry Pi
2
1.1
RaspiCam . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Easy device configuration via web interface . . . . . . . . .
3
Setting up the Phenotiki device and software
4
2.1
Hardware requirements . . . . . . . . . . . . . . . . . . . .
4
2.2
Operating system and software setup . . . . . . . . . . . .
5
Operating the device
8
E-mail: [email protected]
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International
License (http://creativecommons.org/licenses/by-sa/4.0/).
©2015-2016, Massimo Minervini. Some Rights Reserved.
Local
network
Internet
iPlant
Collaborative
Figure 1: Schematic of our imaging solution based on the Raspberry Pi,
showing the headless mode for image acquisition and transmission.
1
A smart sensing device based on the Raspberry Pi
The Raspberry Pi [1, 2] is a credit-card sized single-board computer, designed and developed by the Raspberry Pi Foundation,1 UK, as an educational tool for teaching computer science and programming [3, 4]. The
Raspberry Pi is cheap (monetary cost is e40) and easy to use (it runs the
Raspbian, a full-featured Linux operating system), therefore it is ideal to
implement affordable systems.
As illustrated in Figure 1, we use a Raspberry Pi (Model B) single-board
computer, shorthanded as RPi, equipped with a 5 megapixel ‘RaspiCam’
camera module, to capture static images (width×height: 2592×1944 pixels) of the scene. This solution offers great flexibility by having a complete
yet small computer attached to the sensor. While the RaspiCam is capable
of acquiring images of good quality that can satisfy a wide range of applications (the infrared camera module ‘NoIR’ is also available), in contexts
where superior image quality is required, the Raspberry Pi can be used
in combination with an SLR camera or other imaging sensors.
To control the camera and acquire images we adopt the raspistill application. The images acquired by the RPi setup are also automatically
transmitted to the cloud for storage and analysis. Here we rely on the scientific cloud infrastructure offered by the iPlant Collaborative project [5],
to deploy our plant image analysis software solution.
In a distributed sensing and analysis scenario, in which the acquired
data needs to be transmitted via the Internet to centralized locations
(e. g., a cloud service) for analysis, it becomes necessary to compress the
images effectively [6]. In this context, a single-board computer such as the
Raspberry Pi operating the sensor offers the possibility to: (a) perform
(low-complexity) pre-processing operations on the acquired imagery (e. g.,
image enhancement, specialized compression, low level vision); and (b)
autonomously transmit the images to a remote location.
To ease configuration and monitoring, we deploy a web-based interface
to operate the sensor remotely (cf. Figure 1). In the following, we describe
how to set up the hardware and software components of our affordable
sensing solution based on the Raspberry Pi.
1
http://www.raspberrypi.org
Phenotiki – True phenotyping-in-a-box solution
2
(a) Desktop interface
(b) Mobile interface
Figure 2: Screen captures of our web-based interface to operate the Raspberry Pi camera, based on the raspistillWeb project.
1.1
RaspiCam
The “RaspiCam” camera module is a fixed-focus 5 megapixel CMOS
image sensor produced by OmniVision Technologies.2
raspistill: Two command line utilities are available on the Raspberry Pi to operate
the camera: raspistill, to capture still photos, and raspivid, to
record HD video. For example, to acquire a picture and save it in the PNG
format [7] we use the following command line options:
raspistill -n -e png -awb fluorescent -rot 180 -o filename
Notice that the camera module must be enabled in the Raspbian configuration (see Section 2.2).
The raspistill utility is easy to use and offers several options to configure image acquisition [8]. In particular, in our experimental setup we use
neon lights for illumination, therefore we specify the option fluorescent to
the automatic white balance algorithm embedded in raspistill.
Using a job scheduler (e. g., the Cron software utility), it is possible to run
the raspistill periodically, to acquire a time-lapse sequence of images.
However, any changes to the mode of operation require that the Raspberry
Pi be connected to all input/output peripherals to provide the user with
physical access. This procedure involves attaching and detaching cables,
which may cause undesired displacements of the sensing device or the
plants. Furthermore, in some scenarios, physical access to the device may
not be possible or desirable after the initial setup, thus introducing the
need for a solution that enables remote control.
1.2
Easy device configuration via web interface
After initial setup, the Phenotiki device offers a web-based interface for
easy configuration and operation from another computer (e. g., a laptop
or even a smartphone, cf. Figure 2).
We implement our interface as a fork of the raspistillWeb3 project (version 0.1), i. e. a web interface for the raspistill tool, implemented
2
3
http://www.ovt.com
https://github.com/TimJuni/raspistillWeb
Phenotiki – True phenotyping-in-a-box solution
3
using the Python programming language and the Pyramid4 web framework. We adapt the original software platform to the requirements of our
application, adding the following key features:
(a) the user can select among different image file formats, including
lossy (JPEG [9], GIF [10]) and lossless (BMP [11], PNG [7]) encoding
standards;
(b) the user can start and interrupt time-lapse image acquisitions;
(c) more detailed information and metadata are displayed about acquired images; and
(d) acquired images can be transmitted to the iPlant Collaborative [5]
cloud infrastructure for storage and analysis.
As shown in Figure 2, graphical control elements of the user interface
are intuitive and self-explanatory, thus rendering the web application
easy-to-use. The ‘Settings’ page allows to configure parameters regarding image acquisition, time-lapse photography, and transmission to the
iPlant. ‘Home’ and ’Time Lapse’ pages allow to capture single still images
and initiate a time-lapse acquisition, respectively. Detailed information
about acquired images is displayed in ‘Home’ and ’Archive’ pages. In
the ’Archive’ page the user can browse previously acquired images and
download time-lapse sequences as compressed archives. Our interface
also adapts to small screens and can be displayed on mobile devices such
as smartphones and tablets (cf. Figure 2).
Acquired images are transmitted to the iPlant using the Bisque Python
APIs and the user’s credentials (username and password) for iPlant. The
user can also decide to delete the local copy of the image files after their
transmission, to save storage space on the Raspberry Pi.
2
2.1
Setting up the Phenotiki device and software
Hardware requirements
To replicate the Phenotiki device you will need the following hardware
equipment:
• Raspberry Pi version 1 model B (or higher);
• “RaspiCam” camera module;
• USB micro power supply (recent versions of the Raspberry Pi necessitate a specialized power supply);
• 8 GB (or larger) Secure Digital (SD) memory card;
• HDMI monitor and cable;
• USB keyboard and mouse;
• USB wireless dongle (not necessary for recent versions of the Raspberry Pi);
• self-powered USB hub (not necessary for recent versions of the
Raspberry Pi).
This equipment can be easily purchased from one of the several distributors selling worldwide.
Setting up the Raspberry Pi requires only few simple steps, described in
detail in the official documentation [8].5 In order to install the necessary
software and perform initial configurations, the device must be attached
4
5
http://www.pylonsproject.org
http://www.raspberrypi.org/documentation/setup/
Phenotiki – True phenotyping-in-a-box solution
4
NumLock
F3
F1 F2
Esc
~
`
!
1
@
Tab
F11 F12
F9 F10
+
F7 F8
F6
_
-
ScrollLock
PrintScrn
SysRq
Pause
F5
^
6
&
7
*
8
(
|
\
Home
NumLock
PageUp
Delete
}
ScrollLock
CapsLock
Break
Insert
=
End
PageDown
Shift
-
*
/
7
9
8
Home
]
) 0
P { [: " '
9
;
I O
L
?
% 5
Y U
J K M < , > . /
$ 4
#
R T
G H
N
2 3 W E
D F C V B
Q
A S
CapsLock
Z X
F4
4
PgUp
+
6
5
1
End
3
2
0
PgDn
.
Enter
Del
Ins
Ctrl
Alt Gr
Alt
Shift
Ctrl
Internet
Figure 3: Schematic of our sensing solution at first configuration time,
showing system setup and configuration. Note that after the initial setup,
the system does not require input/output peripherals, and can be operated remotely (cf. Figure 1).
to input/output peripherals (monitor, keyboard, and mouse), as shown
in Figure 3. To connect the camera module to the Raspberry Pi, proceed
as shown in the instructional video available on YouTube.6 Subsequently,
the Raspberry Pi can be started headless and operated remotely from a
computer connected to the same local network (cf. Figure 1).
2.2
Operating system and software setup
Operating system: Download and install the latest version of the Raspbian operating system,
available at http://downloads.raspberrypi.org/raspbian_
latest. Extract the system image from the ZIP archive and install it on
the SD card (also used for local storage on the Phenotiki device). The
steps to write a Raspbian image to an SD card depend on the user’s
system, and instructions for several operating systems can be found in
the official documentation [8].7 For example, on Linux, insert the SD card
and run df-h to see the device name corresponding to the SD card, e.g.,
/dev/mmcblk0p1. Then, run the following commands with superuser
privileges to first unmount the SD card and then install the Raspbian
image 2016-03-18-raspbian-jessie.img:
umount /dev/mmcblk0p1
dd bs=4M if=2016-03-18-raspbian-jessie.img of=/dev/mmcblk0
sync
The dd command may take several minutes to write the image to the SD
card. sync will ensure that all buffered data are written to the SD card.
Upon completion, unmount and remove the SD card from the card reader.
With the peripherals connected as in Figure 3, start the Raspberry Pi,
that will automatically boot to the desktop environment. From Menu,
6
7
http://www.youtube.com/watch?v=GImeVqHQzsE
http://www.raspberrypi.org/documentation/installation/
Phenotiki – True phenotyping-in-a-box solution
5
Preferences, launch Raspberry Pi Configuration to perform some systemlevel configuration tasks. In the System tab, click on Expand Filesystem.
In the Interfaces tab, enable Camera and SSH. In the Localisation tab set
Locale and Timezone. After completing configuration reboot the device.
Wi-Fi setup: In the desktop environment, click on the network icon in the top menu bar.
Select your local Internet connection and enter appropriate credentials if
necessary. The device will remember network settings and connect on
start-up.
Note that recent versions of the Raspberry Pi feature on board Wi-Fi,
however, older versions require a USB wireless dongle.
Upon startup the Raspbian launches an SSH (secure shell) server, allowing
remote access to the command line of the Raspberry Pi. For example, on
a Linux system use the following command to connect to the device:
ssh -p 22 pi@<IP>
where <IP> is the local (or remote) IP address of the Raspberry Pi (e. g.,
192.168.1.5). To find the IP address assigned to the Raspberry Pi
in the local network, execute in a terminal on the device the command
hostname -I. Default login user name and password are, respectively,
‘pi’ and ‘raspberry’.
Packages upgrade: Once a Wi-Fi connection is established, open a terminal on the Raspberry
Pi (either directly on the device or remotely via SSH) and upgrade the
device firmware and all installed packages to the latest available version:
sudo
sudo
sudo
sudo
rpi-update
apt-get update
apt-get -y dist-upgrade
apt-get -y autoremove
This operation may take some time, depending on network speed.
Software dependencies: Install the software dependencies necessary to setup and run the Phenotiki
software with BisQue support:
sudo apt-get install -y mercurial python2.7-dev \
python-virtualenv python-setuptools python-picamera
Install raspistillWeb: Download the Phenotiki fork of the raspistillWeb software by cloning our
GitHub repository and install it on the device:
mkdir ~/phenotiki
cd ~/phenotiki
virtualenv --python=python2.7 env
cd env
git clone https://github.com/phenotiki/raspistillWeb.git
cd raspistillWeb
../bin/python setup.py develop
../bin/initialize_raspistillweb_db development.ini
Note that the software and all dependencies will be installed in the virtual
environment without affecting global Python options and libraries. This
step guarantees that the software will work even if the Raspbian operating
system and its packages are updated.
Install BisQue support: Build and install the Python APIs for Bisque, running the following commands:
Phenotiki – True phenotyping-in-a-box solution
6
cd ~/phenotiki/env/
bin/pip install requests==2.7.0
bin/pip install BeautifulSoup4
bin/pip install lxml
hg clone http://biodev.ece.ucsb.edu/hg/bisque/
cd bisque/bqapi/
../../bin/python setup.py build_py
../../bin/python setup.py install
The hg command will download the BisQue code, thus this step may take
some time depending on network speed.
Subsequently, when a new version of the BisQue API is available, to
update the BisQue API from the official repository to the latest release,
execute:
cd bisque/bqapi/
hg pull -u
You may check also the official BisQue installation instructions8 for a
more extensive description of the installation process.
raspistillWeb: Start raspistillWeb by launching the service that will run on the device
and will generate the web interface upon request:
cd ~/phenotiki/env/raspistillWeb/
../bin/pserve development.ini
Afterwards, it is possible to access the raspistillWeb interface from a web
browser on a computer connected to the same local network. For example,
if the IP address of the Raspberry Pi is 192.168.1.5, in a browser on a
laptop or a smartphone open http://192.168.1.5:6543. (By default
the raspistillWeb service will be listening on port number 6543.)
By properly configuring the router of the local network, it is be possible to
enable remote access to the raspistillWeb via the Internet. Notice however
that this configuration step depends on the local network settings and
you should seek support of your network administrator.
In order to start the raspistillWeb automatically on system boot, on the
Raspberry Pi edit the /etc/rc.local file using a text editor with superuser privileges, for example:
sudo nano /etc/rc.local
Add the following lines at the bottom of the file before the line exit 0:
cd ~/phenotiki/env/raspistillWeb/
../bin/pserve development.ini
To save the changes and quit the editor, press Ctrl+X, then Y, and finally
Enter.
Finally, if you are deploying multiple Phenotiki devices, you can assign
different names by editing the /etc/hostname file:
sudo nano /etc/hostname
Change the default raspberrypi to a name of your choice, e.g.,
phenotiki-device-01. The name of a device is also displayed in
Settings page of the web interface.
8
https://biodev.ece.ucsb.edu/projects/bisque/wiki/
InstallationInstructions05
Phenotiki – True phenotyping-in-a-box solution
7
3
Operating the device
Coming soon!
References
[1] C. Severance, “Eben Upton: Raspberry Pi,” Computer, vol. 46, no. 10,
pp. 14–16, 2013.
[2] E. Upton and G. Halfacree, Raspberry Pi User Guide.
Wiley, 2014.
[3] C. Andrews, “Easy as Pi,” Engineering Technology, vol. 8, no. 3, pp.
34–37, 2013.
[4] F. Cuomo, E. Mibuari, K. Weldemariam, and O. Stewart, “Leveraging
Raspberry Pi for interactive education,” in Annual Symposium on
Computing for Development, ser. ACM DEV-4 ’13, 2013.
[5] S. A. Goff, M. Vaughn, S. McKay, E. Lyons, A. E. Stapleton, D. Gessler,
N. Matasci, L. Wang, M. Hanlon, A. Lenards, A. Muir, N. Merchant,
S. Lowry, S. Mock, M. Helmke, A. Kubach, M. Narro, N. Hopkins,
D. Micklos, U. Hilgert, M. Gonzales, C. Jordan, E. Skidmore, R. Dooley, J. Cazes, R. McLay, Z. Lu, S. Pasternak, L. Koesterke, W. H. Piel,
R. Grene, C. Noutsos, K. Gendler, X. Feng, C. Tang, M. Lent, S.-J. Kim,
K. Kvilekval, B. S. Manjunath, V. Tannen, A. Stamatakis, M. Sanderson, S. M. Welch, K. A. Cranston, P. Soltis, D. Soltis, B. O’Meara,
C. Ane, T. Brutnell, D. J. Kleibenstein, J. W. White, J. Leebens-Mack,
M. J. Donoghue, E. P. Spalding, T. J. Vision, C. R. Myers, D. Lowenthal, B. J. Enquist, B. Boyle, A. Akoglu, G. Andrews, S. Ram, D. Ware,
L. Stein, and D. Stanzione, “The iPlant collaborative: Cyberinfrastructure for plant biology,” Frontiers in Plant Science, vol. 2, no. 34,
2011.
[6] M. Minervini and S. A. Tsaftaris, “Application-aware image compression for low cost and distributed plant phenotyping,” in 18th
International Conference on Digital Signal Processing (DSP), Santorini,
Greece, Jul. 2013, pp. 1–6.
[7] Portable Network Graphics (PNG) Specification, W3C Recommendation
ISO/IEC 15 948:2003 (E), Rev. 2, 2003. [Online]. Available: http:
//www.w3.org/TR/PNG/
[8] Raspberry Pi documentation. Raspberry Pi Foundation. [Online].
Available: https://www.raspberrypi.org/documentation/
[9] Information technology – Digital compression and coding of continuoustone still images, International Telecommunication Union (ITU) ITU-T
Recommendation T.81, 1992.
[10] CompuServe Inc., “Graphics interchange format (GIF),” Jul. 1990,
version 89a. [Online]. Available: http://www.w3.org/Graphics/
GIF/spec-gif89a.txt
[11] J. D. Murray and W. VanRyper, Encyclopedia of graphics file formats.
O’Reilly, 1994.
Phenotiki – True phenotyping-in-a-box solution
8