Intro
I am assembling a lot of different ideas I have to do some more cool things than was possible with my original Raspberry Pi photo frame effort although that contained a lot of original ideas as well.
Skillset
Intermediate or better linux skills required. Beginners/newbies: please do not attempt as you will encounter insurmountable problems and be left in a trail of tears. I don’t have time to help.
I will be using this remote control which I can attest is indeed compatible with the RPi:
But it has no CTRL key! I can’t survive without that. It seems aimed at media consumers. I guess those types never need that key. At this point in time my idea is to use the arrow keys + Enter button as a familiar way to navigate around a simple menu I plan to create, plus perhaps the menu key. the pre-defined keys fbi has created for navigation are simply not intuitive, nor are they adequate for the tasks I have in mind.
Rii key | Value |
up arrow | 103 |
down arrow | 108 |
right arrow | 106 |
left arrow | 105 |
Menu | 127 |
OK | 28 |
In my basic photo frame approach I had a simpler rotate image python script. This python program below rotates pictures by the specified amount and preserves the EXIF tags. It doesn’t update the orientation tag after rotating because for the fbi display program I use that doesn’t matter. I call it rotate.py.
#!/usr/bin/python3
# call with two arguments: degrees-to-rotate and filename
import PIL, os
import sys
from PIL import Image
# first do: pip3 install piexif
import piexif
degrees = int(sys.argv[1])
pic = sys.argv[2]
picture= Image.open(pic)
# see https://github.com/hMatoba/Piexif for piexif writeup
exif_dict = piexif.load(picture.info[“exif”])
exif_bytes = piexif.dump(exif_dict)
# both rotate and preserve EXIF data
picture.rotate(degrees,expand=True).save(“rot_” + pic,”jpeg”, exif=exif_bytes)
As it says in the code you need to install piexif in addition to Pillow:
$ sudo pip3 install Pillow && sudo pip3 install piexif
Example call
$ ./rotate.py 90 20160514_131528.jpg
Difficult problem
I set for myself a problem that is much more difficult than anything I’ve tackled. I wanted to post a preliminary solution, but I don’t want to do constant re-writes which are time-consuming. I have a lot of code re-writes to do. I do have a menu system working, and a couple functions implemented to date. But there is so much more to do to even get to an alpha version.
To be continued…
Pie-in-the-sky To-Do list
- Use of deep learning AI to toss out images which are poor quality
- Use Facebook API to identify people in the images
- Commercialization of idea
- Smarthome enablement, e.g., hey Alexa, pause that picture and tell me about it, etc
Breaking those pie-in-the-sky ideas down, I believe the RPi is way vastly underpowered to do any serious image analysis; Facebook facial recognition is creepy and an invasion of privacy; commercialization sounds great on paper but in reality is a time sink doing unpleasant things for little or no profit in the end; and lastly Smarthome enablement is actually the most achievable and was my original thinking before I landed on the remote control. I may or may not get back to it one day.
References and related
A more basic approach to creating a Raspberry Pi – based photo frame is described here.
The Rii remote control I am using only cost $12! https://www.amazon.com/gp/product/B01CL3ZXGO/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1
A great tutorial on the Pillow python package which I use for image processing: https://auth0.com/blog/image-processing-in-python-with-pillow/
The full documentation fills it out even more: https://pillow.readthedocs.io/en/stable/
The official Exif documentation is here: http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf . For instance, page 42 says UserComments get the Tag ID 37510.