Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Measure the Future at Internet Librarian 2016

Measure the Future at Internet Librarian 2016

Update on the Measure the Future project (http://measurethefuture.net) at Internet Librarian 2016. Includes the announcement of our first Alpha installation partner: The New York Public Library and the Rose Reading Room reopening.

Jason Griffey

October 18, 2016
Tweet

More Decks by Jason Griffey

Other Decks in Education

Transcript

  1. MEASURING ENGAGEMENT
    INTERNET LIBRARIAN 2016

    View Slide

  2. Nex-Gen Use Metrics for Libraries
    News Challenge for Libraries Grant Recipient

    View Slide

  3. BACKGROUND

    View Slide

  4. STATISTICS

    View Slide

  5. TYPICAL STATS
    ▸ Gate Count
    ▸ Circulation Count
    ▸ # of Reference Interactions
    ▸ # of Classes Taught
    ▸ Website Visits

    View Slide

  6. 0
    7 5
    1 5 0
    2 2 5
    3 0 0
    2 0 00 2 0 05 2 0 1 0 2 0 1 5
    Circulation

    View Slide

  7. 0
    7 5
    1 5 0
    2 2 5
    3 0 0
    2 0 00 2 0 05 2 0 1 0 2 0 1 5
    Text
    Video

    View Slide

  8. 0
    7 5
    1 5 0
    2 2 5
    3 0 0
    2 0 00 2 0 05 2 0 1 0 2 0 1 5 2 0 2 0
    Text
    Video

    View Slide

  9. ATTENTION
    MEASUREMENT

    View Slide

  10. GOOGLE ANALYTICS
    FOR YOUR BUILDING

    View Slide

  11. COMMERCIAL SYSTEMS
    ▸ https://prism.com
    ▸ http://www.occupeye.com
    ▸ http://www.density.io
    ▸ http://euclidanalytics.com

    View Slide

  12. OPEN
    HARDWARE &
    SOFTWARE

    View Slide

  13. BY LIBRARIANS
    FOR LIBRARIANS

    View Slide

  14. HOW TO 

    MEASURE THE FUTURE
    INTERNET LIBRARIAN 2016

    View Slide

  15. SCOUT

    View Slide

  16. SCOUT INFORMATION
    ▸ Logitech c525 Webcam
    ▸ Intel Edison w/USB board
    ▸ 3d printed case
    ▸ OpenCV
    ▸ Go

    View Slide

  17. MOTHERSHIP

    View Slide

  18. MOTHERSHIP INFORMATION
    ▸ Intel Edison + Power board
    ▸ 3d printed case
    ▸ Data analytics and visualization (Python,
    Javascript)
    ▸ Data storage (MySQL)

    View Slide

  19. HARDWARE 

    DEVELOPMENT

    View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. SOFTWARE

    View Slide

  33. MEASURE THE FUTURE
    DEVELOPMENT STACK
    ▸ Yocto Linux
    ▸ Go
    ▸ OpenCV
    ▸ React.js
    ▸ Postgres

    View Slide

  34. HTTPS://GITHUB.COM/
    MEASURETHEFUTURE

    View Slide

  35. View Slide

  36. SCOUT MOTHERSHIP BROWSER

    View Slide

  37. MOTHERSHIP BROWSER
    SCOUT
    SCOUT
    SCOUT

    View Slide

  38. MOTHERSHIP
    BROWSER
    SCOUT
    SCOUT
    SCOUT
    SCOUT
    SCOUT
    SCOUT
    SCOUT

    View Slide

  39. HOW IT WORKS

    View Slide

  40. Raw Footage
    Background Removal
    Noise Filtering
    Contour Detection & Object Tracking

    View Slide

  41. View Slide

  42. VERSION 1 FEATURES
    ▸ Attention measurement/Heatmap
    ▸ People count
    ▸ Raw data available via JSON
    ▸ Significant privacy protection

    View Slide

  43. PRIVACY
    ▸ No photo or video of patrons is
    saved
    ▸ All communication is secured
    ▸ Collapsing single-stat areas
    ▸ 15 Minute reporting blocks

    View Slide

  44. USE

    View Slide

  45. ACTIVATE

    View Slide

  46. CALIBRATE

    View Slide

  47. CALIBRATE

    View Slide

  48. MEASURE

    View Slide

  49. REPORT

    View Slide

  50. DATA

    View Slide

  51. SCOUTS.JSON
    {

    "id": 1,

    "uuid": "c91ff28c-f583-43be-adb8-d5c060080441",

    "ip_address": "0.0.0.0",

    "port": 8080,

    "authorised": true,

    "name": "Location 1",

    "state": "measuring",

    "summary": null

    }

    • id Is a database identifier for the scout. It is automatically generated by the database.

    • uuid Is a unique identifier for the scout, this is generated by the scout and is used as a key for uploading content to the
    mothership.

    • ip_address Is the current IP address the scout is listening on.

    • port Is the current port the scout is listening on.

    • authorised Has a person authorised the scout (as identified by the UUID above) to send data to this instance of the
    mothership?

    • state The current state of the mothership, the available options are 'idle', 'calibrating', 'calibrated', 'measuring'.

    • summary Unused field.

    View Slide

  52. SCOUT.INTERACTIONS
    Contains an array of interactions, one for each visitor interaction detected by the system.

    {

    "Id": 2,

    "ScoutId": 1,

    "Duration": 3.1874993,

    "Waypoints": [[976,375],[1120,208],[1626,301]],

    "WaypointWidths": [[178,323],[176,207],[162,300]],

    "WaypointTimes": [7.642e-06,1.5644069,3.1874993],

    "Processed": true,

    "EnteredAt": "2016-09-16T20:15:00Z"

    }

    • Id Is a database identifier for the interaction. This is automatically generated by the database.

    • ScoutId Is used to match the interaction with the source scout. The corresponding scout in scouts.json will have the same Id.

    • Duration This is the total amount of time (in seconds) that the scout observed this interaction occurring.

    • Waypoints Is the path (in pixels) that the interaction took through the calibration frame. The address [0,0] corresponds with the top-left
    corner of the image.

    • WaypointWidths This is the matching size (in pixels) of the interaction at each step along the path 'Waypoints'. The size of
    WaypointWidths and Waypoints will always be the same.

    • WaypointTimes The offset time (in seconds) from 'EnteredAt' that each step along the path in waypoint occurred.

    • Processed Has this interaction been 'processed' and included as part of the summary as defined in scout_summaries.json?

    • EnteredAt The time the interaction begun. This date/time is in UTC and deliberately rounded to the nearest 15 minutes. The rounding is
    an additional privacy protection measure, clumping multiple interactions into occurring at the same time. This to make it more difficult
    to cross-reference interaction data with other sources of metadata.

    View Slide

  53. SCOUT.SUMMARIES
    Contains an array of interaction summaries, one for each scout. Each summary has the following
    format:

    {

    "ScoutId": 1,

    "VisitorCount": 931,

    "VisitTimeBuckets": [[1,2,...,20],[1,2,...,20],...,[1,2,...,20]]

    }

    • ScoutId is used to match the summary with the database identifier id in scouts.json above.

    • VisitorCount is the raw visitor count, the total number of interactions recorded within the space.

    • VisitTimeBuckets Is the data used to generate the heatmap. This is 20 arrays of 20 elements.
    Each value in this 20x20 grid is the total accumulated interaction time at that place on the
    calibration frame. The first array is the first (top) row in the calibration image, and the first
    element within that array is the left most edge of the calibration image. The total accumulated
    interaction time is the total amount of time (in seconds) spent by all visitors at that part of the
    physical space.

    View Slide

  54. SCOUT.HEALTHS
    Contains an array of scout healths, one for each scout at about a 15 minute interval. These healths give an
    approximation of the health of the measurement system:

    {

    "ScoutId": 1,

    "CPU": 5.09,

    "Memory": 0.34978658,

    "TotalMemory": 1.0066616e+09,

    "Storage": 0.5071577,

    "CreatedAt": "2016-09-16T20:21:45.149642Z"

    }

    • ScoutId Is used to match the health with the source scout. The corresponding scout in scouts.json will
    have the same Id.

    • CPU The five minute load average for the scout at that point in time. In this particular example 5.09
    means that on average 4.09 processes were waiting on the CPU. A value of 0 would mean that the
    system was completely idle.

    • Memory The percentage of the TotalMemory currently being used on the scout system.

    • TotalMemory The total memory available on the scout in bytes.

    • Storage The percentage of the total available storage being used on the scout system.

    • CreatedAt When the health report was created.

    View Slide

  55. WORLD PREMIERE

    View Slide

  56. View Slide

  57. View Slide

  58. View Slide

  59. View Slide

  60. View Slide

  61. Rose North 1
    Rose South 1
    Rose North 2
    Rose South 2
    Bill Blass 1
    Bill Blass 2

    View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. View Slide

  68. October 6, 2016

    View Slide

  69. October 7, 2016

    View Slide

  70. October 11, 2016

    View Slide

  71. October 6, 2016

    View Slide

  72. October 7, 2016

    View Slide

  73. October 11, 2016

    View Slide

  74. POSSIBLE ISSUES

    View Slide

  75. INTERNET LIBRARIAN 2016
    POSSIBLE ISSUES
    ▸ light levels
    ▸ reflection
    ▸ “bunching”
    ▸ complexity of interactions

    View Slide

  76. View Slide

  77. FUTURE

    View Slide

  78. MEASURE THE FUTURE & NYPL
    FUTURE
    ▸ Refining counting algorithms/body ID
    ▸ Timeslice UI
    ▸ Cloud portal
    ▸ Secondary sensors

    View Slide

  79. ROADMAP FOR VERSION 2
    ▸ Additional sensor support
    ▸ Hyperlocal location measurement
    ▸ Humidity/temperature
    ▸ Additional data views
    ▸ Data integration into other products
    ▸ Secure and privacy-focused cloud portal for your data

    View Slide

  80. MEASURE THE FUTURE & NYPL
    FUTURE
    ▸ Meridian Public Library - Next Week!
    ▸ SUNY - Potsdam - November!
    ▸ Launch at ALA Midwinter

    View Slide

  81. SMART BUILDING
    Photo by KTH Biblioteket - http://flic.kr/p/7Pesb4

    View Slide

  82. A/B TEST SPACES
    Photo by DaveBleasdale - http://flic.kr/p/nNZRV

    View Slide

  83. EVALUATE YOUR STACKS
    Photo by ocegep - http://flic.kr/p/crdH8s

    View Slide

  84. PLAN YOUR STAFFING
    Photo by infomatique - http://flic.kr/p/qkS3BQ

    View Slide

  85. Nex-Gen Use Metrics for Libraries
    http://measurethefuture.net
    @measure_future

    View Slide

  86. J A S O N G R I F F E Y
    P H O T O C R E D I T: C I N D I B LY B E R G
    F O U N D E R / P R I N C I PA L C O N S U LTA N T
    E V E N LY D I S T R I B U T E D L L C
    H T T P : / / E V E N LY D I S T R I B U T E D . N E T
    M E A S U R E T H E F U T U R E
    H T T P : / / M E A S U R E T H E F U T U R E . N E T
    F E L L O W
    B E R K M A N K L E I N C E N T E R F O R I N T E R N E T & S O C I E T Y
    H A R VA R D U N I V E R S I T Y
    J G R I F F E Y @ C Y B E R . L AW. H A R VA R D . E D U
    H T T P : / / J A S O N G R I F F E Y. N E T
    T H E L I B R A RY B O X P R O J E C T
    H T T P : / / L I B R A RY B O X . U S

    View Slide