How To Make Almost Anything Neil Gershenfeld

BENJAMIN VILLA

MIT Center For Bits And Atoms


Fab labs share an evolving inventory of core capabilities to make (almost) anything, allowing people and projects to be shared. These are my projects.

Interface and Programming-

10.27.21

assignment

individual assignment: write an application that interfaces a user with an input and/or output device that you made

group assignment: compare as many tool options as possible

[1] As for my final project I wanted to create a way to measure activity in urban public parks, I decided to create an application or interface that would take as an input the ESP32-Cam video stream and use real-time object detection to detect different objects or activities that the ESP32-Cam would observe in urban parks. I continued with the lessons and work from the previous week. I used the networked video stream I achieved in Week 11 as the input of a program that would then take that video stream and use YOLO Real Time object detection to process images at 30 FPS using a pre-trained model that would be able to detect a limited number of objects. This proved to be much more difficult than I imagined and I had to get the help of Amira to figure out why the code I had written wasn’t working. We figured out the problem was that I hadn’t installed the correct pre-trained weight file for YOLO, so my program wasn’t able to detect anything at all.

Once I correctly installed the pre-trained weight file, my locally run program was able to detect objects that were streamed from the ESP-32 Cam. With this I then created a list and a dictionary to store the items and add them to a running list that would be able to keep track of the objects the program had “seem”. This would allow me to measure activity in different places, including urban parks. I decided to create two additional ESP-32 Cams to deploy in different parks for a given time, and see if I could compare and contrast the activity that the Real Time object detection would be able to measure in different places.

One problem I encountered was that I hadn’t realized that the Real Time Object detection I was using wasn’t able to differentiate if it had already “counted” or “seen” a previous object or person. So, it would count a person or object multiple times, 1 per observation in a frame. As video has multiple frames, one same person who walks by the ESP32 Cam, would be counted multiple times. In the future, I plan to continue exploring how to fix this problem. For now, I was content with the results, and instead decided to adapt what I could measure. Instead of stating I was able to measure the number of people/objects, I would only be able to measure the relative time an object/person was in the camera’s line of sight. This would still be able to provide interesting insights, especially when comparing different deployments.

Download Files