Recently, I have been working on a project involving a wearable camera, primarily using a Raspberry Pi. Previously, I purchased a Narrative Clip – a wearable camera, but the quality of this camera was quite disappointing. Recently, I was about to travel to four countries in Europe, so I spent some time creating my own wearable camera. With my hacking skills, it should not be a problem.
I made a hole in the shoulder strap of my backpack and inserted the Raspberry Pi camera module (available for purchase on the official Raspberry Pi site). I then inserted the connected flat cable into the shoulder strap, connecting it to the Raspberry Pi at the top of the backpack. Doesn’t it feel well hidden?
The main purpose of doing this is to prevent rainwater from wetting the electronic devices while keeping it tightly attached to the bag, thus serving a fixing role, so there’s no need to adjust its position repeatedly (the previous Narrative Clip required constant positional adjustments).
With these two issues resolved, everything became much better. The photo on the right shows how my bag was completely soaked in heavy rain.
Adding a GPS Module
For me, the main purpose of this camera is to take photos during holidays, so I thought it would be great to add a LinkIt ONE module. The LinkIt One is a wireless development board, and I am using it here because it supports GPS and can send GPS data to the Raspberry Pi. This way, the photos can automatically record the shooting location information and conveniently save it in the EXIF data.
Many people may also know the nature of GPS; sometimes it can be 100% accurate, but other times it can be way off. The accuracy of GPS mainly depends on satellite acquisition – anyway, I won’t be going too far, so the accuracy should be guaranteed.
Building a Mobile Application
The most frustrating thing about the Narrative Clip camera I used previously was its poor controllability: there were no adequate prompts when taking photos, and I had no idea whether the shots were good or not.
By effectively utilizing the onboard WiFi chip (AP mode) of the Raspberry Pi 3, this issue can be resolved. By enabling a WiFi hotspot and connecting to the corresponding application – the app can display the photos just taken. This application is built using the Flask web framework. With this small feature added, the convenience of this camera has greatly improved, at least the controllability has been significantly enhanced, allowing for deletion and renaming of captured photos.
Let me show you the shooting results! The above segment is a time-lapse video composed of photos taken at set intervals, which are then combined into a video. Although it took some time to delete some incorrect photos, the overall effect is indeed much better than the Narrative Clip.
The Magic of OpenCV
After the holiday ended, I took a bunch of photos. This portable product does not have great shooting quality, but I tried using the OpenCV library to improve the effects. For example, the image above can be greatly enhanced with some simple adjustments. However, due to time constraints, I won’t be able to do that for the time-lapse video above. Yet, you know how to use such a discreet portable shooting product, right?
Interested students can also view the project on GitHub.
*Source: manoj.ninja, FB editor Lao Wang’s neighbor’s white hat translation, please indicate the source from FreeBuf hackers and geeks (FreeBuf.COM).